sig
  type ty =
      [ `basic
      | `combo
      | `desktop
      | `dialog_basic
      | `dock
      | `dropdown_menu
      | `menu
      | `naviframe_basic
      | `notification
      | `popup_menu
      | `splash
      | `toolbar
      | `tooltip
      | `unknown
      | `utility ]
  type keyboard_mode =
      [ `alpha
      | `file
      | `hex
      | `host
      | `ip
      | `j2me
      | `keypad
      | `numeric
      | `off
      | `on
      | `password
      | `phone_number
      | `pin
      | `terminal
      | `unknown
      | `url ]
  type indicator_mode = [ `hide | `show | `unknown ]
  type indicator_opacity_mode =
      [ `opacity_unknown | `opaque | `translucent | `transparent ]
  type move_resize_mode = [ `bottom | `left | `move | `right | `top ]
  type illume_command = Elm.illume_command
  val add : ?p:Evas.obj -> string -> Elm_win.ty -> Evas.obj
  val addx :
    ?title:string ->
    ?parent:Evas.obj ->
    ?bg:bool ->
    ?autodel:bool ->
    ?size:int * int ->
    ?ty:Elm_win.ty ->
    ?cb:Evas_object_smart.sig_with_cb list -> string -> Evas.obj
  val type_get : Evas.obj -> Elm_win.ty
  val accel_preference_get : Evas.obj -> string
  val fake_add : Ecore.evas -> Evas.obj
  val util_standard_add : string -> string -> Evas.obj
  val util_dialog_add : Evas.obj -> string -> string -> Evas.obj
  val resize_object_add : Evas.obj -> Evas.obj -> unit
  val resize_object_del : Evas.obj -> Evas.obj -> unit
  val title_set : Evas.obj -> string -> unit
  val title_get : Evas.obj -> string
  val icon_name_set : Evas.obj -> string -> unit
  val icon_name_get : Evas.obj -> string
  val role_set : Evas.obj -> string -> unit
  val role_get : Evas.obj -> string
  val name_get : Evas.obj -> string
  val icon_object_set : Evas.obj -> Evas.obj -> unit
  val icon_object_get : Evas.obj -> Evas.obj
  val autodel_set : Evas.obj -> bool -> unit
  val autodel_get : Evas.obj -> bool
  val activate : Evas.obj -> unit
  val lower : Evas.obj -> unit
  val raise : Evas.obj -> unit
  val center : Evas.obj -> bool -> bool -> unit
  val borderless_set : Evas.obj -> bool -> unit
  val borderless_get : Evas.obj -> bool
  val shaped_set : Evas.obj -> bool -> unit
  val shaped_get : Evas.obj -> bool
  val alpha_set : Evas.obj -> bool -> unit
  val alpha_get : Evas.obj -> bool
  val override_set : Evas.obj -> bool -> unit
  val override_get : Evas.obj -> bool
  val fullscreen_set : Evas.obj -> bool -> unit
  val fullscreen_get : Evas.obj -> bool
  val main_menu_get : Evas.obj -> Evas.obj option
  val maximized_set : Evas.obj -> bool -> unit
  val maximized_get : Evas.obj -> bool
  val iconified_set : Evas.obj -> bool -> unit
  val iconified_get : Evas.obj -> bool
  val withdrawn_set : Evas.obj -> bool -> unit
  val withdrawn_get : Evas.obj -> bool
  val available_profiles_set : Evas.obj -> string array -> unit
  val available_profiles_get : Evas.obj -> string array
  val profile_set : Evas.obj -> string -> unit
  val profile_get : Evas.obj -> string
  val urgent_set : Evas.obj -> bool -> unit
  val urgent_get : Evas.obj -> bool
  val demand_attention_set : Evas.obj -> bool -> unit
  val demand_attention_get : Evas.obj -> bool
  val modal_set : Evas.obj -> bool -> unit
  val modal_get : Evas.obj -> bool
  val aspect_set : Evas.obj -> float -> unit
  val aspect_get : Evas.obj -> float
  val size_base_set : Evas.obj -> int -> int -> unit
  val size_base_get : Evas.obj -> int * int
  val size_step_set : Evas.obj -> int -> int -> unit
  val size_step_get : Evas.obj -> int * int
  val layer_set : Evas.obj -> int -> unit
  val layer_get : Evas.obj -> int
  val norender_push : Evas.obj -> unit
  val norender_pop : Evas.obj -> unit
  val norender_get : Evas.obj -> int
  val render : Evas.obj -> unit
  val rotation_set : Evas.obj -> int -> unit
  val rotation_with_resize_set : Evas.obj -> int -> unit
  val rotation_get : Evas.obj -> int
  val wm_rotation_supported_get : Evas.obj -> bool
  val sticky_set : Evas.obj -> bool -> unit
  val sticky_get : Evas.obj -> bool
  val conformant_set : Evas.obj -> bool -> unit
  val conformant_get : Evas.obj -> bool
  val quickpanel_set : Evas.obj -> bool -> unit
  val quickpanel_get : Evas.obj -> bool
  val quickpanel_priority_major_set : Evas.obj -> int -> unit
  val quickpanel_priority_major_get : Evas.obj -> int
  val quickpanel_priority_minor_set : Evas.obj -> int -> unit
  val quickpanel_priority_minor_get : Evas.obj -> int
  val quickpanel_zone_set : Evas.obj -> int -> unit
  val quickpanel_zone_get : Evas.obj -> int
  val prop_focus_skip_set : Evas.obj -> bool -> unit
  val illume_command_send : Evas.obj -> Elm.illume_command -> unit
  val inlined_image_object_get : Evas.obj -> Evas.obj
  val noblank_set : Evas.obj -> bool -> unit
  val noblank_get : Evas.obj -> bool
  val focus_get : Evas.obj -> bool
  val screen_constrain_set : Evas.obj -> bool -> unit
  val screen_constrain_get : Evas.obj -> bool
  val screen_size_get : Evas.obj -> int * int * int * int
  val screen_dpi_get : Evas.obj -> int * int
  val focus_highlight_enabled_set : Evas.obj -> bool -> unit
  val focus_highlight_enabled_get : Evas.obj -> bool
  val focus_highlight_style_set : Evas.obj -> string option -> unit
  val focus_highlight_style_get : Evas.obj -> string option
  val focus_highlight_animate_set : Evas.obj -> bool -> unit
  val focus_highlight_animate_get : Evas.obj -> bool
  val keyboard_mode_set : Evas.obj -> Elm_win.keyboard_mode -> unit
  val keyboard_mode_get : Evas.obj -> Elm_win.keyboard_mode
  val keyboard_win_set : Evas.obj -> bool -> unit
  val keyboard_win_get : Evas.obj -> bool
  val indicator_mode_set : Evas.obj -> Elm_win.indicator_mode -> unit
  val indicator_mode_get : Evas.obj -> Elm_win.indicator_mode
  val indicator_opacity_set :
    Evas.obj -> Elm_win.indicator_opacity_mode -> unit
  val indicator_opacity_get : Evas.obj -> Elm_win.indicator_opacity_mode
  val screen_position_get : Evas.obj -> int * int
  val socket_listen : Evas.obj -> string -> int -> bool -> unit
  val xwindow_get : Evas.obj -> Ecore.x_window
  val wl_window_get : Evas.obj -> Ecore.wl_window
  val floating_mode_set : Evas.obj -> bool -> unit
  val floating_mode_get : Evas.obj -> bool
  val window_id_get : Evas.obj -> Ecore.window
  val move_resize_start : Evas.obj -> Elm_win.move_resize_mode -> bool
  val get : Evas.obj -> Evas.obj
end