chiark / gitweb /
Added event classes
[clg] / gdk / gdktypes.lisp
CommitLineData
560af5c5 1;; Common Lisp bindings for GTK+ v2.0
4fc1b6fe 2;; Copyright (C) 1999-2000 Espen S. Johnsen <esj@stud.cs.uit.no>
560af5c5 3;;
4;; This library is free software; you can redistribute it and/or
5;; modify it under the terms of the GNU Lesser General Public
6;; License as published by the Free Software Foundation; either
7;; version 2 of the License, or (at your option) any later version.
8;;
9;; This library is distributed in the hope that it will be useful,
10;; but WITHOUT ANY WARRANTY; without even the implied warranty of
11;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12;; Lesser General Public License for more details.
13;;
14;; You should have received a copy of the GNU Lesser General Public
15;; License along with this library; if not, write to the Free Software
16;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
4fc1b6fe 18;; $Id: gdktypes.lisp,v 1.2 2001-02-11 20:28:07 espen Exp $
560af5c5 19
20(in-package "GDK")
21
22
4fc1b6fe 23(defclass color (alien-structure)
560af5c5 24 ((pixel
25 :allocation :alien
26 :type unsigned-long)
27 (red
28 :allocation :alien
29 :accessor color-red
30 :type unsigned-short)
31 (green
32 :allocation :alien
33 :accessor color-grenn
34 :type unsigned-short)
35 (blue
36 :allocation :alien
37 :accessor color-blue
38 :type unsigned-short))
39 (:metaclass alien-class)
40 (:alien-name "GdkColor"))
41
42
43(defclass visual (static-structure)
44 ()
45 (:metaclass alien-class)
46 (:alien-name "GdkVisual"))
47
48
49(defclass colormap (gobject)
50 ()
51 (:metaclass gobject-class)
52 (:alien-name "GdkColormap"))
53
54
55(defclass drawable (gobject)
56 ()
57 (:metaclass gobject-class)
58 (:alien-name "GdkDrawable"))
59
60
61(defclass window (drawable)
62 ()
63 (:metaclass gobject-class)
64 (:alien-name "GdkWindow")
65 (:type-init "gdk_window_object_get_type"))
66
67
68(defclass pixmap (drawable)
69 ()
70 (:metaclass gobject-class)
71 (:alien-name "GdkPixmap"))
72
4fc1b6fe 73;; Bitmaps is not defined as a propper type in gdk, only as an alias for
74;; GdkDrawable, so we have to define it this way as a workaround
75(defclass bitmap (alien-object)
76 ()
77 (:metaclass alien-class))
78
560af5c5 79
80; (defclass geometry (alien-structure)
81; ((min-width
82; :allocation :alien
83; :accessor geometry-min-width
84; :initarg :min-width
85; :type int)
86; (min-height
87; :allocation :alien
88; :accessor geometry-min-height
89; :initarg :min-heigth
90; :type int)
91; (max-width
92; :allocation :alien
93; :accessor geometry-max-width
94; :initarg :max-width
95; :type int)
96; (max-height
97; :allocation :alien
98; :accessor geometry-max-height
99; :initarg :max-heigth
100; :type int)
101; (base-width
102; :allocation :alien
103; :accessor geometry-base-width
104; :initarg :base-width
105; :type int)
106; (base-height
107; :allocation :alien
108; :accessor geometry-base-height
109; :initarg :base-heigth
110; :type int)
111; (width-inc
112; :allocation :alien
113; :accessor geometry-width-inc
114; :initarg :width-inc
115; :type int)
116; (height-inc
117; :allocation :alien
118; :accessor geometry-height-inc
119; :initarg :heigth-inc
120; :type int)
121; (min-aspect
122; :allocation :alien
123; :accessor geometry-min-aspect
124; :initarg :min-aspect
125; :type double-float)
126; (max-aspect
127; :allocation :alien
128; :accessor geometry-max-aspect
129; :initarg :max-aspect
130; :type double-float))
131; (:metaclass alien-class))
132
133
134(defclass image (gobject)
135 ()
136 (:metaclass gobject-class)
137 (:alien-name "GdkImage"))
138
139
140(defclass gc (gobject)
141 ()
142 (:metaclass gobject-class)
143 (:alien-name "GdkGC"))
144
145
146(defclass font (alien-object)
147 ()
148 (:metaclass alien-class)
149 (:alien-name "GdkFont"))
150
151
152(defclass cursor (alien-object)
153 ((type
154 :allocation :alien
155 :accessor cursor-type
156 :initarg :type
157 :type cursor-type))
158 (:metaclass alien-class))
159
160
161(defclass drag-context (gobject)
162 ()
163 (:metaclass gobject-class)
164 (:alien-name "GdkDragContext"))
165
166
4fc1b6fe 167(defclass device (alien-structure)
168 ()
169 (:metaclass alien-class))
170
560af5c5 171(defclass event (alien-structure)
4fc1b6fe 172 ((window
560af5c5 173 :allocation :alien
4fc1b6fe 174 :offset #.(size-of 'pointer)
560af5c5 175 :accessor event-window
176 :initarg :window
177 :type window)
178 (send-event
179 :allocation :alien
180 :accessor event-send-event
181 :initarg :send-event
4fc1b6fe 182 :type (boolean 8))
183 (%align :allocation :alien :offset 2 :type (unsigned 8)))
560af5c5 184 (:metaclass alien-class)
185 (:alien-name "GdkEvent"))
186
4fc1b6fe 187(defclass timed-event (event)
188 ((time
189 :allocation :alien
190 :accessor event-time
191 :initarg :time
192 :type (unsigned 32)))
193 (:metaclass alien-class))
194
195(defclass delete-event (event)
196 ()
197 (:metaclass alien-class))
198
199(defclass destroy-event (event)
200 ()
201 (:metaclass alien-class))
560af5c5 202
203(defclass expose-event (event)
4fc1b6fe 204 ((x
205 :allocation :alien
206 :accessor event-x
207 :initarg :x
208 :type int)
209 (y
210 :allocation :alien
211 :accessor event-y
212 :initarg :y
213 :type int)
214 (width
215 :allocation :alien
216 :accessor event-width
217 :initarg :width
218 :type int)
219 (height
220 :allocation :alien
221 :accessor event-height
222 :initarg :height
223 :type int)
224 (count
225 :allocation :alien
226 :accessor event-count
227 :initarg :count
228 :type int))
229 (:metaclass alien-class))
230
231(defclass motion-notify-event (timed-event)
232 ((x
233 :allocation :alien
234 :accessor event-x
235 :initarg :x
236 :type double-float)
237 (y
238 :allocation :alien
239 :accessor event-y
240 :initarg :y
241 :type double-float)
242 (state
243 :allocation :alien
244 :offset #.(size-of 'pointer)
245 :accessor event-state
246 :initarg :state
247 :type unsigned-int)
248 (is-hint
249 :allocation :alien
250 :accessor event-is-hint
251 :initarg :is-hint
252 :type (signed 16) ; should it be (boolean 16)?
253 )
254 (device
255 :allocation :alien
256 :offset 2
257 :accessor event-device
258 :initarg :device
259 :type device)
260 (root-x
261 :allocation :alien
262 :accessor event-root-x
263 :initarg :root-x
264 :type double-float)
265 (root-y
266 :allocation :alien
267 :accessor event-root-y
268 :initarg :root-y
269 :type double-float))
270 (:metaclass alien-class))
271
272(defclass button-press-event (timed-event)
273 ((x
274 :allocation :alien
275 :accessor event-x
276 :initarg :x
277 :type double-float)
278 (y
279 :allocation :alien
280 :accessor event-y
281 :initarg :y
282 :type double-float)
283 (state
284 :allocation :alien
285 :offset #.(size-of 'pointer)
286 :accessor event-state
287 :initarg :state
288 :type modifier-type)
289 (button
290 :allocation :alien
291 :accessor event-button
292 :initarg :button
293 :type unsigned-int)
294 (device
295 :allocation :alien
296 :accessor event-device
297 :initarg :device
298 :type device)
299 (root-x
300 :allocation :alien
301 :accessor event-root-x
302 :initarg :root-x
303 :type double-float)
304 (root-y
305 :allocation :alien
306 :accessor event-root-y
307 :initarg :root-y
308 :type double-float))
309 (:metaclass alien-class))
310
311(defclass 2-button-press-event (button-press-event)
560af5c5 312 ()
313 (:metaclass alien-class))
314
4fc1b6fe 315(defclass 3-button-press-event (button-press-event)
316 ()
317 (:metaclass alien-class))
560af5c5 318
4fc1b6fe 319(defclass button-release-event (button-press-event)
320 ()
321 (:metaclass alien-class))
322
323(defclass key-press-event (event)
324 ()
325 (:metaclass alien-class))
326
327(defclass key-release-event (event)
328 ()
329 (:metaclass alien-class))
330
331(defclass enter-notify-event (event)
332 ()
333 (:metaclass alien-class))
334
335(defclass leave-notify-event (event)
336 ()
337 (:metaclass alien-class))
338
339(defclass focus-change-event (event)
340 ()
341 (:metaclass alien-class))
342
343(defclass configure-event (event)
344 ((x
345 :allocation :alien
346 :accessor event-x
347 :initarg :x
348 :type int)
349 (y
350 :allocation :alien
351 :accessor event-y
352 :initarg :y
353 :type int)
354 (width
355 :allocation :alien
356 :accessor event-width
357 :initarg :width
358 :type int)
359 (height
360 :allocation :alien
361 :accessor event-height
362 :initarg :height
363 :type int))
364 (:metaclass alien-class))
365
366(defclass map-event (event)
560af5c5 367 ()
368 (:metaclass alien-class))
369
4fc1b6fe 370(defclass unmap-event (event)
371 ()
372 (:metaclass alien-class))
373
374(defclass property-notify-event (event)
375 ()
376 (:metaclass alien-class))
377
378(defclass selection-clear-event (event)
379 ()
380 (:metaclass alien-class))
560af5c5 381
4fc1b6fe 382(defclass selection-request-event (event)
383 ()
384 (:metaclass alien-class))
560af5c5 385
4fc1b6fe 386(defclass selection-notify-event (event)
387 ()
388 (:metaclass alien-class))
560af5c5 389
4fc1b6fe 390(defclass drag-enter-event (event)
391 ()
392 (:metaclass alien-class))
393
394(defclass drag-leave-event (event)
395 ()
396 (:metaclass alien-class))
397
398(defclass drag-motion-event (event)
399 ()
400 (:metaclass alien-class))
401
402(defclass drag-status-event (event)
403 ()
404 (:metaclass alien-class))
405
406(defclass drag-start-event (event)
407 ()
408 (:metaclass alien-class))
409
410(defclass drag-finished-event (event)
411 ()
412 (:metaclass alien-class))
413
414(defclass client-event (event)
415 ()
416 (:metaclass alien-class))
417
418(defclass visibility-notify-event (event)
419 ((state
420 :allocation :alien
421 :accessor event-state
422 :initarg :state
423 :type visibility-state))
424 (:metaclass alien-class))
425
426(defclass no-expose-event (event)
427 ()
428 (:metaclass alien-class))
429
430(defclass scroll-event (timed-event)
431 ()
432 (:metaclass alien-class))
560af5c5 433