5515cd18 |
1 | ;; Common Lisp bindings for GTK+ v2.0 |
a05a0e59 |
2 | ;; Copyright (C) 1999-2005 Espen S. Johnsen <espen@users@sf.net> |
0d07716f |
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 | |
3a476d4e |
18 | ;; $Id: gdk.lisp,v 1.15 2005/02/27 12:37:45 espen Exp $ |
0d07716f |
19 | |
20 | |
21 | (in-package "GDK") |
22 | |
e295d6df |
23 | ;;; Initialization |
24 | |
25 | (defbinding (gdk-init "gdk_parse_args") () nil |
26 | "Initializes the library without opening the display." |
27 | (nil null) |
28 | (nil null)) |
0d07716f |
29 | |
0d07716f |
30 | |
e295d6df |
31 | |
a05a0e59 |
32 | ;;; Display |
e295d6df |
33 | |
34 | (defbinding %display-open () display |
35 | (display-name (or null string))) |
36 | |
37 | (defun display-open (&optional display-name) |
38 | (let ((display (%display-open display-name))) |
39 | (unless (display-get-default) |
40 | (display-set-default display)) |
41 | display)) |
42 | |
a05a0e59 |
43 | (defbinding %display-get-n-screens () int |
44 | (display display)) |
45 | |
46 | (defbinding %display-get-screen () screen |
47 | (display display) |
48 | (screen-num int)) |
49 | |
50 | (defun display-screens (&optional (display (display-get-default))) |
51 | (loop |
52 | for i from 0 below (%display-get-n-screens display) |
53 | collect (%display-get-screen display i))) |
54 | |
55 | (defbinding display-get-default-screen |
56 | (&optional (display (display-get-default))) screen |
57 | (display display)) |
58 | |
59 | (defbinding display-beep (&optional (display (display-get-default))) nil |
60 | (display display)) |
61 | |
62 | (defbinding display-sync (&optional (display (display-get-default))) nil |
63 | (display display)) |
64 | |
65 | (defbinding display-flush (&optional (display (display-get-default))) nil |
66 | (display display)) |
67 | |
68 | (defbinding display-close (&optional (display (display-get-default))) nil |
69 | (display display)) |
70 | |
71 | (defbinding display-get-event |
72 | (&optional (display (display-get-default))) event |
73 | (display display)) |
74 | |
75 | (defbinding display-peek-event |
76 | (&optional (display (display-get-default))) event |
77 | (display display)) |
78 | |
79 | (defbinding display-put-event |
80 | (event &optional (display (display-get-default))) event |
81 | (display display) |
82 | (event event)) |
83 | |
e295d6df |
84 | (defbinding (display-connection-number "clg_gdk_connection_number") |
85 | (&optional (display (display-get-default))) int |
86 | (display display)) |
87 | |
88 | |
a05a0e59 |
89 | |
90 | ;;; Display manager |
91 | |
92 | (defbinding display-get-default () display) |
93 | |
94 | (defbinding (display-manager "gdk_display_manager_get") () display-manager) |
95 | |
96 | (defbinding (display-set-default "gdk_display_manager_set_default_display") |
97 | (display) nil |
98 | ((display-manager) display-manager) |
99 | (display display)) |
100 | |
101 | |
102 | |
e295d6df |
103 | ;;; Events |
0d07716f |
104 | |
5515cd18 |
105 | (defbinding (events-pending-p "gdk_events_pending") () boolean) |
0d07716f |
106 | |
5515cd18 |
107 | (defbinding event-get () event) |
0d07716f |
108 | |
5515cd18 |
109 | (defbinding event-peek () event) |
0d07716f |
110 | |
5515cd18 |
111 | (defbinding event-get-graphics-expose () event |
0d07716f |
112 | (window window)) |
113 | |
5515cd18 |
114 | (defbinding event-put () event |
0d07716f |
115 | (event event)) |
116 | |
5515cd18 |
117 | ;(defbinding event-handler-set () ...) |
0d07716f |
118 | |
5515cd18 |
119 | (defbinding set-show-events () nil |
0d07716f |
120 | (show-events boolean)) |
121 | |
5515cd18 |
122 | (defbinding get-show-events () boolean) |
0d07716f |
123 | |
0d07716f |
124 | |
a05a0e59 |
125 | ;;; Miscellaneous functions |
0d07716f |
126 | |
a05a0e59 |
127 | (defbinding screen-width () int) |
128 | (defbinding screen-height () int) |
0d07716f |
129 | |
a05a0e59 |
130 | (defbinding screen-width-mm () int) |
131 | (defbinding screen-height-mm () int) |
0d07716f |
132 | |
a05a0e59 |
133 | (defun %grab-time (time-or-event) |
134 | (etypecase time-or-event |
135 | (null 0) |
136 | (timed-event (event-time time-or-event)) |
137 | (integer time-or-event))) |
0d07716f |
138 | |
a05a0e59 |
139 | (defbinding pointer-grab |
140 | (window &key owner-events events confine-to cursor time) grab-status |
0d07716f |
141 | (window window) |
142 | (owner-events boolean) |
a05a0e59 |
143 | (events event-mask) |
0d07716f |
144 | (confine-to (or null window)) |
145 | (cursor (or null cursor)) |
a05a0e59 |
146 | ((%grab-time time) (unsigned 32))) |
0d07716f |
147 | |
a05a0e59 |
148 | (defbinding (pointer-ungrab "gdk_display_pointer_ungrab") |
3a476d4e |
149 | (&optional (display (display-get-default)) time) nil |
a05a0e59 |
150 | (display display) |
151 | ((%grab-time time) (unsigned 32))) |
0d07716f |
152 | |
a05a0e59 |
153 | (defbinding (pointer-is-grabbed-p "gdk_display_pointer_is_grabbed") |
154 | (&optional (display (display-get-default))) boolean) |
155 | |
156 | (defbinding keyboard-grab (window &key owner-events time) grab-status |
0d07716f |
157 | (window window) |
158 | (owner-events boolean) |
a05a0e59 |
159 | ((%grab-time time) (unsigned 32))) |
0d07716f |
160 | |
a05a0e59 |
161 | (defbinding (keyboard-ungrab "gdk_display_keyboard_ungrab") |
3a476d4e |
162 | (&optional (display (display-get-default)) time) nil |
a05a0e59 |
163 | (display display) |
164 | ((%grab-time time) (unsigned 32))) |
0d07716f |
165 | |
0d07716f |
166 | |
0d07716f |
167 | |
596c3078 |
168 | (defbinding atom-intern (atom-name &optional only-if-exists) atom |
169 | ((string atom-name) string) |
170 | (only-if-exists boolean)) |
171 | |
172 | (defbinding atom-name () string |
173 | (atom atom)) |
174 | |
0d07716f |
175 | |
176 | |
177 | ;;; Visuals |
178 | |
5515cd18 |
179 | (defbinding visual-get-best-depth () int) |
0d07716f |
180 | |
5515cd18 |
181 | (defbinding visual-get-best-type () visual-type) |
0d07716f |
182 | |
5515cd18 |
183 | (defbinding visual-get-system () visual) |
0d07716f |
184 | |
185 | |
5515cd18 |
186 | (defbinding (%visual-get-best-with-nothing "gdk_visual_get_best") () visual) |
0d07716f |
187 | |
5515cd18 |
188 | (defbinding %visual-get-best-with-depth () visual |
0d07716f |
189 | (depth int)) |
190 | |
5515cd18 |
191 | (defbinding %visual-get-best-with-type () visual |
0d07716f |
192 | (type visual-type)) |
193 | |
5515cd18 |
194 | (defbinding %visual-get-best-with-both () visual |
0d07716f |
195 | (depth int) |
196 | (type visual-type)) |
197 | |
198 | (defun visual-get-best (&key depth type) |
199 | (cond |
200 | ((and depth type) (%visual-get-best-with-both depth type)) |
201 | (depth (%visual-get-best-with-depth depth)) |
202 | (type (%visual-get-best-with-type type)) |
203 | (t (%visual-get-best-with-nothing)))) |
204 | |
5515cd18 |
205 | ;(defbinding query-depths ..) |
0d07716f |
206 | |
5515cd18 |
207 | ;(defbinding query-visual-types ..) |
0d07716f |
208 | |
5515cd18 |
209 | (defbinding list-visuals () (glist visual)) |
0d07716f |
210 | |
211 | |
212 | ;;; Windows |
213 | |
5515cd18 |
214 | (defbinding window-destroy () nil |
0d07716f |
215 | (window window)) |
216 | |
217 | |
64780167 |
218 | (defbinding window-at-pointer () window |
219 | (x int :out) |
220 | (y int :out)) |
0d07716f |
221 | |
5515cd18 |
222 | (defbinding window-show () nil |
0d07716f |
223 | (window window)) |
224 | |
64780167 |
225 | (defbinding window-show-unraised () nil |
226 | (window window)) |
227 | |
5515cd18 |
228 | (defbinding window-hide () nil |
0d07716f |
229 | (window window)) |
230 | |
64780167 |
231 | (defbinding window-is-visible-p () boolean |
232 | (window window)) |
233 | |
234 | (defbinding window-is-viewable-p () boolean |
235 | (window window)) |
236 | |
5515cd18 |
237 | (defbinding window-withdraw () nil |
0d07716f |
238 | (window window)) |
239 | |
64780167 |
240 | (defbinding window-iconify () nil |
241 | (window window)) |
242 | |
243 | (defbinding window-deiconify () nil |
244 | (window window)) |
245 | |
246 | (defbinding window-stick () nil |
247 | (window window)) |
248 | |
249 | (defbinding window-unstick () nil |
250 | (window window)) |
251 | |
252 | (defbinding window-maximize () nil |
253 | (window window)) |
254 | |
255 | (defbinding window-unmaximize () nil |
256 | (window window)) |
257 | |
258 | (defbinding window-fullscreen () nil |
259 | (window window)) |
260 | |
261 | (defbinding window-unfullscreen () nil |
262 | (window window)) |
263 | |
264 | (defbinding window-set-keep-above () nil |
265 | (window window) |
266 | (setting boolean)) |
267 | |
268 | (defbinding window-set-keep-below () nil |
269 | (window window) |
270 | (setting boolean)) |
271 | |
5515cd18 |
272 | (defbinding window-move () nil |
0d07716f |
273 | (window window) |
274 | (x int) |
275 | (y int)) |
276 | |
5515cd18 |
277 | (defbinding window-resize () nil |
0d07716f |
278 | (window window) |
279 | (width int) |
280 | (height int)) |
281 | |
5515cd18 |
282 | (defbinding window-move-resize () nil |
0d07716f |
283 | (window window) |
284 | (x int) |
285 | (y int) |
286 | (width int) |
287 | (height int)) |
288 | |
64780167 |
289 | (defbinding window-scroll () nil |
290 | (window window) |
291 | (dx int) |
292 | (dy int)) |
293 | |
5515cd18 |
294 | (defbinding window-reparent () nil |
0d07716f |
295 | (window window) |
296 | (new-parent window) |
297 | (x int) |
298 | (y int)) |
299 | |
5515cd18 |
300 | (defbinding window-clear () nil |
0d07716f |
301 | (window window)) |
302 | |
64780167 |
303 | (defbinding %window-clear-area () nil |
0d07716f |
304 | (window window) |
305 | (x int) (y int) (width int) (height int)) |
306 | |
64780167 |
307 | (defbinding %window-clear-area-e () nil |
0d07716f |
308 | (window window) |
309 | (x int) (y int) (width int) (height int)) |
310 | |
311 | (defun window-clear-area (window x y width height &optional expose) |
312 | (if expose |
64780167 |
313 | (%window-clear-area-e window x y width height) |
314 | (%window-clear-area window x y width height))) |
0d07716f |
315 | |
5515cd18 |
316 | (defbinding window-raise () nil |
0d07716f |
317 | (window window)) |
318 | |
5515cd18 |
319 | (defbinding window-lower () nil |
0d07716f |
320 | (window window)) |
321 | |
64780167 |
322 | (defbinding window-focus () nil |
323 | (window window) |
324 | (timestamp unsigned-int)) |
325 | |
326 | (defbinding window-register-dnd () nil |
327 | (window window)) |
328 | |
329 | (defbinding window-begin-resize-drag () nil |
330 | (window window) |
331 | (edge window-edge) |
332 | (button int) |
333 | (root-x int) |
334 | (root-y int) |
335 | (timestamp unsigned-int)) |
336 | |
337 | (defbinding window-begin-move-drag () nil |
338 | (window window) |
339 | (button int) |
340 | (root-x int) |
341 | (root-y int) |
342 | (timestamp unsigned-int)) |
343 | |
344 |