Mercurial > repos > rliterman > csp2
comparison CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/X11/extensions/XKBgeom.h @ 69:33d812a61356
planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author | jpayne |
---|---|
date | Tue, 18 Mar 2025 17:55:14 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
67:0e9998148a16 | 69:33d812a61356 |
---|---|
1 /************************************************************ | |
2 Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. | |
3 | |
4 Permission to use, copy, modify, and distribute this | |
5 software and its documentation for any purpose and without | |
6 fee is hereby granted, provided that the above copyright | |
7 notice appear in all copies and that both that copyright | |
8 notice and this permission notice appear in supporting | |
9 documentation, and that the name of Silicon Graphics not be | |
10 used in advertising or publicity pertaining to distribution | |
11 of the software without specific prior written permission. | |
12 Silicon Graphics makes no representation about the suitability | |
13 of this software for any purpose. It is provided "as is" | |
14 without any express or implied warranty. | |
15 | |
16 SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS | |
17 SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY | |
18 AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON | |
19 GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL | |
20 DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, | |
21 DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE | |
22 OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH | |
23 THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
24 | |
25 ********************************************************/ | |
26 | |
27 #ifndef _XKBGEOM_H_ | |
28 #define _XKBGEOM_H_ | |
29 | |
30 #include <X11/extensions/XKBstr.h> | |
31 | |
32 typedef struct _XkbProperty { | |
33 char *name; | |
34 char *value; | |
35 } XkbPropertyRec,*XkbPropertyPtr; | |
36 | |
37 typedef struct _XkbColor { | |
38 unsigned int pixel; | |
39 char * spec; | |
40 } XkbColorRec,*XkbColorPtr; | |
41 | |
42 typedef struct _XkbPoint { | |
43 short x; | |
44 short y; | |
45 } XkbPointRec, *XkbPointPtr; | |
46 | |
47 typedef struct _XkbBounds { | |
48 short x1,y1; | |
49 short x2,y2; | |
50 } XkbBoundsRec, *XkbBoundsPtr; | |
51 #define XkbBoundsWidth(b) (((b)->x2)-((b)->x1)) | |
52 #define XkbBoundsHeight(b) (((b)->y2)-((b)->y1)) | |
53 | |
54 /* | |
55 * In the following structs, this pattern is used for dynamically sized arrays: | |
56 * foo is an array for which sz_foo entries are allocated & num_foo are used | |
57 */ | |
58 | |
59 typedef struct _XkbOutline { | |
60 unsigned short num_points; | |
61 unsigned short sz_points; | |
62 unsigned short corner_radius; | |
63 XkbPointPtr points; | |
64 } XkbOutlineRec, *XkbOutlinePtr; | |
65 | |
66 typedef struct _XkbShape { | |
67 Atom name; | |
68 unsigned short num_outlines; | |
69 unsigned short sz_outlines; | |
70 XkbOutlinePtr outlines; | |
71 XkbOutlinePtr approx; | |
72 XkbOutlinePtr primary; | |
73 XkbBoundsRec bounds; | |
74 } XkbShapeRec, *XkbShapePtr; | |
75 #define XkbOutlineIndex(s,o) ((int)((o)-&(s)->outlines[0])) | |
76 | |
77 typedef struct _XkbShapeDoodad { | |
78 Atom name; | |
79 unsigned char type; | |
80 unsigned char priority; | |
81 short top; | |
82 short left; | |
83 short angle; | |
84 unsigned short color_ndx; | |
85 unsigned short shape_ndx; | |
86 } XkbShapeDoodadRec, *XkbShapeDoodadPtr; | |
87 #define XkbShapeDoodadColor(g,d) (&(g)->colors[(d)->color_ndx]) | |
88 #define XkbShapeDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx]) | |
89 #define XkbSetShapeDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0]) | |
90 #define XkbSetShapeDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0]) | |
91 | |
92 typedef struct _XkbTextDoodad { | |
93 Atom name; | |
94 unsigned char type; | |
95 unsigned char priority; | |
96 short top; | |
97 short left; | |
98 short angle; | |
99 short width; | |
100 short height; | |
101 unsigned short color_ndx; | |
102 char * text; | |
103 char * font; | |
104 } XkbTextDoodadRec, *XkbTextDoodadPtr; | |
105 #define XkbTextDoodadColor(g,d) (&(g)->colors[(d)->color_ndx]) | |
106 #define XkbSetTextDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0]) | |
107 | |
108 typedef struct _XkbIndicatorDoodad { | |
109 Atom name; | |
110 unsigned char type; | |
111 unsigned char priority; | |
112 short top; | |
113 short left; | |
114 short angle; | |
115 unsigned short shape_ndx; | |
116 unsigned short on_color_ndx; | |
117 unsigned short off_color_ndx; | |
118 } XkbIndicatorDoodadRec, *XkbIndicatorDoodadPtr; | |
119 #define XkbIndicatorDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx]) | |
120 #define XkbIndicatorDoodadOnColor(g,d) (&(g)->colors[(d)->on_color_ndx]) | |
121 #define XkbIndicatorDoodadOffColor(g,d) (&(g)->colors[(d)->off_color_ndx]) | |
122 #define XkbSetIndicatorDoodadOnColor(g,d,c) \ | |
123 ((d)->on_color_ndx= (c)-&(g)->colors[0]) | |
124 #define XkbSetIndicatorDoodadOffColor(g,d,c) \ | |
125 ((d)->off_color_ndx= (c)-&(g)->colors[0]) | |
126 #define XkbSetIndicatorDoodadShape(g,d,s) \ | |
127 ((d)->shape_ndx= (s)-&(g)->shapes[0]) | |
128 | |
129 typedef struct _XkbLogoDoodad { | |
130 Atom name; | |
131 unsigned char type; | |
132 unsigned char priority; | |
133 short top; | |
134 short left; | |
135 short angle; | |
136 unsigned short color_ndx; | |
137 unsigned short shape_ndx; | |
138 char * logo_name; | |
139 } XkbLogoDoodadRec, *XkbLogoDoodadPtr; | |
140 #define XkbLogoDoodadColor(g,d) (&(g)->colors[(d)->color_ndx]) | |
141 #define XkbLogoDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx]) | |
142 #define XkbSetLogoDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0]) | |
143 #define XkbSetLogoDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0]) | |
144 | |
145 typedef struct _XkbAnyDoodad { | |
146 Atom name; | |
147 unsigned char type; | |
148 unsigned char priority; | |
149 short top; | |
150 short left; | |
151 short angle; | |
152 } XkbAnyDoodadRec, *XkbAnyDoodadPtr; | |
153 | |
154 typedef union _XkbDoodad { | |
155 XkbAnyDoodadRec any; | |
156 XkbShapeDoodadRec shape; | |
157 XkbTextDoodadRec text; | |
158 XkbIndicatorDoodadRec indicator; | |
159 XkbLogoDoodadRec logo; | |
160 } XkbDoodadRec, *XkbDoodadPtr; | |
161 | |
162 #define XkbUnknownDoodad 0 | |
163 #define XkbOutlineDoodad 1 | |
164 #define XkbSolidDoodad 2 | |
165 #define XkbTextDoodad 3 | |
166 #define XkbIndicatorDoodad 4 | |
167 #define XkbLogoDoodad 5 | |
168 | |
169 typedef struct _XkbKey { | |
170 XkbKeyNameRec name; | |
171 short gap; | |
172 unsigned char shape_ndx; | |
173 unsigned char color_ndx; | |
174 } XkbKeyRec, *XkbKeyPtr; | |
175 #define XkbKeyShape(g,k) (&(g)->shapes[(k)->shape_ndx]) | |
176 #define XkbKeyColor(g,k) (&(g)->colors[(k)->color_ndx]) | |
177 #define XkbSetKeyShape(g,k,s) ((k)->shape_ndx= (s)-&(g)->shapes[0]) | |
178 #define XkbSetKeyColor(g,k,c) ((k)->color_ndx= (c)-&(g)->colors[0]) | |
179 | |
180 typedef struct _XkbRow { | |
181 short top; | |
182 short left; | |
183 unsigned short num_keys; | |
184 unsigned short sz_keys; | |
185 int vertical; | |
186 XkbKeyPtr keys; | |
187 XkbBoundsRec bounds; | |
188 } XkbRowRec, *XkbRowPtr; | |
189 | |
190 typedef struct _XkbSection { | |
191 Atom name; | |
192 unsigned char priority; | |
193 short top; | |
194 short left; | |
195 unsigned short width; | |
196 unsigned short height; | |
197 short angle; | |
198 unsigned short num_rows; | |
199 unsigned short num_doodads; | |
200 unsigned short num_overlays; | |
201 unsigned short sz_rows; | |
202 unsigned short sz_doodads; | |
203 unsigned short sz_overlays; | |
204 XkbRowPtr rows; | |
205 XkbDoodadPtr doodads; | |
206 XkbBoundsRec bounds; | |
207 struct _XkbOverlay *overlays; | |
208 } XkbSectionRec, *XkbSectionPtr; | |
209 | |
210 typedef struct _XkbOverlayKey { | |
211 XkbKeyNameRec over; | |
212 XkbKeyNameRec under; | |
213 } XkbOverlayKeyRec,*XkbOverlayKeyPtr; | |
214 | |
215 typedef struct _XkbOverlayRow { | |
216 unsigned short row_under; | |
217 unsigned short num_keys; | |
218 unsigned short sz_keys; | |
219 XkbOverlayKeyPtr keys; | |
220 } XkbOverlayRowRec,*XkbOverlayRowPtr; | |
221 | |
222 typedef struct _XkbOverlay { | |
223 Atom name; | |
224 XkbSectionPtr section_under; | |
225 unsigned short num_rows; | |
226 unsigned short sz_rows; | |
227 XkbOverlayRowPtr rows; | |
228 XkbBoundsPtr bounds; | |
229 } XkbOverlayRec,*XkbOverlayPtr; | |
230 | |
231 typedef struct _XkbGeometry { | |
232 Atom name; | |
233 unsigned short width_mm; | |
234 unsigned short height_mm; | |
235 char * label_font; | |
236 XkbColorPtr label_color; | |
237 XkbColorPtr base_color; | |
238 unsigned short sz_properties; | |
239 unsigned short sz_colors; | |
240 unsigned short sz_shapes; | |
241 unsigned short sz_sections; | |
242 unsigned short sz_doodads; | |
243 unsigned short sz_key_aliases; | |
244 unsigned short num_properties; | |
245 unsigned short num_colors; | |
246 unsigned short num_shapes; | |
247 unsigned short num_sections; | |
248 unsigned short num_doodads; | |
249 unsigned short num_key_aliases; | |
250 XkbPropertyPtr properties; | |
251 XkbColorPtr colors; | |
252 XkbShapePtr shapes; | |
253 XkbSectionPtr sections; | |
254 XkbDoodadPtr doodads; | |
255 XkbKeyAliasPtr key_aliases; | |
256 } XkbGeometryRec; | |
257 #define XkbGeomColorIndex(g,c) ((int)((c)-&(g)->colors[0])) | |
258 | |
259 #define XkbGeomPropertiesMask (1<<0) | |
260 #define XkbGeomColorsMask (1<<1) | |
261 #define XkbGeomShapesMask (1<<2) | |
262 #define XkbGeomSectionsMask (1<<3) | |
263 #define XkbGeomDoodadsMask (1<<4) | |
264 #define XkbGeomKeyAliasesMask (1<<5) | |
265 #define XkbGeomAllMask (0x3f) | |
266 | |
267 typedef struct _XkbGeometrySizes { | |
268 unsigned int which; | |
269 unsigned short num_properties; | |
270 unsigned short num_colors; | |
271 unsigned short num_shapes; | |
272 unsigned short num_sections; | |
273 unsigned short num_doodads; | |
274 unsigned short num_key_aliases; | |
275 } XkbGeometrySizesRec,*XkbGeometrySizesPtr; | |
276 | |
277 _XFUNCPROTOBEGIN | |
278 | |
279 extern XkbPropertyPtr | |
280 XkbAddGeomProperty( | |
281 XkbGeometryPtr /* geom */, | |
282 _Xconst char * /* name */, | |
283 _Xconst char * /* value */ | |
284 ); | |
285 | |
286 extern XkbKeyAliasPtr | |
287 XkbAddGeomKeyAlias( | |
288 XkbGeometryPtr /* geom */, | |
289 _Xconst char * /* alias */, | |
290 _Xconst char * /* real */ | |
291 ); | |
292 | |
293 extern XkbColorPtr | |
294 XkbAddGeomColor( | |
295 XkbGeometryPtr /* geom */, | |
296 _Xconst char * /* spec */, | |
297 unsigned int /* pixel */ | |
298 ); | |
299 | |
300 extern XkbOutlinePtr | |
301 XkbAddGeomOutline( | |
302 XkbShapePtr /* shape */, | |
303 int /* sz_points */ | |
304 ); | |
305 | |
306 extern XkbShapePtr | |
307 XkbAddGeomShape( | |
308 XkbGeometryPtr /* geom */, | |
309 Atom /* name */, | |
310 int /* sz_outlines */ | |
311 ); | |
312 | |
313 extern XkbKeyPtr | |
314 XkbAddGeomKey( | |
315 XkbRowPtr /* row */ | |
316 ); | |
317 | |
318 extern XkbRowPtr | |
319 XkbAddGeomRow( | |
320 XkbSectionPtr /* section */, | |
321 int /* sz_keys */ | |
322 ); | |
323 | |
324 extern XkbSectionPtr | |
325 XkbAddGeomSection( | |
326 XkbGeometryPtr /* geom */, | |
327 Atom /* name */, | |
328 int /* sz_rows */, | |
329 int /* sz_doodads */, | |
330 int /* sz_overlays */ | |
331 ); | |
332 | |
333 extern XkbOverlayPtr | |
334 XkbAddGeomOverlay( | |
335 XkbSectionPtr /* section */, | |
336 Atom /* name */, | |
337 int /* sz_rows */ | |
338 ); | |
339 | |
340 extern XkbOverlayRowPtr | |
341 XkbAddGeomOverlayRow( | |
342 XkbOverlayPtr /* overlay */, | |
343 int /* row_under */, | |
344 int /* sz_keys */ | |
345 ); | |
346 | |
347 extern XkbOverlayKeyPtr | |
348 XkbAddGeomOverlayKey( | |
349 XkbOverlayPtr /* overlay */, | |
350 XkbOverlayRowPtr /* row */, | |
351 _Xconst char * /* over */, | |
352 _Xconst char * /* under */ | |
353 ); | |
354 | |
355 extern XkbDoodadPtr | |
356 XkbAddGeomDoodad( | |
357 XkbGeometryPtr /* geom */, | |
358 XkbSectionPtr /* section */, | |
359 Atom /* name */ | |
360 ); | |
361 | |
362 | |
363 extern void | |
364 XkbFreeGeomKeyAliases( | |
365 XkbGeometryPtr /* geom */, | |
366 int /* first */, | |
367 int /* count */, | |
368 Bool /* freeAll */ | |
369 ); | |
370 | |
371 extern void | |
372 XkbFreeGeomColors( | |
373 XkbGeometryPtr /* geom */, | |
374 int /* first */, | |
375 int /* count */, | |
376 Bool /* freeAll */ | |
377 ); | |
378 | |
379 extern void | |
380 XkbFreeGeomDoodads( | |
381 XkbDoodadPtr /* doodads */, | |
382 int /* nDoodads */, | |
383 Bool /* freeAll */ | |
384 ); | |
385 | |
386 | |
387 extern void | |
388 XkbFreeGeomProperties( | |
389 XkbGeometryPtr /* geom */, | |
390 int /* first */, | |
391 int /* count */, | |
392 Bool /* freeAll */ | |
393 ); | |
394 | |
395 extern void | |
396 XkbFreeGeomOverlayKeys( | |
397 XkbOverlayRowPtr /* row */, | |
398 int /* first */, | |
399 int /* count */, | |
400 Bool /* freeAll */ | |
401 ); | |
402 | |
403 extern void | |
404 XkbFreeGeomOverlayRows( | |
405 XkbOverlayPtr /* overlay */, | |
406 int /* first */, | |
407 int /* count */, | |
408 Bool /* freeAll */ | |
409 ); | |
410 | |
411 extern void | |
412 XkbFreeGeomOverlays( | |
413 XkbSectionPtr /* section */, | |
414 int /* first */, | |
415 int /* count */, | |
416 Bool /* freeAll */ | |
417 ); | |
418 | |
419 extern void | |
420 XkbFreeGeomKeys( | |
421 XkbRowPtr /* row */, | |
422 int /* first */, | |
423 int /* count */, | |
424 Bool /* freeAll */ | |
425 ); | |
426 | |
427 extern void | |
428 XkbFreeGeomRows( | |
429 XkbSectionPtr /* section */, | |
430 int /* first */, | |
431 int /* count */, | |
432 Bool /* freeAll */ | |
433 ); | |
434 | |
435 extern void | |
436 XkbFreeGeomSections( | |
437 XkbGeometryPtr /* geom */, | |
438 int /* first */, | |
439 int /* count */, | |
440 Bool /* freeAll */ | |
441 ); | |
442 | |
443 | |
444 extern void | |
445 XkbFreeGeomPoints( | |
446 XkbOutlinePtr /* outline */, | |
447 int /* first */, | |
448 int /* count */, | |
449 Bool /* freeAll */ | |
450 ); | |
451 | |
452 extern void | |
453 XkbFreeGeomOutlines( | |
454 XkbShapePtr /* shape */, | |
455 int /* first */, | |
456 int /* count */, | |
457 Bool /* freeAll */ | |
458 ); | |
459 | |
460 extern void | |
461 XkbFreeGeomShapes( | |
462 XkbGeometryPtr /* geom */, | |
463 int /* first */, | |
464 int /* count */, | |
465 Bool /* freeAll */ | |
466 ); | |
467 | |
468 extern void | |
469 XkbFreeGeometry( | |
470 XkbGeometryPtr /* geom */, | |
471 unsigned int /* which */, | |
472 Bool /* freeMap */ | |
473 ); | |
474 | |
475 extern Status | |
476 XkbAllocGeomProps( | |
477 XkbGeometryPtr /* geom */, | |
478 int /* nProps */ | |
479 ); | |
480 | |
481 extern Status | |
482 XkbAllocGeomKeyAliases( | |
483 XkbGeometryPtr /* geom */, | |
484 int /* nAliases */ | |
485 ); | |
486 | |
487 extern Status | |
488 XkbAllocGeomColors( | |
489 XkbGeometryPtr /* geom */, | |
490 int /* nColors */ | |
491 ); | |
492 | |
493 extern Status | |
494 XkbAllocGeomShapes( | |
495 XkbGeometryPtr /* geom */, | |
496 int /* nShapes */ | |
497 ); | |
498 | |
499 extern Status | |
500 XkbAllocGeomSections( | |
501 XkbGeometryPtr /* geom */, | |
502 int /* nSections */ | |
503 ); | |
504 | |
505 extern Status | |
506 XkbAllocGeomOverlays( | |
507 XkbSectionPtr /* section */, | |
508 int /* num_needed */ | |
509 ); | |
510 | |
511 extern Status | |
512 XkbAllocGeomOverlayRows( | |
513 XkbOverlayPtr /* overlay */, | |
514 int /* num_needed */ | |
515 ); | |
516 | |
517 extern Status | |
518 XkbAllocGeomOverlayKeys( | |
519 XkbOverlayRowPtr /* row */, | |
520 int /* num_needed */ | |
521 ); | |
522 | |
523 extern Status | |
524 XkbAllocGeomDoodads( | |
525 XkbGeometryPtr /* geom */, | |
526 int /* nDoodads */ | |
527 ); | |
528 | |
529 extern Status | |
530 XkbAllocGeomSectionDoodads( | |
531 XkbSectionPtr /* section */, | |
532 int /* nDoodads */ | |
533 ); | |
534 | |
535 extern Status | |
536 XkbAllocGeomOutlines( | |
537 XkbShapePtr /* shape */, | |
538 int /* nOL */ | |
539 ); | |
540 | |
541 extern Status | |
542 XkbAllocGeomRows( | |
543 XkbSectionPtr /* section */, | |
544 int /* nRows */ | |
545 ); | |
546 | |
547 extern Status | |
548 XkbAllocGeomPoints( | |
549 XkbOutlinePtr /* ol */, | |
550 int /* nPts */ | |
551 ); | |
552 | |
553 extern Status | |
554 XkbAllocGeomKeys( | |
555 XkbRowPtr /* row */, | |
556 int /* nKeys */ | |
557 ); | |
558 | |
559 extern Status | |
560 XkbAllocGeometry( | |
561 XkbDescPtr /* xkb */, | |
562 XkbGeometrySizesPtr /* sizes */ | |
563 ); | |
564 | |
565 extern Status | |
566 XkbSetGeometry( | |
567 Display * /* dpy */, | |
568 unsigned /* deviceSpec */, | |
569 XkbGeometryPtr /* geom */ | |
570 ); | |
571 | |
572 extern Bool | |
573 XkbComputeShapeTop( | |
574 XkbShapePtr /* shape */, | |
575 XkbBoundsPtr /* bounds */ | |
576 ); | |
577 | |
578 extern Bool | |
579 XkbComputeShapeBounds( | |
580 XkbShapePtr /* shape */ | |
581 ); | |
582 | |
583 extern Bool | |
584 XkbComputeRowBounds( | |
585 XkbGeometryPtr /* geom */, | |
586 XkbSectionPtr /* section */, | |
587 XkbRowPtr /* row */ | |
588 ); | |
589 | |
590 extern Bool | |
591 XkbComputeSectionBounds( | |
592 XkbGeometryPtr /* geom */, | |
593 XkbSectionPtr /* section */ | |
594 ); | |
595 | |
596 extern char * | |
597 XkbFindOverlayForKey( | |
598 XkbGeometryPtr /* geom */, | |
599 XkbSectionPtr /* wanted */, | |
600 _Xconst char * /* under */ | |
601 ); | |
602 | |
603 extern Status | |
604 XkbGetGeometry( | |
605 Display * /* dpy */, | |
606 XkbDescPtr /* xkb */ | |
607 ); | |
608 | |
609 extern Status | |
610 XkbGetNamedGeometry( | |
611 Display * /* dpy */, | |
612 XkbDescPtr /* xkb */, | |
613 Atom /* name */ | |
614 ); | |
615 | |
616 _XFUNCPROTOEND | |
617 | |
618 #endif /* _XKBSTR_H_ */ |