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