sig
  val cast : 'Gobject.obj -> Gtk.button Gtk.obj
  module P :
    sig
      val focus_on_click : ([> `button ], bool) Gobject.property
      val image : ([> `button ], Gtk.widget Gtk.obj) Gobject.property
      val image_position :
        ([> `button ], GtkEnums.position_type) Gobject.property
      val label : ([> `button ], string) Gobject.property
      val use_stock : ([> `button ], bool) Gobject.property
      val use_underline : ([> `button ], bool) Gobject.property
      val relief : ([> `button ], GtkEnums.relief_style) Gobject.property
      val xalign : ([> `button ], float) Gobject.property
      val yalign : ([> `button ], float) Gobject.property
    end
  module S :
    sig
      val activate : ([> `button ], unit -> unit) GtkSignal.t
      val clicked : ([> `button ], unit -> unit) GtkSignal.t
      val enter : ([> `button ], unit -> unit) GtkSignal.t
      val leave : ([> `button ], unit -> unit) GtkSignal.t
      val pressed : ([> `button ], unit -> unit) GtkSignal.t
      val released : ([> `button ], unit -> unit) GtkSignal.t
    end
  val create : Gtk.button Gobject.param list -> Gtk.button Gtk.obj
  val make_params :
    cont:(([> `button ] as 'a) Gobject.param list -> 'b) ->
    'Gobject.param list ->
    ?label:string ->
    ?use_stock:bool ->
    ?use_underline:bool -> ?relief:GtkEnums.relief_style -> 'b
end