3 (define-g-enum "GdkGrabStatus" grab-status () :success :already-grabbed :invalid-time :not-viewable :frozen)
5 (define-g-object-class "GdkDisplay" display () ())
7 (define-g-object-class "GdkDisplayManager" display-manager ()
8 ((default-display display-manager-default-display "default-display" "GdkDisplay" t t)))
10 (define-g-object-class "GdkScreen" screen ()
11 ((font-options screen-font-options "font-options" "gpointer" t t)
12 (resolution screen-resolution "resolution" "gdouble" t t)))
14 (define-g-object-class "GdkGC" graphics-context () ())
16 (define-g-object-class "GdkDrawable" drawable () ())
18 (define-g-object-class "GdkPixmap" pixmap (:superclass drawable) ())
20 (define-g-object-class "GdkWindow" gdk-window (:superclass drawable) ())
22 (define-g-object-class "GdkKeymap" keymap () ())
24 (define-g-enum "GdkEventType" event-type ()
25 (:nothing -1) (:delete 0)
26 (:destroy 1) (:expose 2) (:motion-notify 3)
27 (:button-press 4) (:2button-press 5) (:3button-press 6)
28 (:button-release 7) (:key-press 8) (:key-release 9)
29 (:enter-notify 10) (:leave-notify 11) (:focus-change 12)
30 (:configure 13) (:map 14) (:unmap 15) (:property-notify 16)
31 (:selection-clear 17) (:selection-request 18)
32 (:selection-notify 19) (:proximity-in 20)
33 (:proximity-out 21) (:drag-enter 22) (:drag-leave 23)
34 (:drag-motion 24) (:drag-status 25) (:drop-start 26)
35 (:drop-finished 27) (:client-event 28)
36 (:visibility-notify 29) (:no-expose 30) (:scroll 31)
37 (:window-state 32) (:setting 33) (:owner-change 34)
38 (:grab-broken 35) (:damage 36))
40 (gobject::define-g-flags "GdkModifierType" modifier-type ()
41 (:shift-mask 1) (:lock-mask 2) (:control-mask 4)
42 (:mod1-mask 8) (:mod2-mask 16) (:mod3-mask 32)
43 (:mod4-mask 64) (:mod5-mask 128)
44 (:button1-mask 256) (:button2-mask 512)
45 (:button3-mask 1024) (:button4-mask 2048)
46 (:button5-mask 4096) (:super-mask 67108864)
47 (:hyper-mask 134217728) (:meta-mask 268435456)
48 (:release-mask 1073741824)
49 (:modifier-mask 1543512063))
51 (define-g-enum "GdkScrollDirection" scroll-direction ()
55 (define-g-enum "GdkVisibilityState" visibility-state ()
57 (:partial 1) (:fully-obscured 2))
59 (define-g-enum "GdkPropertyState" property-state ()
62 (define-g-flags "GdkWindowState" window-state ()
64 (:iconified 2) (:maximized 4) (:sticky 8) (:fullscreen 16)
65 (:above 32) (:below 64))
67 (define-g-enum "GdkSettingAction" setting-action ()
71 (define-g-enum "GdkOwnerChange" owner-change ()
73 (:destroy 1) (:close 2))
75 (define-g-flags "GdkEventMask" event-mask ()
77 (:pointer-motion-mask 4) (:pointer-motion-hint-mask 8)
78 (:button-motion-mask 16) (:button1-motion-mask 32)
79 (:button2-motion-mask 64) (:button3-motion-mask 128)
80 (:button-press-mask 256) (:button-release-mask 512)
81 (:key-press-mask 1024) (:key-release-mask 2048)
82 (:enter-notify-mask 4096) (:leave-notify-mask 8192)
83 (:focus-change-mask 16384) (:structure-mask 32768)
84 (:property-change-mask 65536)
85 (:visibility-notify-mask 131072)
86 (:proximity-in-mask 262144) (:proximity-out-mask 524288)
87 (:substructure-mask 1048576) (:scroll-mask 2097152)
88 (:all-events-mask 4194302))
90 (define-g-boxed-class ("GdkEvent" event-struct) event ()
92 (window (g-object gdk-window))
93 (send-event (:boolean :int8)))
95 (define-g-boxed-class nil event-key ((event type (:key-press :key-release)))
100 (string (:string :free-from-foreign nil :free-to-foreign nil))
101 (hardware-keycode :uint16)
105 (define-g-boxed-class nil event-button ((event type (:button-press :2button-press :3button-press :button-release)))
109 (axes (fixed-array :double 2))
112 (deviced (g-object device))
116 (define-g-boxed-class nil event-scroll ((event type :scroll))
120 (state modifier-type)
121 (direction scroll-direction)
122 (device (g-object device))
126 (define-g-boxed-class nil event-motion ((event type :motion-notify))
130 (axes (fixed-array :double 2))
131 (state modifier-type)
133 (device (g-object device))
137 (define-g-boxed-class "GdkRectangle" rectangle ()
143 (define-g-boxed-class nil event-expose ((event type :expose))
144 (area (g-boxed-inline rectangle))
148 (define-g-boxed-class nil event-visibility ((event type :visibility-notify))
149 (state visibility-state))
151 (define-g-boxed-class nil event-crossing ((event type (:enter-notify :leave-notify)))
152 (sub-window (g-object gdk-window))
159 (define-g-boxed-class nil event-focus ((event type :focus-change))
162 (define-g-boxed-class nil event-configure ((event type :configure))
168 (defctype gdk-atom :pointer)
170 (define-g-boxed-class nil event-property ((event type :property-notify))
173 (state property-state))
175 ;;;FIXME: Check correct type
176 (defctype native-window :uint32)
178 (define-g-boxed-class nil event-selection ((event type (:selection-clear :selection-notify :selection-request)))
183 (requestor native-window))
185 (define-g-object-class "GdkDragContext" drag-context () ())
187 (define-g-boxed-class nil event-dnd ((event type (:drag-enter :drag-leave :drag-motion :drag-status :drop-start :drop-finished)))
188 (drag-context :pointer)
193 (define-g-boxed-class nil event-proximity ((event type (:proximity-in :proximity-out)))
195 (device (g-object device)))
197 (defcunion event-client-data-union
202 (define-g-boxed-class nil event-client ((event type :client-event))
203 (message-time gdk-atom)
204 (data-format :ushort)
205 (data event-client-data-union :parser 'event-client-data-union-parser :unparser 'event-client-data-union-unparser))
207 (defun event-client-data-union-parser (name pointer)
208 (declare (ignore name))
209 (ecase (foreign-slot-value pointer 'event-client 'data-format)
210 (8 (convert-from-foreign (foreign-slot-pointer pointer 'event-client 'data) '(fixed-array :uchar 20)))
211 (16 (convert-from-foreign (foreign-slot-pointer pointer 'event-client 'data) '(fixed-array :ushort 20)))
212 (32 (convert-from-foreign (foreign-slot-pointer pointer 'event-client 'data) '(fixed-array :ulong 20)))))
214 (defun event-client-data-union-unparser (name pointer object)
215 (declare (ignore name))
216 (ecase (event-client-data-format object)
218 with array-ptr = (foreign-slot-pointer pointer 'event-client 'data)
219 for i from 0 below 20
220 do (setf (mem-aref array-ptr :uchar i) (aref (event-client-data object) i))))
222 with array-ptr = (foreign-slot-pointer pointer 'event-client 'data)
223 for i from 0 below 20
224 do (setf (mem-aref array-ptr :ushort i) (aref (event-client-data object) i))))
226 with array-ptr = (foreign-slot-pointer pointer 'event-client 'data)
227 for i from 0 below 20
228 do (setf (mem-aref array-ptr :ulong i) (aref (event-client-data object) i))))))
230 (define-g-boxed-class nil event-no-expose ((event type :no-expose)))
232 (define-g-boxed-class nil event-window-state ((event type :window-state))
233 (changed-mask window-state)
234 (new-window-state window-state))
236 (define-g-boxed-class nil event-setting ((event type :setting))
237 (action setting-action)
238 (name (:string :free-from-foreign nil :free-to-foreign nil)))
240 (define-g-boxed-class nil event-owner-change ((event type :owner-change))
241 (owner native-window)
242 (reason owner-change)
245 (selection-time :uint32))
247 (define-g-boxed-class nil event-grab-broken ((event type :grab-broken))
250 (grab-window (g-object gdk-window)))
252 (define-g-enum "GdkFontType" font-type () :font :fontset)
254 (define-g-boxed-class "GdkFont" font ()
259 (define-g-boxed-class "GdkColor" color ()
260 (pixel :uint32 :initform 0)
261 (red :uint16 :initform 0)
262 (green :uint16 :initform 0)
263 (blue :uint16 :initform 0))
265 (define-g-enum "GdkGravity" gravity ()
277 (define-g-boxed-class "GdkGeometry" geometry ()
278 (min-width :int :initform 0)
279 (min-height :int :initform 0)
280 (max-width :int :initform 0)
281 (max-height :int :initform 0)
282 (base-width :int :initform 0)
283 (base-height :int :initform 0)
284 (width-increment :int :initform 0)
285 (height-increment :int :initform 0)
286 (min-aspect :double :initform 0.0d0)
287 (max-aspect :double :initform 0.0d0)
288 (gravity gravity :initform :north-west))
290 (define-g-flags "GdkWindowHints" window-hints ()
291 :pos :min-size :max-size :base-size :aspect
292 :resize-inc :win-gravity :user-pos :user-size)
294 (define-g-enum "GdkWindowEdge" window-edge ()
295 (:north-west 0) (:north 1) (:north-east 2) (:west 3)
296 (:east 4) (:south-west 5) (:south 6) (:south-east 7))
298 (define-g-object-class "GdkPixbuf" pixbuf ()
299 ((colorspace pixbuf-colorspace "colorspace" "GdkColorspace" t nil)
300 (n-channels pixbuf-n-channels "n-channels" "gint" t nil)
301 (has-alpha pixbuf-has-alpha "has-alpha" "gboolean" t nil)
302 (bits-per-sample pixbuf-bits-per-sample "bits-per-sample" "gint" t nil)
303 (width pixbuf-width "width" "gint" t nil)
304 (height pixbuf-height "height" "gint" t nil)
305 (rowstride pixbuf-rowstride "rowstride" "gint" t nil)
306 (pixels pixbuf-pixels "pixels" "gpointer" t nil)))
308 (define-g-object-class "GdkPixbufAnimation" pixbuf-animation ()