/[cmucl]/src/clx/keysyms.lisp
ViewVC logotype

Contents of /src/clx/keysyms.lisp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5.14.1 - (hide annotations)
Wed Jun 17 15:46:26 2009 UTC (4 years, 10 months ago) by rtoy
Branch: portable-clx-branch
CVS Tags: portable-clx-import-2009-06-16
Changes since 1.5: +0 -3 lines
Import portable clx version from Christophe Rhodes darcs repository as
of 2009-06-16.

This is an exact copy of the code.  It is intended updates of
portable-clx go on the portable-clx-branch and should be merged to the
main branch as needed.  This should make it easier to do any
CMUCL-specific changes that aren't in portable-clx.

I chose not to import the files in the clx/manual directory.
Everything else is imported.  (Should the manual be imported too?)
1 ram 1.1 ;;; -*- Mode:Lisp; Package:XLIB; Syntax:COMMON-LISP; Base:10; Lowercase:YES -*-
2    
3     ;;; Define lisp character to keysym mappings
4    
5     ;;;
6     ;;; TEXAS INSTRUMENTS INCORPORATED
7     ;;; P.O. BOX 2909
8     ;;; AUSTIN, TEXAS 78769
9     ;;;
10     ;;; Copyright (C) 1987 Texas Instruments Incorporated.
11     ;;;
12     ;;; Permission is granted to any individual or institution to use, copy, modify,
13     ;;; and distribute this software, provided that this complete copyright and
14     ;;; permission notice is maintained, intact, in all copies and supporting
15     ;;; documentation.
16     ;;;
17     ;;; Texas Instruments Incorporated provides this software "as is" without
18     ;;; express or implied warranty.
19     ;;;
20 fgilham 1.5
21 ram 1.1 (in-package :xlib)
22    
23     (define-keysym-set :latin-1 (keysym 0 0) (keysym 0 255))
24     (define-keysym-set :latin-2 (keysym 1 0) (keysym 1 255))
25     (define-keysym-set :latin-3 (keysym 2 0) (keysym 2 255))
26     (define-keysym-set :latin-4 (keysym 3 0) (keysym 3 255))
27     (define-keysym-set :kana (keysym 4 0) (keysym 4 255))
28     (define-keysym-set :arabic (keysym 5 0) (keysym 5 255))
29 pmai 1.4 (define-keysym-set :cyrillic (keysym 6 0) (keysym 6 255))
30 ram 1.1 (define-keysym-set :greek (keysym 7 0) (keysym 7 255))
31     (define-keysym-set :tech (keysym 8 0) (keysym 8 255))
32     (define-keysym-set :special (keysym 9 0) (keysym 9 255))
33     (define-keysym-set :publish (keysym 10 0) (keysym 10 255))
34     (define-keysym-set :apl (keysym 11 0) (keysym 11 255))
35     (define-keysym-set :hebrew (keysym 12 0) (keysym 12 255))
36 fgilham 1.5 (define-keysym-set :thai (keysym 13 0) (keysym 13 255))
37     (define-keysym-set :korean (keysym 14 0) (keysym 14 255))
38     (define-keysym-set :latin-5 (keysym 15 0) (keysym 15 255))
39     (define-keysym-set :latin-6 (keysym 16 0) (keysym 16 255))
40     (define-keysym-set :latin-7 (keysym 17 0) (keysym 17 255))
41     (define-keysym-set :latin-8 (keysym 18 0) (keysym 18 255))
42     (define-keysym-set :latin-9 (keysym 19 0) (keysym 19 255))
43     (define-keysym-set :currency (keysym 32 0) (keysym 32 255))
44     (define-keysym-set :|3270| (keysym 253 0) (keysym 253 255))
45     (define-keysym-set :xkb (keysym 254 0) (keysym 254 255))
46 ram 1.1 (define-keysym-set :keyboard (keysym 255 0) (keysym 255 255))
47    
48     (define-keysym :character-set-switch character-set-switch-keysym)
49     (define-keysym :left-shift left-shift-keysym)
50     (define-keysym :right-shift right-shift-keysym)
51     (define-keysym :left-control left-control-keysym)
52     (define-keysym :right-control right-control-keysym)
53     (define-keysym :caps-lock caps-lock-keysym)
54     (define-keysym :shift-lock shift-lock-keysym)
55     (define-keysym :left-meta left-meta-keysym)
56     (define-keysym :right-meta right-meta-keysym)
57     (define-keysym :left-alt left-alt-keysym)
58     (define-keysym :right-alt right-alt-keysym)
59     (define-keysym :left-super left-super-keysym)
60     (define-keysym :right-super right-super-keysym)
61     (define-keysym :left-hyper left-hyper-keysym)
62     (define-keysym :right-hyper right-hyper-keysym)
63    
64     (define-keysym #\space 032)
65     (define-keysym #\! 033)
66     (define-keysym #\" 034)
67     (define-keysym #\# 035)
68     (define-keysym #\$ 036)
69     (define-keysym #\% 037)
70     (define-keysym #\& 038)
71     (define-keysym #\' 039)
72     (define-keysym #\( 040)
73     (define-keysym #\) 041)
74     (define-keysym #\* 042)
75     (define-keysym #\+ 043)
76     (define-keysym #\, 044)
77     (define-keysym #\- 045)
78     (define-keysym #\. 046)
79     (define-keysym #\/ 047)
80     (define-keysym #\0 048)
81     (define-keysym #\1 049)
82     (define-keysym #\2 050)
83     (define-keysym #\3 051)
84     (define-keysym #\4 052)
85     (define-keysym #\5 053)
86     (define-keysym #\6 054)
87     (define-keysym #\7 055)
88     (define-keysym #\8 056)
89     (define-keysym #\9 057)
90     (define-keysym #\: 058)
91     (define-keysym #\; 059)
92     (define-keysym #\< 060)
93     (define-keysym #\= 061)
94     (define-keysym #\> 062)
95     (define-keysym #\? 063)
96     (define-keysym #\@ 064)
97     (define-keysym #\A 065 :lowercase 097)
98     (define-keysym #\B 066 :lowercase 098)
99     (define-keysym #\C 067 :lowercase 099)
100     (define-keysym #\D 068 :lowercase 100)
101     (define-keysym #\E 069 :lowercase 101)
102     (define-keysym #\F 070 :lowercase 102)
103     (define-keysym #\G 071 :lowercase 103)
104     (define-keysym #\H 072 :lowercase 104)
105     (define-keysym #\I 073 :lowercase 105)
106     (define-keysym #\J 074 :lowercase 106)
107     (define-keysym #\K 075 :lowercase 107)
108     (define-keysym #\L 076 :lowercase 108)
109     (define-keysym #\M 077 :lowercase 109)
110     (define-keysym #\N 078 :lowercase 110)
111     (define-keysym #\O 079 :lowercase 111)
112     (define-keysym #\P 080 :lowercase 112)
113     (define-keysym #\Q 081 :lowercase 113)
114     (define-keysym #\R 082 :lowercase 114)
115     (define-keysym #\S 083 :lowercase 115)
116     (define-keysym #\T 084 :lowercase 116)
117     (define-keysym #\U 085 :lowercase 117)
118     (define-keysym #\V 086 :lowercase 118)
119     (define-keysym #\W 087 :lowercase 119)
120     (define-keysym #\X 088 :lowercase 120)
121     (define-keysym #\Y 089 :lowercase 121)
122     (define-keysym #\Z 090 :lowercase 122)
123     (define-keysym #\[ 091)
124     (define-keysym #\\ 092)
125     (define-keysym #\] 093)
126     (define-keysym #\^ 094)
127     (define-keysym #\_ 095)
128     (define-keysym #\` 096)
129     (define-keysym #\a 097)
130     (define-keysym #\b 098)
131     (define-keysym #\c 099)
132     (define-keysym #\d 100)
133     (define-keysym #\e 101)
134     (define-keysym #\f 102)
135     (define-keysym #\g 103)
136     (define-keysym #\h 104)
137     (define-keysym #\i 105)
138     (define-keysym #\j 106)
139     (define-keysym #\k 107)
140     (define-keysym #\l 108)
141     (define-keysym #\m 109)
142     (define-keysym #\n 110)
143     (define-keysym #\o 111)
144     (define-keysym #\p 112)
145     (define-keysym #\q 113)
146     (define-keysym #\r 114)
147     (define-keysym #\s 115)
148     (define-keysym #\t 116)
149     (define-keysym #\u 117)
150     (define-keysym #\v 118)
151     (define-keysym #\w 119)
152     (define-keysym #\x 120)
153     (define-keysym #\y 121)
154     (define-keysym #\z 122)
155     (define-keysym #\{ 123)
156     (define-keysym #\| 124)
157     (define-keysym #\} 125)
158     (define-keysym #\~ 126)
159    
160     (progn ;; Semi-standard characters
161     (define-keysym #\rubout (keysym 255 255)) ; :tty
162     (define-keysym #\tab (keysym 255 009)) ; :tty
163     (define-keysym #\linefeed (keysym 255 010)) ; :tty
164     (define-keysym #\page (keysym 009 227)) ; :special
165     (define-keysym #\return (keysym 255 013)) ; :tty
166     (define-keysym #\backspace (keysym 255 008)) ; :tty
167     )
168    
169 fgilham 1.5 ;;; these keysym definitions are only correct if the underlying lisp's
170     ;;; definition of characters between 160 and 255 match latin1 exactly.
171     ;;; If the characters are in some way locale-dependent (as, I believe,
172     ;;; in Allegro8) or are treated as opaque without any notions of
173     ;;; graphicness or case (as in cmucl and openmcl) then defining these
174     ;;; keysyms is either not useful or wrong. -- CSR, 2006-03-14
175     #+sbcl
176     (progn
177     (do ((i 160 (+ i 1)))
178     ((>= i 256))
179     (if (or (<= #xc0 i #xd6)
180     (<= #xd8 i #xde))
181     (define-keysym (code-char i) i :lowercase (+ i 32))
182     (define-keysym (code-char i) i))))
183    
184     #+(or lispm excl)
185     (progn ;; Nonstandard characters
186     (define-keysym #\escape (keysym 255 027)) ; :tty
187     )
188    
189     #+ti
190     (progn
191     (define-keysym #\Inverted-exclamation-mark 161)
192     (define-keysym #\american-cent-sign 162)
193     (define-keysym #\british-pound-sign 163)
194     (define-keysym #\Currency-sign 164)
195     (define-keysym #\Japanese-yen-sign 165)
196     (define-keysym #\Yen 165)
197     (define-keysym #\Broken-bar 166)
198     (define-keysym #\Section-symbol 167)
199     (define-keysym #\Section 167)
200     (define-keysym #\Diaresis 168)
201     (define-keysym #\Umlaut 168)
202     (define-keysym #\Copyright-sign 169)
203     (define-keysym #\Copyright 169)
204     (define-keysym #\Feminine-ordinal-indicator 170)
205     (define-keysym #\Angle-quotation-left 171)
206     (define-keysym #\Soft-hyphen 173)
207     (define-keysym #\Shy 173)
208     (define-keysym #\Registered-trademark 174)
209     (define-keysym #\Macron 175)
210     (define-keysym #\Degree-sign 176)
211     (define-keysym #\Ring 176)
212     (define-keysym #\Plus-minus-sign 177)
213     (define-keysym #\Superscript-2 178)
214     (define-keysym #\Superscript-3 179)
215     (define-keysym #\Acute-accent 180)
216     (define-keysym #\Greek-mu 181)
217     (define-keysym #\Paragraph-symbol 182)
218     (define-keysym #\Paragraph 182)
219     (define-keysym #\Pilcrow-sign 182)
220     (define-keysym #\Middle-dot 183)
221     (define-keysym #\Cedilla 184)
222     (define-keysym #\Superscript-1 185)
223     (define-keysym #\Masculine-ordinal-indicator 186)
224     (define-keysym #\Angle-quotation-right 187)
225     (define-keysym #\Fraction-1/4 188)
226     (define-keysym #\One-quarter 188)
227     (define-keysym #\Fraction-1/2 189)
228     (define-keysym #\One-half 189)
229     (define-keysym #\Fraction-3/4 190)
230     (define-keysym #\Three-quarters 190)
231     (define-keysym #\Inverted-question-mark 191)
232     (define-keysym #\Multiplication-sign 215)
233     (define-keysym #\Eszet 223)
234     (define-keysym #\Division-sign 247)
235     )
236    
237     #+ti
238     (progn ;; There are no 7-bit ascii representations for the following
239     ;; European characters, so use int-char to create them to ensure
240     ;; nothing is lost while sending files through the mail.
241     (define-keysym (int-char 192) 192 :lowercase 224)
242     (define-keysym (int-char 193) 193 :lowercase 225)
243     (define-keysym (int-char 194) 194 :lowercase 226)
244     (define-keysym (int-char 195) 195 :lowercase 227)
245     (define-keysym (int-char 196) 196 :lowercase 228)
246     (define-keysym (int-char 197) 197 :lowercase 229)
247     (define-keysym (int-char 198) 198 :lowercase 230)
248     (define-keysym (int-char 199) 199 :lowercase 231)
249     (define-keysym (int-char 200) 200 :lowercase 232)
250     (define-keysym (int-char 201) 201 :lowercase 233)
251     (define-keysym (int-char 202) 202 :lowercase 234)
252     (define-keysym (int-char 203) 203 :lowercase 235)
253     (define-keysym (int-char 204) 204 :lowercase 236)
254     (define-keysym (int-char 205) 205 :lowercase 237)
255     (define-keysym (int-char 206) 206 :lowercase 238)
256     (define-keysym (int-char 207) 207 :lowercase 239)
257     (define-keysym (int-char 208) 208 :lowercase 240)
258     (define-keysym (int-char 209) 209 :lowercase 241)
259     (define-keysym (int-char 210) 210 :lowercase 242)
260     (define-keysym (int-char 211) 211 :lowercase 243)
261     (define-keysym (int-char 212) 212 :lowercase 244)
262     (define-keysym (int-char 213) 213 :lowercase 245)
263     (define-keysym (int-char 214) 214 :lowercase 246)
264     (define-keysym (int-char 215) 215)
265     (define-keysym (int-char 216) 216 :lowercase 248)
266     (define-keysym (int-char 217) 217 :lowercase 249)
267     (define-keysym (int-char 218) 218 :lowercase 250)
268     (define-keysym (int-char 219) 219 :lowercase 251)
269     (define-keysym (int-char 220) 220 :lowercase 252)
270     (define-keysym (int-char 221) 221 :lowercase 253)
271     (define-keysym (int-char 222) 222 :lowercase 254)
272     (define-keysym (int-char 223) 223)
273     (define-keysym (int-char 224) 224)
274     (define-keysym (int-char 225) 225)
275     (define-keysym (int-char 226) 226)
276     (define-keysym (int-char 227) 227)
277     (define-keysym (int-char 228) 228)
278     (define-keysym (int-char 229) 229)
279     (define-keysym (int-char 230) 230)
280     (define-keysym (int-char 231) 231)
281     (define-keysym (int-char 232) 232)
282     (define-keysym (int-char 233) 233)
283     (define-keysym (int-char 234) 234)
284     (define-keysym (int-char 235) 235)
285     (define-keysym (int-char 236) 236)
286     (define-keysym (int-char 237) 237)
287     (define-keysym (int-char 238) 238)
288     (define-keysym (int-char 239) 239)
289     (define-keysym (int-char 240) 240)
290     (define-keysym (int-char 241) 241)
291     (define-keysym (int-char 242) 242)
292     (define-keysym (int-char 243) 243)
293     (define-keysym (int-char 244) 244)
294     (define-keysym (int-char 245) 245)
295     (define-keysym (int-char 246) 246)
296     (define-keysym (int-char 247) 247)
297     (define-keysym (int-char 248) 248)
298     (define-keysym (int-char 249) 249)
299     (define-keysym (int-char 250) 250)
300     (define-keysym (int-char 251) 251)
301     (define-keysym (int-char 252) 252)
302     (define-keysym (int-char 253) 253)
303     (define-keysym (int-char 254) 254)
304     (define-keysym (int-char 255) 255)
305     )
306    
307     #+lispm ;; Nonstandard characters
308     (progn
309     (define-keysym #\center-dot (keysym 183)) ; :latin-1
310     (define-keysym #\down-arrow (keysym 008 254)) ; :technical
311     (define-keysym #\alpha (keysym 007 225)) ; :greek
312     (define-keysym #\beta (keysym 007 226)) ; :greek
313     (define-keysym #\and-sign (keysym 008 222)) ; :technical
314     (define-keysym #\not-sign (keysym 172)) ; :latin-1
315     (define-keysym #\epsilon (keysym 007 229)) ; :greek
316     (define-keysym #\pi (keysym 007 240)) ; :greek
317     (define-keysym #\lambda (keysym 007 235)) ; :greek
318     (define-keysym #\gamma (keysym 007 227)) ; :greek
319     (define-keysym #\delta (keysym 007 228)) ; :greek
320     (define-keysym #\up-arrow (keysym 008 252)) ; :technical
321     (define-keysym #\plus-minus (keysym 177)) ; :latin-1
322     (define-keysym #\infinity (keysym 008 194)) ; :technical
323     (define-keysym #\partial-delta (keysym 008 239)) ; :technical
324     (define-keysym #\left-horseshoe (keysym 011 218)) ; :apl
325     (define-keysym #\right-horseshoe (keysym 011 216)) ; :apl
326     (define-keysym #\up-horseshoe (keysym 011 195)) ; :apl
327     (define-keysym #\down-horseshoe (keysym 011 214)) ; :apl
328     (define-keysym #\double-arrow (keysym 008 205)) ; :technical
329     (define-keysym #\left-arrow (keysym 008 251)) ; :technical
330     (define-keysym #\right-arrow (keysym 008 253)) ; :technical
331     (define-keysym #\not-equals (keysym 008 189)) ; :technical
332     (define-keysym #\less-or-equal (keysym 008 188)) ; :technical
333     (define-keysym #\greater-or-equal (keysym 008 190)) ; :technical
334     (define-keysym #\equivalence (keysym 008 207)) ; :technical
335     (define-keysym #\or-sign (keysym 008 223)) ; :technical
336     (define-keysym #\integral (keysym 008 191)) ; :technical
337     ;; break isn't null
338     ;; (define-keysym #\null (keysym 255 107)) ; :function
339     (define-keysym #\clear-input (keysym 255 011)) ; :tty
340     (define-keysym #\help (keysym 255 106)) ; :function
341     (define-keysym #\refresh (keysym 255 097)) ; :function
342     (define-keysym #\abort (keysym 255 105)) ; :function
343     (define-keysym #\resume (keysym 255 098)) ; :function
344     (define-keysym #\end (keysym 255 087)) ; :cursor
345     ;;#\universal-quantifier
346     ;;#\existential-quantifier
347     ;;#\circle-plus
348     ;;#\circle-cross same as #\circle-x
349     )
350    
351     #+genera
352     (progn
353     ;;#\network
354     ;;#\symbol-help
355     (define-keysym #\lozenge (keysym 009 224)) ; :special
356     (define-keysym #\suspend (keysym 255 019)) ; :tty
357     (define-keysym #\function (keysym 255 032)) ; :function
358     (define-keysym #\square (keysym 010 231)) ; :publishing
359     (define-keysym #\circle (keysym 010 230)) ; :publishing
360     (define-keysym #\triangle (keysym 010 232)) ; :publishing
361     (define-keysym #\scroll (keysym 255 086)) ; :cursor
362     (define-keysym #\select (keysym 255 096)) ; :function
363     (define-keysym #\complete (keysym 255 104)) ; :function
364     )
365    
366     #+ti
367     (progn
368     (define-keysym #\terminal (keysym 255 032)) ; :function
369     (define-keysym #\system (keysym 255 096)) ; :function
370     (define-keysym #\center-arrow (keysym 255 80))
371     (define-keysym #\left-arrow (keysym 255 081)) ; :cursor
372     (define-keysym #\up-arrow (keysym 255 082)) ; :cursor
373     (define-keysym #\right-arrow (keysym 255 083)) ; :cursor
374     (define-keysym #\down-arrow (keysym 255 084)) ; :cursor
375     (define-keysym #\end (keysym 255 087)) ; :cursor
376     (define-keysym #\undo (keysym 255 101)) ; :function
377     (define-keysym #\break (keysym 255 107))
378     (define-keysym #\keypad-space (keysym 255 128)) ; :keypad
379     (define-keysym #\keypad-tab (keysym 255 137)) ; :keypad
380     (define-keysym #\keypad-enter (keysym 255 141)) ; :keypad
381     (define-keysym #\f1 (keysym 255 145)) ; :keypad
382     (define-keysym #\f2 (keysym 255 146)) ; :keypad
383     (define-keysym #\f3 (keysym 255 147)) ; :keypad
384     (define-keysym #\f4 (keysym 255 148)) ; :keypad
385     (define-keysym #\f1 (keysym 255 190)) ; :keypad
386     (define-keysym #\f2 (keysym 255 191)) ; :keypad
387     (define-keysym #\f3 (keysym 255 192)) ; :keypad
388     (define-keysym #\f4 (keysym 255 193)) ; :keypad
389     (define-keysym #\keypad-plus (keysym 255 171)) ; :keypad
390     (define-keysym #\keypad-comma (keysym 255 172)) ; :keypad
391     (define-keysym #\keypad-minus (keysym 255 173)) ; :keypad
392     (define-keysym #\keypad-period (keysym 255 174)) ; :keypad
393     (define-keysym #\keypad-0 (keysym 255 176)) ; :keypad
394     (define-keysym #\keypad-1 (keysym 255 177)) ; :keypad
395     (define-keysym #\keypad-2 (keysym 255 178)) ; :keypad
396     (define-keysym #\keypad-3 (keysym 255 179)) ; :keypad
397     (define-keysym #\keypad-4 (keysym 255 180)) ; :keypad
398     (define-keysym #\keypad-5 (keysym 255 181)) ; :keypad
399     (define-keysym #\keypad-6 (keysym 255 182)) ; :keypad
400     (define-keysym #\keypad-7 (keysym 255 183)) ; :keypad
401     (define-keysym #\keypad-8 (keysym 255 184)) ; :keypad
402     (define-keysym #\keypad-9 (keysym 255 185)) ; :keypad
403     (define-keysym #\keypad-equal (keysym 255 189)) ; :keypad
404     (define-keysym #\f1 (keysym 255 192)) ; :function
405     (define-keysym #\f2 (keysym 255 193)) ; :function
406     (define-keysym #\f3 (keysym 255 194)) ; :function
407     (define-keysym #\f4 (keysym 255 195)) ; :function
408     (define-keysym #\network (keysym 255 214))
409     (define-keysym #\status (keysym 255 215))
410     (define-keysym #\clear-screen (keysym 255 217))
411     (define-keysym #\left (keysym 255 218))
412     (define-keysym #\middle (keysym 255 219))
413     (define-keysym #\right (keysym 255 220))
414     (define-keysym #\resume (keysym 255 221))
415     (define-keysym #\vt (keysym 009 233)) ; :special ;; same as #\delete
416     )
417    
418     #+ti
419     (progn ;; Explorer specific characters
420     (define-keysym #\Call (keysym 131)) ; :latin-1
421     (define-keysym #\Macro (keysym 133)) ; :latin-1
422     (define-keysym #\Quote (keysym 142)) ; :latin-1
423     (define-keysym #\Hold-output (keysym 143)) ; :latin-1
424     (define-keysym #\Stop-output (keysym 144)) ; :latin-1
425     (define-keysym #\Center (keysym 156)) ; :latin-1
426     (define-keysym #\no-break-space (keysym 160)) ; :latin-1
427    
428     (define-keysym #\circle-plus (keysym 13)) ; :latin-1
429     (define-keysym #\universal-quantifier (keysym 20)) ; :latin-1
430     (define-keysym #\existential-quantifier (keysym 21)) ; :latin-1
431     (define-keysym #\circle-cross (keysym 22)) ; :latin-1
432     )
433 ram 1.1

  ViewVC Help
Powered by ViewVC 1.1.5