]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtkTree2.ml
Initial revision
[helm.git] / helm / DEVEL / lablgtk / lablgtk_20000829-0.1.0 / applications / radtest / gtkTree2.ml
diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtkTree2.ml b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/applications/radtest/gtkTree2.ml
new file mode 100644 (file)
index 0000000..46d1e02
--- /dev/null
@@ -0,0 +1,82 @@
+(* $Id$ *)
+
+open Gaux
+open Gtk
+open Tags
+open GtkBase
+
+module TreeItem = struct
+  let cast w : tree_item obj =
+    if Object.is_a w "GtkTreeItem" then Obj.magic w
+    else invalid_arg "Gtk.TreeItem.cast"
+  external create : unit -> tree_item obj = "ml_gtk_tree_item2_new"
+  external create_with_label : string -> tree_item obj
+      = "ml_gtk_tree_item2_new_with_label"
+  let create ?label () =
+    match label with None -> create ()
+    | Some label -> create_with_label label
+  external set_subtree : [>`treeitem] obj -> [>`widget] obj -> unit
+      = "ml_gtk_tree_item2_set_subtree"
+  external remove_subtree : [>`treeitem] obj -> unit
+      = "ml_gtk_tree_item2_remove_subtree"
+  external expand : [>`treeitem] obj -> unit
+      = "ml_gtk_tree_item2_expand"
+  external collapse : [>`treeitem] obj -> unit
+      = "ml_gtk_tree_item2_collapse"
+  external subtree : [>`treeitem] obj -> tree obj
+      = "ml_GTK_TREE_ITEM2_SUBTREE"
+  let subtree t = try subtree t with Gpointer.Null -> raise Not_found
+  module Signals = struct
+    open GtkSignal
+    let expand : ([>`treeitem],_) t =
+      { name = "expand"; marshaller = marshal_unit }
+    let collapse : ([>`treeitem],_) t =
+      { name = "collapse"; marshaller = marshal_unit }
+  end
+end
+
+module Tree = struct
+  let cast w : tree obj =
+    if Object.is_a w "GtkTree" then Obj.magic w
+    else invalid_arg "Gtk.Tree.cast"
+  external coerce : [>`tree] obj -> tree obj = "%identity"
+  external create : unit -> tree obj = "ml_gtk_tree2_new"
+  external insert : [>`tree] obj -> [>`treeitem] obj -> pos:int -> unit
+      = "ml_gtk_tree2_insert"
+  external remove_items : [>`tree] obj -> [>`treeitem] obj list -> unit
+      = "ml_gtk_tree2_remove_items"
+  external clear_items : [>`tree] obj -> start:int -> stop:int -> unit
+      = "ml_gtk_tree2_clear_items"
+  external select_item : [>`tree] obj -> pos:int -> unit
+      = "ml_gtk_tree2_select_item"
+  external unselect_item : [>`tree] obj -> pos:int -> unit
+      = "ml_gtk_tree2_unselect_item"
+  external child_position : [>`tree] obj -> [>`treeitem] obj -> int
+      = "ml_gtk_tree2_child_position"
+(*  external set_selection_mode : [>`tree] obj -> selection_mode -> unit
+      = "ml_gtk_tree2_set_selection_mode"
+  external set_view_mode : [>`tree] obj -> [`LINE|`ITEM] -> unit
+      = "ml_gtk_tree2_set_view_mode"
+*)
+  external set_view_lines : [>`tree] obj -> bool -> unit
+      = "ml_gtk_tree2_set_view_lines"
+  external selection : [>`tree] obj -> tree_item obj list =
+    "ml_gtk_tree2_selection"
+  external item_up : [>`tree] obj -> int -> unit =
+    "ml_gtk_tree2_item_up"
+
+  let set ?selection_mode ?view_mode ?view_lines w =
+    let may_set f = may ~f:(f w) in
+(*    may_set set_selection_mode selection_mode;
+    may_set set_view_mode view_mode; *)
+    may_set set_view_lines view_lines
+  module Signals = struct
+    open GtkSignal
+    let selection_changed : ([>`tree],_) t =
+      { name = "selection_changed"; marshaller = marshal_unit }
+    let select_child : ([>`tree],_) t =
+      { name = "select_child"; marshaller = Widget.Signals.marshal }
+    let unselect_child : ([>`tree],_) t =
+      { name = "unselect_child"; marshaller = Widget.Signals.marshal }
+  end
+end