Added pseudo type for structs which are inlined in other objects
[clg] / gdk / gdktypes.lisp
CommitLineData
112ac1d3 1;; Common Lisp bindings for GTK+ v2.x
2;; Copyright 2000-2005 Espen S. Johnsen <espen@users.sf.net>
560af5c5 3;;
112ac1d3 4;; Permission is hereby granted, free of charge, to any person obtaining
5;; a copy of this software and associated documentation files (the
6;; "Software"), to deal in the Software without restriction, including
7;; without limitation the rights to use, copy, modify, merge, publish,
8;; distribute, sublicense, and/or sell copies of the Software, and to
9;; permit persons to whom the Software is furnished to do so, subject to
10;; the following conditions:
560af5c5 11;;
112ac1d3 12;; The above copyright notice and this permission notice shall be
13;; included in all copies or substantial portions of the Software.
560af5c5 14;;
112ac1d3 15;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18;; IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
19;; CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
20;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
21;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
560af5c5 22
112ac1d3 23;; $Id: gdktypes.lisp,v 1.19 2005-04-23 16:48:50 espen Exp $
560af5c5 24
25(in-package "GDK")
26
5681ca3c 27(eval-when (:compile-toplevel :load-toplevel :execute)
9adccb27 28 (init-types-in-library #.(concatenate 'string
29 (pkg-config:pkg-variable "gtk+-2.0" "libdir")
c046c2f6 30 "/libgdk-x11-2.0.so") :prefix ("gdk_" "_gdk_"))
9adccb27 31 (init-types-in-library #.(concatenate 'string
32 (pkg-config:pkg-variable "gtk+-2.0" "libdir")
33 "/libgdk_pixbuf-2.0.so") :prefix "gdk_"))
34
560af5c5 35
e34e751a 36(defclass color (boxed)
560af5c5 37 ((pixel
38 :allocation :alien
39 :type unsigned-long)
40 (red
41 :allocation :alien
42 :accessor color-red
43 :type unsigned-short)
44 (green
45 :allocation :alien
ceebb351 46 :accessor color-green
560af5c5 47 :type unsigned-short)
48 (blue
49 :allocation :alien
50 :accessor color-blue
51 :type unsigned-short))
dfa4f314 52 (:metaclass boxed-class))
560af5c5 53
54
06cb4af7 55(deftype point () '(vector int 2))
56(deftype segment () '(vector int 4))
57(deftype trapezoid () '(vector double-float 6))
628fd576 58(deftype atom () 'unsigned-int)
06cb4af7 59
60
61;; Could this just as well have been a vector?
62(defclass rectangle (boxed)
63 ((x
64 :allocation :alien
65 :accessor rectangle-x
66 :initarg :x
67 :type int)
68 (y
69 :allocation :alien
70 :accessor rectangle-y
71 :initarg :y
72 :type int)
73 (width
74 :allocation :alien
75 :accessor rectangle-width
76 :initarg :width
77 :type int)
78 (height
79 :allocation :alien
80 :accessor rectangle-height
81 :initarg :height
82 :type int))
dfa4f314 83 (:metaclass boxed-class))
06cb4af7 84
85
73572c12 86(define-types-by-introspection "Gdk"
87 ("GdkFunction" :type gc-function)
88 ("GdkWMDecoration" :type wm-decoration)
89 ("GdkWMFunction" :type wm-function)
90 ("GdkGC" :type gc)
91 ("GdkGCX11" :type gc-x11)
92 ("GdkGCValuesMask" :type gc-values-mask)
93 ("GdkDrawableImplX11" :ignore t)
94 ("GdkWindowImplX11" :ignore t)
95 ("GdkPixmapImplX11" :ignore t)
96 ("GdkGCX11" :ignore t)
97 ("GdkColor" :ignore t)
98 ("GdkEvent" :ignore t)
99 ("GdkRectngle" :ignore t)
100 ("GdkCursor" :ignore t)
101 ("GdkFont" :ignore t) ; deprecated
4280ef98 102 ("GdkEventMask" :ignore t) ; manually defined
103
4fac77f8 104 ("GdkDisplay"
105 :slots
106 ((name
107 :allocation :virtual
108 :getter "gdk_display_get_name"
109 :reader display-name
110 :type (copy-of string))
111 (screens
112 :allocation :virtual
113 :getter display-screens)
114 (devices
115 :allocation :virtual
116 :getter "gdk_display_list_devices"
117 :reader display-devices
118 :type (copy-of (glist device)))))
119
73572c12 120 ("GdkDrawable"
121 :slots
122 ((display
123 :allocation :virtual
124 :getter "gdk_drawable_get_display"
125 :reader drawable-display
126 :type display)
127 (screen
128 :allocation :virtual
129 :getter "gdk_drawable_get_screen"
130 :reader drawable-screen
131 :type screen)
132 (visual
133 :allocation :virtual
134 :getter "gdk_drawable_get_visual"
135 :reader drawable-visual
136 :type visual)
137 (colormap
138 :allocation :virtual
139 :getter "gdk_drawable_get_colormap"
140 :setter "gdk_drawable_set_colormap"
141 :unbound nil
142 :accessor drawable-colormap
143 :initarg :colormap
144 :type colormap)
145 (depth
146 :allocation :virtual
147 :getter "gdk_drawable_get_depth"
148 :reader drawable-depth
149 :type int)
150 (with
151 :allocation :virtual
152 :getter drawable-width)
153 (height
154 :allocation :virtual
155 :getter drawable-height)))
156
157 ("GdkWindow"
158 :slots
159 ((state
160 :allocation :virtual
161 :getter "gdk_window_get_state"
162 :reader window-state
163 :type window-state)
164 (parent
165 :allocation :virtual
166 :getter "gdk_window_get_parent"
167 :reader window-parent
168 :type window)
169 (toplevel
170 :allocation :virtual
171 :getter "gdk_window_get_toplevel"
172 :reader window-toplevel
173 :type window)
174 (children
175 :allocation :virtual
176 :getter "gdk_window_get_children"
177 :reader window-children
178 :type (glist window))
179 (events
180 :allocation :virtual
181 :getter "gdk_window_get_events"
182 :setter "gdk_window_set_events"
183 :accessor window-events
184 :type event-mask)
185 (group
186 :allocation :virtual
187 :getter "gdk_window_get_group"
188 :setter "gdk_window_set_group"
189 :unbound nil
190 :accessor window-group
191 :type window))))
560af5c5 192
560af5c5 193
e34e751a 194(deftype bitmap () 'pixmap)
560af5c5 195
73572c12 196(defclass cursor (boxed)
560af5c5 197 ((type
198 :allocation :alien
06cb4af7 199 :reader cursor-type
200 :type cursor-type)
201 (ref-count
202 :allocation :alien
203 :type unsigned-int)
204 (display
205 :allocation :virtual
206 :getter "gdk_cursor_get_display"
207 :reader cursor-display
208 :type display))
dfa4f314 209 (:metaclass boxed-class))
4fc1b6fe 210
3a63ef2a 211
212(defclass geometry (struct)
213 ((min-width
214 :allocation :alien
215 :accessor geometry-min-width
216 :initarg :min-width
217 :type int)
218 (min-height
219 :allocation :alien
220 :accessor geometry-min-height
221 :initarg :min-height
222 :type int)
223 (max-width
224 :allocation :alien
225 :accessor geometry-max-width
226 :initarg :max-width
227 :type int)
228 (max-height
229 :allocation :alien
230 :accessor geometry-max-height
231 :initarg :max-height
232 :type int)
233 (base-width
234 :allocation :alien
235 :accessor geometry-base-width
236 :initarg :base-width
237 :type int)
238 (base-height
239 :allocation :alien
240 :accessor geometry-base-height
241 :initarg :base-height
242 :type int)
243 (width-inc
244 :allocation :alien
245 :accessor geometry-width-inc
246 :initarg :width-inc
247 :type int)
248 (height-inc
249 :allocation :alien
250 :accessor geometry-height-inc
251 :initarg :height-inc
252 :type int)
253 (min-aspect
254 :allocation :alien
255 :accessor geometry-min-aspect
256 :initarg :min-aspect
257 :type double-float)
258 (max-aspect
259 :allocation :alien
260 :accessor geometry-max-aspect
261 :initarg :max-aspect
262 :type double-float)
263 (gravity
264 :allocation :alien
265 :accessor geometry-gravity
266 :initarg :gravity
267 :type gravity))
268 (:metaclass struct-class))