X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=gtk%2Fgtk.icon-view.lisp;h=fe74defb9dbc8d88190673a8e9eaa9444cc05d73;hb=96aa7293addaacdfe29ce32e60e2feac7df6ffce;hp=560b433b8a798a49bb2b3b8539a165b568f560d5;hpb=51aa0c04d9522fa9c17555cc779036aa9703ef02;p=cl-gtk2.git diff --git a/gtk/gtk.icon-view.lisp b/gtk/gtk.icon-view.lisp index 560b433..fe74def 100644 --- a/gtk/gtk.icon-view.lisp +++ b/gtk/gtk.icon-view.lisp @@ -1,6 +1,6 @@ (in-package :gtk) -(defcfun (icon-view-get-path-at-pos "gtk_icon_view_get_path_at_pos") g-object +(defcfun (icon-view-get-path-at-pos "gtk_icon_view_get_path_at_pos") (g-boxed-foreign tree-path :return) (icon-view g-object) (x :int) (y :int)) @@ -17,7 +17,7 @@ (defun icon-view-get-item-at-pos (icon-view x y) (with-foreign-objects ((path :pointer) (cell :pointer)) (when (gtk-icon-view-get-item-at-pos icon-view x y path cell) - (values (mem-ref path '(g-boxed-ref tree-path :owner :lisp)) + (values (mem-ref path '(g-boxed-foreign tree-path :return)) (mem-ref cell 'g-object))))) (export 'icon-view-get-item-at-pos) @@ -39,7 +39,7 @@ (defcfun (icon-view-set-cursor "gtk_icon_view_set_cursor") :void (icon-view g-object) - (path (g-boxed-ref tree-path)) + (path (g-boxed-foreign tree-path)) (cell g-object) (start-editing :boolean)) @@ -53,13 +53,13 @@ (defun icon-view-get-cursor (icon-view) (with-foreign-objects ((path :pointer) (cell :pointer)) (when (gtk-icon-view-get-cursor icon-view path cell) - (values (mem-ref path '(g-boxed-ref tree-path)) + (values (mem-ref path '(g-boxed-foreign tree-path :return)) (mem-ref cell 'g-object))))) (export 'icon-view-get-cursor) (defcallback gtk-icon-view-foreach-func-callback :void - ((icon-view g-object) (path (g-boxed-ref tree-path)) (data :pointer)) + ((icon-view g-object) (path (g-boxed-foreign tree-path)) (data :pointer)) (restart-case (funcall (get-stable-pointer-value data) icon-view @@ -81,23 +81,23 @@ (defcfun (icon-view-select-path "gtk_icon_view_select_path") :void (icon-view g-object) - (path (g-boxed-ref tree-path))) + (path (g-boxed-foreign tree-path))) (export 'icon-view-select-path) (defcfun (icon-view-unselect-path "gtk_icon_view_unselect_path") :void (icon-view g-object) - (path (g-boxed-ref tree-path))) + (path (g-boxed-foreign tree-path))) (export 'icon-view-unselect-path) -(defcfun (icon-view-path-selected-p "gtk_icon_view_is_path_selected") :boolean +(defcfun (icon-view-path-selected-p "gtk_icon_view_path_is_selected") :boolean (icon-view g-object) - (path (g-boxed-ref tree-path))) + (path (g-boxed-foreign tree-path))) (export 'icon-view-path-selected-p) -(defcfun (icon-view-selected-items "gtk_icon_view_get_selected_items") (glist (g-boxed-ref tree-path) :free-from-foreign t) +(defcfun (icon-view-selected-items "gtk_icon_view_get_selected_items") (glist (g-boxed-foreign tree-path) :free-from-foreign t) (icon-view g-object)) (export 'icon-view-selected-items) @@ -114,7 +114,7 @@ (defcfun gtk-icon-view-scroll-to-path :void (icon-view g-object) - (path (g-boxed-ref tree-path)) + (path (g-boxed-foreign tree-path)) (use-align :boolean) (row-align :float) (col-align :float)) @@ -132,16 +132,45 @@ (defun icon-view-get-visible-range (icon-view) (with-foreign-objects ((start-path :pointer) (end-path :pointer)) (when (gtk-icon-view-get-visible-range icon-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 'icon-view-get-visible-range) -; TODO: gtk_icon_view_set_tooltip_item - -; TODO: gtk_icon_view_set_tooltip_cell - -; TODO: gtk_icon_view_get_tooltip_context +(defcfun (icon-view-set-tooltip-item "gtk_icon_view_set_tooltip_item") :void + (icon-view (g-object icon-view)) + (tooltip (g-object tooltip)) + (path (g-boxed-foreign tree-path))) + +(export 'icon-view-set-tooltip-item) + +(defcfun (icon-view-set-tooltip-cell "gtk_icon_view_set_tooltip_cell") :void + (icon-view (g-object icon-view)) + (tooltip (g-object tooltip)) + (path (g-boxed-foreign tree-path)) + (cell-renderer (g-object cell-renderer))) + +(export 'icon-view-set-tooltip-cell) + +(defcfun gtk-icon-view-get-tooltip-context :boolean + (icon-view (g-object icon-view)) + (x (:pointer :int)) + (y (:pointer :int)) + (keyboard-tip :boolean) + (model (:pointer (g-object tree-model))) + (path (:pointer (g-boxed-foreign tree-path))) + (iter (g-boxed-foreign tree-iter))) + +(defun icon-view-get-tooltip-context (icon-view x y keyboard-tip) + (with-foreign-objects ((xx :int) (yy :int) (model-ptr :pointer) (path-ptr :pointer)) + (setf (mem-ref xx :int) x + (mem-ref yy :int) y) + (let ((iter (make-tree-iter))) + (when (gtk-icon-view-get-tooltip-context icon-view xx yy keyboard-tip model-ptr path-ptr iter) + (values (mem-ref xx :int) (mem-ref yy :int) + (convert-from-foreign (mem-ref model-ptr :pointer) '(g-object tree-model)) + (convert-from-foreign (mem-ref path-ptr :pointer) '(g-boxed-foreign tree-path :return)) + iter))))) ; TODO: gtk_icon_view_enable_model_drag_source