X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=gdk%2Fgdk.objects.lisp;h=b62007e3d0bee9df1fcb738db6f46a987ee126e8;hb=00346cf6cc21a7a1daa85c3c4bfcac0d86d023b2;hp=19cf6e318d11b90ab99f18e7c67c6665a562eb26;hpb=034e84622a14c46e317fb54a97b05518d77b782b;p=cl-gtk2.git diff --git a/gdk/gdk.objects.lisp b/gdk/gdk.objects.lisp index 19cf6e3..b62007e 100644 --- a/gdk/gdk.objects.lisp +++ b/gdk/gdk.objects.lisp @@ -435,6 +435,22 @@ (:bilevel 0) (:full 1)) +(define-g-enum "GdkInterpType" + gdk-interp-type + (:export t :type-initializer "gdk_interp_type_get_type") + (:nearest 0) + (:tiles 1) + (:bilinear 2) + (:hyper 3)) + +(define-g-enum "GdkPixbufRotation" + gdk-pixbuf-rotation + (:export t :type-initializer "gdk_pixbuf_rotation_get_type") + (:none 0) + (:counterclockwise 90) + (:upsidedown 180) + (:clockwise 270)) + (define-g-enum "GdkColorspace" colorspace () :rgb) @@ -471,6 +487,28 @@ (:private 16) (:ask 32)) +(define-g-enum "GdkInputSource" + gdk-input-source + (:export t :type-initializer "gdk_input_source_get_type") + (:mouse 0) + (:pen 1) + (:eraser 2) + (:cursor 3)) + +(define-g-enum "GdkInputMode" + gdk-input-mode + (:export t :type-initializer "gdk_input_mode_get_type") + (:disabled 0) + (:screen 1) + (:window 2)) + +(define-g-enum "GdkExtensionMode" + gdk-extension-mode + (:export t :type-initializer "gdk_extension_mode_get_type") + (:none 0) + (:all 1) + (:cursor 2)) + (export 'cursor-type) (define-g-boxed-cstruct geometry nil @@ -507,8 +545,80 @@ (defmethod translate-to-foreign (value (type gdk-atom-as-string-type)) (gdk-atom-intern value nil)) +(defcfun gdk-region-new :pointer) + +(define-g-boxed-opaque region nil :alloc (gdk-region-new)) + +(export (boxed-related-symbols 'region)) + +(define-g-boxed-cstruct point nil + (x :int :initform 0) + (y :int :initform 0)) + +(export (boxed-related-symbols 'point)) + +(define-g-boxed-cstruct span nil + (x :int :initform 0) + (y :int :initform 0) + (width :int :initform 0)) + +(export (boxed-related-symbols 'span)) + +(define-g-boxed-cstruct segment nil + (x1 :int :initform 0) + (y1 :int :initform 0) + (x2 :int :initform 0) + (y2 :int :initform 0)) + +(export (boxed-related-symbols 'segment)) + +(define-g-boxed-cstruct trapezoid nil + (y1 :double :initform 0d0) + (x11 :double :initform 0d0) + (x21 :double :initform 0d0) + (y2 :double :initform 0d0) + (x12 :double :initform 0d0) + (x22 :double :initform 0d0)) + +(export (boxed-related-symbols 'trapezoid)) + +(define-g-boxed-opaque font "GdkFont" + :alloc (error "GDK:FONT objects may not be allocated directly")) + +(export (boxed-related-symbols 'font)) + +(define-g-boxed-cstruct color "GdkColor" + (pixel :uint32 :initform 0) + (red :uint16 :initform 0) + (green :uint16 :initform 0) + (blue :uint16 :initform 0)) + +(export (boxed-related-symbols 'color)) + +(define-g-object-class "GdkDrawable" drawable (:type-initializer "gdk_drawable_get_type") + ((:cffi display drawable-display (g-object display) + "gdk_drawable_get_display" nil) + (:cffi screen drawable-screen (g-object screen) + "gdk_drawable_get_screen" nil) + (:cffi visual drawable-visual (g-object visual) + "gdk_drawable_get_visual" nil) + (:cffi colormap drawable-colormap (g-object colormap) + "gdk_drawable_get_colormap" "gdk_drawable_set_colormap") + (:cffi depth drawable-depth :int + "gdk_drawable_get_depth" nil) + (:cffi clip-region drawable-clip-region (g-boxed-foreign region :return) + "gdk_drawable_get_clip_region" nil) + (:cffi visible-region drawable-visible-region (g-boxed-foreign region :return) + "gdk_drawable_get_visible_region" nil))) + (define-g-object-class "GdkWindow" gdk-window (:superclass drawable) - ((:cffi window-type gdk-window-window-type gdk-window-type + (#+gtk-2.18 + (cursor gdk-window-cursor "cursor" + "GdkCursor" t t) + #-gtk-2.18 + (:cffi cursor gdk-window-cursor (g-boxed-foreign cursor :return) + "gdk_window_get_cursor" "gdk_window_set_cursor") + (:cffi window-type gdk-window-window-type gdk-window-type "gdk_window_get_window_type" nil) (:cffi is-destroyed gdk-window-is-destroyed :boolean "gdk_window_is_destroyed" nil) @@ -599,6 +709,16 @@ do (setf (aref result i) (mem-aref ptr el-type i))) result))) +(defmethod translate-to-foreign (value (type fixed-array)) + (if (null value) + (null-pointer) + (foreign-alloc (fixed-array-element-type type) :count (length value) :initial-contents value))) + +(defmethod free-translated-object (value (type fixed-array) param) + (declare (ignore param)) + (unless (null-pointer-p value) + (foreign-free value))) + (define-g-boxed-cstruct rectangle "GdkRectangle" (x :int :initform 0) (y :int :initform 0) @@ -632,7 +752,7 @@ (axes (fixed-array :double 2)) (state :uint) (button :uint) - (device (g-object device)) + (device (g-object gdk-device)) (x-root :double) (y-root :double)) ((:scroll) event-scroll @@ -641,7 +761,7 @@ (y :double) (state modifier-type) (direction scroll-direction) - (device (g-object device)) + (device (g-object gdk-device)) (x-root :double) (y-root :double)) ((:motion-notify) event-motion @@ -651,7 +771,7 @@ (axes (fixed-array :double 2)) (state modifier-type) (is-hint :int16) - (device (g-object device)) + (device (g-object gdk-device)) (x-root :double) (y-root :double)) ((:expose) event-expose @@ -703,7 +823,7 @@ ((:proximity-in :proximity-out) event-proximity (time :uint32) - (device (g-object device))) + (device (g-object gdk-device))) ((:client-event) event-client (message-time gdk-atom) (data-format :ushort) @@ -734,7 +854,7 @@ (export (boxed-related-symbols 'event)) -(define-g-object-class "GdkDragContext" drag-context () +(define-g-object-class "GdkDragContext" drag-context (:type-initializer "gdk_drag_context_get_type") ((:cffi protocol drag-context-protocol gdk-drag-protocol %gdk-drag-context-get-protocol nil) (:cffi is-source drag-context-is-source :boolean @@ -754,7 +874,7 @@ (:cffi start-time drag-context-start-time :uint32 %gdk-drag-context-get-start-time nil))) -(define-g-object-class "GdkPixbuf" pixbuf () +(define-g-object-class "GdkPixbuf" pixbuf (:type-initializer "gdk_pixbuf_get_type") ((colorspace pixbuf-colorspace "colorspace" "GdkColorspace" t nil) (n-channels pixbuf-n-channels "n-channels" "gint" t nil) (has-alpha pixbuf-has-alpha "has-alpha" "gboolean" t nil) @@ -764,7 +884,7 @@ (rowstride pixbuf-rowstride "rowstride" "gint" t nil) (pixels pixbuf-pixels "pixels" "gpointer" t nil))) -(define-g-object-class "GdkPixbufAnimation" pixbuf-animation () +(define-g-object-class "GdkPixbufAnimation" pixbuf-animation (:type-initializer "gdk_pixbuf_animation_get_type") nil) (define-g-object-class "GdkImage" gdk-image @@ -774,7 +894,7 @@ ((:cffi colormap gdk-image-colormap (g-object gdk-colormap) "gdk_image_get_colormap" "gdk_image_set_colormap"))) -(define-g-object-class "GdkDisplay" display () +(define-g-object-class "GdkDisplay" display (:type-initializer "gdk_display_get_type") ((:cffi name display-name (glib:g-string :free-from-foreign nil) "gdk_display_get_name" nil) (:cffi n-screens display-n-screens :int @@ -804,12 +924,12 @@ (:cffi core-pointer display-core-pointer g-object "gdk_display_get_core_pointer" nil))) -(define-g-object-class "GdkDisplayManager" display-manager () +(define-g-object-class "GdkDisplayManager" display-manager (:type-initializer "gdk_display_manager_get_type") ((default-display display-manager-default-display "default-display" "GdkDisplay" t t) (:cffi displays display-manager-displays (glib:gslist (g-object display) :free-from-foreign t) "gdk_display_manager_list_displays" nil))) -(define-g-object-class "GdkVisual" visual () +(define-g-object-class "GdkVisual" visual (:type-initializer "gdk_visual_get_type") ((:cffi screen visual-screen (g-object screen) "gdk_visual_get_screen" nil) (:cffi visual-type visual-visual-type visual-type gdk-visual-get-visual-type nil) (:cffi depth visual-depth :int gdk-visual-get-depth nil) @@ -833,9 +953,9 @@ ((:cffi visual colormap-visual (g-object visual) "gdk_colormap_get_visual" nil) (:cffi screen colormap-screen (g-object screen) - "gdk_colormap_get_screeen" nil))) + "gdk_colormap_get_screen" nil))) -(define-g-object-class "GdkScreen" screen () +(define-g-object-class "GdkScreen" screen (:type-initializer "gdk_screen_get_type") ((font-options screen-font-options "font-options" "gpointer" t t) (resolution screen-resolution "resolution" "gdouble" t t) (:cffi default-colormap screen-default-colormap (g-object colormap) @@ -881,57 +1001,7 @@ (:cffi window-stack screen-window-stack (glib:glist (g-object gdk-window) :free-from-foreign t) "gdk_screen_get_window_stack" nil))) -(defcfun gdk-region-new :pointer) - -(define-g-boxed-opaque region nil :alloc (gdk-region-new)) - -(export (boxed-related-symbols 'region)) - -(define-g-boxed-cstruct point nil - (x :int :initform 0) - (y :int :initform 0)) - -(export (boxed-related-symbols 'point)) - -(define-g-boxed-cstruct span nil - (x :int :initform 0) - (y :int :initform 0) - (width :int :initform 0)) - -(export (boxed-related-symbols 'span)) - -(define-g-boxed-cstruct segment nil - (x1 :int :initform 0) - (y1 :int :initform 0) - (x2 :int :initform 0) - (y2 :int :initform 0)) - -(export (boxed-related-symbols 'segment)) - -(define-g-boxed-cstruct trapezoid nil - (y1 :double :initform 0d0) - (x11 :double :initform 0d0) - (x21 :double :initform 0d0) - (y2 :double :initform 0d0) - (x12 :double :initform 0d0) - (x22 :double :initform 0d0)) - -(export (boxed-related-symbols 'trapezoid)) - -(define-g-boxed-opaque font "GdkFont" - :alloc (error "GDK:FONT objects may not be allocated directly")) - -(export (boxed-related-symbols 'font)) - -(define-g-boxed-cstruct color "GdkColor" - (pixel :uint32 :initform 0) - (red :uint16 :initform 0) - (green :uint16 :initform 0) - (blue :uint16 :initform 0)) - -(export (boxed-related-symbols 'color)) - -(define-g-object-class "GdkGC" graphics-context () +(define-g-object-class "GdkGC" graphics-context (:type-initializer "gdk_gc_get_type") ((:cffi screen graphics-context-screen (g-object screen) "gdk_gc_get_screen" nil) (:cffi foreground graphics-context-foreground (g-boxed-foreign color) @@ -965,23 +1035,7 @@ (:cffi colormap graphics-context-colormap (g-object colormap) "gdk_gc_get_colormap" "gdk_gc_set_colormap"))) -(define-g-object-class "GdkDrawable" drawable () - ((:cffi display drawable-display (g-object display) - "gdk_drawable_get_display" nil) - (:cffi screen drawable-screen (g-object screen) - "gdk_drawable_get_screen" nil) - (:cffi visual drawable-visual (g-object visual) - "gdk_drawable_get_visual" nil) - (:cffi colormap drawable-colormap (g-object colormap) - "gdk_drawable_get_colormap" "gdk_drawable_set_colormap") - (:cffi depth drawable-depth :int - "gdk_drawable_get_depth" nil) - (:cffi clip-region drawable-clip-region (g-boxed-foreign region :return) - "gdk_drawable_get_clip_region" nil) - (:cffi visible-region drawable-visible-region (g-boxed-foreign region :return) - "gdk_drawable_get_visible_region" nil))) - -(define-g-object-class "GdkPixmap" pixmap (:superclass drawable) ()) +(define-g-object-class "GdkPixmap" pixmap (:superclass drawable :type-initializer "gdk_pixmap_get_type") ()) (define-g-object-class "GdkKeymap" keymap (:superclass g-object :export t :interfaces @@ -1017,3 +1071,41 @@ (export (boxed-related-symbols 'gdk-window-attr)) +(define-g-object-class "GdkDevice" gdk-device + (:superclass g-object :export t :interfaces + nil :type-initializer + "gdk_device_get_type") + ((:cffi name gdk-device-name :string + %gdk-device-name nil) + (:cffi source gdk-device-source gdk-input-source + %gdk-device-source "gdk_device_set_source") + (:cffi mode gdk-device-mode gdk-input-mode + %gdk-device-mode gdk_device_set_mode) + (:cffi has-cursor gdk-device-has-cursor :boolean + %gdk-device-has-cursor nil) + (:cffi n-axes gdk-device-n-axes :int + %gdk-device-n-axes nil) + (:cffi axes gdk-device-axes nil + %gdk-device-axes nil) + (:cffi keys gdk-device-keys nil + %gdk-device-keys nil) + (:cffi n-keys gdk-device-n-keys nil + %gdk-device-n-keys nil))) + +(define-g-object-class "GdkAppLaunchContext" + gdk-app-launch-context + (:superclass g-object :export t + :interfaces nil :type-initializer + "gdk_app_launch_context_get_type") + ((:cffi display gdk-app-launch-context-display (g-object display) + nil "gdk_app_launch_context_set_display") + (:cffi screen gdk-app-launch-context-screen (g-object screen) + nil "gdk_app_launch_context_set_screen") + (:cffi desktop gdk-app-launch-context-desktop :int + nil "gdk_app_launch_context_set_desktop") + (:cffi timestamp gdk-app-launch-context-timestamp :uint32 + nil "gdk_app_launch_context_set_timestamp") + (:cffi icon gdk-app-launch-context-icon g-object + nil "gdk_app_launch_context_set_icon") + (:cffi icon-name gdk-app-launch-context-icon-name :string + nil "gdk_app_launch_context_set_icon_name"))) ;; TODO: GIcon