Add Gdk/Pango-interaction
[cl-gtk2.git] / gdk / gdk.objects.lisp
index f3eb67a..2f59777 100644 (file)
   (:translate 1)
   (:remove 2))
 
-(define-g-flags "GdkModifierType"
-    gdk-modifier-type
-    (:export t :type-initializer "gdk_modifier_type_get_type")
-  (:shift-mask 1)
-  (:lock-mask 2)
-  (:control-mask 4)
-  (:mod1-mask 8)
-  (:mod2-mask 16)
-  (:mod3-mask 32)
-  (:mod4-mask 64)
-  (:mod5-mask 128)
-  (:button1-mask 256)
-  (:button2-mask 512)
-  (:button3-mask 1024)
-  (:button4-mask 2048)
-  (:button5-mask 4096)
-  (:super-mask 67108864)
-  (:hyper-mask 134217728)
-  (:meta-mask 268435456)
-  (:release-mask 1073741824)
-  (:modifier-mask 1543512063))
-
 (define-g-flags "GdkWMDecoration"
     gdk-w-m-decoration
     (:export t :type-initializer "gdk_wm_decoration_get_type")
 (define-g-enum "GdkColorspace" colorspace ()
   :rgb)
 
+(define-g-enum "GdkAxisUse"
+    axis-use
+    (:export t :type-initializer "gdk_axis_use_get_type")
+  (:ignore 0)
+  (:x 1)
+  (:y 2)
+  (:pressure 3)
+  (:xtilt 4)
+  (:ytilt 5)
+  (: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
 
 
 ;;;FIXME: Check correct type
+#+ windows
+(defctype native-window :pointer)
+#- windows
 (defctype native-window :uint32)
 
 (define-foreign-type fixed-array ()
               :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))
 
 (export (boxed-related-symbols 'event))
 
-(define-g-object-class "GdkDragContext" drag-context () ())
+(define-g-object-class "GdkDragContext" drag-context ()
+  ((: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 ()
     ((colorspace pixbuf-colorspace "colorspace" "GdkColorspace" t nil)
 
 (define-g-object-class "GdkPixmap" pixmap (:superclass drawable) ())
 
-(define-g-object-class "GdkKeymap" keymap () ())
+(define-g-object-class "GdkKeymap" keymap
+  (:superclass g-object :export t :interfaces
+               nil :type-initializer "gdk_keymap_get_type")
+  ((:cffi direction keymap-direction pango:pango-direction
+          "gdk_keymap_get_direction" nil)
+   (:cffi has-bidi-layouts keymap-has-bidi-layouts :boolean
+          "gdk_keymap_have_bidi_layouts" nil)
+   (:cffi caps-lock-state keymap-caps-lock-state :boolean
+          "gdk_keymap_get_caps_lock_state" nil)))
+
+(define-g-boxed-cstruct keymap-key nil
+  (keycode :uint :initform 0)
+  (group :int :initform 0)
+  (level :int :initform 0))
 
 (define-g-boxed-cstruct gdk-window-attr nil
   (title (:string :free-from-foreign nil) :initform nil)
 
 (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)))
+