`sig
type types =
[ `BUTTON_PRESS
| `BUTTON_RELEASE
| `THREE_BUTTON_PRESS
| `TWO_BUTTON_PRESS ]
type t = GdkEvent.Button.types Gdk.event
val cast : GdkEvent.any -> GdkEvent.Button.t
val time : [< GdkEvent.timed ] Gdk.event -> int32
external x : GdkEvent.Button.t -> float = "ml_GdkEventButton_x"
external y : GdkEvent.Button.t -> float = "ml_GdkEventButton_y"
external axes : GdkEvent.Button.t -> (float * float) option
= "ml_GdkEventButton_axes"
external state : GdkEvent.Button.t -> int = "ml_GdkEventButton_state"
external button : GdkEvent.Button.t -> int = "ml_GdkEventButton_button"
external device : GdkEvent.Button.t -> Gdk.device
= "ml_GdkEventButton_device"
external x_root : GdkEvent.Button.t -> float = "ml_GdkEventButton_x_root"
external y_root : GdkEvent.Button.t -> float = "ml_GdkEventButton_y_root"
external set_type : GdkEvent.Button.t -> [< GdkEvent.Button.types ] -> unit
= "ml_gdk_event_set_type"
external set_button : GdkEvent.Button.t -> int -> unit
= "ml_gdk_event_button_set_button"
end`