sig
  val cast : 'Gobject.obj -> Gtk.menu_shell Gtk.obj
  module S :
    sig
      val activate_current : ([> `menushell ], bool -> unit) GtkSignal.t
      val cancel : ([> `menushell ], unit -> unit) GtkSignal.t
      val cycle_focus :
        ([> `menushell ], GtkEnums.direction_type -> unit) GtkSignal.t
      val deactivate : ([> `menushell ], unit -> unit) GtkSignal.t
      val move_current :
        ([> `menushell ], GtkEnums.menu_direction_type -> unit) GtkSignal.t
      val selection_done : ([> `menushell ], unit -> unit) GtkSignal.t
    end
  external append : [> `menushell ] Gtk.obj -> [> `widget ] Gtk.obj -> unit
    = "ml_gtk_menu_shell_append"
  external prepend : [> `menushell ] Gtk.obj -> [> `widget ] Gtk.obj -> unit
    = "ml_gtk_menu_shell_prepend"
  external insert :
    [> `menushell ] Gtk.obj -> [> `widget ] Gtk.obj -> pos:int -> unit
    = "ml_gtk_menu_shell_insert"
  external deactivate : [> `menushell ] Gtk.obj -> unit
    = "ml_gtk_menu_shell_deactivate"
end