Typo.
[cl-gtk2.git] / gtk / gtk.tree-view.lisp
index dedd435..6c47567 100644 (file)
@@ -68,7 +68,7 @@
 
 (defcfun gtk-tree-view-scroll-to-cell :void
   (tree-view g-object)
-  (path (g-boxed-ref tree-path))
+  (path (g-boxed-foreign tree-path))
   (column g-object)
   (use-align :boolean)
   (row-align :float)
@@ -81,7 +81,7 @@
 
 (defcfun gtk-tree-view-set-cursor :void
   (tree-view g-object)
-  (path (g-boxed-ref tree-path))
+  (path (g-boxed-foreign tree-path))
   (focus-column g-object)
   (start-editing :boolean))
 
@@ -92,7 +92,7 @@
 
 (defcfun gtk-tree-view-set-cursor-on-cell :void
   (tree-view g-object)
-  (path (g-boxed-ref tree-path))
+  (path (g-boxed-foreign tree-path))
   (focus-column g-object)
   (focus-cell g-object)
   (start-editing :boolean))
 (defun tree-view-get-cursor (tree-view)
   (with-foreign-objects ((path :pointer) (focus-column :pointer))
     (gtk-tree-view-get-cursor tree-view path focus-column)
-    (values (mem-ref path '(g-boxed-ref tree-path :owner :lisp))
+    (values (mem-ref path '(g-boxed-foreign tree-path :return))
             (mem-ref focus-column 'g-object))))
 
 (export 'tree-view-get-cursor)
 
 (defcfun (tree-view-expand-to-path "gtk_tree_view_expand_to_path") :void
   (tree-view g-object)
-  (path (g-boxed-ref tree-path)))
+  (path (g-boxed-foreign tree-path)))
 
 (export 'tree-view-expand-to-path)
 
 (defcfun (tree-view-expand-row "gtk_tree_view_expand_row") :boolean
   (tree-view g-object)
-  (path (g-boxed-ref tree-path)))
+  (path (g-boxed-foreign tree-path)))
 
 (export 'tree-view-expand-row)
 
 (defcfun (tree-view-collapse-row "gtk_tree_view_collapse_row") :boolean
   (tree-view g-object)
-  (path (g-boxed-ref tree-path)))
+  (path (g-boxed-foreign tree-path)))
 
 (export 'tree-view-collapse-row)
 
 (defcallback gtk-tree-view-mapping-func-callback :void
-    ((tree-view g-object) (path (g-boxed-ref tree-path)) (data :pointer))
+    ((tree-view g-object) (path (g-boxed-foreign tree-path)) (data :pointer))
   (funcall (get-stable-pointer-value data)
            tree-view path))
 
 
 (defcfun (tree-view-row-expanded-p "gtk_tree_view_row_expanded") :boolean
   (tree-view g-object)
-  (path (g-boxed-ref tree-path)))
+  (path (g-boxed-foreign tree-path)))
 
 (export 'tree-view-row-expanded-p)
 
 (defun tree-view-get-path-at-pos (tree-view x y)
   (with-foreign-objects ((path :pointer) (column :pointer) (cell-x :int) (cell-y :int))
     (when (gtk-tree-view-get-path-at-pos tree-view x y path column cell-x cell-y)
-      (values (mem-ref path '(g-boxed-ref tree-path :owner :lisp))
+      (values (mem-ref path '(g-boxed-foreign tree-path :return))
               (mem-ref column 'g-object)
               (mem-ref cell-x :int)
               (mem-ref cell-y :int)))))
 
 (defcfun gtk-tree-view-get-cell-area :void
   (tree-view g-object)
-  (path (g-boxed-ref tree-path))
+  (path (g-boxed-foreign tree-path))
   (column g-object)
-  (rectangle (g-boxed-ptr rectangle)))
+  (rectangle (g-boxed-foreign rectangle)))
 
 (defun tree-view-get-cell-area (tree-view path column)
-  (aprog1 (make-rectangle :x 0 :y 0 :width 0 :height 0)
-    (gtk-tree-view-get-cell-area tree-view path column it)))
+  (let ((rect (make-rectangle :x 0 :y 0 :width 0 :height 0)))
+    (gtk-tree-view-get-cell-area tree-view path column rect)
+    rect))
 
 (export 'tree-view-get-cell-area)
 
 (defcfun gtk-tree-view-get-background-area :void
   (tree-view g-object)
-  (path (g-boxed-ref tree-path))
+  (path (g-boxed-foreign tree-path))
   (column g-object)
-  (rectangle (g-boxed-ptr rectangle)))
+  (rectangle (g-boxed-foreign rectangle)))
 
 (defun tree-view-get-background-area (tree-view path column)
-  (aprog1 (make-rectangle :x 0 :y 0 :width 0 :height 0)
-    (gtk-tree-view-get-background-area tree-view path column it)))
+  (let ((rect (make-rectangle :x 0 :y 0 :width 0 :height 0)))
+    (gtk-tree-view-get-background-area tree-view path column rect)
+    rect))
 
 (export 'tree-view-get-background-area)
 
 (defcfun gtk-tree-view-get-visible-rect :void
   (tree-view g-object)
-  (rectangle (g-boxed-ptr rectangle)))
+  (rectangle (g-boxed-foreign rectangle)))
 
 (defun tree-view-get-visible-rect (tree-view)
-  (aprog1 (make-rectangle :x 0 :y 0 :width 0 :height 0)
-    (gtk-tree-view-get-visible-rect tree-view it)))
+  (let ((rect (make-rectangle :x 0 :y 0 :width 0 :height 0)))
+    (gtk-tree-view-get-visible-rect tree-view rect)
+    rect))
 
 (export 'tree-view-get-visible-rect)
 
 (defun tree-view-get-visible-range (tree-view)
   (with-foreign-objects ((start-path :pointer) (end-path :pointer))
     (when (gtk-tree-view-get-visible-range tree-view start-path end-path)
-      (values (mem-ref start-path '(g-boxed-ref tree-path :owner :lisp))
-              (mem-ref end-path '(g-boxed-ref tree-path :owner :lisp))))))
+      (values (mem-ref start-path '(g-boxed-foreign tree-path :return))
+              (mem-ref end-path '(g-boxed-foreign tree-path :return))))))
 
 (export 'tree-view-get-visible-range)
 
 
 (export 'tree-view-convert-widget-to-tree-coords)
 
-; TODO: gtk_tree_view_enable_model_drag_dest
+(defcfun gtk-tree-view-enable-model-drag-dest :void
+  (tree-view (g-object tree-view))
+  (targets :pointer)
+  (n-targets :int)
+  (actions gdk-drag-action))
 
-; TODO: gtk_tree_view_enable_model_drag_source
+(defun tree-view-enable-model-drag-dest (tree-view targets actions)
+  (with-foreign-boxed-array (n-targets targets-ptr target-entry targets)
+    (gtk-tree-view-enable-model-drag-dest tree-view targets-ptr n-targets actions)))
+
+(export 'tree-view-enable-model-drag-dest)
+
+(defcfun gtk-tree-view-enable-model-drag-source :void
+  (tree-view (g-object tree-view))
+  (start-button-mask modifier-type)
+  (targets :pointer)
+  (n-targets :int)
+  (actions gdk-drag-action))
+
+(defun tree-view-enable-model-drag-source (tree-view start-button-mask targets actions)
+  (with-foreign-boxed-array (n-targets targets-ptr target-entry targets)
+    (gtk-tree-view-enable-model-drag-source tree-view start-button-mask targets-ptr n-targets actions)))
+
+(export 'tree-view-enable-model-drag-source)
 
 ; TODO: gtk_tree_view_unset_rows_drag_source
 
 
 ; TOOD: gtk_tree_view_get_drag_dest_row
 
-; TOOD: gtk_tree_view_get_dest_row_at_pos
+(defcfun gtk-tree-view-get-dest-row-at-pos :boolean
+  (tree_view (g-object tree-view))
+  (drag-x :int)
+  (drag-y :int)
+  (path :pointer)
+  (pos :pointer))
+
+(defun tree-view-get-dest-row-at-pos (tree-view x y)
+  (with-foreign-objects ((path :pointer) (pos :int))
+    (when (gtk-tree-view-get-dest-row-at-pos tree-view x y path pos)
+      (values (mem-ref path '(g-boxed-foreign tree-path :return))
+              (mem-ref pos 'tree-view-drop-position)))))
+
+(export 'tree-view-get-dest-row-at-pos)
 
 ; TOOD: gtk_tree_view_create_drag_icon
 
 (defcallback gtk-tree-view-search-equal-func-callback :boolean
-    ((model g-object) (column :int) (key (:string :free-from-foreign nil)) (iter (g-boxed-ref tree-iter)) (data :pointer))
+    ((model g-object) (column :int) (key (:string :free-from-foreign nil)) (iter (g-boxed-foreign tree-iter)) (data :pointer))
   (restart-case
       (funcall (get-stable-pointer-value data)
                model column key iter)
 ; TODO: gtk_tree_view_set_destroy_count_func
 
 (defcallback gtk-tree-view-row-separator-func-callback :boolean
-    ((tree-model g-object) (iter (g-boxed-ref tree-iter)) (data :pointer))
+    ((tree-model g-object) (iter (g-boxed-foreign tree-iter)) (data :pointer))
   (restart-case
       (funcall (get-stable-pointer-value data)
                tree-model
 (defcfun (tree-view-set-tooltip-row "gtk_tree_view_set_tooltip_row") :void
   (tree-view g-object)
   (tooltip g-object)
-  (tree-path (g-boxed-ref tree-path)))
+  (tree-path (g-boxed-foreign tree-path)))
 
 (export 'tree-view-set-tooltip-row)
 
 (defcfun (tree-view-set-tooltip-cell "gtk_tree_view_set_tooltip_cell") :void
   (tree-view g-object)
   (tooltip g-object)
-  (path (g-boxed-ref tree-path))
+  (path (g-boxed-foreign tree-path))
   (column g-object)
   (cell g-object))
 
               (mem-ref y :int)
               (mem-ref keyboard-tip :boolean)
               (mem-ref model 'g-object)
-              (mem-ref path '(g-boxed-ref tree-path :owner :lisp))
-              (mem-ref iter '(g-boxed-ref tree-iter :owner :lisp))))))
+              (mem-ref path '(g-boxed-foreign tree-path :return))
+              (mem-ref iter '(g-boxed-foreign tree-iter :return))))))
 
 (export 'tree-view-get-tooltip-context)
 
-; TODO: GtkTreeView drag-and-drop
\ No newline at end of file
+; TODO: GtkTreeView drag-and-drop
+
+(defcfun gtk-cell-view-get-size-of-row :boolean
+  (cell-view (g-object cell-view))
+  (path (g-boxed-foreign tree-path))
+  (requisition (g-boxed-foreign requisition)))
+
+(defun cell-view-get-size-of-row (cell-view path)
+  (let ((requisition (make-requisition)))
+    (gtk-cell-view-get-size-of-row cell-view path requisition)
+    requisition))
+
+(export 'cell-view-get-size-of-row)