sig
  type panel_applet =
      [ `bin | `container | `eventbox | `gtk | `panelapplet | `widget ]
  type flags = [ `EXPAND_MAJOR | `EXPAND_MINOR | `HAS_HANDLE ]
  type background_type =
      [ `COLOR_BACKGROUND of Gdk.color
      | `NO_BACKGROUND
      | `PIXMAP_BACKGROUND of Gdk.pixmap ]
  type orient_type = [ `DOWN | `LEFT | `RIGHT | `UP ]
  type verb = string * (string -> unit)
  class applet_signals :
    Panel.panel_applet Gtk.obj ->
    object ('a)
      val obj : Panel.panel_applet Gtk.obj
      method add : callback:(GObj.widget -> unit) -> GtkSignal.id
      method after : 'a
      method change_background :
        callback:(Panel.background_type -> unit) -> GtkSignal.id
      method change_orient :
        callback:(Panel.orient_type -> unit) -> GtkSignal.id
      method change_size : callback:(int -> unit) -> GtkSignal.id
      method destroy : callback:(unit -> unit) -> GtkSignal.id
      method move_focus_out_of_applet :
        callback:(GtkEnums.direction_type -> unit) -> GtkSignal.id
      method remove : callback:(GObj.widget -> unit) -> GtkSignal.id
    end
  class applet :
    ([> Panel.panel_applet ] 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 coerce : GObj.widget
      method connect : Panel.applet_signals
      method destroy : unit -> unit
      method drag : GObj.drag_ops
      method event : GObj.event_ops
      method focus : GContainer.focus
      method get_background : Panel.background_type
      method get_flags : Panel.flags list
      method get_oid : int
      method get_orient : Panel.orient_type
      method get_size : int
      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_flags : Panel.flags list -> unit
      method set_resize_mode : Gtk.Tags.resize_mode -> unit
      method setup_menu : xml:string -> Panel.verb list -> unit
      method setup_menu_from_file :
        ?dir:string ->
        file:string -> ?app_name:string -> Panel.verb list -> unit
    end
  val factory_main :
    iid:string -> (Panel.applet -> iid:string -> bool) -> bool
end