VirtualBox

source: vbox/trunk/src/VBox/Additions/linux/x11include/7.0/X11/extensions/XKBgeom.h@ 1

Last change on this file since 1 was 1, checked in by vboxsync, 55 years ago

import

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

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette