X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=gtk%2Fgtk.tree-view.lisp;h=6c475678b78c170f8b52aebe08da59a13e6f3e4c;hb=e8e2d1cad48f9b6f1d607651f93cc51387c60216;hp=487ddb2b8f73396ea91d84e8c0443f4db834738c;hpb=51aa0c04d9522fa9c17555cc779036aa9703ef02;p=cl-gtk2.git diff --git a/gtk/gtk.tree-view.lisp b/gtk/gtk.tree-view.lisp index 487ddb2..6c47567 100644 --- a/gtk/gtk.tree-view.lisp +++ b/gtk/gtk.tree-view.lisp @@ -30,7 +30,7 @@ (export 'tree-view-get-column) -(defcfun (tree-view-columns "gtk_tree_view_columns") (glist g-object) +(defcfun (tree-view-columns "gtk_tree_view_get_columns") (glist g-object) (tree-view g-object)) (export 'tree-view-columns) @@ -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)) @@ -110,7 +110,7 @@ (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) @@ -127,24 +127,24 @@ (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)) @@ -161,7 +161,7 @@ (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) @@ -177,7 +177,7 @@ (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))))) @@ -186,35 +186,38 @@ (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) @@ -226,8 +229,8 @@ (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) @@ -321,9 +324,30 @@ (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 @@ -333,12 +357,25 @@ ; 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) @@ -385,7 +422,7 @@ ; 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 @@ -407,7 +444,7 @@ (callback stable-pointer-free-destroy-notify-callback)) (gtk-tree-view-set-row-separator-func tree-view (null-pointer) (null-pointer) (null-pointer)))) -(defcfun (tree-view-rubber-banding-active "gtk_tree_view_get_rubber_banding_active") :boolean +(defcfun (tree-view-rubber-banding-active "gtk_tree_view_is_rubber_banding_active") :boolean (tree-view g-object)) (export 'tree-view-rubber-banding-active) @@ -415,14 +452,14 @@ (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)) @@ -444,9 +481,21 @@ (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)