Patch to add binding for gtk_tree_view_get_visible_range

Mike Spivey <[email protected]> Wed, 23 Dec 2009 12:24:20 +0000
Newsgroups gmane.comp.lang.ocaml.lib.gtk
Message-ID <1261571061.5820.12.camel@staysail>
Please eyeball the C primitive before applying this patch.  Je ne sais
pas tres bien comment vivre en harmonie avec le collecteur de garbage.

-- Mike


Index: src/gTree.mli
===================================================================
--- src/gTree.mli	(revision 1495)
+++ src/gTree.mli	(revision 1496)
@@ -398,6 +398,7 @@
       x:int -> y:int -> (tree_path * view_column * int * int) option
     method get_cell_area :
         ?path:tree_path -> ?col:view_column -> unit -> Gdk.Rectangle.t
+    method get_visible_range : unit -> (tree_path * tree_path) option
     method hadjustment : GData.adjustment
     method headers_visible : bool
     method insert_column : view_column -> int -> int
Index: src/ml_gtktree.c
===================================================================
--- src/ml_gtktree.c	(revision 1495)
+++ src/ml_gtktree.c	(revision 1496)
@@ -1578,3 +1578,17 @@
   }
   return Val_unit;)
 }
+
+CAMLprim value ml_gtk_tree_view_get_visible_range(value treeview) {
+     CAMLparam1(treeview);
+     CAMLlocal1(result);
+     GtkTreePath *startp, *endp;
+     if (! gtk_tree_view_get_visible_range(GtkTreeView_val(treeview),
+					   &startp, &endp))
+	  CAMLreturn(Val_unit);
+     result = alloc_tuple(2);
+     Store_field(result, 0, Val_GtkTreePath(startp));
+     Store_field(result, 1, Val_GtkTreePath(endp));
+     CAMLreturn(ml_some(result));
+}
+	  
Index: src/gtkTree.props
===================================================================
--- src/gtkTree.props	(revision 1495)
+++ src/gtkTree.props	(revision 1496)
@@ -36,6 +36,7 @@
   "hover-selection"      gboolean              : Read / Write / NoSet
   (* new properties in GTK+ 2.12 *)
   "tooltip-column"       gint                 : Read / Write
+  method get_visible_range : "(tree_path * tree_path) option"
   signal columns_changed
   signal cursor_changed
   signal expand_collapse_cursor_row :
Index: src/gTree.ml
===================================================================
--- src/gTree.ml	(revision 1495)
+++ src/gTree.ml	(revision 1496)
@@ -419,6 +419,8 @@
     | None -> None
   method get_cell_area ?path ?col () =
     TreeView.get_cell_area obj ?path ?col:(Gaux.may_map as_column col) ()
+  method get_visible_range () =
+    TreeView.get_visible_range obj
   method set_row_separator_func fo =
     TreeView.set_row_separator_func obj 
       (Gaux.may_map (fun f m -> f (new model m)) fo)