X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/clg/blobdiff_plain/18c83e092e3dc05a65dd6411bdba7b60f88e9d9c..76ff9f3924bb9aa1b98b42e6e218918706e731e9:/gtk/gtktypes.lisp diff --git a/gtk/gtktypes.lisp b/gtk/gtktypes.lisp index ecd8ba0..d51c181 100644 --- a/gtk/gtktypes.lisp +++ b/gtk/gtktypes.lisp @@ -20,7 +20,7 @@ ;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -;; $Id: gtktypes.lisp,v 1.41 2006-02-06 11:59:47 espen Exp $ +;; $Id: gtktypes.lisp,v 1.46 2006-04-26 12:12:37 espen Exp $ (in-package "GTK") @@ -110,7 +110,9 @@ (defclass stock-item (struct) :accessor stock-item-translation-domain :initarg :translation-domain :type string)) - (:metaclass struct-class)) + (:metaclass struct-class) + (:ref stock-item-copy) + (:unref stock-item-free)) ;; We don't really need to access any slots in this class, so we just ;; specify the total size @@ -136,11 +138,17 @@ (register-type 'tree-path '|gtk_tree_path_get_type|) (deftype position () '(or int (enum (:start 0) (:end -1) (:first 0) (:last -1)))) -(defmethod reader-function ((type (eql 'position)) &rest args) - (declare (ignore type args)) - (reader-function 'int)) +(define-type-method from-alien-form ((type position) form &key ref) + (declare (ignore type ref)) + (from-alien-form 'int form)) +(define-type-method from-alien-function ((type position) &key ref) + (declare (ignore type ref)) + (from-alien-function 'int)) +(define-type-method reader-function ((type position) &optional ref) + (declare (ignore type ref)) + (reader-function 'int)) (define-types-by-introspection "Gtk" ;; Manually defined @@ -155,7 +163,7 @@ (define-types-by-introspection "Gtk" ("GtkWidget" :slots ((child-properties - :allocation :special + :special t :accessor widget-child-properties :type container-child) (window @@ -227,14 +235,13 @@ (define-types-by-introspection "Gtk" ((child :ignore t) (children :allocation :virtual - :getter container-children :setter (setf container-children) - ;; The following doesn't work because gtk_container_get_children doesn't - ;; increase the reference count of the children -; :getter "gtk_container_get_children" -; :reader container-children -; :type (glist widget) - ) + :getter "gtk_container_get_children" + :reader container-children + :type (glist (copy-of widget))) + (internal-children ; for debugging + :allocation :virtual + :getter container-internal-children) (child-type :allocation :virtual :getter "gtk_container_child_type" @@ -307,7 +314,7 @@ (default-widget :type boolean) (icon-list :allocation :virtual - :getter "gtk_window_get_icon_list" + :getter %window-get-icon-list :setter "gtk_window_set_icon_list" :accessor window-icon-list :initarg :icon-list @@ -337,6 +344,7 @@ (default-width :merge t :unbound -1) (default-height :merge t :unbound -1))) ("GtkWindowGroup" + :dependencies (window) :slots ((grabs :allocation :alien @@ -410,26 +418,26 @@ (default-height :merge t :unbound -1))) ("GtkScrolledWindow" :slots - (#-gtk2.8 + (#?-(pkg-exists-p "gtk+-2.0" :atleast-version "2.8.0") (hscrollbar :allocation :alien :reader scrolled-window-hscrollbar :type widget) - #-gtk2.8 + #?-(pkg-exists-p "gtk+-2.0" :atleast-version "2.8.0") (vscrollbar :allocation :alien :reader scrolled-window-vscrollbar :type widget) - #+gtk2.8 + #?(pkg-exists-p "gtk+-2.0" :atleast-version "2.8.0") (hscrollbar :allocation :virtual :getter "gtk_scrolled_window_get_hscrollbar" :reader scrolled-window-hscrollbar :type widget) - #+gtk2.8 + #?(pkg-exists-p "gtk+-2.0" :atleast-version "2.8.0") (vscrollbar :allocation :virtual - :getter "gtk_scrolled_window_get_hscrollbar" + :getter "gtk_scrolled_window_get_vscrollbar" :reader scrolled-window-vscrollbar :type widget))) @@ -478,7 +486,7 @@ (default-height :merge t :unbound -1))) :getter "gtk_menu_get_attach_widget" :reader menu-attach-widget :type widget) - #-gtk2.6 + #?-(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0") (tearoff-state :allocation :virtual :getter "gtk_menu_get_tearoff_state" @@ -487,6 +495,22 @@ (default-height :merge t :unbound -1))) :initarg :tearoff-state :type boolean))) + ("GtkPlug" + :slots + ((id + :allocation :virtual + :getter "gtk_plug_get_id" + :reader plug-id + :type gdk:native-window))) + + ("GtkSocket" + :slots + ((id + :allocation :virtual + :getter "gtk_socket_get_id" + :reader socket-id + :type gdk:native-window))) + ("GtkToolbar" :slots ((show-tooltips @@ -651,7 +675,7 @@ (default-height :merge t :unbound -1))) :accessor entry-completion :type entry-completion) (max-length :merge t :unbound 0) - #+gtk2.6 + #?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0") (width-chars :merge t :unbound -1))) ("GtkEntryCompletion" @@ -662,7 +686,7 @@ (default-height :merge t :unbound -1))) :reader entry-completion-entry :type entry) (minimum-key-length :merge t :unbound -1) - #+gtk2.6 + #?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0") (text-column :merge t :unbound -1))) ("GtkRadioButton" @@ -742,7 +766,7 @@ (default-height :merge t :unbound -1))) ("GtkImage" :slots ((file :ignore t) - #+gtk2.6 + #?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0") (pixel-size :merge t :unbound -1))) ("GtkLabel" @@ -1026,7 +1050,7 @@ (default-height :merge t :unbound -1))) :reader clipboard-display :type gdk:display))) - #+gtk2.6 + #?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0") ("GtkIconView" :slots ((text-column :merge t :setter %icon-view-set-text-column) @@ -1178,7 +1202,7 @@ (defclass accel-group-entry (struct) :type quark)) (:metaclass struct-class)) -#+gtk2.8 +#?(pkg-exists-p "gtk+-2.0" :atleast-version "2.8.0") (define-enum-type drop-position :no-drop :drop-into :drop-left :drop-right :drop-above :drop-below) @@ -1229,4 +1253,6 @@ (defclass selection-data (boxed) (defclass target-list (proxy) () - (:metaclass proxy-class)) + (:metaclass proxy-class) + (:ref target-list-ref) + (:unref target-list-unref))