sig
  val cast : 'Gobject.obj -> Gtk.clist Gtk.obj
  module P :
    sig
      val n_columns : ([> `clist ], int) Gobject.property
      val sort_type : ([> `clist ], GtkEnums.sort_type) Gobject.property
      val reorderable : ([> `clist ], bool) Gobject.property
      val row_height : ([> `clist ], int) Gobject.property
      val selection_mode :
        ([> `clist ], GtkEnums.selection_mode) Gobject.property
      val shadow_type : ([> `clist ], GtkEnums.shadow_type) Gobject.property
      val titles_active : ([> `clist ], bool) Gobject.property
      val use_drag_icons : ([> `clist ], bool) Gobject.property
    end
  module S :
    sig
      val click_column : ([> `clist ], int -> unit) GtkSignal.t
      val resize_column : ([> `clist ], int -> int -> unit) GtkSignal.t
      val scroll_horizontal :
        ([> `clist ], GtkEnums.scroll_type -> pos:float -> unit) GtkSignal.t
      val scroll_vertical :
        ([> `clist ], GtkEnums.scroll_type -> pos:float -> unit) GtkSignal.t
      val select_all : ([> `clist ], unit -> unit) GtkSignal.t
      val select_row :
        ([> `clist ],
         row:int -> column:int -> event:GdkEvent.Button.t option -> unit)
        GtkSignal.t
      val unselect_all : ([> `clist ], unit -> unit) GtkSignal.t
      val unselect_row :
        ([> `clist ],
         row:int -> column:int -> event:GdkEvent.Button.t option -> unit)
        GtkSignal.t
    end
  val make_params :
    cont:(([> `clist ] as 'a) Gobject.param list -> 'b) ->
    'Gobject.param list ->
    ?sort_type:GtkEnums.sort_type ->
    ?reorderable:bool ->
    ?row_height:int ->
    ?selection_mode:GtkEnums.selection_mode ->
    ?shadow_type:GtkEnums.shadow_type ->
    ?titles_active:bool -> ?use_drag_icons:bool -> 'b
  external create : cols:int -> Gtk.clist Gtk.obj = "ml_gtk_clist_new"
  external create_with_titles : string array -> Gtk.clist Gtk.obj
    = "ml_gtk_clist_new_with_titles"
  external get_rows : [> `clist ] Gtk.obj -> int = "ml_gtk_clist_get_rows"
  external get_columns : [> `clist ] Gtk.obj -> int
    = "ml_gtk_clist_get_columns"
  external get_focus_row : [> `clist ] Gtk.obj -> int
    = "ml_gtk_clist_get_focus_row"
  external set_hadjustment :
    [> `clist ] Gtk.obj -> [> `adjustment ] Gtk.obj -> unit
    = "ml_gtk_clist_set_hadjustment"
  external set_vadjustment :
    [> `clist ] Gtk.obj -> [> `adjustment ] Gtk.obj -> unit
    = "ml_gtk_clist_set_vadjustment"
  external get_hadjustment : [> `clist ] Gtk.obj -> Gtk.adjustment Gtk.obj
    = "ml_gtk_clist_get_hadjustment"
  external get_vadjustment : [> `clist ] Gtk.obj -> Gtk.adjustment Gtk.obj
    = "ml_gtk_clist_get_vadjustment"
  external set_shadow_type :
    [> `clist ] Gtk.obj -> Gtk.Tags.shadow_type -> unit
    = "ml_gtk_clist_set_shadow_type"
  external set_selection_mode :
    [> `clist ] Gtk.obj -> Gtk.Tags.selection_mode -> unit
    = "ml_gtk_clist_set_selection_mode"
  external set_reorderable : [> `clist ] Gtk.obj -> bool -> unit
    = "ml_gtk_clist_set_reorderable"
  external set_use_drag_icons : [> `clist ] Gtk.obj -> bool -> unit
    = "ml_gtk_clist_set_use_drag_icons"
  external set_button_actions :
    [> `clist ] Gtk.obj -> int -> Gtk.Tags.button_action list -> unit
    = "ml_gtk_clist_set_button_actions"
  external freeze : [> `clist ] Gtk.obj -> unit = "ml_gtk_clist_freeze"
  external thaw : [> `clist ] Gtk.obj -> unit = "ml_gtk_clist_thaw"
  external column_titles_show : [> `clist ] Gtk.obj -> unit
    = "ml_gtk_clist_column_titles_show"
  external column_titles_hide : [> `clist ] Gtk.obj -> unit
    = "ml_gtk_clist_column_titles_hide"
  external column_title_active : [> `clist ] Gtk.obj -> int -> unit
    = "ml_gtk_clist_column_title_active"
  external column_title_passive : [> `clist ] Gtk.obj -> int -> unit
    = "ml_gtk_clist_column_title_passive"
  external column_titles_active : [> `clist ] Gtk.obj -> unit
    = "ml_gtk_clist_column_titles_active"
  external column_titles_passive : [> `clist ] Gtk.obj -> unit
    = "ml_gtk_clist_column_titles_passive"
  external set_column_title : [> `clist ] Gtk.obj -> int -> string -> unit
    = "ml_gtk_clist_set_column_title"
  external get_column_title : [> `clist ] Gtk.obj -> int -> string
    = "ml_gtk_clist_get_column_title"
  external set_column_widget :
    [> `clist ] Gtk.obj -> int -> [> `widget ] Gtk.obj -> unit
    = "ml_gtk_clist_set_column_widget"
  external get_column_widget :
    [> `clist ] Gtk.obj -> int -> Gtk.widget Gtk.obj
    = "ml_gtk_clist_get_column_widget"
  external set_column_justification :
    [> `clist ] Gtk.obj -> int -> Gtk.Tags.justification -> unit
    = "ml_gtk_clist_set_column_justification"
  external set_column_visibility : [> `clist ] Gtk.obj -> int -> bool -> unit
    = "ml_gtk_clist_set_column_visibility"
  external set_column_resizeable : [> `clist ] Gtk.obj -> int -> bool -> unit
    = "ml_gtk_clist_set_column_resizeable"
  external set_column_auto_resize :
    [> `clist ] Gtk.obj -> int -> bool -> unit
    = "ml_gtk_clist_set_column_auto_resize"
  external columns_autosize : [> `clist ] Gtk.obj -> unit
    = "ml_gtk_clist_columns_autosize"
  external optimal_column_width : [> `clist ] Gtk.obj -> int -> int
    = "ml_gtk_clist_optimal_column_width"
  external set_column_width : [> `clist ] Gtk.obj -> int -> int -> unit
    = "ml_gtk_clist_set_column_width"
  external set_column_min_width : [> `clist ] Gtk.obj -> int -> int -> unit
    = "ml_gtk_clist_set_column_min_width"
  external set_column_max_width : [> `clist ] Gtk.obj -> int -> int -> unit
    = "ml_gtk_clist_set_column_max_width"
  external set_row_height : [> `clist ] Gtk.obj -> int -> unit
    = "ml_gtk_clist_set_row_height"
  external moveto :
    [> `clist ] Gtk.obj ->
    int -> int -> row_align:Gtk.clampf -> col_align:Gtk.clampf -> unit
    = "ml_gtk_clist_moveto"
  external row_is_visible : [> `clist ] Gtk.obj -> int -> Gtk.Tags.visibility
    = "ml_gtk_clist_row_is_visible"
  external get_cell_type :
    [> `clist ] Gtk.obj -> int -> int -> Gtk.Tags.cell_type
    = "ml_gtk_clist_get_cell_type"
  external set_text : [> `clist ] Gtk.obj -> int -> int -> string -> unit
    = "ml_gtk_clist_set_text"
  external get_text : [> `clist ] Gtk.obj -> int -> int -> string
    = "ml_gtk_clist_get_text"
  external set_pixmap :
    [> `clist ] Gtk.obj ->
    int -> int -> Gdk.pixmap -> Gdk.bitmap Gpointer.optboxed -> unit
    = "ml_gtk_clist_set_pixmap"
  external get_pixmap :
    [> `clist ] Gtk.obj ->
    int -> int -> Gdk.pixmap option * Gdk.bitmap option
    = "ml_gtk_clist_get_pixmap"
  external set_pixtext :
    [> `clist ] Gtk.obj ->
    int ->
    int ->
    string -> int -> Gdk.pixmap -> Gdk.bitmap Gpointer.optboxed -> unit
    = "ml_gtk_clist_set_pixtext_bc" "ml_gtk_clist_set_pixtext"
  external set_foreground :
    [> `clist ] Gtk.obj -> row:int -> Gdk.color Gpointer.optboxed -> unit
    = "ml_gtk_clist_set_foreground"
  external set_background :
    [> `clist ] Gtk.obj -> row:int -> Gdk.color Gpointer.optboxed -> unit
    = "ml_gtk_clist_set_background"
  external get_cell_style : [> `clist ] Gtk.obj -> int -> int -> Gtk.style
    = "ml_gtk_clist_get_cell_style"
  external set_cell_style :
    [> `clist ] Gtk.obj -> int -> int -> Gtk.style -> unit
    = "ml_gtk_clist_set_cell_style"
  external get_row_style : [> `clist ] Gtk.obj -> row:int -> Gtk.style
    = "ml_gtk_clist_get_row_style"
  external set_row_style :
    [> `clist ] Gtk.obj -> row:int -> Gtk.style -> unit
    = "ml_gtk_clist_set_row_style"
  external set_selectable : [> `clist ] Gtk.obj -> row:int -> bool -> unit
    = "ml_gtk_clist_set_selectable"
  external get_selectable : [> `clist ] Gtk.obj -> row:int -> bool
    = "ml_gtk_clist_get_selectable"
  external set_shift :
    [> `clist ] Gtk.obj ->
    int -> int -> vertical:int -> horizontal:int -> unit
    = "ml_gtk_clist_set_shift"
  external insert :
    [> `clist ] Gtk.obj -> row:int -> Gpointer.optstring array -> int
    = "ml_gtk_clist_insert"
  val insert : [> `clist ] Gtk.obj -> row:int -> string option list -> int
  external remove : [> `clist ] Gtk.obj -> row:int -> unit
    = "ml_gtk_clist_remove"
  external set_row_data : [> `clist ] Gtk.obj -> row:int -> Obj.t -> unit
    = "ml_gtk_clist_set_row_data"
  external get_row_data : [> `clist ] Gtk.obj -> row:int -> Obj.t
    = "ml_gtk_clist_get_row_data"
  external select : [> `clist ] Gtk.obj -> int -> int -> unit
    = "ml_gtk_clist_select_row"
  external unselect : [> `clist ] Gtk.obj -> int -> int -> unit
    = "ml_gtk_clist_unselect_row"
  external clear : [> `clist ] Gtk.obj -> unit = "ml_gtk_clist_clear"
  external get_row_column :
    [> `clist ] Gtk.obj -> x:int -> y:int -> int * int
    = "ml_gtk_clist_get_selection_info"
  external select_all : [> `clist ] Gtk.obj -> unit
    = "ml_gtk_clist_select_all"
  external unselect_all : [> `clist ] Gtk.obj -> unit
    = "ml_gtk_clist_unselect_all"
  external swap_rows : [> `clist ] Gtk.obj -> int -> int -> unit
    = "ml_gtk_clist_swap_rows"
  external row_move : [> `clist ] Gtk.obj -> int -> dst:int -> unit
    = "ml_gtk_clist_row_move"
  external set_sort_column : [> `clist ] Gtk.obj -> int -> unit
    = "ml_gtk_clist_set_sort_column"
  external set_sort_type : [> `clist ] Gtk.obj -> Gtk.Tags.sort_type -> unit
    = "ml_gtk_clist_set_sort_type"
  external sort : [> `clist ] Gtk.obj -> unit = "ml_gtk_clist_sort"
  external set_auto_sort : [> `clist ] Gtk.obj -> bool -> unit
    = "ml_gtk_clist_set_auto_sort"
  val set_titles_show : [> `clist ] Gtk.obj -> bool -> unit
  val set_titles_active : [> `clist ] Gtk.obj -> bool -> unit
  val setter :
    cont:(([> `clist ] Gtk.obj -> unit) -> 'a) ->
    ?hadjustment:[> `adjustment ] Gtk.obj ->
    ?vadjustment:[> `adjustment ] Gtk.obj ->
    ?button_actions:(int * Gtk.Tags.button_action list) list ->
    ?titles_show:bool -> 'a
  val set_sort :
    [> `clist ] Gtk.obj ->
    ?auto:bool -> ?column:int -> ?dir:Gtk.Tags.sort_type -> unit -> unit
  val set_cell :
    [> `clist ] Gtk.obj ->
    ?text:string ->
    ?pixmap:Gdk.pixmap ->
    ?mask:Gdk.bitmap ->
    ?spacing:int -> ?style:Gtk.style -> int -> int -> unit
  val set_column :
    [> `clist ] Gtk.obj ->
    ?widget:[> `widget ] Gtk.obj ->
    ?title:string ->
    ?title_active:bool ->
    ?justification:Gtk.Tags.justification ->
    ?visibility:bool ->
    ?resizeable:bool ->
    ?auto_resize:bool ->
    ?width:int -> ?min_width:int -> ?max_width:int -> int -> unit
  val set_row :
    [> `clist ] Gtk.obj ->
    ?foreground:Gdk.color Gpointer.optboxed ->
    ?background:Gdk.color Gpointer.optboxed ->
    ?selectable:bool -> ?style:Gtk.style -> int -> unit
  external get_row_state : [> `clist ] Gtk.obj -> int -> Gtk.Tags.state_type
    = "ml_gtk_clist_get_row_state"
  val emit_scroll :
    'Gobject.obj ->
    sgn:('a, GtkEnums.scroll_type -> pos:Gtk.clampf -> unit) GtkSignal.t ->
    GtkEnums.scroll_type -> pos:Gtk.clampf -> unit
end