]> git.sesse.net Git - rdpsrv/blobdiff - Xserver/include/extensions/XKBgeom.h
Import X server from vnc-3.3.7.
[rdpsrv] / Xserver / include / extensions / XKBgeom.h
diff --git a/Xserver/include/extensions/XKBgeom.h b/Xserver/include/extensions/XKBgeom.h
new file mode 100644 (file)
index 0000000..7a02149
--- /dev/null
@@ -0,0 +1,745 @@
+/* $XConsortium: XKBgeom.h /main/7 1996/03/06 21:40:11 kaleb $ */
+/************************************************************
+Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
+
+Permission to use, copy, modify, and distribute this
+software and its documentation for any purpose and without
+fee is hereby granted, provided that the above copyright
+notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting
+documentation, and that the name of Silicon Graphics not be 
+used in advertising or publicity pertaining to distribution 
+of the software without specific prior written permission.
+Silicon Graphics makes no representation about the suitability 
+of this software for any purpose. It is provided "as is"
+without any express or implied warranty.
+
+SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS 
+SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 
+AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
+GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL 
+DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 
+OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
+THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+********************************************************/
+
+#ifndef _XKBGEOM_H_
+#define        _XKBGEOM_H_
+
+#ifdef XKB_IN_SERVER
+#define XkbAddGeomKeyAlias             SrvXkbAddGeomKeyAlias
+#define XkbAddGeomColor                SrvXkbAddGeomColor
+#define XkbAddGeomDoodad               SrvXkbAddGeomDoodad
+#define XkbAddGeomKey                  SrvXkbAddGeomKey
+#define XkbAddGeomOutline              SrvXkbAddGeomOutline
+#define XkbAddGeomOverlay              SrvXkbAddGeomOverlay
+#define XkbAddGeomOverlayRow           SrvXkbAddGeomOverlayRow
+#define        XkbAddGeomOverlayKey            SrvXkbAddGeomOverlayKey
+#define XkbAddGeomProperty             SrvXkbAddGeomProperty
+#define XkbAddGeomRow                  SrvXkbAddGeomRow
+#define XkbAddGeomSection              SrvXkbAddGeomSection
+#define XkbAddGeomShape                        SrvXkbAddGeomShape
+#define XkbAllocGeomKeyAliases         SrvXkbAllocGeomKeyAliases
+#define XkbAllocGeomColors             SrvXkbAllocGeomColors
+#define XkbAllocGeomDoodads            SrvXkbAllocGeomDoodads
+#define XkbAllocGeomKeys               SrvXkbAllocGeomKeys
+#define XkbAllocGeomOutlines           SrvXkbAllocGeomOutlines
+#define XkbAllocGeomPoints             SrvXkbAllocGeomPoints
+#define XkbAllocGeomProps              SrvXkbAllocGeomProps
+#define XkbAllocGeomRows               SrvXkbAllocGeomRows
+#define XkbAllocGeomSectionDoodads     SrvXkbAllocGeomSectionDoodads
+#define XkbAllocGeomSections           SrvXkbAllocGeomSections
+#define        XkbAllocGeomOverlays            SrvXkbAllocGeomOverlays
+#define        XkbAllocGeomOverlayRows         SrvXkbAllocGeomOverlayRows
+#define        XkbAllocGeomOverlayKeys         SrvXkbAllocGeomOverlayKeys
+#define XkbAllocGeomShapes             SrvXkbAllocGeomShapes
+#define XkbAllocGeometry               SrvXkbAllocGeometry
+#define XkbFreeGeomKeyAliases          SrvXkbFreeGeomKeyAliases
+#define XkbFreeGeomColors              SrvXkbFreeGeomColors
+#define XkbFreeGeomDoodads             SrvXkbFreeGeomDoodads
+#define XkbFreeGeomProperties          SrvXkbFreeGeomProperties
+#define        XkbFreeGeomOverlayKeys          SrvXkbFreeGeomOverlayKeys
+#define        XkbFreeGeomOverlayRows          SrvXkbFreeGeomOverlayRows
+#define        XkbFreeGeomOverlays             SrvXkbFreeGeomOverlays
+#define        XkbFreeGeomKeys                 SrvXKbFreeGeomKeys
+#define        XkbFreeGeomRows                 SrvXKbFreeGeomRows
+#define XkbFreeGeomSections            SrvXkbFreeGeomSections
+#define        XkbFreeGeomPoints               SrvXkbFreeGeomPoints
+#define        XkbFreeGeomOutlines             SrvXkbFreeGeomOutlines
+#define XkbFreeGeomShapes              SrvXkbFreeGeomShapes
+#define XkbFreeGeometry                        SrvXkbFreeGeometry
+#endif
+
+typedef        struct _XkbProperty {
+       char    *name;
+       char    *value;
+} XkbPropertyRec,*XkbPropertyPtr;
+
+typedef struct _XkbColor {
+       unsigned int    pixel;
+       char *          spec;
+} XkbColorRec,*XkbColorPtr;
+
+typedef        struct _XkbPoint {
+       short   x;
+       short   y;
+} XkbPointRec, *XkbPointPtr;
+
+typedef struct _XkbBounds {
+       short   x1,y1;
+       short   x2,y2;
+} XkbBoundsRec, *XkbBoundsPtr;
+#define        XkbBoundsWidth(b)       (((b)->x2)-((b)->x1))
+#define        XkbBoundsHeight(b)      (((b)->y2)-((b)->y1))
+
+typedef struct _XkbOutline {
+       unsigned short  num_points;
+       unsigned short  sz_points;
+       unsigned short  corner_radius;
+       XkbPointPtr     points;
+} XkbOutlineRec, *XkbOutlinePtr;
+
+typedef struct _XkbShape {
+       Atom             name;
+       unsigned short   num_outlines;
+       unsigned short   sz_outlines;
+       XkbOutlinePtr    outlines;
+       XkbOutlinePtr    approx;
+       XkbOutlinePtr    primary;
+       XkbBoundsRec     bounds;
+} XkbShapeRec, *XkbShapePtr;
+#define        XkbOutlineIndex(s,o)    ((o)-&(s)->outlines[0])
+
+typedef struct _XkbShapeDoodad {
+       Atom             name;
+       unsigned char    type;
+       unsigned char    priority;
+       short            top;
+       short            left;
+       short            angle;
+       unsigned short   color_ndx;
+       unsigned short   shape_ndx;
+} XkbShapeDoodadRec, *XkbShapeDoodadPtr;
+#define        XkbShapeDoodadColor(g,d)        (&(g)->colors[(d)->color_ndx])
+#define        XkbShapeDoodadShape(g,d)        (&(g)->shapes[(d)->shape_ndx])
+#define        XkbSetShapeDoodadColor(g,d,c)   ((d)->color_ndx= (c)-&(g)->colors[0])
+#define        XkbSetShapeDoodadShape(g,d,s)   ((d)->shape_ndx= (s)-&(g)->shapes[0])
+
+typedef struct _XkbTextDoodad {
+       Atom             name;
+       unsigned char    type;
+       unsigned char    priority;
+       short            top;
+       short            left;
+       short            angle;
+       short            width;
+       short            height;
+       unsigned short   color_ndx;
+       char *           text;
+       char *           font;
+} XkbTextDoodadRec, *XkbTextDoodadPtr;
+#define        XkbTextDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])
+#define        XkbSetTextDoodadColor(g,d,c)    ((d)->color_ndx= (c)-&(g)->colors[0])
+
+typedef struct _XkbIndicatorDoodad {
+       Atom             name;
+       unsigned char    type;
+       unsigned char    priority;
+       short            top;
+       short            left;
+       short            angle;
+       unsigned short   shape_ndx;
+       unsigned short   on_color_ndx;
+       unsigned short   off_color_ndx;
+} XkbIndicatorDoodadRec, *XkbIndicatorDoodadPtr;
+#define        XkbIndicatorDoodadShape(g,d)    (&(g)->shapes[(d)->shape_ndx])
+#define        XkbIndicatorDoodadOnColor(g,d)  (&(g)->colors[(d)->on_color_ndx])
+#define        XkbIndicatorDoodadOffColor(g,d) (&(g)->colors[(d)->off_color_ndx])
+#define        XkbSetIndicatorDoodadOnColor(g,d,c) \
+                               ((d)->on_color_ndx= (c)-&(g)->colors[0])
+#define        XkbSetIndicatorDoodadOffColor(g,d,c) \
+                               ((d)->off_color_ndx= (c)-&(g)->colors[0])
+#define        XkbSetIndicatorDoodadShape(g,d,s) \
+                               ((d)->shape_ndx= (s)-&(g)->shapes[0])
+
+typedef struct _XkbLogoDoodad {
+       Atom             name;
+       unsigned char    type;
+       unsigned char    priority;
+       short            top;
+       short            left;
+       short            angle;
+       unsigned short   color_ndx;
+       unsigned short   shape_ndx;
+       char *           logo_name;
+} XkbLogoDoodadRec, *XkbLogoDoodadPtr;
+#define        XkbLogoDoodadColor(g,d)         (&(g)->colors[(d)->color_ndx])
+#define        XkbLogoDoodadShape(g,d)         (&(g)->shapes[(d)->shape_ndx])
+#define        XkbSetLogoDoodadColor(g,d,c)    ((d)->color_ndx= (c)-&(g)->colors[0])
+#define        XkbSetLogoDoodadShape(g,d,s)    ((d)->shape_ndx= (s)-&(g)->shapes[0])
+
+typedef struct _XkbAnyDoodad {
+       Atom             name;
+       unsigned char    type;
+       unsigned char    priority;
+       short            top;
+       short            left;
+       short            angle;
+} XkbAnyDoodadRec, *XkbAnyDoodadPtr;
+
+typedef union _XkbDoodad {
+       XkbAnyDoodadRec         any;
+       XkbShapeDoodadRec       shape;
+       XkbTextDoodadRec        text;
+       XkbIndicatorDoodadRec   indicator;
+       XkbLogoDoodadRec        logo;
+} XkbDoodadRec, *XkbDoodadPtr;
+
+#define        XkbUnknownDoodad        0
+#define        XkbOutlineDoodad        1
+#define        XkbSolidDoodad          2
+#define        XkbTextDoodad           3
+#define        XkbIndicatorDoodad      4
+#define        XkbLogoDoodad           5
+
+typedef struct _XkbKey {
+       XkbKeyNameRec    name;
+       short            gap;
+       unsigned char    shape_ndx;
+       unsigned char    color_ndx;
+} XkbKeyRec, *XkbKeyPtr;
+#define        XkbKeyShape(g,k)        (&(g)->shapes[(k)->shape_ndx])
+#define        XkbKeyColor(g,k)        (&(g)->colors[(k)->color_ndx])
+#define        XkbSetKeyShape(g,k,s)   ((k)->shape_ndx= (s)-&(g)->shapes[0])
+#define        XkbSetKeyColor(g,k,c)   ((k)->color_ndx= (c)-&(g)->colors[0])
+
+typedef struct _XkbRow {
+       short           top;
+       short           left;
+       unsigned short  num_keys;
+       unsigned short  sz_keys;
+       int             vertical;
+       XkbKeyPtr       keys;
+       XkbBoundsRec    bounds;
+} XkbRowRec, *XkbRowPtr;
+
+typedef struct _XkbSection {
+       Atom             name;
+       unsigned char    priority;
+       short            top;
+       short            left;
+       unsigned short   width;
+       unsigned short   height;
+       short            angle;
+       unsigned short   num_rows;
+       unsigned short   num_doodads;
+       unsigned short   num_overlays;
+       unsigned short   sz_rows;
+       unsigned short   sz_doodads;
+       unsigned short   sz_overlays;
+       XkbRowPtr        rows;
+       XkbDoodadPtr     doodads;
+       XkbBoundsRec     bounds;
+       struct _XkbOverlay *overlays;
+} XkbSectionRec, *XkbSectionPtr;
+
+typedef        struct _XkbOverlayKey {
+       XkbKeyNameRec   over;
+       XkbKeyNameRec   under;
+} XkbOverlayKeyRec,*XkbOverlayKeyPtr;
+
+typedef struct _XkbOverlayRow {
+       unsigned short          row_under;
+       unsigned short          num_keys;
+       unsigned short          sz_keys;
+       XkbOverlayKeyPtr        keys;
+} XkbOverlayRowRec,*XkbOverlayRowPtr;
+
+typedef struct _XkbOverlay {
+       Atom                    name;
+       XkbSectionPtr           section_under;
+       unsigned short          num_rows;
+       unsigned short          sz_rows;
+       XkbOverlayRowPtr        rows;
+       XkbBoundsPtr            bounds;
+} XkbOverlayRec,*XkbOverlayPtr;
+
+typedef struct _XkbGeometry {
+       Atom             name;
+       unsigned short   width_mm;
+       unsigned short   height_mm;
+       char *           label_font;
+       XkbColorPtr      label_color;
+       XkbColorPtr      base_color;
+       unsigned short   sz_properties;
+       unsigned short   sz_colors;
+       unsigned short   sz_shapes;
+       unsigned short   sz_sections;
+       unsigned short   sz_doodads;
+       unsigned short   sz_key_aliases;
+       unsigned short   num_properties;
+       unsigned short   num_colors;
+       unsigned short   num_shapes;
+       unsigned short   num_sections;
+       unsigned short   num_doodads;
+       unsigned short   num_key_aliases;
+       XkbPropertyPtr   properties;
+       XkbColorPtr      colors;
+       XkbShapePtr      shapes;
+       XkbSectionPtr    sections;
+       XkbDoodadPtr     doodads;
+       XkbKeyAliasPtr   key_aliases;
+} XkbGeometryRec;
+#define        XkbGeomColorIndex(g,c)  ((c)-&(g)->colors[0])
+
+#define        XkbGeomPropertiesMask   (1<<0)
+#define        XkbGeomColorsMask       (1<<1)
+#define        XkbGeomShapesMask       (1<<2)
+#define        XkbGeomSectionsMask     (1<<3)
+#define        XkbGeomDoodadsMask      (1<<4)
+#define        XkbGeomKeyAliasesMask   (1<<5)
+#define        XkbGeomAllMask          (0x3f)
+
+typedef struct _XkbGeometrySizes {
+       unsigned int    which;
+       unsigned short  num_properties;
+       unsigned short  num_colors;
+       unsigned short  num_shapes;
+       unsigned short  num_sections;
+       unsigned short  num_doodads;
+       unsigned short  num_key_aliases;
+} XkbGeometrySizesRec,*XkbGeometrySizesPtr;
+
+_XFUNCPROTOBEGIN
+
+extern XkbPropertyPtr
+XkbAddGeomProperty(
+#if NeedFunctionPrototypes
+    XkbGeometryPtr     /* geom */,
+    char *             /* name */,
+    char *             /* value */
+#endif
+);
+
+extern XkbKeyAliasPtr
+XkbAddGeomKeyAlias(
+#if NeedFunctionPrototypes
+    XkbGeometryPtr     /* geom */,
+    char *             /* alias */,
+    char *             /* real */
+#endif
+);
+
+extern XkbColorPtr
+XkbAddGeomColor(
+#if NeedFunctionPrototypes
+    XkbGeometryPtr     /* geom */,
+    char *             /* spec */,
+    unsigned int       /* pixel */
+#endif
+);
+
+extern XkbOutlinePtr
+XkbAddGeomOutline(
+#if NeedFunctionPrototypes
+    XkbShapePtr                /* shape */,
+    int                        /* sz_points */
+#endif
+);
+
+extern XkbShapePtr
+XkbAddGeomShape(
+#if NeedFunctionPrototypes
+    XkbGeometryPtr     /* geom */,
+    Atom               /* name */,
+    int                        /* sz_outlines */
+#endif
+);
+
+extern XkbKeyPtr
+XkbAddGeomKey(
+#if NeedFunctionPrototypes
+    XkbRowPtr          /* row */
+#endif
+);
+
+extern XkbRowPtr
+XkbAddGeomRow(
+#if NeedFunctionPrototypes
+    XkbSectionPtr      /* section */,
+    int                        /* sz_keys */
+#endif
+);
+
+extern XkbSectionPtr
+XkbAddGeomSection(
+#if NeedFunctionPrototypes
+    XkbGeometryPtr     /* geom */,
+    Atom               /* name */,
+    int                        /* sz_rows */,
+    int                        /* sz_doodads */,
+    int                        /* sz_overlays */
+#endif
+);
+
+extern XkbOverlayPtr
+XkbAddGeomOverlay(
+#if NeedFunctionPrototypes
+    XkbSectionPtr      /* section */,
+    Atom               /* name */,
+    int                        /* sz_rows */
+#endif
+);
+
+extern XkbOverlayRowPtr
+XkbAddGeomOverlayRow(
+#if NeedFunctionPrototypes
+    XkbOverlayPtr      /* overlay */,
+    int                        /* row_under */,
+    int                        /* sz_keys */
+#endif
+);
+
+extern XkbOverlayKeyPtr
+XkbAddGeomOverlayKey(
+#if NeedFunctionPrototypes
+    XkbOverlayPtr      /* overlay */,
+    XkbOverlayRowPtr   /* row */,
+    char *             /* over */,
+    char *             /* under */
+#endif
+);
+
+extern XkbDoodadPtr
+XkbAddGeomDoodad(
+#if NeedFunctionPrototypes
+    XkbGeometryPtr     /* geom */,
+    XkbSectionPtr      /* section */,
+    Atom               /* name */
+#endif
+);
+
+
+extern void
+XkbFreeGeomKeyAliases(
+#if NeedFunctionPrototypes
+    XkbGeometryPtr     /* geom */,
+    int                        /* first */,
+    int                        /* count */,
+    Bool               /* freeAll */
+#endif
+);
+
+extern void
+XkbFreeGeomColors(
+#if NeedFunctionPrototypes
+    XkbGeometryPtr     /* geom */,
+    int                        /* first */,
+    int                        /* count */,
+    Bool               /* freeAll */
+#endif
+);
+
+extern void
+XkbFreeGeomDoodads(
+#if NeedFunctionPrototypes
+    XkbDoodadPtr       /* doodads */,
+    int                        /* nDoodads */,
+    Bool               /* freeAll */
+#endif
+);
+
+
+extern void
+XkbFreeGeomProperties(
+#if NeedFunctionPrototypes
+    XkbGeometryPtr     /* geom */,
+    int                        /* first */,
+    int                        /* count */,
+    Bool               /* freeAll */
+#endif
+);
+
+extern void
+XkbFreeGeomOverlayKeys(
+#if NeedFunctionPrototypes
+    XkbOverlayRowPtr   /* row */,
+    int                        /* first */,
+    int                        /* count */,
+    Bool               /* freeAll */
+#endif
+);
+
+extern void
+XkbFreeGeomOverlayRows(
+#if NeedFunctionPrototypes
+    XkbOverlayPtr      /* overlay */,
+    int                        /* first */,
+    int                        /* count */,
+    Bool               /* freeAll */
+#endif
+);
+
+extern void
+XkbFreeGeomOverlays(
+#if NeedFunctionPrototypes
+    XkbSectionPtr      /* section */,
+    int                        /* first */,
+    int                        /* count */,
+    Bool               /* freeAll */
+#endif
+);
+
+extern void
+XkbFreeGeomKeys(
+#if NeedFunctionPrototypes
+    XkbRowPtr          /* row */,
+    int                        /* first */,
+    int                        /* count */,
+    Bool               /* freeAll */
+#endif
+);
+
+extern void
+XkbFreeGeomRows(
+#if NeedFunctionPrototypes
+    XkbSectionPtr      /* section */,
+    int                        /* first */,
+    int                        /* count */,
+    Bool               /* freeAll */
+#endif
+);
+
+extern void
+XkbFreeGeomSections(
+#if NeedFunctionPrototypes
+    XkbGeometryPtr     /* geom */,
+    int                        /* first */,
+    int                        /* count */,
+    Bool               /* freeAll */
+#endif
+);
+
+
+extern void
+XkbFreeGeomPoints(
+#if NeedFunctionPrototypes
+    XkbOutlinePtr      /* outline */,
+    int                        /* first */,
+    int                        /* count */,
+    Bool               /* freeAll */
+#endif
+);
+
+extern void
+XkbFreeGeomOutlines(
+#if NeedFunctionPrototypes
+    XkbShapePtr                /* shape */,
+    int                        /* first */,
+    int                        /* count */,
+    Bool               /* freeAll */
+#endif
+);
+
+extern void
+XkbFreeGeomShapes(
+#if NeedFunctionPrototypes
+    XkbGeometryPtr     /* geom */,
+    int                        /* first */,
+    int                        /* count */,
+    Bool               /* freeAll */
+#endif
+);
+
+extern void
+XkbFreeGeometry(
+#if NeedFunctionPrototypes
+    XkbGeometryPtr     /* geom */,
+    unsigned int       /* which */,
+    Bool               /* freeMap */
+#endif
+);
+
+extern Status
+XkbAllocGeomProps(
+#if NeedFunctionPrototypes
+    XkbGeometryPtr     /* geom */,
+    int                        /* nProps */
+#endif
+);
+
+extern Status
+XkbAllocGeomKeyAliases(
+#if NeedFunctionPrototypes
+    XkbGeometryPtr     /* geom */,
+    int                        /* nAliases */
+#endif
+);
+
+extern Status
+XkbAllocGeomColors(
+#if NeedFunctionPrototypes
+    XkbGeometryPtr     /* geom */,
+    int                        /* nColors */
+#endif
+);
+
+extern Status
+XkbAllocGeomShapes(
+#if NeedFunctionPrototypes
+    XkbGeometryPtr     /* geom */,
+    int                        /* nShapes */
+#endif
+);
+
+extern Status
+XkbAllocGeomSections(
+#if NeedFunctionPrototypes
+    XkbGeometryPtr     /* geom */,
+    int                        /* nSections */
+#endif
+);
+
+extern Status
+XkbAllocGeomOverlays(
+#if NeedFunctionPrototypes
+    XkbSectionPtr      /* section */,
+    int                        /* num_needed */
+#endif
+);
+
+extern Status
+XkbAllocGeomOverlayRows(
+#if NeedFunctionPrototypes
+    XkbOverlayPtr      /* overlay */,
+    int                        /* num_needed */
+#endif
+);
+
+extern Status
+XkbAllocGeomOverlayKeys(
+#if NeedFunctionPrototypes
+    XkbOverlayRowPtr   /* row */,
+    int                        /* num_needed */
+#endif
+);
+
+extern Status
+XkbAllocGeomDoodads(
+#if NeedFunctionPrototypes
+    XkbGeometryPtr     /* geom */,
+    int                        /* nDoodads */
+#endif
+);
+
+extern Status
+XkbAllocGeomSectionDoodads(
+#if NeedFunctionPrototypes
+    XkbSectionPtr      /* section */,
+    int                        /* nDoodads */
+#endif
+);
+
+extern Status
+XkbAllocGeomOutlines(
+#if NeedFunctionPrototypes
+    XkbShapePtr                /* shape */,
+    int                        /* nOL */
+#endif
+);
+
+extern Status
+XkbAllocGeomRows(
+#if NeedFunctionPrototypes
+    XkbSectionPtr      /* section */,
+    int                        /* nRows */
+#endif
+);
+
+extern Status
+XkbAllocGeomPoints(
+#if NeedFunctionPrototypes
+    XkbOutlinePtr      /* ol */,
+    int                        /* nPts */
+#endif
+);
+
+extern Status
+XkbAllocGeomKeys(
+#if NeedFunctionPrototypes
+    XkbRowPtr          /* row */,
+    int                        /* nKeys */
+#endif
+);
+
+extern Status
+XkbAllocGeometry(
+#if NeedFunctionPrototypes
+       XkbDescPtr              /* xkb */,
+       XkbGeometrySizesPtr     /* sizes */
+#endif
+);
+
+extern Bool
+XkbComputeShapeTop(
+#if NeedFunctionPrototypes
+       XkbShapePtr             /* shape */,
+       XkbBoundsPtr            /* bounds */
+#endif
+);
+
+extern Bool
+XkbComputeShapeBounds(
+#if NeedFunctionPrototypes
+       XkbShapePtr             /* shape */
+#endif
+);
+
+extern Bool
+XkbComputeRowBounds(
+#if NeedFunctionPrototypes
+       XkbGeometryPtr          /* geom */,
+       XkbSectionPtr           /* section */,
+       XkbRowPtr               /* row */
+#endif
+);
+
+extern Bool
+XkbComputeSectionBounds(
+#if NeedFunctionPrototypes
+       XkbGeometryPtr          /* geom */,
+       XkbSectionPtr           /* section */
+#endif
+);
+
+extern char *
+XkbFindOverlayForKey(
+#if NeedFunctionPrototypes
+       XkbGeometryPtr          /* geom */,
+       XkbSectionPtr           /* wanted */,
+       char *                  /* under */
+#endif
+);
+
+extern Status
+XkbGetGeometry(
+#if NeedFunctionPrototypes
+    Display *                  /* dpy */,
+    XkbDescPtr                 /* xkb */
+#endif
+);
+
+extern Status
+XkbGetNamedGeometry(
+#if NeedFunctionPrototypes
+    Display *                  /* dpy */,
+    XkbDescPtr                 /* xkb */,
+    Atom                       /* name */
+#endif
+);
+
+_XFUNCPROTOEND
+
+#endif /* _XKBSTR_H_ */