sig
  val cast : 'Gobject.obj -> Gtk.tree_view Gtk.obj
  module P :
    sig
      val enable_search : ([> `treeview ], bool) Gobject.property
      val expander_column :
        ([> `treeview ], Gtk.tree_view_column Gtk.obj option)
        Gobject.property
      val fixed_height_mode : ([> `treeview ], bool) Gobject.property
      val hadjustment :
        ([> `treeview ], Gtk.adjustment Gtk.obj) Gobject.property
      val headers_clickable : ([> `treeview ], bool) Gobject.property
      val headers_visible : ([> `treeview ], bool) Gobject.property
      val model : ([> `treeview ], Gtk.tree_model option) Gobject.property
      val reorderable : ([> `treeview ], bool) Gobject.property
      val rules_hint : ([> `treeview ], bool) Gobject.property
      val search_column : ([> `treeview ], int) Gobject.property
      val vadjustment :
        ([> `treeview ], Gtk.adjustment Gtk.obj) Gobject.property
      val hover_expand : ([> `treeview ], bool) Gobject.property
      val hover_selection : ([> `treeview ], bool) Gobject.property
      val enable_grid_lines :
        ([> `treeview ], GtkEnums.tree_view_grid_lines) Gobject.property
      val enable_tree_lines : ([> `treeview ], bool) Gobject.property
      val tooltip_column : ([> `treeview ], int) Gobject.property
    end
  module S :
    sig
      val columns_changed : ([> `treeview ], unit -> unit) GtkSignal.t
      val cursor_changed : ([> `treeview ], unit -> unit) GtkSignal.t
      val expand_collapse_cursor_row :
        ([> `treeview ], logical:bool -> expand:bool -> all:bool -> bool)
        GtkSignal.t
      val move_cursor :
        ([> `treeview ], GtkEnums.movement_step -> int -> bool) GtkSignal.t
      val row_activated :
        ([> `treeview ],
         Gtk.tree_path -> Gtk.tree_view_column Gtk.obj -> unit)
        GtkSignal.t
      val row_collapsed :
        ([> `treeview ], Gtk.tree_iter -> Gtk.tree_path -> unit) GtkSignal.t
      val row_expanded :
        ([> `treeview ], Gtk.tree_iter -> Gtk.tree_path -> unit) GtkSignal.t
      val select_all : ([> `treeview ], unit -> bool) GtkSignal.t
      val select_cursor_parent : ([> `treeview ], unit -> bool) GtkSignal.t
      val select_cursor_row :
        ([> `treeview ], start_editing:bool -> bool) GtkSignal.t
      val set_scroll_adjustments :
        ([> `treeview ],
         Gtk.adjustment Gtk.obj option ->
         Gtk.adjustment Gtk.obj option -> unit)
        GtkSignal.t
      val start_interactive_search :
        ([> `treeview ], unit -> bool) GtkSignal.t
      val test_collapse_row :
        ([> `treeview ], Gtk.tree_iter -> Gtk.tree_path -> bool) GtkSignal.t
      val test_expand_row :
        ([> `treeview ], Gtk.tree_iter -> Gtk.tree_path -> bool) GtkSignal.t
      val toggle_cursor_row : ([> `treeview ], unit -> bool) GtkSignal.t
      val unselect_all : ([> `treeview ], unit -> bool) GtkSignal.t
    end
  val create : Gtk.tree_view Gobject.param list -> Gtk.tree_view Gtk.obj
  external get_visible_range :
    [> `treeview ] Gtk.obj -> (Gtk.tree_path * Gtk.tree_path) option
    = "ml_gtk_tree_view_get_visible_range"
  val make_params :
    cont:(([> `treeview ] as 'a) Gobject.param list -> 'b) ->
    'Gobject.param list ->
    ?enable_search:bool ->
    ?fixed_height_mode:bool ->
    ?hadjustment:Gtk.adjustment Gtk.obj ->
    ?headers_clickable:bool ->
    ?headers_visible:bool ->
    ?model:Gtk.tree_model ->
    ?reorderable:bool ->
    ?rules_hint:bool ->
    ?search_column:int ->
    ?vadjustment:Gtk.adjustment Gtk.obj -> ?tooltip_column:int -> 'b
end