3 (define-g-boxed-cstruct border "GtkBorder"
4 (left :int :initform 0)
5 (right :int :initform 0)
7 (bottom :int :initform 0))
9 (define-foreign-type pointer-as-integer-foreign-type ()
11 (:actual-type :pointer)
12 (:simple-parser pointer-as-integer))
14 (defmethod translate-to-foreign (value (type pointer-as-integer-foreign-type))
17 (defmethod translate-from-foreign (value (type pointer-as-integer-foreign-type))
18 (pointer-address value))
20 (define-g-boxed-cstruct tree-iter "GtkTreeIter"
21 (stamp :int :initform 0)
22 (user-data pointer-as-integer :initform 0)
23 (user-data-2 pointer-as-integer :initform 0)
24 (user-data-3 pointer-as-integer :initform 0))
27 (export 'tree-iter-stamp)
28 (export 'tree-iter-user-data)
30 (defctype tree-path :pointer)
32 (defcfun gtk-tree-path-new :pointer)
33 (defcfun gtk-tree-path-free :void (path :pointer))
35 (define-g-boxed-opaque tree-path "GtkTreePath"
36 :alloc (gtk-tree-path-new))
38 (defcfun (%gtk-tree-path-get-depth "gtk_tree_path_get_depth") :int
41 (defcfun (%gtk-tree-path-get-indices "gtk_tree_path_get_indices") (:pointer :int)
44 (defcfun (%gtk-tree-path-append-index "gtk_tree_path_append_index") :void
48 (defun tree-path-indices (path)
49 (tree-path-get-indices path))
51 (defun (setf tree-path-indices) (new-value path)
52 (tree-path-set-indices new-value path))
54 (defun tree-path-get-indices (path)
55 (setf path (pointer path))
56 (let ((n (%gtk-tree-path-get-depth path))
57 (indices (%gtk-tree-path-get-indices path)))
60 collect (mem-aref indices :int i))))
62 (defun tree-path-set-indices (indices path)
63 (setf path (pointer path))
65 repeat (%gtk-tree-path-get-depth path)
66 do (foreign-funcall "gtk_tree_path_up" :pointer path :boolean))
69 do(foreign-funcall "gtk_tree_path_append_index" :pointer path :int index :void)))
72 (export 'tree-path-indices)