3 (define-g-enum "GdkGrabStatus" grab-status
() :success
:already-grabbed
:invalid-time
:not-viewable
:frozen
)
5 (defcenum crossing-mode
:normal
:grab
:ungrab
:gtk-grab
:gtk-ungrab
:state-changed
)
6 (export 'crossing-mode
)
8 (defcenum notify-type
(:ancestor
0) :virtual
:inferior
:nonlinear
:nonlinear-virtual
:unknown
)
11 (gobject:define-g-enum
"GdkFillRule"
13 (:export t
:type-initializer
"gdk_fill_rule_get_type")
17 (define-g-enum "GdkOverlapType"
19 (:export t
:type-initializer
"gdk_overlap_type_get_type")
24 (define-g-object-class "GdkDisplay" display
()
25 ((:cffi name display-name
(glib:g-string
:free-from-foreign nil
)
26 "gdk_display_get_name" nil
)
27 (:cffi n-screens display-n-screens
:int
28 "gdk_display_get_n_screens" nil
)
29 (:cffi default-screen display-default-screen
(g-object screen
)
30 "gdk_display_get_default_screen" nil
)
31 (:cffi devices display-devices
(glib:glist g-object
:free-from-foreign nil
)
32 "gdk_display_list_devices" nil
)
33 (:cffi supports-cursor-color display-supports-cursor-color
:boolean
34 "gdk_display_supports_cursor_color" nil
)
35 (:cffi supports-cursor-alpha display-supports-color-alpha
:boolean
36 "gdk_display_supports_cursor_alpha" nil
)
37 (:cffi default-cursor-size display-default-cursor-size
:uint
38 "gdk_display_get_default_cursor_size" nil
)
39 (:cffi default-group display-default-group
(g-object gdk-window
)
40 "gdk_display_get_default_group" nil
)
41 (:cffi supports-selection-notification display-supports-selection-notification
:boolean
42 "gdk_display_supports_selection_notification" nil
)
43 (:cffi supports-clipboard-persistence display-supports-clipboard-persistence
:boolean
44 "gdk_display_supports_clipboard_persistence" nil
)
45 (:cffi supports-shapes display-supports-shapes
:boolean
46 "gdk_display_supports_shapes" nil
)
47 (:cffi supports-input-shapes display-supports-input-shapes
:boolean
48 "gdk_display_supports_input_shapes" nil
)
49 (:cffi supports-composite display-supports-composite
:boolean
50 "gdk_display_supports_composite" nil
)
51 (:cffi core-pointer display-core-pointer g-object
52 "gdk_display_get_core_pointer" nil
)))
54 ;gdk_display_get_screen
56 (define-g-object-class "GdkDisplayManager" display-manager
()
57 ((default-display display-manager-default-display
"default-display" "GdkDisplay" t t
)
58 (:cffi displays display-manager-displays
(glib:gslist
(g-object display
) :free-from-foreign t
)
59 "gdk_display_manager_list_displays" nil
)))
61 (define-g-object-class "GdkVisual" visual
() ())
63 (define-g-object-class "GdkColormap" gdk-colormap
64 (:superclass g-object
:export t
:interfaces
66 "gdk_colormap_get_type")
69 (define-g-object-class "GdkScreen" screen
()
70 ((font-options screen-font-options
"font-options" "gpointer" t t
)
71 (resolution screen-resolution
"resolution" "gdouble" t t
)
72 (:cffi default-colormap screen-default-colormap
(g-object colormap
)
73 "gdk_screen_get_default_colormap" "gdk_screen_set_default_colormap")
74 (:cffi system-colormap screen-system-colormap
(g-object colormap
)
75 "gdk_screen_get_system_colormap" nil
)
76 (:cffi system-visual screen-system-visual
(g-object visual
)
77 "gdk_screen_get_system_visual" nil
)
78 (:cffi rgb-colormap screen-rgb-colormap
(g-object colormap
)
79 "gdk_screen_get_rgb_colormap" nil
)
80 (:cffi rgb-visual screen-visual
(g-object visual
)
81 "gdk_screen_get_rgb_visual" nil
)
82 (:cffi rgba-colormap screen-rgba-colormap
(g-object colormap
)
83 "gdk_screen_get_rgba_colormap" nil
)
84 (:cffi rgba-visual screen-rgba-visual
(g-object visual
)
85 "gdk_screen_get_rgba_visual" nil
)
86 (:cffi composited-p screen-composited-p
:boolean
87 "gdk_screen_is_composited" nil
)
88 (:cffi root-window screen-root-window
(g-object gdk-window
)
89 "gdk_screen_get_root_window" nil
)
90 (:cffi display screen-display
(g-object display
)
91 "gdk_screen_get_display" nil
)
92 (:cffi number screen-number
:int
93 "gdk_screen_get_number" nil
)
94 (:cffi width screen-widget
:int
95 "gdk_screen_get_width" nil
)
96 (:cffi height screen-height
:int
97 "gdk_screen_get_height" nil
)
98 (:cffi width-mm screen-width-mm
:int
99 "gdk_screen_get_width_mm" nil
)
100 (:cffi height-mm screen-height-mm
:int
101 "gdk_screen_get_height_mm" nil
)
102 (:cffi visuals screen-visuals
(glib:glist
(g-object visual
) :free-from-foreign t
)
103 "gdk_screen_list_visuals" nil
)
104 (:cffi toplevel-windows screen-toplevel-windows
(glib:glist
(g-object gdk-window
) :free-from-foreign t
)
105 "gdk_screen_get_toplevel_windows" nil
)
106 (:cffi display-name screen-display-name
(glib:g-string
:free-from-foreign t
)
107 "gdk_screen_make_display_name" nil
)
108 (:cffi n-monitors screen-n-monitors
:int
109 "gdk_screen_get_n_monitors" nil
)
110 (:cffi active-window screen-active-window
(g-object gdk-window
)
111 "gdk_screen_get_active_window" nil
)
112 (:cffi window-stack screen-window-stack
(glib:glist
(g-object gdk-window
) :free-from-foreign t
)
113 "gdk_screen_get_window_stack" nil
)))
115 (defcfun gdk-region-new
:pointer
)
117 (define-g-boxed-opaque region nil
:alloc
(gdk-region-new))
119 (export (boxed-related-symbols 'region
))
121 (define-g-boxed-cstruct point nil
125 (export (boxed-related-symbols 'point
))
127 (define-g-boxed-cstruct span nil
132 (export (boxed-related-symbols 'span
))
134 (define-g-object-class "GdkGC" graphics-context
() ())
136 (define-g-object-class "GdkDrawable" drawable
() ())
138 (define-g-object-class "GdkPixmap" pixmap
(:superclass drawable
) ())
140 (define-g-object-class "GdkWindow" gdk-window
(:superclass drawable
) ())
142 (define-g-object-class "GdkKeymap" keymap
() ())
144 (define-g-enum "GdkEventType" event-type
()
145 (:nothing -
1) (:delete
0)
146 (:destroy
1) (:expose
2) (:motion-notify
3)
147 (:button-press
4) (:2button-press
5) (:3button-press
6)
148 (:button-release
7) (:key-press
8) (:key-release
9)
149 (:enter-notify
10) (:leave-notify
11) (:focus-change
12)
150 (:configure
13) (:map
14) (:unmap
15) (:property-notify
16)
151 (:selection-clear
17) (:selection-request
18)
152 (:selection-notify
19) (:proximity-in
20)
153 (:proximity-out
21) (:drag-enter
22) (:drag-leave
23)
154 (:drag-motion
24) (:drag-status
25) (:drop-start
26)
155 (:drop-finished
27) (:client-event
28)
156 (:visibility-notify
29) (:no-expose
30) (:scroll
31)
157 (:window-state
32) (:setting
33) (:owner-change
34)
158 (:grab-broken
35) (:damage
36))
160 (define-g-flags "GdkEventMask" gdk-event-mask
(:export t
:type-initializer
"gdk_event_mask_get_type")
161 (:exposure-mask
2) (:pointer-motion-mask
4)
162 (:pointer-motion-hint-mask
8) (:button-motion-mask
16)
163 (:button1-motion-mask
32) (:button2-motion-mask
64)
164 (:button3-motion-mask
128) (:button-press-mask
256)
165 (:button-release-mask
512) (:key-press-mask
1024)
166 (:key-release-mask
2048) (:enter-notify-mask
4096)
167 (:leave-notify-mask
8192) (:focus-change-mask
16384)
168 (:structure-mask
32768) (:property-change-mask
65536)
169 (:visibility-notify-mask
131072)
170 (:proximity-in-mask
262144) (:proximity-out-mask
524288)
171 (:substructure-mask
1048576) (:scroll-mask
2097152)
172 (:all-events-mask
4194302))
174 (define-g-enum "GdkExtensionMode" gdk-extension-mode
(:export t
:type-initializer
"gdk_extension_mode_get_type")
175 (:none
0) (:all
1) (:cursor
2))
177 (define-g-enum "GdkWindowTypeHint" gdk-window-type-hint
(:export t
:type-initializer
"gdk_window_type_hint_get_type")
178 (:normal
0) (:dialog
1) (:menu
2) (:toolbar
3)
179 (:splashscreen
4) (:utility
5) (:dock
6) (:desktop
7)
180 (:dropdown-menu
8) (:popup-menu
9) (:tooltip
10)
181 (:notification
11) (:combo
12) (:dnd
13))
183 (define-g-flags "GdkModifierType" modifier-type
()
184 (:shift-mask
1) (:lock-mask
2) (:control-mask
4)
185 (:mod1-mask
8) (:mod2-mask
16) (:mod3-mask
32)
186 (:mod4-mask
64) (:mod5-mask
128)
187 (:button1-mask
256) (:button2-mask
512)
188 (:button3-mask
1024) (:button4-mask
2048)
189 (:button5-mask
4096) (:super-mask
67108864)
190 (:hyper-mask
134217728) (:meta-mask
268435456)
191 (:release-mask
1073741824)
192 (:modifier-mask
1543512063))
194 (define-g-enum "GdkScrollDirection" scroll-direction
()
196 (:left
2) (:right
3))
198 (define-g-enum "GdkVisibilityState" visibility-state
()
200 (:partial
1) (:fully-obscured
2))
202 (define-g-enum "GdkPropertyState" property-state
()
205 (define-g-flags "GdkWindowState" window-state
()
207 (:iconified
2) (:maximized
4) (:sticky
8) (:fullscreen
16)
208 (:above
32) (:below
64))
210 (define-g-enum "GdkSettingAction" setting-action
()
211 (:new
0) (:changed
1)
214 (define-g-enum "GdkOwnerChange" owner-change
()
216 (:destroy
1) (:close
2))
218 (define-g-flags "GdkEventMask" event-mask
()
220 (:pointer-motion-mask
4) (:pointer-motion-hint-mask
8)
221 (:button-motion-mask
16) (:button1-motion-mask
32)
222 (:button2-motion-mask
64) (:button3-motion-mask
128)
223 (:button-press-mask
256) (:button-release-mask
512)
224 (:key-press-mask
1024) (:key-release-mask
2048)
225 (:enter-notify-mask
4096) (:leave-notify-mask
8192)
226 (:focus-change-mask
16384) (:structure-mask
32768)
227 (:property-change-mask
65536)
228 (:visibility-notify-mask
131072)
229 (:proximity-in-mask
262144) (:proximity-out-mask
524288)
230 (:substructure-mask
1048576) (:scroll-mask
2097152)
231 (:all-events-mask
4194302))
233 (define-g-enum "GdkFontType" font-type
() :font
:fontset
)
235 (define-g-enum "GdkGravity" gravity
()
247 (define-g-boxed-cstruct rectangle
"GdkRectangle"
250 (width :int
:initform
0)
251 (height :int
:initform
0))
253 (export (boxed-related-symbols 'rectangle
))
255 (define-g-boxed-cstruct font
"GdkFont"
256 (type font-type
:initform
:font
)
257 (ascent :int
:initform
0)
258 (descent :int
:initform
0))
260 (export (boxed-related-symbols 'font
))
262 (define-g-boxed-cstruct color
"GdkColor"
263 (pixel :uint32
:initform
0)
264 (red :uint16
:initform
0)
265 (green :uint16
:initform
0)
266 (blue :uint16
:initform
0))
268 (export (boxed-related-symbols 'color
))
270 (define-g-boxed-cstruct geometry
"GdkGeometry"
271 (min-width :int
:initform
0)
272 (min-height :int
:initform
0)
273 (max-width :int
:initform
0)
274 (max-height :int
:initform
0)
275 (base-width :int
:initform
0)
276 (base-height :int
:initform
0)
277 (width-increment :int
:initform
0)
278 (height-increment :int
:initform
0)
279 (min-aspect :double
:initform
0.0d0
)
280 (max-aspect :double
:initform
0.0d0
)
281 (gravity gravity
:initform
:north-west
))
283 (export (boxed-related-symbols 'geometry
))
285 (glib:at-init
() (foreign-funcall-pointer (foreign-symbol-pointer "gdk_cursor_get_type") () :int
))
287 (gobject:define-g-enum
"GdkCursorType" cursor-type
(:export t
:type-initializer
"gdk_cursor_type_get_type")
288 (:x-cursor
0) (:arrow
2) (:based-arrow-down
4)
289 (:based-arrow-up
6) (:boat
8) (:bogosity
10)
290 (:bottom-left-corner
12) (:bottom-right-corner
14)
291 (:bottom-side
16) (:bottom-tee
18) (:box-spiral
20)
292 (:center-ptr
22) (:circle
24) (:clock
26)
293 (:coffee-mug
28) (:cross
30) (:cross-reverse
32)
294 (:crosshair
34) (:diamond-cross
36) (:dot
38)
295 (:dotbox
40) (:double-arrow
42) (:draft-large
44)
296 (:draft-small
46) (:draped-box
48) (:exchange
50)
297 (:fleur
52) (:gobbler
54) (:gumby
56) (:hand1
58)
298 (:hand2
60) (:heart
62) (:icon
64) (:iron-cross
66)
299 (:left-ptr
68) (:left-side
70) (:left-tee
72)
300 (:leftbutton
74) (:ll-angle
76) (:lr-angle
78)
301 (:man
80) (:middlebutton
82) (:mouse
84)
302 (:pencil
86) (:pirate
88) (:plus
90)
303 (:question-arrow
92) (:right-ptr
94)
304 (:right-side
96) (:right-tee
98) (:rightbutton
100)
305 (:rtl-logo
102) (:sailboat
104)
306 (:sb-down-arrow
106) (:sb-h-double-arrow
108)
307 (:sb-left-arrow
110) (:sb-right-arrow
112)
308 (:sb-up-arrow
114) (:sb-v-double-arrow
116)
309 (:shuttle
118) (:sizing
120) (:spider
122)
310 (:spraycan
124) (:star
126) (:target
128)
311 (:tcross
130) (:top-left-arrow
132)
312 (:top-left-corner
134) (:top-right-corner
136)
313 (:top-side
138) (:top-tee
140) (:trek
142)
314 (:ul-angle
144) (:umbrella
146) (:ur-angle
148)
315 (:watch
150) (:xterm
152) (:last-cursor
153)
316 (:blank-cursor -
2) (:cursor-is-pixmap -
1))
318 (export 'cursor-type
)
320 (define-g-boxed-cstruct cursor
"GdkCursor"
323 (export (boxed-related-symbols 'cursor
))
325 (defctype gdk-atom
:pointer
)
327 (define-foreign-type gdk-atom-as-string-type
()
329 (:actual-type
:pointer
)
330 (:simple-parser gdk-atom-as-string
))
332 (defmethod translate-from-foreign (value (type gdk-atom-as-string-type
))
333 (gdk-atom-name value
))
335 (defmethod translate-to-foreign (value (type gdk-atom-as-string-type
))
336 (gdk-atom-intern value nil
))
338 ;;;FIXME: Check correct type
339 (defctype native-window
:uint32
)
341 (define-foreign-type fixed-array
()
342 ((element-type :reader fixed-array-element-type
:initarg
:element-type
:initform
(error "Element type must be specified"))
343 (array-size :reader fixed-array-array-size
:initarg
:array-size
:initform
(error "Array size must be specified")))
344 (:actual-type
:pointer
)
346 "CFFI foreign type for an array of a fixed length. Slot @code{element-type}@see-slot{fixed-array-element-type} specifies the type of elements and slot @code{array-size}@see-slot{fixed-array-array-size} specifies the size of array (in elements)."))
348 (define-parse-method fixed-array
(element-type array-size
)
349 (make-instance 'fixed-array
:element-type element-type
:array-size array-size
))
351 (defmethod translate-from-foreign (ptr (type fixed-array
))
352 (when (not (null-pointer-p ptr
))
353 (let ((result (make-array (fixed-array-array-size type
)))
354 (el-type (fixed-array-element-type type
)))
356 for i from
0 below
(fixed-array-array-size type
)
357 do
(setf (aref result i
) (mem-aref ptr el-type i
)))
360 (define-g-boxed-variant-cstruct event
"GdkEvent"
362 (window (g-object gdk-window
))
363 (send-event (:boolean
:int8
))
365 ((:key-press
:key-release
) event-key
367 (state modifier-type
)
370 (string (:string
:free-from-foreign nil
371 :free-to-foreign nil
))
372 (hardware-keycode :uint16
)
378 :button-release
) event-button
382 (axes (fixed-array :double
2))
385 (device (g-object device
))
388 ((:scroll
) event-scroll
392 (state modifier-type
)
393 (direction scroll-direction
)
394 (device (g-object device
))
397 ((:motion-notify
) event-motion
401 (axes (fixed-array :double
2))
402 (state modifier-type
)
404 (device (g-object device
))
407 ((:expose
) event-expose
408 (area rectangle
:inline t
)
411 ((:visibility-notify
) event-visibility
412 (state visibility-state
))
413 ((:enter-notify
:leave-notify
) event-crossing
414 (sub-window (g-object gdk-window
))
424 ((:focus-change
) event-focus
426 ((:configure
) event-configure
431 ((:property-notify
) event-property
434 (state property-state
))
437 :selection-request
) event-selection
442 (requestor native-window
))
448 :drop-finished
) event-dnd
449 (drag-context :pointer
)
454 :proximity-out
) event-proximity
456 (device (g-object device
)))
457 ((:client-event
) event-client
458 (message-time gdk-atom
)
459 (data-format :ushort
)
460 (:variant data-format
462 (data :uchar
:count
20))
464 (data :ushort
:count
10))
466 (data :ulong
:count
5))))
467 ((:no-expose
) event-no-expose
)
468 ((:window-state
) event-window-state
469 (changed-mask window-state
)
470 (new-window-state window-state
))
471 ((:setting
) event-setting
472 (action setting-action
)
473 (name (:string
:free-from-foreign nil
:free-to-foreign nil
)))
474 ((:owner-change
) event-owner-change
475 (owner native-window
)
476 (reason owner-change
)
479 (selection-time :uint32
))
480 ((:grab-broken
) event-grab-broken
483 (grab-window (g-object gdk-window
)))))
485 (export (boxed-related-symbols 'event
))
487 (define-g-object-class "GdkDragContext" drag-context
() ())
489 (define-g-flags "GdkWindowHints" window-hints
()
490 :pos
:min-size
:max-size
:base-size
:aspect
491 :resize-inc
:win-gravity
:user-pos
:user-size
)
493 (define-g-enum "GdkWindowEdge" window-edge
()
494 (:north-west
0) (:north
1) (:north-east
2) (:west
3)
495 (:east
4) (:south-west
5) (:south
6) (:south-east
7))
497 (define-g-enum "GdkColorspace" colorspace
()
500 (define-g-object-class "GdkPixbuf" pixbuf
()
501 ((colorspace pixbuf-colorspace
"colorspace" "GdkColorspace" t nil
)
502 (n-channels pixbuf-n-channels
"n-channels" "gint" t nil
)
503 (has-alpha pixbuf-has-alpha
"has-alpha" "gboolean" t nil
)
504 (bits-per-sample pixbuf-bits-per-sample
"bits-per-sample" "gint" t nil
)
505 (width pixbuf-width
"width" "gint" t nil
)
506 (height pixbuf-height
"height" "gint" t nil
)
507 (rowstride pixbuf-rowstride
"rowstride" "gint" t nil
)
508 (pixels pixbuf-pixels
"pixels" "gpointer" t nil
)))
510 (define-g-object-class "GdkPixbufAnimation" pixbuf-animation
()
513 (define-g-object-class "GdkImage" gdk-image
514 (:superclass g-object
:export t
:interfaces
515 nil
:type-initializer
516 "gdk_image_get_type")