more GtkTreeModelFilter methods are wrapped
[cl-gtk2.git] / gtk / gtk.tree-model-filter.lisp
index a75a85d..d026bc4 100644 (file)
@@ -3,10 +3,13 @@
 (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)))
+    (restart-case
+        (funcall fn tree-model iter)
+      (return-true () t)
+      (return-false () nil))))
 
 (defcfun gtk-tree-model-filter-set-visible-func :void
-  (filter g-object)
+  (filter (g-object tree-model-filter))
   (func :pointer)
   (data :pointer)
   (destroy-notify :pointer))
@@ -34,18 +37,33 @@ void          gtk_tree_model_filter_set_modify_func            (GtkTreeModelFilt
                                                                 GtkTreeModelFilterModifyFunc  func,
                                                                 gpointer                      data,
                                                                 GDestroyNotify                destroy);
+|#
 
-void          gtk_tree_model_filter_set_visible_column         (GtkTreeModelFilter           *filter,
-                                                                gint                          column);
+(defcfun gtk-tree-model-filter-set-visible-column :void
+  (filter (g-object tree-model-filter))
+  (column :int))
 
-/* conversion */
-gboolean      gtk_tree_model_filter_convert_child_iter_to_iter (GtkTreeModelFilter           *filter,
-                                                                GtkTreeIter                  *filter_iter,
-                                                                GtkTreeIter                  *child_iter);
-|#
+(defun tree-model-filter-set-visible-column (filter column)
+  (gtk-tree-model-filter-set-visible-column filter column))
+
+(export 'tree-model-filter-set-visible-column)
+
+;; conversion
+
+(defcfun gtk-tree-model-filter-convert-child-iter-to-iter :boolean
+  (filter (g-object tree-model-filter))
+  (filter-iter (g-boxed-foreign tree-iter))
+  (child-iter (g-boxed-foreign tree-iter)))
+
+(defun tree-model-filter-convert-child-iter-to-iter (filter iter)
+  (let ((filter-iter (make-instance 'tree-iter)))
+    (when (gtk-tree-model-filter-convert-child-iter-to-iter filter filter-iter iter)
+      filter-iter)))
+
+(export 'tree-model-filter-convert-child-iter-to-iter)
 
 (defcfun gtk-tree-model-filter-convert-iter-to-child-iter :void
-  (filter g-object)
+  (filter (g-object tree-model-filter))
   (child-iter (g-boxed-foreign tree-iter))
   (filter-iter (g-boxed-foreign tree-iter)))
 
@@ -56,18 +74,28 @@ gboolean      gtk_tree_model_filter_convert_child_iter_to_iter (GtkTreeModelFilt
 
 (export 'tree-model-filter-convert-iter-to-child-iter)
 
-#|
-GtkTreePath  *gtk_tree_model_filter_convert_child_path_to_path (GtkTreeModelFilter           *filter,
-                                                                GtkTreePath                  *child_path);
+(defcfun gtk-tree-model-filter-convert-child-path-to-path (g-boxed-foreign tree-path :return)
+  (filter (g-object tree-model-sort))
+  (child-path (g-boxed-foreign tree-path)))
 
-GtkTreePath  *gtk_tree_model_filter_convert_path_to_child_path (GtkTreeModelFilter           *filter,
-                                                                GtkTreePath                  *filter_path);
-|#
+(defun tree-model-filter-convert-child-path-to-path (filter child-path)
+  (gtk-tree-model-filter-convert-child-path-to-path))
+
+(export 'tree-model-filter-convert-child-path-to-path)
+
+(defcfun gtk-tree-model-filter-convert-path-to-child-path (g-boxed-foreign tree-path :return)
+  (filter (g-object tree-model-sort))
+  (filter-path (g-boxed-foreign tree-path)))
+
+(defun tree-model-filter-convert-path-to-child-path (filter child-path)
+  (gtk-tree-model-filter-convert-path-to-child-path))
+
+(export 'tree-model-filter-convert-path-to-child-path)
 
 ;; extras
 
 (defcfun gtk-tree-model-filter-refilter :void
-  (filter g-object))
+  (filter (g-object tree-model-filter)))
 
 (defun tree-model-filter-refilter (filter)
   (gtk-tree-model-filter-refilter filter))
@@ -75,10 +103,9 @@ GtkTreePath  *gtk_tree_model_filter_convert_path_to_child_path (GtkTreeModelFilt
 (export 'tree-model-filter-refilter)
 
 (defcfun gtk-tree-model-filter-clear-cache :void
-  (filter g-object))
+  (filter (g-object tree-model-filter)))
 
 (defun tree-model-filter-clear-cache (filter)
   (gtk-tree-model-filter-clear-cache filter))
 
 (export 'tree-model-filter-clear-cache)
-