Now really get rid of fixed-array foreign-type
[cl-gtk2.git] / gdk / gdk.objects.lisp
1 (in-package :gdk)
2
3 (define-g-enum "GdkGrabStatus" grab-status () :success :already-grabbed :invalid-time :not-viewable :frozen)
4
5 (define-g-object-class "GdkDisplay" display () ())
6
7 (define-g-object-class "GdkDisplayManager" display-manager ()
8   ((default-display display-manager-default-display "default-display" "GdkDisplay" t t)))
9
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)))
13
14 (define-g-object-class "GdkGC" graphics-context () ())
15
16 (define-g-object-class "GdkDrawable" drawable () ())
17
18 (define-g-object-class "GdkPixmap" pixmap (:superclass drawable) ())
19
20 (define-g-object-class "GdkWindow" gdk-window (:superclass drawable) ())
21
22 (define-g-object-class "GdkKeymap" keymap () ())
23
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)) 
39
40 (define-g-flags "GdkEventMask" gdk-event-mask (:export t :type-initializer "gdk_event_mask_get_type")
41   (:exposure-mask 2) (:pointer-motion-mask 4)
42   (:pointer-motion-hint-mask 8) (:button-motion-mask 16)
43   (:button1-motion-mask 32) (:button2-motion-mask 64)
44   (:button3-motion-mask 128) (:button-press-mask 256)
45   (:button-release-mask 512) (:key-press-mask 1024)
46   (:key-release-mask 2048) (:enter-notify-mask 4096)
47   (:leave-notify-mask 8192) (:focus-change-mask 16384)
48   (:structure-mask 32768) (:property-change-mask 65536)
49   (:visibility-notify-mask 131072)
50   (:proximity-in-mask 262144) (:proximity-out-mask 524288)
51   (:substructure-mask 1048576) (:scroll-mask 2097152)
52   (:all-events-mask 4194302))
53
54 (define-g-enum "GdkExtensionMode" gdk-extension-mode (:export t :type-initializer "gdk_extension_mode_get_type")
55   (:none 0) (:all 1) (:cursor 2))
56
57 (define-g-enum "GdkWindowTypeHint" gdk-window-type-hint (:export t :type-initializer "gdk_window_type_hint_get_type")
58   (:normal 0) (:dialog 1) (:menu 2) (:toolbar 3)
59   (:splashscreen 4) (:utility 5) (:dock 6) (:desktop 7)
60   (:dropdown-menu 8) (:popup-menu 9) (:tooltip 10)
61   (:notification 11) (:combo 12) (:dnd 13))
62
63 (define-g-flags "GdkModifierType" modifier-type ()
64   (:shift-mask 1) (:lock-mask 2) (:control-mask 4)
65   (:mod1-mask 8) (:mod2-mask 16) (:mod3-mask 32)
66   (:mod4-mask 64) (:mod5-mask 128)
67   (:button1-mask 256) (:button2-mask 512)
68   (:button3-mask 1024) (:button4-mask 2048)
69   (:button5-mask 4096) (:super-mask 67108864)
70   (:hyper-mask 134217728) (:meta-mask 268435456)
71   (:release-mask 1073741824)
72   (:modifier-mask 1543512063))
73
74 (define-g-enum "GdkScrollDirection" scroll-direction ()
75   (:up 0) (:down 1)
76   (:left 2) (:right 3))
77
78 (define-g-enum "GdkVisibilityState" visibility-state ()
79   (:unobscured 0)
80   (:partial 1) (:fully-obscured 2))
81
82 (define-g-enum "GdkPropertyState" property-state ()
83   :new-value :delete)
84
85 (define-g-flags "GdkWindowState" window-state ()
86   (:withdrawn 1)
87   (:iconified 2) (:maximized 4) (:sticky 8) (:fullscreen 16)
88   (:above 32) (:below 64))
89
90 (define-g-enum "GdkSettingAction" setting-action ()
91   (:new 0) (:changed 1)
92   (:deleted 2))
93
94 (define-g-enum "GdkOwnerChange" owner-change ()
95   (:new-owner 0)
96   (:destroy 1) (:close 2))
97
98 (define-g-flags "GdkEventMask" event-mask ()
99   (:exposure-mask 2)
100   (:pointer-motion-mask 4) (:pointer-motion-hint-mask 8)
101   (:button-motion-mask 16) (:button1-motion-mask 32)
102   (:button2-motion-mask 64) (:button3-motion-mask 128)
103   (:button-press-mask 256) (:button-release-mask 512)
104   (:key-press-mask 1024) (:key-release-mask 2048)
105   (:enter-notify-mask 4096) (:leave-notify-mask 8192)
106   (:focus-change-mask 16384) (:structure-mask 32768)
107   (:property-change-mask 65536)
108   (:visibility-notify-mask 131072)
109   (:proximity-in-mask 262144) (:proximity-out-mask 524288)
110   (:substructure-mask 1048576) (:scroll-mask 2097152)
111   (:all-events-mask 4194302))
112
113 (define-g-enum "GdkFontType" font-type () :font :fontset)
114
115 (define-g-enum "GdkGravity" gravity ()
116   (:north-west 1)
117   :north
118   :north-east
119   :west
120   :center
121   :east
122   :south-west
123   :south
124   :south-east
125   :static)
126
127 (define-g-boxed-cstruct rectangle "GdkRectangle"
128   (x :int :initform 0)
129   (y :int :initform 0)
130   (width :int :initform 0)
131   (height :int :initform 0))
132
133 (export (boxed-related-symbols 'rectangle))
134
135 (define-g-boxed-cstruct font "GdkFont"
136   (type font-type :initform :font)
137   (ascent :int :initform 0)
138   (descent :int :initform 0))
139
140 (export (boxed-related-symbols 'font))
141
142 (define-g-boxed-cstruct color "GdkColor"
143   (pixel :uint32 :initform 0)
144   (red :uint16 :initform 0)
145   (green :uint16 :initform 0)
146   (blue :uint16 :initform 0))
147
148 (export (boxed-related-symbols 'color))
149
150 (define-g-boxed-cstruct geometry "GdkGeometry"
151   (min-width :int :initform 0)
152   (min-height :int :initform 0)
153   (max-width :int :initform 0)
154   (max-height :int :initform 0)
155   (base-width :int :initform 0)
156   (base-height :int :initform 0)
157   (width-increment :int :initform 0)
158   (height-increment :int :initform 0)
159   (min-aspect :double :initform 0.0d0)
160   (max-aspect :double :initform 0.0d0)
161   (gravity gravity :initform :north-west))
162
163 (export (boxed-related-symbols 'geometry))
164
165 (defctype gdk-atom :pointer)
166
167 (define-foreign-type gdk-atom-as-string-type ()
168   ()
169   (:actual-type :pointer)
170   (:simple-parser gdk-atom-as-string))
171
172 (defmethod translate-from-foreign (value (type gdk-atom-as-string-type))
173   (gdk-atom-name value))
174
175 (defmethod translate-to-foreign (value (type gdk-atom-as-string-type))
176   (gdk-atom-intern value nil))
177
178 ;;;FIXME: Check correct type
179 (defctype native-window :uint32)
180
181 (define-g-boxed-variant-cstruct event "GdkEvent"
182   (type event-type)
183   (window (g-object gdk-window))
184   (send-event (:boolean :int8))
185   (:variant type
186             ((:key-press :key-release) event-key
187              (time :uint32)
188              (state modifier-type)
189              (keyval :uint)
190              (length :int)
191              (string (:string :free-from-foreign nil
192                               :free-to-foreign nil))
193              (hardware-keycode :uint16)
194              (group :uint8)
195              (is-modifier :uint))
196             ((:button-prees
197               :2button-press
198               :3button-press
199               :button-release) event-button
200              (time :uint32)
201              (x :double)
202              (y :double)
203              (axes :double :count 2)
204              (state :uint)
205              (button :uint)
206              (device (g-object device))
207              (x-root :double)
208              (y-root :double))
209             ((:scroll) event-scroll
210              (time :uint32)
211              (x :double)
212              (y :double)
213              (state modifier-type)
214              (direction scroll-direction)
215              (device (g-object device))
216              (x-root :double)
217              (y-root :double))
218             ((:motion-notify) event-motion
219              (time :uint32)
220              (x :double)
221              (y :double)
222              (axes :double :count 2)
223              (state modifier-type)
224              (is-hint :int)
225              (device (g-object device))
226              (x-root :double)
227              (y-root :double))
228             ((:expose) event-expose
229              (area rectangle :inline t)
230              (region :pointer)
231              (count :int))
232             ((:visibility-notify) event-visibility
233              (state visibility-state))
234             ((:enter-notify :leave-notify) event-crossing
235              (sub-window (g-object gdk-window))
236              (time :uint32)
237              (x :double)
238              (y :double)
239              (x-root :double)
240              (y-root :double))
241             ((:focus-change) event-focus
242              (in :int16))
243             ((:configure) event-configure
244              (x :int)
245              (y :int)
246              (width :int)
247              (height :int))
248             ((:property-notify) event-property
249              (atom gdk-atom)
250              (time :uint32)
251              (state property-state))
252             ((:selection-clear
253               :selection-notify
254               :selection-request) event-selection
255              (selection gdk-atom)
256              (target gdk-atom)
257              (property gdk-atom)
258              (time :uint32)
259              (requestor native-window))
260             ((:drag-enter
261               :drag-leave
262               :drag-motion
263               :drag-status
264               :drop-start
265               :drop-finished) event-drag
266              (drag-context :pointer)
267              (time :uint32)
268              (x-root :short)
269              (y-root :short))
270             ((:proximity-in
271               :proximity-out) event-proximity
272              (time :uint32)
273              (device (g-object device)))
274             ((:client-event) event-client
275              (message-time gdk-atom)
276              (data-format :ushort)
277              (:variant data-format
278                        (8 event-client-8
279                           (data :uchar :count 20))
280                        (16 event-client-16
281                            (data :ushort :count 10))
282                        (32 event-client-32
283                            (data :ulong :count 5))))
284             ((:no-expose) event-no-expose)
285             ((:window-state) event-window-state
286              (changed-mask window-state)
287              (new-window-state window-state))
288             ((:setting) event-setting
289              (action setting-action)
290              (name (:string :free-from-foreign nil :free-to-foreign nil)))
291             ((:owner-change) event-owner-change
292              (owner native-window)
293              (reason owner-change)
294              (selection gdk-atom)
295              (time :uint32)
296              (selection-time :uint32))
297             ((:grab-broken) event-grab-broken
298              (keyboard :boolean)
299              (implicit :boolean)
300              (grab-window (g-object gdk-window)))))
301
302 (export (boxed-related-symbols 'event))
303
304 (define-g-object-class "GdkDragContext" drag-context () ())
305
306 (define-g-flags "GdkWindowHints" window-hints ()
307   :pos :min-size :max-size :base-size :aspect
308   :resize-inc :win-gravity :user-pos :user-size)
309
310 (define-g-enum "GdkWindowEdge" window-edge ()
311   (:north-west 0) (:north 1) (:north-east 2) (:west 3)
312   (:east 4) (:south-west 5) (:south 6) (:south-east 7))
313
314 (define-g-enum "GdkColorspace" colorspace ()
315   :rgb)
316
317 (define-g-object-class "GdkPixbuf" pixbuf ()
318     ((colorspace pixbuf-colorspace "colorspace" "GdkColorspace" t nil)
319      (n-channels pixbuf-n-channels "n-channels" "gint" t nil)
320      (has-alpha pixbuf-has-alpha "has-alpha" "gboolean" t nil)
321      (bits-per-sample pixbuf-bits-per-sample "bits-per-sample" "gint" t nil)
322      (width pixbuf-width "width" "gint" t nil)
323      (height pixbuf-height "height" "gint" t nil)
324      (rowstride pixbuf-rowstride "rowstride" "gint" t nil)
325      (pixels pixbuf-pixels "pixels" "gpointer" t nil)))
326
327 (define-g-object-class "GdkPixbufAnimation" pixbuf-animation ()
328     nil)