Typo.
[cl-gtk2.git] / gdk / gdk.objects.lisp
index 0f076dd..dede160 100644 (file)
   (: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)
 
   (:wheel 6)
   (:last 7))
 
+(define-g-enum "GdkDragProtocol"
+    gdk-drag-protocol
+    (:export t :type-initializer "gdk_drag_protocol_get_type")
+  (:motif 0)
+  (:xdnd 1)
+  (:rootwin 2)
+  (:none 3)
+  (:win32-dropfiles 4)
+  (:ole2 5)
+  (:local 6))
+
+(define-g-flags "GdkDragAction"
+    gdk-drag-action
+    (:export t :type-initializer "gdk_drag_action_get_type")
+  (:default 1)
+  (:copy 2)
+  (:move 4)
+  (:link 8)
+  (: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
 (defmethod translate-to-foreign (value (type gdk-atom-as-string-type))
   (gdk-atom-intern value nil))
 
-(define-g-object-class "GdkWindow" gdk-window (:superclass drawable)
-   ((:cffi window-type gdk-window-window-type gdk-window-type
+(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
+                                               :type-initializer "gdk_window_object_get_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)
          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)
              (time :uint32)
              (x :double)
              (y :double)
-             (axes (fixed-array :double 2))
+             (axes (fixed-array :double 7))
              (state :uint)
              (button :uint)
-             (device (g-object device))
+             (device (g-object gdk-device))
              (x-root :double)
              (y-root :double))
             ((:scroll) event-scroll
              (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
              (time :uint32)
              (x :double)
              (y :double)
-             (axes (fixed-array :double 2))
+             (axes (fixed-array :double 7))
              (state modifier-type)
              (is-hint :int16)
-             (device (g-object device))
+             (device (g-object gdk-device))
              (x-root :double)
              (y-root :double))
             ((:expose) event-expose
               :drag-status
               :drop-start
               :drop-finished) event-dnd
-             (drag-context :pointer)
+             (drag-context (g-object drag-context))
              (time :uint32)
              (x-root :short)
              (y-root :short))
             ((: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)
 
 (export (boxed-related-symbols 'event))
 
-(define-g-object-class "GdkDragContext" drag-context () ())
-
-(define-g-object-class "GdkPixbuf" pixbuf ()
+(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
+          %gdk-drag-context-get-is-source nil)
+   (:cffi source-window drag-context-source-window (g-object gdk-window)
+          %gdk-drag-context-get-source-window nil)
+   (:cffi dest-window drag-context-dest-window (g-object gdk-window)
+          %gdk-drag-context-get-dest-window nil)
+   (:cffi targets drag-context-targets (glib:glist gdk-atom-as-string :free-from-foreign nil)
+          %gdk-drag-context-get-targets nil)
+   (:cffi actions drag-context-actions gdk-drag-action
+          %gdk-drag-context-get-actions nil)
+   (:cffi suggested-action drag-context-suggested-action gdk-drag-action
+          %gdk-drag-context-get-suggested-action nil)
+   (:cffi action drag-context-action gdk-drag-action
+          %gdk-drag-context-get-action nil)
+   (:cffi start-time drag-context-start-time :uint32
+          %gdk-drag-context-get-start-time nil)))
+
+(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)
      (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
   ((: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
    (: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)
   ((: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)
    (: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)
    (: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
 
 (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