sig
  class action_signals :
    ([> Gtk.action ] as 'b) Gobject.obj ->
    object ('a)
      val after : bool
      val obj : 'Gobject.obj
      method activate : callback:(unit -> unit) -> GtkSignal.id
      method after : 'a
    end
  class action_skel :
    ([> Gtk.action ] as 'a) Gobject.obj ->
    object
      val obj : 'Gobject.obj
      method activate : unit -> unit
      method as_action : Gtk.action Gobject.obj
      method block_activate_from : GObj.widget -> unit
      method connect_accelerator : unit -> unit
      method connect_proxy : GObj.widget -> unit
      method disconnect_accelerator : unit -> unit
      method disconnect_proxy : GObj.widget -> unit
      method get_proxies : GObj.widget list
      method hide_if_empty : bool
      method icon_name : string
      method is_important : bool
      method is_sensitive : bool
      method is_visible : bool
      method label : string
      method name : string
      method sensitive : bool
      method set_accel_group : Gtk.accel_group -> unit
      method set_accel_path : string -> unit
      method set_hide_if_empty : bool -> unit
      method set_icon_name : string -> unit
      method set_is_important : bool -> unit
      method set_label : string -> unit
      method set_sensitive : bool -> unit
      method set_short_label : string -> unit
      method set_stock_id : GtkStock.id -> unit
      method set_tooltip : string -> unit
      method set_visible : bool -> unit
      method set_visible_horizontal : bool -> unit
      method set_visible_vertical : bool -> unit
      method short_label : string
      method stock_id : GtkStock.id
      method tooltip : string
      method unblock_activate_from : GObj.widget -> unit
      method visible : bool
      method visible_horizontal : bool
      method visible_vertical : bool
    end
  class action :
    ([> Gtk.action ] as 'a) Gobject.obj ->
    object
      val obj : 'Gobject.obj
      method activate : unit -> unit
      method as_action : Gtk.action Gobject.obj
      method block_activate_from : GObj.widget -> unit
      method connect : GAction.action_signals
      method connect_accelerator : unit -> unit
      method connect_proxy : GObj.widget -> unit
      method disconnect_accelerator : unit -> unit
      method disconnect_proxy : GObj.widget -> unit
      method get_proxies : GObj.widget list
      method hide_if_empty : bool
      method icon_name : string
      method is_important : bool
      method is_sensitive : bool
      method is_visible : bool
      method label : string
      method name : string
      method sensitive : bool
      method set_accel_group : Gtk.accel_group -> unit
      method set_accel_path : string -> unit
      method set_hide_if_empty : bool -> unit
      method set_icon_name : string -> unit
      method set_is_important : bool -> unit
      method set_label : string -> unit
      method set_sensitive : bool -> unit
      method set_short_label : string -> unit
      method set_stock_id : GtkStock.id -> unit
      method set_tooltip : string -> unit
      method set_visible : bool -> unit
      method set_visible_horizontal : bool -> unit
      method set_visible_vertical : bool -> unit
      method short_label : string
      method stock_id : GtkStock.id
      method tooltip : string
      method unblock_activate_from : GObj.widget -> unit
      method visible : bool
      method visible_horizontal : bool
      method visible_vertical : bool
    end
  val action : name:string -> unit -> GAction.action
  class toggle_action_signals :
    ([> Gtk.toggle_action ] as 'b) Gobject.obj ->
    object ('a)
      val after : bool
      val obj : 'Gobject.obj
      method activate : callback:(unit -> unit) -> GtkSignal.id
      method after : 'a
      method toggled : callback:(unit -> unit) -> GtkSignal.id
    end
  class toggle_action_skel :
    ([> Gtk.toggle_action ] as 'a) Gobject.obj ->
    object
      val obj : 'Gobject.obj
      method activate : unit -> unit
      method as_action : Gtk.action Gobject.obj
      method block_activate_from : GObj.widget -> unit
      method connect_accelerator : unit -> unit
      method connect_proxy : GObj.widget -> unit
      method disconnect_accelerator : unit -> unit
      method disconnect_proxy : GObj.widget -> unit
      method draw_as_radio : bool
      method get_active : bool
      method get_proxies : GObj.widget list
      method hide_if_empty : bool
      method icon_name : string
      method is_important : bool
      method is_sensitive : bool
      method is_visible : bool
      method label : string
      method name : string
      method sensitive : bool
      method set_accel_group : Gtk.accel_group -> unit
      method set_accel_path : string -> unit
      method set_active : bool -> unit
      method set_draw_as_radio : bool -> unit
      method set_hide_if_empty : bool -> unit
      method set_icon_name : string -> unit
      method set_is_important : bool -> unit
      method set_label : string -> unit
      method set_sensitive : bool -> unit
      method set_short_label : string -> unit
      method set_stock_id : GtkStock.id -> unit
      method set_tooltip : string -> unit
      method set_visible : bool -> unit
      method set_visible_horizontal : bool -> unit
      method set_visible_vertical : bool -> unit
      method short_label : string
      method stock_id : GtkStock.id
      method toggled : unit -> unit
      method tooltip : string
      method unblock_activate_from : GObj.widget -> unit
      method visible : bool
      method visible_horizontal : bool
      method visible_vertical : bool
    end
  class toggle_action :
    [> Gtk.toggle_action ] Gobject.obj ->
    object
      val obj : [> Gtk.toggle_action ] Gobject.obj
      method activate : unit -> unit
      method as_action : Gtk.action Gobject.obj
      method block_activate_from : GObj.widget -> unit
      method connect : GAction.toggle_action_signals
      method connect_accelerator : unit -> unit
      method connect_proxy : GObj.widget -> unit
      method disconnect_accelerator : unit -> unit
      method disconnect_proxy : GObj.widget -> unit
      method draw_as_radio : bool
      method get_active : bool
      method get_proxies : GObj.widget list
      method hide_if_empty : bool
      method icon_name : string
      method is_important : bool
      method is_sensitive : bool
      method is_visible : bool
      method label : string
      method name : string
      method sensitive : bool
      method set_accel_group : Gtk.accel_group -> unit
      method set_accel_path : string -> unit
      method set_active : bool -> unit
      method set_draw_as_radio : bool -> unit
      method set_hide_if_empty : bool -> unit
      method set_icon_name : string -> unit
      method set_is_important : bool -> unit
      method set_label : string -> unit
      method set_sensitive : bool -> unit
      method set_short_label : string -> unit
      method set_stock_id : GtkStock.id -> unit
      method set_tooltip : string -> unit
      method set_visible : bool -> unit
      method set_visible_horizontal : bool -> unit
      method set_visible_vertical : bool -> unit
      method short_label : string
      method stock_id : GtkStock.id
      method toggled : unit -> unit
      method tooltip : string
      method unblock_activate_from : GObj.widget -> unit
      method visible : bool
      method visible_horizontal : bool
      method visible_vertical : bool
    end
  val toggle_action : name:string -> unit -> GAction.toggle_action
  class radio_action_signals :
    ([> Gtk.radio_action ] as 'b) Gobject.obj ->
    object ('a)
      val after : bool
      val obj : 'Gobject.obj
      method activate : callback:(unit -> unit) -> GtkSignal.id
      method after : 'a
      method changed : callback:(int -> unit) -> GtkSignal.id
      method toggled : callback:(unit -> unit) -> GtkSignal.id
    end
  class radio_action :
    ([> Gtk.radio_action ] as 'a) Gobject.obj ->
    object
      val obj : 'Gobject.obj
      method activate : unit -> unit
      method as_action : Gtk.action Gobject.obj
      method as_radio_action : Gtk.radio_action Gobject.obj
      method block_activate_from : GObj.widget -> unit
      method connect : GAction.radio_action_signals
      method connect_accelerator : unit -> unit
      method connect_proxy : GObj.widget -> unit
      method disconnect_accelerator : unit -> unit
      method disconnect_proxy : GObj.widget -> unit
      method draw_as_radio : bool
      method get_active : bool
      method get_current_value : int
      method get_proxies : GObj.widget list
      method hide_if_empty : bool
      method icon_name : string
      method is_important : bool
      method is_sensitive : bool
      method is_visible : bool
      method label : string
      method name : string
      method sensitive : bool
      method set_accel_group : Gtk.accel_group -> unit
      method set_accel_path : string -> unit
      method set_active : bool -> unit
      method set_draw_as_radio : bool -> unit
      method set_group : Gtk.radio_action Gtk.group -> unit
      method set_hide_if_empty : bool -> unit
      method set_icon_name : string -> unit
      method set_is_important : bool -> unit
      method set_label : string -> unit
      method set_sensitive : bool -> unit
      method set_short_label : string -> unit
      method set_stock_id : GtkStock.id -> unit
      method set_tooltip : string -> unit
      method set_value : int -> unit
      method set_visible : bool -> unit
      method set_visible_horizontal : bool -> unit
      method set_visible_vertical : bool -> unit
      method short_label : string
      method stock_id : GtkStock.id
      method toggled : unit -> unit
      method tooltip : string
      method unblock_activate_from : GObj.widget -> unit
      method value : int
      method visible : bool
      method visible_horizontal : bool
      method visible_vertical : bool
    end
  val radio_action :
    ?group:GAction.radio_action ->
    name:string -> value:int -> unit -> GAction.radio_action
  class action_group_signals :
    ([> Gtk.action_group ] as 'b) Gobject.obj ->
    object ('a)
      val after : bool
      val obj : 'Gobject.obj
      method after : 'a
      method connect_proxy :
        callback:(GAction.action -> GObj.widget -> unit) -> GtkSignal.id
      method disconnect_proxy :
        callback:(GAction.action -> GObj.widget -> unit) -> GtkSignal.id
      method post_activate :
        callback:(GAction.action -> unit) -> GtkSignal.id
      method pre_activate : callback:(GAction.action -> unit) -> GtkSignal.id
    end
  class action_group :
    ([> Gtk.action_group ] as 'a) Gobject.obj ->
    object
      val obj : 'Gobject.obj
      method add_action : #GAction.action_skel -> unit
      method add_action_with_accel :
        ?accel:string -> #GAction.action_skel -> unit
      method as_group : Gtk.action_group Gobject.obj
      method connect : GAction.action_group_signals
      method get_action : string -> GAction.action
      method list_actions : GAction.action list
      method name : string
      method remove_action : #GAction.action_skel -> unit
      method sensitive : bool
      method set_sensitive : bool -> unit
      method set_visible : bool -> unit
      method visible : bool
    end
  val action_group : name:string -> unit -> GAction.action_group
  type 'a entry = GAction.action_group -> 'a
  val add_action :
    string ->
    ?callback:(GAction.action -> unit) ->
    ?stock:GtkStock.id ->
    ?label:string -> ?accel:string -> ?tooltip:string -> unit GAction.entry
  val add_toggle_action :
    string ->
    ?active:bool ->
    ?callback:(GAction.toggle_action -> unit) ->
    ?stock:GtkStock.id ->
    ?label:string -> ?accel:string -> ?tooltip:string -> unit GAction.entry
  val add_radio_action :
    string ->
    int ->
    ?stock:GtkStock.id ->
    ?label:string ->
    ?accel:string -> ?tooltip:string -> GAction.radio_action GAction.entry
  val group_radio_actions :
    ?init_value:int ->
    ?callback:(int -> unit) ->
    GAction.radio_action GAction.entry list -> unit GAction.entry
  val add_actions : GAction.action_group -> unit GAction.entry list -> unit
  class ui_manager_signals :
    ([> Gtk.ui_manager ] as 'b) Gtk.obj ->
    object ('a)
      val after : bool
      val obj : 'Gtk.obj
      method actions_changed : callback:(unit -> unit) -> GtkSignal.id
      method add_widget : callback:(GObj.widget -> unit) -> GtkSignal.id
      method after : 'a
      method connect_proxy :
        callback:(GAction.action -> GObj.widget -> unit) -> GtkSignal.id
      method disconnect_proxy :
        callback:(GAction.action -> GObj.widget -> unit) -> GtkSignal.id
      method post_activate :
        callback:(GAction.action -> unit) -> GtkSignal.id
      method pre_activate : callback:(GAction.action -> unit) -> GtkSignal.id
    end
  type ui_id
  val invalid_id : GAction.ui_id
  class ui_manager :
    ([> Gtk.ui_manager ] as 'a) Gtk.obj ->
    object
      val obj : 'Gtk.obj
      method add_tearoffs : bool
      method add_ui :
        GAction.ui_id ->
        path:string ->
        name:string ->
        action:string option ->
        GtkEnums.ui_manager_item_type -> top:bool -> unit
      method add_ui_from_file : string -> GAction.ui_id
      method add_ui_from_string : string -> GAction.ui_id
      method as_ui_manager : Gtk.ui_manager Gtk.obj
      method connect : GAction.ui_manager_signals
      method ensure_update : unit -> unit
      method get_accel_group : Gtk.accel_group
      method get_action : string -> GAction.action
      method get_action_groups : GAction.action_group list
      method get_toplevels :
        GtkEnums.ui_manager_item_type list -> GObj.widget list
      method get_widget : string -> GObj.widget
      method insert_action_group : GAction.action_group -> int -> unit
      method new_merge_id : unit -> GAction.ui_id
      method remove_action_group : GAction.action_group -> unit
      method remove_ui : GAction.ui_id -> unit
      method set_add_tearoffs : bool -> unit
      method ui : string
    end
  val ui_manager : unit -> GAction.ui_manager
end