sig
  val cast : 'Gobject.obj -> Gtk.action Gobject.obj
  module P :
    sig
      val hide_if_empty : ([> `action ], bool) Gobject.property
      val is_important : ([> `action ], bool) Gobject.property
      val label : ([> `action ], string) Gobject.property
      val icon_name : ([> `action ], string) Gobject.property
      val name : ([> `action ], string) Gobject.property
      val sensitive : ([> `action ], bool) Gobject.property
      val short_label : ([> `action ], string) Gobject.property
      val stock_id : ([> `action ], GtkStock.id) Gobject.property
      val tooltip : ([> `action ], string) Gobject.property
      val visible : ([> `action ], bool) Gobject.property
      val visible_horizontal : ([> `action ], bool) Gobject.property
      val visible_vertical : ([> `action ], bool) Gobject.property
    end
  module S : sig val activate : ([> `action ], unit -> unit) GtkSignal.t end
  val create :
    ?name:string -> Gtk.action Gobject.param list -> Gtk.action Gobject.obj
  external is_sensitive : [> `action ] Gobject.obj -> bool
    = "ml_gtk_action_is_sensitive"
  external is_visible : [> `action ] Gobject.obj -> bool
    = "ml_gtk_action_is_visible"
  external activate : [> `action ] Gobject.obj -> unit
    = "ml_gtk_action_activate"
  external get_proxies : [> `action ] Gobject.obj -> Gtk.widget Gtk.obj list
    = "ml_gtk_action_get_proxies"
  external connect_accelerator : [> `action ] Gobject.obj -> unit
    = "ml_gtk_action_connect_accelerator"
  external disconnect_accelerator : [> `action ] Gobject.obj -> unit
    = "ml_gtk_action_disconnect_accelerator"
  external set_accel_path : [> `action ] Gobject.obj -> string -> unit
    = "ml_gtk_action_set_accel_path"
  external set_accel_group :
    [> `action ] Gobject.obj -> Gtk.accel_group -> unit
    = "ml_gtk_action_set_accel_group"
end