sig
  type where =
      Toolbar of GtkStock.id * string * string
    | Menubar of GtkStock.id option * string
    | ToolMenubar of GtkStock.id * string * string
  type callback_state =
      Unit_callback of (unit -> unit)
    | Bool_callback of (bool -> unit) * (unit -> bool)
  type entry = private {
    e_where : Menu_manager.where;
    e_callback : Menu_manager.callback_state;
    e_sensitive : unit -> bool;
  }
  val toolbar :
    ?sensitive:(unit -> bool) ->
    icon:GtkStock.id ->
    label:string ->
    ?tooltip:string -> Menu_manager.callback_state -> Menu_manager.entry
  val menubar :
    ?sensitive:(unit -> bool) ->
    ?icon:GtkStock.id ->
    string -> Menu_manager.callback_state -> Menu_manager.entry
  val toolmenubar :
    ?sensitive:(unit -> bool) ->
    icon:GtkStock.id ->
    label:string ->
    ?tooltip:string -> Menu_manager.callback_state -> Menu_manager.entry
  class type item =
    object
      method add_accelerator : Gdk.Tags.modifier -> char -> unit
      method check_menu_item : GMenu.check_menu_item option
      method menu : GMenu.menu option
      method menu_item : GMenu.menu_item option
      method menu_item_skel : GMenu.menu_item_skel option
      method toggle_tool_button : GButton.toggle_tool_button option
      method tool_button : GButton.tool_button option
      method tool_button_skel : GButton.tool_button_skel option
    end
  class menu_manager :
    ?packing:(GObj.widget -> unit) ->
    Gtk_helper.host ->
    object
      method add_debug :
        ?title:string ->
        ?show:(unit -> bool) ->
        Menu_manager.entry list -> Menu_manager.item array
      method add_entries :
        ?title:string ->
        ?pos:int ->
        GMenu.menu -> Menu_manager.entry list -> Menu_manager.item array
      method add_menu : ?pos:int -> string -> GMenu.menu_item * GMenu.menu
      method add_plugin :
        ?title:string -> Menu_manager.entry list -> Menu_manager.item array
      method factory : GMenu.menu_shell GMenu.factory
      method menubar : GMenu.menu_shell
      method refresh : unit -> unit
      method set_sensitive : bool -> unit
      method toolbar : GButton.toolbar
    end
end