sig
  val cast : 'Gobject.obj -> Gtk.window Gtk.obj
  module P = GtkBaseProps.Window.P
  module S = GtkBaseProps.Window.S
  val create :
    ?kind:GtkEnums.window_type ->
    Gtk.window Gobject.param list -> Gtk.window Gtk.obj
  external present : [> `window ] Gtk.obj -> unit = "ml_gtk_window_present"
  external iconify : [> `window ] Gtk.obj -> unit = "ml_gtk_window_iconify"
  external deiconify : [> `window ] Gtk.obj -> unit
    = "ml_gtk_window_deiconify"
  external stick : [> `window ] Gtk.obj -> unit = "ml_gtk_window_stick"
  external unstick : [> `window ] Gtk.obj -> unit = "ml_gtk_window_unstick"
  external maximize : [> `window ] Gtk.obj -> unit = "ml_gtk_window_maximize"
  external unmaximize : [> `window ] Gtk.obj -> unit
    = "ml_gtk_window_unmaximize"
  external fullscreen : [> `window ] Gtk.obj -> unit
    = "ml_gtk_window_fullscreen"
  external unfullscreen : [> `window ] Gtk.obj -> unit
    = "ml_gtk_window_unfullscreen"
  external set_decorated : [> `window ] Gtk.obj -> bool -> unit
    = "ml_gtk_window_set_decorated"
  external set_mnemonic_modifier :
    [> `window ] Gtk.obj -> Gdk.Tags.modifier list -> unit
    = "ml_gtk_window_set_mnemonic_modifier"
  external move : [> `window ] Gtk.obj -> x:int -> y:int -> unit
    = "ml_gtk_window_move"
  external parse_geometry : [> `window ] Gtk.obj -> string -> bool
    = "ml_gtk_window_parse_geometry"
  external reshow_with_initial_size : [> `window ] Gtk.obj -> unit
    = "ml_gtk_window_reshow_with_initial_size"
  external resize : [> `window ] Gtk.obj -> width:int -> height:int -> unit
    = "ml_gtk_window_resize"
  external set_role : [> `window ] Gtk.obj -> string -> unit
    = "ml_gtk_window_set_role"
  external get_role : [> `window ] Gtk.obj -> string
    = "ml_gtk_window_get_role"
  val make_params :
    cont:(([> `window ] as 'a) Gobject.param list -> 'b) ->
    'Gobject.param list ->
    ?title:string ->
    ?decorated:bool ->
    ?deletable:bool ->
    ?focus_on_map:bool ->
    ?icon:GdkPixbuf.pixbuf ->
    ?icon_name:string ->
    ?modal:bool ->
    ?position:GtkEnums.window_position ->
    ?resizable:bool ->
    ?screen:Gdk.screen ->
    ?type_hint:GdkEnums.window_type_hint -> ?urgency_hint:bool -> 'b
  external set_wmclass :
    [> `window ] Gtk.obj -> name:string -> clas:string -> unit
    = "ml_gtk_window_set_wmclass"
  external add_accel_group : [> `window ] Gtk.obj -> Gtk.accel_group -> unit
    = "ml_gtk_window_add_accel_group"
  external remove_accel_group :
    [> `window ] Gtk.obj -> Gtk.accel_group -> unit
    = "ml_gtk_window_remove_accel_group"
  external activate_focus : [> `window ] Gtk.obj -> bool
    = "ml_gtk_window_activate_focus"
  external activate_default : [> `window ] Gtk.obj -> bool
    = "ml_gtk_window_activate_default"
  external set_geometry_hints :
    [> `window ] Gtk.obj ->
    ?pos:bool ->
    ?min_size:int * int ->
    ?max_size:int * int ->
    ?base_size:int * int ->
    ?aspect:float * float ->
    ?resize_inc:int * int ->
    ?win_gravity:Gdk.Tags.gravity ->
    ?user_pos:bool -> ?user_size:bool -> [> `widget ] Gtk.obj -> unit
    = "ml_gtk_window_set_geometry_hints_bc"
    "ml_gtk_window_set_geometry_hints"
  external list_toplevels : unit -> Gtk.window Gtk.obj list
    = "ml_gtk_window_list_toplevels"
  external add_mnemonic :
    [> `window ] Gtk.obj -> Gdk.keysym -> [> `widget ] Gtk.obj -> unit
    = "ml_gtk_window_add_mnemonic"
  external remove_mnemonic :
    [> `window ] Gtk.obj -> Gdk.keysym -> [> `widget ] Gtk.obj -> unit
    = "ml_gtk_window_remove_mnemonic"
  external activate_mnemonic :
    [> `window ] Gtk.obj ->
    ?modi:Gdk.Tags.modifier list -> Gdk.keysym -> unit
    = "ml_gtk_window_mnemonic_activate"
  external get_focus : [> `window ] Gtk.obj -> Gtk.widget Gtk.obj
    = "ml_gtk_window_get_focus"
  external set_focus : [> `window ] Gtk.obj -> [> `widget ] Gtk.obj -> unit
    = "ml_gtk_window_set_focus"
  external set_default : [> `window ] Gtk.obj -> [> `widget ] Gtk.obj -> unit
    = "ml_gtk_window_set_default"
end