]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/mathita/mathitaGtkMisc.ml
snapshot
[helm.git] / helm / mathita / mathitaGtkMisc.ml
index 36478d5292bf537d01a1166571a1ce18cedd3f6e..fc4fecc8f14154080105e78e991faf65b00809ac 100644 (file)
@@ -44,3 +44,34 @@ let add_key_binding key callback (evbox: GBin.event_box) =
         false
     | _ -> false))
 
+class stringListModel (tree_view: GTree.view) =
+  let column_list = new GTree.column_list in
+  let text_column = column_list#add Gobject.Data.string in
+  let list_store = GTree.list_store column_list in
+  object (self)
+
+    initializer
+      let renderer = (GTree.cell_renderer_text [], ["text", text_column]) in
+      let view_column = GTree.view_column ~renderer () in
+      tree_view#set_model (Some (list_store :> GTree.model));
+      ignore (tree_view#append_column view_column)
+
+    method list_store = list_store
+
+    method easy_append s =
+      let tree_iter = list_store#append () in
+      list_store#set ~row:tree_iter ~column:text_column s
+
+    method easy_insert pos s =
+      let tree_iter = list_store#insert pos in
+      list_store#set ~row:tree_iter ~column:text_column s
+
+    method easy_selection () =
+      List.map
+        (fun tree_path ->
+          let iter = list_store#get_iter tree_path in
+          list_store#get ~row:iter ~column:text_column)
+        tree_view#selection#get_selected_rows
+
+  end
+