VirtualBox

source: vbox/trunk/src/VBox/Additions/x11/x11include/xorg-server-1.12.0/xkbgeom.h@ 68753

最後變更 在這個檔案從68753是 40349,由 vboxsync 提交於 13 年 前

Additions/xorg: support X.Org Server 1.12.

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

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