(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))
(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)
(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))
(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
(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_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)
(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))
(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