gtk: export GtkBorder
[cl-gtk2.git] / gtk / gtk.objects.lisp
1 (in-package :gtk)
2
3 (define-g-boxed-cstruct border "GtkBorder"
4   (left :int :initform 0)
5   (right :int :initform 0)
6   (top :int :initform 0)
7   (bottom :int :initform 0))
8
9 (at-init () (foreign-funcall "gtk_border_get_type" :int))
10
11 (export (boxed-related-symbols 'border))
12
13 (define-foreign-type pointer-as-integer-foreign-type ()
14   ()
15   (:actual-type :pointer)
16   (:simple-parser pointer-as-integer))
17
18 (defmethod translate-to-foreign (value (type pointer-as-integer-foreign-type))
19   (make-pointer value))
20
21 (defmethod translate-from-foreign (value (type pointer-as-integer-foreign-type))
22   (pointer-address value))
23
24 (define-g-boxed-cstruct tree-iter "GtkTreeIter"
25   (stamp :int :initform 0)
26   (user-data pointer-as-integer :initform 0)
27   (user-data-2 pointer-as-integer :initform 0)
28   (user-data-3 pointer-as-integer :initform 0))
29
30 (export 'tree-iter)
31 (export 'tree-iter-stamp)
32 (export 'tree-iter-user-data)
33
34 (defctype tree-path :pointer)
35
36 (defcfun gtk-tree-path-new :pointer)
37 (defcfun gtk-tree-path-free :void (path :pointer))
38
39 (define-g-boxed-opaque tree-path "GtkTreePath"
40   :alloc (gtk-tree-path-new))
41
42 (defcfun (%gtk-tree-path-get-depth "gtk_tree_path_get_depth") :int
43   (path tree-path))
44
45 (defcfun (%gtk-tree-path-get-indices "gtk_tree_path_get_indices") (:pointer :int)
46   (path tree-path))
47
48 (defcfun (%gtk-tree-path-append-index "gtk_tree_path_append_index") :void
49   (path :pointer)
50   (index :int))
51
52 (defun tree-path-indices (path)
53   (tree-path-get-indices path))
54
55 (defun (setf tree-path-indices) (new-value path)
56   (tree-path-set-indices new-value path))
57
58 (defun tree-path-get-indices (path)
59   (setf path (pointer path))
60   (let ((n (%gtk-tree-path-get-depth path))
61         (indices (%gtk-tree-path-get-indices path)))
62     (loop
63        for i from 0 below n
64        collect (mem-aref indices :int i))))
65
66 (defun tree-path-set-indices (indices path)
67   (setf path (pointer path))
68   (loop 
69      repeat (%gtk-tree-path-get-depth path)
70      do (foreign-funcall "gtk_tree_path_up" :pointer path :boolean))
71   (loop
72      for index in indices
73      do(foreign-funcall "gtk_tree_path_append_index" :pointer path :int index :void)))
74
75 (export 'tree-path)
76 (export 'tree-path-indices)