sig
  class button_skel :
    ([> Gtk.button ] as 'a) Gtk.obj ->
    object
      val obj : 'Gtk.obj
      method add : GObj.widget -> unit
      method all_children : GObj.widget list
      method as_widget : Gtk.widget Gtk.obj
      method border_width : int
      method child : GObj.widget
      method children : GObj.widget list
      method clicked : unit -> unit
      method coerce : GObj.widget
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method event : GObj.event_ops
      method focus : GContainer.focus
      method focus_on_click : bool
      method get_oid : int
      method grab_default : unit -> unit
      method image : GObj.widget
      method image_position : GtkEnums.position_type
      method label : string
      method misc : GObj.misc_ops
      method relief : Gtk.Tags.relief_style
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_border_width : int -> unit
      method set_focus_on_click : bool -> unit
      method set_image : GObj.widget -> unit
      method set_image_position : GtkEnums.position_type -> unit
      method set_label : string -> unit
      method set_relief : Gtk.Tags.relief_style -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_use_stock : bool -> unit
      method set_use_underline : bool -> unit
      method set_xalign : float -> unit
      method set_yalign : float -> unit
      method unset_image : unit -> unit
      method use_stock : bool
      method use_underline : bool
      method xalign : float
      method yalign : float
    end
  class button_signals :
    ([> Gtk.button ] as 'b) Gtk.obj ->
    object ('a)
      val obj : 'Gtk.obj
      method add : callback:(GObj.widget -> unit) -> GtkSignal.id
      method after : 'a
      method clicked : callback:(unit -> unit) -> GtkSignal.id
      method destroy : callback:(unit -> unit) -> GtkSignal.id
      method enter : callback:(unit -> unit) -> GtkSignal.id
      method leave : callback:(unit -> unit) -> GtkSignal.id
      method pressed : callback:(unit -> unit) -> GtkSignal.id
      method released : callback:(unit -> unit) -> GtkSignal.id
      method remove : callback:(GObj.widget -> unit) -> GtkSignal.id
    end
  class button :
    Gtk.button Gtk.obj ->
    object
      val obj : Gtk.button Gtk.obj
      method add : GObj.widget -> unit
      method all_children : GObj.widget list
      method as_widget : Gtk.widget Gtk.obj
      method border_width : int
      method child : GObj.widget
      method children : GObj.widget list
      method clicked : unit -> unit
      method coerce : GObj.widget
      method connect : GButton.button_signals
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method event : GObj.event_ops
      method focus : GContainer.focus
      method focus_on_click : bool
      method get_oid : int
      method grab_default : unit -> unit
      method image : GObj.widget
      method image_position : GtkEnums.position_type
      method label : string
      method misc : GObj.misc_ops
      method relief : Gtk.Tags.relief_style
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_border_width : int -> unit
      method set_focus_on_click : bool -> unit
      method set_image : GObj.widget -> unit
      method set_image_position : GtkEnums.position_type -> unit
      method set_label : string -> unit
      method set_relief : Gtk.Tags.relief_style -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_use_stock : bool -> unit
      method set_use_underline : bool -> unit
      method set_xalign : float -> unit
      method set_yalign : float -> unit
      method unset_image : unit -> unit
      method use_stock : bool
      method use_underline : bool
      method xalign : float
      method yalign : float
    end
  val button :
    ?label:string ->
    ?use_mnemonic:bool ->
    ?stock:GtkStock.id ->
    ?relief:Gtk.Tags.relief_style ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GButton.button
  class toggle_button_signals :
    ([> Gtk.toggle_button ] as 'b) Gtk.obj ->
    object ('a)
      val obj : 'Gtk.obj
      method add : callback:(GObj.widget -> unit) -> GtkSignal.id
      method after : 'a
      method clicked : callback:(unit -> unit) -> GtkSignal.id
      method destroy : callback:(unit -> unit) -> GtkSignal.id
      method enter : callback:(unit -> unit) -> GtkSignal.id
      method leave : callback:(unit -> unit) -> GtkSignal.id
      method pressed : callback:(unit -> unit) -> GtkSignal.id
      method released : callback:(unit -> unit) -> GtkSignal.id
      method remove : callback:(GObj.widget -> unit) -> GtkSignal.id
      method toggled : callback:(unit -> unit) -> GtkSignal.id
    end
  class toggle_button :
    ([> Gtk.toggle_button ] as 'a) Gtk.obj ->
    object
      val obj : 'Gtk.obj
      method active : bool
      method add : GObj.widget -> unit
      method all_children : GObj.widget list
      method as_widget : Gtk.widget Gtk.obj
      method border_width : int
      method child : GObj.widget
      method children : GObj.widget list
      method clicked : unit -> unit
      method coerce : GObj.widget
      method connect : GButton.toggle_button_signals
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method event : GObj.event_ops
      method focus : GContainer.focus
      method focus_on_click : bool
      method get_oid : int
      method grab_default : unit -> unit
      method image : GObj.widget
      method image_position : GtkEnums.position_type
      method label : string
      method misc : GObj.misc_ops
      method relief : Gtk.Tags.relief_style
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_active : bool -> unit
      method set_border_width : int -> unit
      method set_draw_indicator : bool -> unit
      method set_focus_on_click : bool -> unit
      method set_image : GObj.widget -> unit
      method set_image_position : GtkEnums.position_type -> unit
      method set_label : string -> unit
      method set_relief : Gtk.Tags.relief_style -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_use_stock : bool -> unit
      method set_use_underline : bool -> unit
      method set_xalign : float -> unit
      method set_yalign : float -> unit
      method unset_image : unit -> unit
      method use_stock : bool
      method use_underline : bool
      method xalign : float
      method yalign : float
    end
  val toggle_button :
    ?label:string ->
    ?use_mnemonic:bool ->
    ?stock:GtkStock.id ->
    ?relief:Gtk.Tags.relief_style ->
    ?active:bool ->
    ?draw_indicator:bool ->
    ?packing:(GObj.widget -> unit) ->
    ?show:bool -> unit -> GButton.toggle_button
  val check_button :
    ?label:string ->
    ?use_mnemonic:bool ->
    ?stock:GtkStock.id ->
    ?relief:Gtk.Tags.relief_style ->
    ?active:bool ->
    ?draw_indicator:bool ->
    ?packing:(GObj.widget -> unit) ->
    ?show:bool -> unit -> GButton.toggle_button
  class radio_button :
    Gtk.radio_button Gtk.obj ->
    object
      val obj : Gtk.radio_button Gtk.obj
      method active : bool
      method add : GObj.widget -> unit
      method all_children : GObj.widget list
      method as_widget : Gtk.widget Gtk.obj
      method border_width : int
      method child : GObj.widget
      method children : GObj.widget list
      method clicked : unit -> unit
      method coerce : GObj.widget
      method connect : toggle_button_signals
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method event : GObj.event_ops
      method focus : GContainer.focus
      method focus_on_click : bool
      method get_oid : int
      method grab_default : unit -> unit
      method group : Gtk.radio_button Gtk.group
      method image : GObj.widget
      method image_position : GtkEnums.position_type
      method label : string
      method misc : GObj.misc_ops
      method relief : Gtk.Tags.relief_style
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_active : bool -> unit
      method set_border_width : int -> unit
      method set_draw_indicator : bool -> unit
      method set_focus_on_click : bool -> unit
      method set_group : Gtk.radio_button Gtk.group -> unit
      method set_image : GObj.widget -> unit
      method set_image_position : GtkEnums.position_type -> unit
      method set_label : string -> unit
      method set_relief : Gtk.Tags.relief_style -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_use_stock : bool -> unit
      method set_use_underline : bool -> unit
      method set_xalign : float -> unit
      method set_yalign : float -> unit
      method unset_image : unit -> unit
      method use_stock : bool
      method use_underline : bool
      method xalign : float
      method yalign : float
    end
  val radio_button :
    ?group:Gtk.radio_button Gtk.group ->
    ?label:string ->
    ?use_mnemonic:bool ->
    ?stock:GtkStock.id ->
    ?relief:Gtk.Tags.relief_style ->
    ?active:bool ->
    ?draw_indicator:bool ->
    ?packing:(GObj.widget -> unit) ->
    ?show:bool -> unit -> GButton.radio_button
  class color_button_signals :
    ([> Gtk.color_button ] as 'b) Gtk.obj ->
    object ('a)
      val obj : 'Gtk.obj
      method add : callback:(GObj.widget -> unit) -> GtkSignal.id
      method after : 'a
      method clicked : callback:(unit -> unit) -> GtkSignal.id
      method color_set : callback:(unit -> unit) -> GtkSignal.id
      method destroy : callback:(unit -> unit) -> GtkSignal.id
      method enter : callback:(unit -> unit) -> GtkSignal.id
      method leave : callback:(unit -> unit) -> GtkSignal.id
      method pressed : callback:(unit -> unit) -> GtkSignal.id
      method released : callback:(unit -> unit) -> GtkSignal.id
      method remove : callback:(GObj.widget -> unit) -> GtkSignal.id
    end
  class color_button :
    ([> Gtk.color_button ] as 'a) Gtk.obj ->
    object
      val obj : 'Gtk.obj
      method add : GObj.widget -> unit
      method all_children : GObj.widget list
      method alpha : int
      method as_widget : Gtk.widget Gtk.obj
      method border_width : int
      method child : GObj.widget
      method children : GObj.widget list
      method clicked : unit -> unit
      method coerce : GObj.widget
      method color : Gdk.color
      method connect : GButton.color_button_signals
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method event : GObj.event_ops
      method focus : GContainer.focus
      method focus_on_click : bool
      method get_oid : int
      method grab_default : unit -> unit
      method image : GObj.widget
      method image_position : GtkEnums.position_type
      method label : string
      method misc : GObj.misc_ops
      method relief : Gtk.Tags.relief_style
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_alpha : int -> unit
      method set_border_width : int -> unit
      method set_color : Gdk.color -> unit
      method set_focus_on_click : bool -> unit
      method set_image : GObj.widget -> unit
      method set_image_position : GtkEnums.position_type -> unit
      method set_label : string -> unit
      method set_relief : Gtk.Tags.relief_style -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_title : string -> unit
      method set_use_alpha : bool -> unit
      method set_use_stock : bool -> unit
      method set_use_underline : bool -> unit
      method set_xalign : float -> unit
      method set_yalign : float -> unit
      method title : string
      method unset_image : unit -> unit
      method use_alpha : bool
      method use_stock : bool
      method use_underline : bool
      method xalign : float
      method yalign : float
    end
  val color_button :
    ?color:Gdk.color ->
    ?title:string ->
    ?packing:(GObj.widget -> unit) ->
    ?show:bool -> unit -> GButton.color_button
  class font_button_signals :
    ([> Gtk.font_button ] as 'b) Gtk.obj ->
    object ('a)
      val obj : 'Gtk.obj
      method add : callback:(GObj.widget -> unit) -> GtkSignal.id
      method after : 'a
      method clicked : callback:(unit -> unit) -> GtkSignal.id
      method destroy : callback:(unit -> unit) -> GtkSignal.id
      method enter : callback:(unit -> unit) -> GtkSignal.id
      method font_set : callback:(unit -> unit) -> GtkSignal.id
      method leave : callback:(unit -> unit) -> GtkSignal.id
      method pressed : callback:(unit -> unit) -> GtkSignal.id
      method released : callback:(unit -> unit) -> GtkSignal.id
      method remove : callback:(GObj.widget -> unit) -> GtkSignal.id
    end
  class font_button :
    ([> Gtk.font_button ] as 'a) Gtk.obj ->
    object
      val obj : 'Gtk.obj
      method add : GObj.widget -> unit
      method all_children : GObj.widget list
      method as_widget : Gtk.widget Gtk.obj
      method border_width : int
      method child : GObj.widget
      method children : GObj.widget list
      method clicked : unit -> unit
      method coerce : GObj.widget
      method connect : GButton.font_button_signals
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method event : GObj.event_ops
      method focus : GContainer.focus
      method focus_on_click : bool
      method font_name : string
      method get_oid : int
      method grab_default : unit -> unit
      method image : GObj.widget
      method image_position : GtkEnums.position_type
      method label : string
      method misc : GObj.misc_ops
      method relief : Gtk.Tags.relief_style
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_border_width : int -> unit
      method set_focus_on_click : bool -> unit
      method set_font_name : string -> unit
      method set_image : GObj.widget -> unit
      method set_image_position : GtkEnums.position_type -> unit
      method set_label : string -> unit
      method set_relief : Gtk.Tags.relief_style -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_show_size : bool -> unit
      method set_show_style : bool -> unit
      method set_title : string -> unit
      method set_use_font : bool -> unit
      method set_use_size : bool -> unit
      method set_use_stock : bool -> unit
      method set_use_underline : bool -> unit
      method set_xalign : float -> unit
      method set_yalign : float -> unit
      method show_size : bool
      method show_style : bool
      method title : string
      method unset_image : unit -> unit
      method use_font : bool
      method use_size : bool
      method use_stock : bool
      method use_underline : bool
      method xalign : float
      method yalign : float
    end
  val font_button :
    ?font_name:string ->
    ?title:string ->
    ?packing:(GObj.widget -> unit) ->
    ?show:bool -> unit -> GButton.font_button
  class type tool_item_o =
    object method as_tool_item : Gtk.tool_item Gtk.obj end
  class toolbar_signals :
    [> Gtk.toolbar ] Gtk.obj ->
    object ('a)
      method add : callback:(GObj.widget -> unit) -> GtkSignal.id
      method after : 'a
      method destroy : callback:(unit -> unit) -> GtkSignal.id
      method focus_home_or_end : callback:(bool -> bool) -> GtkSignal.id
      method move_focus :
        callback:(GtkEnums.direction_type -> bool) -> GtkSignal.id
      method orientation_changed :
        callback:(GtkEnums.orientation -> unit) -> GtkSignal.id
      method popup_context_menu :
        callback:(int -> int -> int -> bool) -> GtkSignal.id
      method remove : callback:(GObj.widget -> unit) -> GtkSignal.id
      method style_changed :
        callback:(GtkEnums.toolbar_style -> unit) -> GtkSignal.id
    end
  class toolbar :
    Gtk.toolbar Gtk.obj ->
    object
      val obj : Gtk.toolbar Gtk.obj
      method add : GObj.widget -> unit
      method all_children : GObj.widget list
      method as_widget : Gtk.widget Gtk.obj
      method border_width : int
      method children : GObj.widget list
      method coerce : GObj.widget
      method connect : GButton.toolbar_signals
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method focus : GContainer.focus
      method get_drop_index : int -> int -> int
      method get_item_index : #GButton.tool_item_o -> int
      method get_n_items : int
      method get_nth_item : int -> [ `toolitem ] Gtk.obj
      method get_oid : int
      method get_tooltips : bool
      method icon_size : Gtk.Tags.icon_size
      method insert : ?pos:int -> #GButton.tool_item_o -> unit
      method insert_button :
        ?text:string ->
        ?tooltip:string ->
        ?tooltip_private:string ->
        ?icon:GObj.widget ->
        ?pos:int -> ?callback:(unit -> unit) -> unit -> GButton.button
      method insert_radio_button :
        ?text:string ->
        ?tooltip:string ->
        ?tooltip_private:string ->
        ?icon:GObj.widget ->
        ?pos:int -> ?callback:(unit -> unit) -> unit -> GButton.radio_button
      method insert_space : ?pos:int -> unit -> unit
      method insert_toggle_button :
        ?text:string ->
        ?tooltip:string ->
        ?tooltip_private:string ->
        ?icon:GObj.widget ->
        ?pos:int -> ?callback:(unit -> unit) -> unit -> GButton.toggle_button
      method insert_widget :
        ?tooltip:string ->
        ?tooltip_private:string -> ?pos:int -> GObj.widget -> unit
      method misc : GObj.misc_ops
      method orientation : Gtk.Tags.orientation
      method relief_style : Gtk.Tags.relief_style
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_border_width : int -> unit
      method set_drop_highlight_item :
        (#GButton.tool_item_o * int) option -> unit
      method set_icon_size : Gtk.Tags.icon_size -> unit
      method set_orientation : Gtk.Tags.orientation -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_show_arrow : bool -> unit
      method set_style : Gtk.Tags.toolbar_style -> unit
      method set_tooltips : bool -> unit
      method show_arrow : bool
      method style : Gtk.Tags.toolbar_style
      method unset_icon_size : unit -> unit
      method unset_style : unit -> unit
    end
  val toolbar :
    ?orientation:Gtk.Tags.orientation ->
    ?style:Gtk.Tags.toolbar_style ->
    ?tooltips:bool ->
    ?border_width:int ->
    ?width:int ->
    ?height:int ->
    ?packing:(GObj.widget -> unit) -> ?show:bool -> unit -> GButton.toolbar
  class tool_item_skel :
    ([> Gtk.tool_item ] as 'a) Gtk.obj ->
    object
      val obj : 'Gtk.obj
      method add : GObj.widget -> unit
      method all_children : GObj.widget list
      method as_tool_item : Gtk.tool_item Gtk.obj
      method as_widget : Gtk.widget Gtk.obj
      method border_width : int
      method child : GObj.widget
      method children : GObj.widget list
      method coerce : GObj.widget
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method focus : GContainer.focus
      method get_expand : bool
      method get_homogeneous : bool
      method get_oid : int
      method get_use_drag_window : bool
      method is_important : bool
      method misc : GObj.misc_ops
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_border_width : int -> unit
      method set_expand : bool -> unit
      method set_homogeneous : bool -> unit
      method set_is_important : bool -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_tooltip : GData.tooltips -> string -> string -> unit
      method set_use_drag_window : bool -> unit
      method set_visible_horizontal : bool -> unit
      method set_visible_vertical : bool -> unit
      method visible_horizontal : bool
      method visible_vertical : bool
    end
  class tool_item :
    [> Gtk.tool_item ] Gtk.obj ->
    object
      val obj : [> Gtk.tool_item ] Gtk.obj
      method add : GObj.widget -> unit
      method all_children : GObj.widget list
      method as_tool_item : Gtk.tool_item Gtk.obj
      method as_widget : Gtk.widget Gtk.obj
      method border_width : int
      method child : GObj.widget
      method children : GObj.widget list
      method coerce : GObj.widget
      method connect : GContainer.container_signals
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method focus : GContainer.focus
      method get_expand : bool
      method get_homogeneous : bool
      method get_oid : int
      method get_use_drag_window : bool
      method is_important : bool
      method misc : GObj.misc_ops
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_border_width : int -> unit
      method set_expand : bool -> unit
      method set_homogeneous : bool -> unit
      method set_is_important : bool -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_tooltip : GData.tooltips -> string -> string -> unit
      method set_use_drag_window : bool -> unit
      method set_visible_horizontal : bool -> unit
      method set_visible_vertical : bool -> unit
      method visible_horizontal : bool
      method visible_vertical : bool
    end
  val tool_item :
    ?homogeneous:bool ->
    ?expand:bool ->
    ?packing:(GButton.tool_item_o -> unit) ->
    ?show:bool -> unit -> GButton.tool_item
  class separator_tool_item :
    ([> Gtk.separator_tool_item ] as 'a) Gtk.obj ->
    object
      val obj : 'Gtk.obj
      method add : GObj.widget -> unit
      method all_children : GObj.widget list
      method as_tool_item : Gtk.tool_item Gtk.obj
      method as_widget : Gtk.widget Gtk.obj
      method border_width : int
      method child : GObj.widget
      method children : GObj.widget list
      method coerce : GObj.widget
      method connect : GContainer.container_signals
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method draw : bool
      method focus : GContainer.focus
      method get_expand : bool
      method get_homogeneous : bool
      method get_oid : int
      method get_use_drag_window : bool
      method is_important : bool
      method misc : GObj.misc_ops
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_border_width : int -> unit
      method set_draw : bool -> unit
      method set_expand : bool -> unit
      method set_homogeneous : bool -> unit
      method set_is_important : bool -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_tooltip : GData.tooltips -> string -> string -> unit
      method set_use_drag_window : bool -> unit
      method set_visible_horizontal : bool -> unit
      method set_visible_vertical : bool -> unit
      method visible_horizontal : bool
      method visible_vertical : bool
    end
  val separator_tool_item :
    ?draw:bool ->
    ?homogeneous:bool ->
    ?expand:bool ->
    ?packing:(GButton.tool_item_o -> unit) ->
    ?show:bool -> unit -> GButton.separator_tool_item
  class tool_button_signals :
    ([> Gtk.tool_button ] as 'b) Gtk.obj ->
    object ('a)
      val obj : 'Gtk.obj
      method add : callback:(GObj.widget -> unit) -> GtkSignal.id
      method after : 'a
      method clicked : callback:(unit -> unit) -> GtkSignal.id
      method destroy : callback:(unit -> unit) -> GtkSignal.id
      method remove : callback:(GObj.widget -> unit) -> GtkSignal.id
    end
  class tool_button_skel :
    ([> Gtk.tool_button ] as 'a) Gtk.obj ->
    object
      val obj : 'Gtk.obj
      method add : GObj.widget -> unit
      method all_children : GObj.widget list
      method as_tool_item : Gtk.tool_item Gtk.obj
      method as_widget : Gtk.widget Gtk.obj
      method border_width : int
      method child : GObj.widget
      method children : GObj.widget list
      method coerce : GObj.widget
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method focus : GContainer.focus
      method get_expand : bool
      method get_homogeneous : bool
      method get_oid : int
      method get_use_drag_window : bool
      method icon_widget : GObj.widget
      method is_important : bool
      method label : string
      method label_widget : GObj.widget
      method misc : GObj.misc_ops
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_border_width : int -> unit
      method set_expand : bool -> unit
      method set_homogeneous : bool -> unit
      method set_icon_widget : GObj.widget -> unit
      method set_is_important : bool -> unit
      method set_label : string -> unit
      method set_label_widget : GObj.widget -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_stock_id : GtkStock.id -> unit
      method set_tooltip : GData.tooltips -> string -> string -> unit
      method set_use_drag_window : bool -> unit
      method set_use_underline : bool -> unit
      method set_visible_horizontal : bool -> unit
      method set_visible_vertical : bool -> unit
      method stock_id : GtkStock.id
      method use_underline : bool
      method visible_horizontal : bool
      method visible_vertical : bool
    end
  class tool_button :
    [> Gtk.tool_button ] Gtk.obj ->
    object
      val obj : [> Gtk.tool_button ] Gtk.obj
      method add : GObj.widget -> unit
      method all_children : GObj.widget list
      method as_tool_item : Gtk.tool_item Gtk.obj
      method as_widget : Gtk.widget Gtk.obj
      method border_width : int
      method child : GObj.widget
      method children : GObj.widget list
      method coerce : GObj.widget
      method connect : GButton.tool_button_signals
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method focus : GContainer.focus
      method get_expand : bool
      method get_homogeneous : bool
      method get_oid : int
      method get_use_drag_window : bool
      method icon_widget : GObj.widget
      method is_important : bool
      method label : string
      method label_widget : GObj.widget
      method misc : GObj.misc_ops
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_border_width : int -> unit
      method set_expand : bool -> unit
      method set_homogeneous : bool -> unit
      method set_icon_widget : GObj.widget -> unit
      method set_is_important : bool -> unit
      method set_label : string -> unit
      method set_label_widget : GObj.widget -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_stock_id : GtkStock.id -> unit
      method set_tooltip : GData.tooltips -> string -> string -> unit
      method set_use_drag_window : bool -> unit
      method set_use_underline : bool -> unit
      method set_visible_horizontal : bool -> unit
      method set_visible_vertical : bool -> unit
      method stock_id : GtkStock.id
      method use_underline : bool
      method visible_horizontal : bool
      method visible_vertical : bool
    end
  val tool_button :
    ?label:string ->
    ?stock:GtkStock.id ->
    ?use_underline:bool ->
    ?homogeneous:bool ->
    ?expand:bool ->
    ?packing:(GButton.tool_item_o -> unit) ->
    ?show:bool -> unit -> GButton.tool_button
  class toggle_tool_button_signals :
    ([> Gtk.toggle_tool_button ] as 'b) Gtk.obj ->
    object ('a)
      val obj : 'Gtk.obj
      method add : callback:(GObj.widget -> unit) -> GtkSignal.id
      method after : 'a
      method clicked : callback:(unit -> unit) -> GtkSignal.id
      method destroy : callback:(unit -> unit) -> GtkSignal.id
      method remove : callback:(GObj.widget -> unit) -> GtkSignal.id
      method toggled : callback:(unit -> unit) -> GtkSignal.id
    end
  class toggle_tool_button :
    ([> Gtk.toggle_tool_button ] as 'a) Gtk.obj ->
    object
      val obj : 'Gtk.obj
      method add : GObj.widget -> unit
      method all_children : GObj.widget list
      method as_tool_item : Gtk.tool_item Gtk.obj
      method as_widget : Gtk.widget Gtk.obj
      method border_width : int
      method child : GObj.widget
      method children : GObj.widget list
      method coerce : GObj.widget
      method connect : GButton.toggle_tool_button_signals
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method focus : GContainer.focus
      method get_active : bool
      method get_expand : bool
      method get_homogeneous : bool
      method get_oid : int
      method get_use_drag_window : bool
      method icon_widget : GObj.widget
      method is_important : bool
      method label : string
      method label_widget : GObj.widget
      method misc : GObj.misc_ops
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_active : bool -> unit
      method set_border_width : int -> unit
      method set_expand : bool -> unit
      method set_homogeneous : bool -> unit
      method set_icon_widget : GObj.widget -> unit
      method set_is_important : bool -> unit
      method set_label : string -> unit
      method set_label_widget : GObj.widget -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_stock_id : GtkStock.id -> unit
      method set_tooltip : GData.tooltips -> string -> string -> unit
      method set_use_drag_window : bool -> unit
      method set_use_underline : bool -> unit
      method set_visible_horizontal : bool -> unit
      method set_visible_vertical : bool -> unit
      method stock_id : GtkStock.id
      method use_underline : bool
      method visible_horizontal : bool
      method visible_vertical : bool
    end
  val toggle_tool_button :
    ?active:bool ->
    ?label:string ->
    ?stock:GtkStock.id ->
    ?use_underline:bool ->
    ?homogeneous:bool ->
    ?expand:bool ->
    ?packing:(GButton.tool_item_o -> unit) ->
    ?show:bool -> unit -> GButton.toggle_tool_button
  class radio_tool_button :
    ([> Gtk.radio_tool_button ] as 'a) Gtk.obj ->
    object
      val obj : 'Gtk.obj
      method add : GObj.widget -> unit
      method all_children : GObj.widget list
      method as_tool_item : Gtk.tool_item Gtk.obj
      method as_widget : Gtk.widget Gtk.obj
      method border_width : int
      method child : GObj.widget
      method children : GObj.widget list
      method coerce : GObj.widget
      method connect : toggle_tool_button_signals
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method focus : GContainer.focus
      method get_active : bool
      method get_expand : bool
      method get_homogeneous : bool
      method get_oid : int
      method get_use_drag_window : bool
      method group : Gtk.radio_tool_button Gtk.group
      method icon_widget : GObj.widget
      method is_important : bool
      method label : string
      method label_widget : GObj.widget
      method misc : GObj.misc_ops
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_active : bool -> unit
      method set_border_width : int -> unit
      method set_expand : bool -> unit
      method set_group : Gtk.radio_tool_button Gtk.group -> unit
      method set_homogeneous : bool -> unit
      method set_icon_widget : GObj.widget -> unit
      method set_is_important : bool -> unit
      method set_label : string -> unit
      method set_label_widget : GObj.widget -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_stock_id : GtkStock.id -> unit
      method set_tooltip : GData.tooltips -> string -> string -> unit
      method set_use_drag_window : bool -> unit
      method set_use_underline : bool -> unit
      method set_visible_horizontal : bool -> unit
      method set_visible_vertical : bool -> unit
      method stock_id : GtkStock.id
      method use_underline : bool
      method visible_horizontal : bool
      method visible_vertical : bool
    end
  val radio_tool_button :
    ?group:GButton.radio_tool_button ->
    ?active:bool ->
    ?label:string ->
    ?stock:GtkStock.id ->
    ?use_underline:bool ->
    ?homogeneous:bool ->
    ?expand:bool ->
    ?packing:(GButton.tool_item_o -> unit) ->
    ?show:bool -> unit -> GButton.radio_tool_button
  class menu_tool_button :
    ([> Gtk.menu_tool_button ] as 'a) Gtk.obj ->
    object
      val obj : 'Gtk.obj
      method add : GObj.widget -> unit
      method all_children : GObj.widget list
      method as_tool_item : Gtk.tool_item Gtk.obj
      method as_widget : Gtk.widget Gtk.obj
      method border_width : int
      method child : GObj.widget
      method children : GObj.widget list
      method coerce : GObj.widget
      method connect : tool_button_signals
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method focus : GContainer.focus
      method get_expand : bool
      method get_homogeneous : bool
      method get_oid : int
      method get_use_drag_window : bool
      method icon_widget : GObj.widget
      method is_important : bool
      method label : string
      method label_widget : GObj.widget
      method menu : Gtk.menu Gtk.obj
      method misc : GObj.misc_ops
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_arrow_tooltip : GData.tooltips -> string -> string -> unit
      method set_border_width : int -> unit
      method set_expand : bool -> unit
      method set_homogeneous : bool -> unit
      method set_icon_widget : GObj.widget -> unit
      method set_is_important : bool -> unit
      method set_label : string -> unit
      method set_label_widget : GObj.widget -> unit
      method set_menu : Gtk.menu Gtk.obj -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_stock_id : GtkStock.id -> unit
      method set_tooltip : GData.tooltips -> string -> string -> unit
      method set_use_drag_window : bool -> unit
      method set_use_underline : bool -> unit
      method set_visible_horizontal : bool -> unit
      method set_visible_vertical : bool -> unit
      method stock_id : GtkStock.id
      method use_underline : bool
      method visible_horizontal : bool
      method visible_vertical : bool
    end
  val menu_tool_button :
    ?menu:< as_menu : Gtk.menu Gtk.obj; .. > ->
    ?label:string ->
    ?stock:GtkStock.id ->
    ?use_underline:bool ->
    ?homogeneous:bool ->
    ?expand:bool ->
    ?packing:(GButton.tool_item_o -> unit) ->
    ?show:bool -> unit -> GButton.menu_tool_button
  class link_button :
    ([> Gtk.link_button ] as 'a) Gtk.obj ->
    object
      val obj : 'Gtk.obj
      method add : GObj.widget -> unit
      method all_children : GObj.widget list
      method as_widget : Gtk.widget Gtk.obj
      method border_width : int
      method child : GObj.widget
      method children : GObj.widget list
      method clicked : unit -> unit
      method coerce : GObj.widget
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method event : GObj.event_ops
      method focus : GContainer.focus
      method focus_on_click : bool
      method get_oid : int
      method grab_default : unit -> unit
      method image : GObj.widget
      method image_position : GtkEnums.position_type
      method label : string
      method misc : GObj.misc_ops
      method relief : Gtk.Tags.relief_style
      method remove : GObj.widget -> unit
      method resize_mode : Gtk.Tags.resize_mode
      method set_border_width : int -> unit
      method set_focus_on_click : bool -> unit
      method set_image : GObj.widget -> unit
      method set_image_position : GtkEnums.position_type -> unit
      method set_label : string -> unit
      method set_relief : Gtk.Tags.relief_style -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method set_uri : string -> unit
      method set_use_stock : bool -> unit
      method set_use_underline : bool -> unit
      method set_xalign : float -> unit
      method set_yalign : float -> unit
      method unset_image : unit -> unit
      method uri : string
      method use_stock : bool
      method use_underline : bool
      method xalign : float
      method yalign : float
    end
  val link_button :
    ?label:string ->
    string ->
    ?packing:(GObj.widget -> unit) ->
    ?show:bool -> unit -> GButton.link_button
end