tree-model-filter
authorAndrey Kutejko <andy128k@gmail.com>
Sun, 17 Jan 2010 22:03:42 +0000 (00:03 +0200)
committerDmitry Kalyanov <Kalyanov.Dmitry@gmail.com>
Fri, 22 Jan 2010 10:47:57 +0000 (13:47 +0300)
gtk/cl-gtk2-gtk.asd
gtk/gtk.tree-model-filter.lisp [new file with mode: 0644]

index 52871c3..c825c29 100644 (file)
@@ -64,6 +64,7 @@
                (:file "gtk.link-button")
                (:file "gtk.list-store")
                (:file "gtk.tree-store")
+               (:file "gtk.tree-model-filter")
                (:file "gtk.clipboard")
                
                (:file "gtk.main-loop-events")
diff --git a/gtk/gtk.tree-model-filter.lisp b/gtk/gtk.tree-model-filter.lisp
new file mode 100644 (file)
index 0000000..a75a85d
--- /dev/null
@@ -0,0 +1,84 @@
+(in-package :gtk)
+
+(defcallback gtk-tree-model-filter-visible-func-callback :boolean
+  ((tree-model g-object) (iter (g-boxed-foreign tree-iter)) (data :pointer))
+  (let ((fn (get-stable-pointer-value data)))
+    (funcall fn tree-model iter)))
+
+(defcfun gtk-tree-model-filter-set-visible-func :void
+  (filter g-object)
+  (func :pointer)
+  (data :pointer)
+  (destroy-notify :pointer))
+
+(defun tree-model-filter-set-visible-function (tree-model-filter function)
+  (gtk-tree-model-filter-set-visible-func
+   tree-model-filter
+   (callback gtk-tree-model-filter-visible-func-callback)
+   (allocate-stable-pointer function)
+   (callback stable-pointer-free-destroy-notify-callback)))
+
+(export 'tree-model-filter-set-visible-function)
+
+#|
+
+typedef void (* GtkTreeModelFilterModifyFunc) (GtkTreeModel *model,
+                                               GtkTreeIter  *iter,
+                                               GValue       *value,
+                                               gint          column,
+                                               gpointer      data);
+
+void          gtk_tree_model_filter_set_modify_func            (GtkTreeModelFilter           *filter,
+                                                                gint                          n_columns,
+                                                                GType                        *types,
+                                                                GtkTreeModelFilterModifyFunc  func,
+                                                                gpointer                      data,
+                                                                GDestroyNotify                destroy);
+
+void          gtk_tree_model_filter_set_visible_column         (GtkTreeModelFilter           *filter,
+                                                                gint                          column);
+
+/* conversion */
+gboolean      gtk_tree_model_filter_convert_child_iter_to_iter (GtkTreeModelFilter           *filter,
+                                                                GtkTreeIter                  *filter_iter,
+                                                                GtkTreeIter                  *child_iter);
+|#
+
+(defcfun gtk-tree-model-filter-convert-iter-to-child-iter :void
+  (filter g-object)
+  (child-iter (g-boxed-foreign tree-iter))
+  (filter-iter (g-boxed-foreign tree-iter)))
+
+(defun tree-model-filter-convert-iter-to-child-iter (filter iter)
+  (let ((child-iter (make-instance 'tree-iter)))
+    (gtk-tree-model-filter-convert-iter-to-child-iter filter child-iter iter)
+    child-iter))
+
+(export 'tree-model-filter-convert-iter-to-child-iter)
+
+#|
+GtkTreePath  *gtk_tree_model_filter_convert_child_path_to_path (GtkTreeModelFilter           *filter,
+                                                                GtkTreePath                  *child_path);
+
+GtkTreePath  *gtk_tree_model_filter_convert_path_to_child_path (GtkTreeModelFilter           *filter,
+                                                                GtkTreePath                  *filter_path);
+|#
+
+;; extras
+
+(defcfun gtk-tree-model-filter-refilter :void
+  (filter g-object))
+
+(defun tree-model-filter-refilter (filter)
+  (gtk-tree-model-filter-refilter filter))
+
+(export 'tree-model-filter-refilter)
+
+(defcfun gtk-tree-model-filter-clear-cache :void
+  (filter g-object))
+
+(defun tree-model-filter-clear-cache (filter)
+  (gtk-tree-model-filter-clear-cache filter))
+
+(export 'tree-model-filter-clear-cache)
+