VirtualBox

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

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

export to OSE

  • 屬性 svn:eol-style 設為 native
檔案大小: 14.9 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_XFUNCPROTOBEGIN
315
316extern XkbPropertyPtr
317XkbAddGeomProperty(
318 XkbGeometryPtr /* geom */,
319 char * /* name */,
320 char * /* value */
321);
322
323extern XkbKeyAliasPtr
324XkbAddGeomKeyAlias(
325 XkbGeometryPtr /* geom */,
326 char * /* alias */,
327 char * /* real */
328);
329
330extern XkbColorPtr
331XkbAddGeomColor(
332 XkbGeometryPtr /* geom */,
333 char * /* spec */,
334 unsigned int /* pixel */
335);
336
337extern XkbOutlinePtr
338XkbAddGeomOutline(
339 XkbShapePtr /* shape */,
340 int /* sz_points */
341);
342
343extern XkbShapePtr
344XkbAddGeomShape(
345 XkbGeometryPtr /* geom */,
346 Atom /* name */,
347 int /* sz_outlines */
348);
349
350extern XkbKeyPtr
351XkbAddGeomKey(
352 XkbRowPtr /* row */
353);
354
355extern XkbRowPtr
356XkbAddGeomRow(
357 XkbSectionPtr /* section */,
358 int /* sz_keys */
359);
360
361extern XkbSectionPtr
362XkbAddGeomSection(
363 XkbGeometryPtr /* geom */,
364 Atom /* name */,
365 int /* sz_rows */,
366 int /* sz_doodads */,
367 int /* sz_overlays */
368);
369
370extern XkbOverlayPtr
371XkbAddGeomOverlay(
372 XkbSectionPtr /* section */,
373 Atom /* name */,
374 int /* sz_rows */
375);
376
377extern XkbOverlayRowPtr
378XkbAddGeomOverlayRow(
379 XkbOverlayPtr /* overlay */,
380 int /* row_under */,
381 int /* sz_keys */
382);
383
384extern XkbOverlayKeyPtr
385XkbAddGeomOverlayKey(
386 XkbOverlayPtr /* overlay */,
387 XkbOverlayRowPtr /* row */,
388 char * /* over */,
389 char * /* under */
390);
391
392extern XkbDoodadPtr
393XkbAddGeomDoodad(
394 XkbGeometryPtr /* geom */,
395 XkbSectionPtr /* section */,
396 Atom /* name */
397);
398
399
400extern void
401XkbFreeGeomKeyAliases(
402 XkbGeometryPtr /* geom */,
403 int /* first */,
404 int /* count */,
405 Bool /* freeAll */
406);
407
408extern void
409XkbFreeGeomColors(
410 XkbGeometryPtr /* geom */,
411 int /* first */,
412 int /* count */,
413 Bool /* freeAll */
414);
415
416extern void
417XkbFreeGeomDoodads(
418 XkbDoodadPtr /* doodads */,
419 int /* nDoodads */,
420 Bool /* freeAll */
421);
422
423
424extern void
425XkbFreeGeomProperties(
426 XkbGeometryPtr /* geom */,
427 int /* first */,
428 int /* count */,
429 Bool /* freeAll */
430);
431
432extern void
433XkbFreeGeomOverlayKeys(
434 XkbOverlayRowPtr /* row */,
435 int /* first */,
436 int /* count */,
437 Bool /* freeAll */
438);
439
440extern void
441XkbFreeGeomOverlayRows(
442 XkbOverlayPtr /* overlay */,
443 int /* first */,
444 int /* count */,
445 Bool /* freeAll */
446);
447
448extern void
449XkbFreeGeomOverlays(
450 XkbSectionPtr /* section */,
451 int /* first */,
452 int /* count */,
453 Bool /* freeAll */
454);
455
456extern void
457XkbFreeGeomKeys(
458 XkbRowPtr /* row */,
459 int /* first */,
460 int /* count */,
461 Bool /* freeAll */
462);
463
464extern void
465XkbFreeGeomRows(
466 XkbSectionPtr /* section */,
467 int /* first */,
468 int /* count */,
469 Bool /* freeAll */
470);
471
472extern void
473XkbFreeGeomSections(
474 XkbGeometryPtr /* geom */,
475 int /* first */,
476 int /* count */,
477 Bool /* freeAll */
478);
479
480
481extern void
482XkbFreeGeomPoints(
483 XkbOutlinePtr /* outline */,
484 int /* first */,
485 int /* count */,
486 Bool /* freeAll */
487);
488
489extern void
490XkbFreeGeomOutlines(
491 XkbShapePtr /* shape */,
492 int /* first */,
493 int /* count */,
494 Bool /* freeAll */
495);
496
497extern void
498XkbFreeGeomShapes(
499 XkbGeometryPtr /* geom */,
500 int /* first */,
501 int /* count */,
502 Bool /* freeAll */
503);
504
505extern void
506XkbFreeGeometry(
507 XkbGeometryPtr /* geom */,
508 unsigned int /* which */,
509 Bool /* freeMap */
510);
511
512extern Status
513XkbAllocGeomProps(
514 XkbGeometryPtr /* geom */,
515 int /* nProps */
516);
517
518extern Status
519XkbAllocGeomKeyAliases(
520 XkbGeometryPtr /* geom */,
521 int /* nAliases */
522);
523
524extern Status
525XkbAllocGeomColors(
526 XkbGeometryPtr /* geom */,
527 int /* nColors */
528);
529
530extern Status
531XkbAllocGeomShapes(
532 XkbGeometryPtr /* geom */,
533 int /* nShapes */
534);
535
536extern Status
537XkbAllocGeomSections(
538 XkbGeometryPtr /* geom */,
539 int /* nSections */
540);
541
542extern Status
543XkbAllocGeomOverlays(
544 XkbSectionPtr /* section */,
545 int /* num_needed */
546);
547
548extern Status
549XkbAllocGeomOverlayRows(
550 XkbOverlayPtr /* overlay */,
551 int /* num_needed */
552);
553
554extern Status
555XkbAllocGeomOverlayKeys(
556 XkbOverlayRowPtr /* row */,
557 int /* num_needed */
558);
559
560extern Status
561XkbAllocGeomDoodads(
562 XkbGeometryPtr /* geom */,
563 int /* nDoodads */
564);
565
566extern Status
567XkbAllocGeomSectionDoodads(
568 XkbSectionPtr /* section */,
569 int /* nDoodads */
570);
571
572extern Status
573XkbAllocGeomOutlines(
574 XkbShapePtr /* shape */,
575 int /* nOL */
576);
577
578extern Status
579XkbAllocGeomRows(
580 XkbSectionPtr /* section */,
581 int /* nRows */
582);
583
584extern Status
585XkbAllocGeomPoints(
586 XkbOutlinePtr /* ol */,
587 int /* nPts */
588);
589
590extern Status
591XkbAllocGeomKeys(
592 XkbRowPtr /* row */,
593 int /* nKeys */
594);
595
596extern Status
597XkbAllocGeometry(
598 XkbDescPtr /* xkb */,
599 XkbGeometrySizesPtr /* sizes */
600);
601
602extern Bool
603XkbComputeShapeTop(
604 XkbShapePtr /* shape */,
605 XkbBoundsPtr /* bounds */
606);
607
608extern Bool
609XkbComputeShapeBounds(
610 XkbShapePtr /* shape */
611);
612
613extern Bool
614XkbComputeRowBounds(
615 XkbGeometryPtr /* geom */,
616 XkbSectionPtr /* section */,
617 XkbRowPtr /* row */
618);
619
620extern Bool
621XkbComputeSectionBounds(
622 XkbGeometryPtr /* geom */,
623 XkbSectionPtr /* section */
624);
625
626extern char *
627XkbFindOverlayForKey(
628 XkbGeometryPtr /* geom */,
629 XkbSectionPtr /* wanted */,
630 char * /* under */
631);
632
633_XFUNCPROTOEND
634
635#endif /* _XKBGEOM_H_ */
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

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