sig
  type menu_entry =
      [ `C of string * bool * (bool -> unit)
      | `I of string * (unit -> unit)
      | `M of string * GToolbox.menu_entry list
      | `R of (string * bool * (bool -> unit)) list ]
  val build_menu : GMenu.menu -> entries:GToolbox.menu_entry list -> unit
  val popup_menu :
    entries:GToolbox.menu_entry list -> button:int -> time:int32 -> unit
  val question_box :
    ?parent:#GWindow.window_skel ->
    title:string ->
    buttons:string list ->
    ?default:int -> ?icon:#GObj.widget -> string -> int
  val message_box :
    ?parent:#GWindow.window_skel ->
    title:string -> ?icon:#GObj.widget -> ?ok:string -> string -> unit
  val input_string :
    ?parent:#GWindow.window_skel ->
    title:string ->
    ?ok:string -> ?cancel:string -> ?text:string -> string -> string option
  val input_text :
    ?parent:#GWindow.window_skel ->
    title:string ->
    ?ok:string -> ?cancel:string -> ?text:string -> string -> string option
  type key_combination = [ `A | `C | `S ] list * char
  type 'a shortcut_specification = {
    name : string;
    keys : GToolbox.key_combination list;
    message : 'a;
  }
  val create_shortcuts :
    window:#GWindow.window_skel ->
    shortcuts:'GToolbox.shortcut_specification list ->
    callback:('-> unit) -> unit
end