X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=gtk%2Fgtk.objects.lisp;h=9b75582bd74c033df4b759e29b0d60f804605e76;hb=5fe17678137c04ece910ae65a35ee58a0c7761c7;hp=6e095ac5658bcbddbb984389f97f051af930e9b7;hpb=51aa0c04d9522fa9c17555cc779036aa9703ef02;p=cl-gtk2.git diff --git a/gtk/gtk.objects.lisp b/gtk/gtk.objects.lisp index 6e095ac..9b75582 100644 --- a/gtk/gtk.objects.lisp +++ b/gtk/gtk.objects.lisp @@ -1,48 +1,45 @@ (in-package :gtk) -(define-g-boxed-class "GtkBorder" border () +(define-g-boxed-cstruct border "GtkBorder" (left :int :initform 0) (right :int :initform 0) (top :int :initform 0) (bottom :int :initform 0)) -(defcstruct tree-iter - (stamp :int) - (user-data :pointer) - (user-data-2 :pointer) - (user-data-3 :pointer)) - -(defun tree-iter-get-stamp (i) (foreign-slot-value (pointer i) 'tree-iter 'stamp)) -(defun tree-iter-set-stamp (value i) (setf (foreign-slot-value (pointer i) 'tree-iter 'stamp) value)) -(defun tree-iter-get-user-data (i) (pointer-address (foreign-slot-value (pointer i) 'tree-iter 'user-data))) -(defun tree-iter-set-user-data (value i) (setf (foreign-slot-value (pointer i) 'tree-iter 'user-data) (make-pointer value))) - -(defun tree-iter-alloc () (glib::g-malloc (foreign-type-size 'tree-iter))) -(defun tree-iter-free (v) (glib::g-free v)) - -(define-g-boxed-ref "GtkTreeIter" tree-iter - (:slots (stamp :reader tree-iter-get-stamp :writer tree-iter-set-stamp :accessor tree-iter-stamp) - (user-data :reader tree-iter-get-user-data :writer tree-iter-set-user-data :accessor tree-iter-user-data)) - (:alloc-function tree-iter-alloc) - (:free-function tree-iter-free)) +(define-g-boxed-cstruct tree-iter "GtkTreeIter" + (stamp :int :initform 0) + (user-data :pointer :initform (null-pointer)) + (user-data-2 :pointer :initform (null-pointer)) + (user-data-3 :pointer :initform (null-pointer))) (export 'tree-iter) (export 'tree-iter-stamp) (export 'tree-iter-user-data) (defctype tree-path :pointer) + +(defcfun gtk-tree-path-new :pointer) +(defcfun gtk-tree-path-free :void (path :pointer)) + +(define-g-boxed-opaque tree-path "GtkTreePath" + :alloc (gtk-tree-path-new)) + (defcfun (%gtk-tree-path-get-depth "gtk_tree_path_get_depth") :int (path tree-path)) (defcfun (%gtk-tree-path-get-indices "gtk_tree_path_get_indices") (:pointer :int) (path tree-path)) -(defcfun (%gtk-tree-path-new "gtk_tree_path_new") :pointer) - (defcfun (%gtk-tree-path-append-index "gtk_tree_path_append_index") :void (path :pointer) (index :int)) +(defun tree-path-indices (path) + (tree-path-get-indices path)) + +(defun (setf tree-path-indices) (new-value path) + (tree-path-set-indices new-value path)) + (defun tree-path-get-indices (path) (setf path (pointer path)) (let ((n (%gtk-tree-path-get-depth path)) @@ -60,13 +57,5 @@ for index in indices do(foreign-funcall "gtk_tree_path_append_index" :pointer path :int index :void))) -(defcfun gtk-tree-path-new :pointer) -(defcfun gtk-tree-path-free :void (path :pointer)) - -(define-g-boxed-ref "GtkTreePath" tree-path - (:alloc-function gtk-tree-path-new) - (:free-function gtk-tree-path-free) - (:slots (indices :reader tree-path-get-indices :writer tree-path-set-indices :accessor tree-path-indices))) - (export 'tree-path) (export 'tree-path-indices)