Add error handling to gtk:ui-manager-load-from-file and gtk:ui-manager-load-from...
[cl-gtk2.git] / gdk / gdk.objects.lisp
blob7dbcb755e0ac70986f0fb8d2a788d437f940e54a
1 (in-package :gdk)
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)
9 (export 'notify-type)
11 (gobject:define-g-enum "GdkFillRule"
12 gdk-fill-rule
13 (:export t :type-initializer "gdk_fill_rule_get_type")
14 (:even-odd-rule 0)
15 (:winding-rule 1))
17 (define-g-enum "GdkOverlapType"
18 overlap-type
19 (:export t :type-initializer "gdk_overlap_type_get_type")
20 (:in 0)
21 (:out 1)
22 (:part 2))
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
65 nil :type-initializer
66 "gdk_colormap_get_type")
67 nil)
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
122 (x :int)
123 (y :int))
125 (export (boxed-related-symbols 'point))
127 (define-g-boxed-cstruct span nil
128 (x :int)
129 (y :int)
130 (width :int))
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 ()
195 (:up 0) (:down 1)
196 (:left 2) (:right 3))
198 (define-g-enum "GdkVisibilityState" visibility-state ()
199 (:unobscured 0)
200 (:partial 1) (:fully-obscured 2))
202 (define-g-enum "GdkPropertyState" property-state ()
203 :new-value :delete)
205 (define-g-flags "GdkWindowState" window-state ()
206 (:withdrawn 1)
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)
212 (:deleted 2))
214 (define-g-enum "GdkOwnerChange" owner-change ()
215 (:new-owner 0)
216 (:destroy 1) (:close 2))
218 (define-g-flags "GdkEventMask" event-mask ()
219 (:exposure-mask 2)
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 ()
236 (:north-west 1)
237 :north
238 :north-east
239 :west
240 :center
241 :east
242 :south-west
243 :south
244 :south-east
245 :static)
247 (define-g-boxed-cstruct rectangle "GdkRectangle"
248 (x :int :initform 0)
249 (y :int :initform 0)
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"
321 (type cursor-type))
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)
345 (:documentation
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)))
355 (loop
356 for i from 0 below (fixed-array-array-size type)
357 do (setf (aref result i) (mem-aref ptr el-type i)))
358 result)))
360 (define-g-boxed-variant-cstruct event "GdkEvent"
361 (type event-type)
362 (window (g-object gdk-window))
363 (send-event (:boolean :int8))
364 (:variant type
365 ((:key-press :key-release) event-key
366 (time :uint32)
367 (state modifier-type)
368 (keyval :uint)
369 (length :int)
370 (string (:string :free-from-foreign nil
371 :free-to-foreign nil))
372 (hardware-keycode :uint16)
373 (group :uint8)
374 (is-modifier :uint))
375 ((:button-press
376 :2button-press
377 :3button-press
378 :button-release) event-button
379 (time :uint32)
380 (x :double)
381 (y :double)
382 (axes (fixed-array :double 2))
383 (state :uint)
384 (button :uint)
385 (device (g-object device))
386 (x-root :double)
387 (y-root :double))
388 ((:scroll) event-scroll
389 (time :uint32)
390 (x :double)
391 (y :double)
392 (state modifier-type)
393 (direction scroll-direction)
394 (device (g-object device))
395 (x-root :double)
396 (y-root :double))
397 ((:motion-notify) event-motion
398 (time :uint32)
399 (x :double)
400 (y :double)
401 (axes (fixed-array :double 2))
402 (state modifier-type)
403 (is-hint :int16)
404 (device (g-object device))
405 (x-root :double)
406 (y-root :double))
407 ((:expose) event-expose
408 (area rectangle :inline t)
409 (region :pointer)
410 (count :int))
411 ((:visibility-notify) event-visibility
412 (state visibility-state))
413 ((:enter-notify :leave-notify) event-crossing
414 (sub-window (g-object gdk-window))
415 (time :uint32)
416 (x :double)
417 (y :double)
418 (x-root :double)
419 (y-root :double)
420 (mode crossing-mode)
421 (detail notify-type)
422 (focus :boolean)
423 (state :uint))
424 ((:focus-change) event-focus
425 (in :int16))
426 ((:configure) event-configure
427 (x :int)
428 (y :int)
429 (width :int)
430 (height :int))
431 ((:property-notify) event-property
432 (atom gdk-atom)
433 (time :uint32)
434 (state property-state))
435 ((:selection-clear
436 :selection-notify
437 :selection-request) event-selection
438 (selection gdk-atom)
439 (target gdk-atom)
440 (property gdk-atom)
441 (time :uint32)
442 (requestor native-window))
443 ((:drag-enter
444 :drag-leave
445 :drag-motion
446 :drag-status
447 :drop-start
448 :drop-finished) event-dnd
449 (drag-context :pointer)
450 (time :uint32)
451 (x-root :short)
452 (y-root :short))
453 ((:proximity-in
454 :proximity-out) event-proximity
455 (time :uint32)
456 (device (g-object device)))
457 ((:client-event) event-client
458 (message-time gdk-atom)
459 (data-format :ushort)
460 (:variant data-format
461 (8 event-client-8
462 (data :uchar :count 20))
463 (16 event-client-16
464 (data :ushort :count 10))
465 (32 event-client-32
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)
477 (selection gdk-atom)
478 (time :uint32)
479 (selection-time :uint32))
480 ((:grab-broken) event-grab-broken
481 (keyboard :boolean)
482 (implicit :boolean)
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 ()
498 :rgb)
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 ()
511 nil)
513 (define-g-object-class "GdkImage" gdk-image
514 (:superclass g-object :export t :interfaces
515 nil :type-initializer
516 "gdk_image_get_type")
517 nil)