diff options
Diffstat (limited to 'xorg-server/xkb/xkbgeom.h')
-rw-r--r-- | xorg-server/xkb/xkbgeom.h | 1302 |
1 files changed, 651 insertions, 651 deletions
diff --git a/xorg-server/xkb/xkbgeom.h b/xorg-server/xkb/xkbgeom.h index d10b956a6..27dbbb2ad 100644 --- a/xorg-server/xkb/xkbgeom.h +++ b/xorg-server/xkb/xkbgeom.h @@ -1,651 +1,651 @@ -/************************************************************ -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_ - -#include "xkbstr.h" - -#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 - -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) ((int)((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) ((int)((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; - -/** - * Specifies which items should be cleared in an XKB geometry array - * when the array is reallocated. - */ -typedef enum -{ - XKB_GEOM_CLEAR_NONE, /* Don't clear any items, just reallocate. */ - XKB_GEOM_CLEAR_EXCESS, /* Clear new extra items after reallocation. */ - XKB_GEOM_CLEAR_ALL /* Clear all items after reallocation. */ -} XkbGeomClearance; - -extern XkbPropertyPtr -XkbAddGeomProperty( - XkbGeometryPtr /* geom */, - char * /* name */, - char * /* value */ -); - -extern XkbKeyAliasPtr -XkbAddGeomKeyAlias( - XkbGeometryPtr /* geom */, - char * /* alias */, - char * /* real */ -); - -extern XkbColorPtr -XkbAddGeomColor( - XkbGeometryPtr /* geom */, - char * /* spec */, - unsigned int /* pixel */ -); - -extern XkbOutlinePtr -XkbAddGeomOutline( - XkbShapePtr /* shape */, - int /* sz_points */ -); - -extern XkbShapePtr -XkbAddGeomShape( - XkbGeometryPtr /* geom */, - Atom /* name */, - int /* sz_outlines */ -); - -extern XkbKeyPtr -XkbAddGeomKey( - XkbRowPtr /* row */ -); - -extern XkbRowPtr -XkbAddGeomRow( - XkbSectionPtr /* section */, - int /* sz_keys */ -); - -extern XkbSectionPtr -XkbAddGeomSection( - XkbGeometryPtr /* geom */, - Atom /* name */, - int /* sz_rows */, - int /* sz_doodads */, - int /* sz_overlays */ -); - -extern XkbOverlayPtr -XkbAddGeomOverlay( - XkbSectionPtr /* section */, - Atom /* name */, - int /* sz_rows */ -); - -extern XkbOverlayRowPtr -XkbAddGeomOverlayRow( - XkbOverlayPtr /* overlay */, - int /* row_under */, - int /* sz_keys */ -); - -extern XkbOverlayKeyPtr -XkbAddGeomOverlayKey( - XkbOverlayPtr /* overlay */, - XkbOverlayRowPtr /* row */, - char * /* over */, - char * /* under */ -); - -extern XkbDoodadPtr -XkbAddGeomDoodad( - XkbGeometryPtr /* geom */, - XkbSectionPtr /* section */, - Atom /* name */ -); - - -extern void -XkbFreeGeomKeyAliases( - XkbGeometryPtr /* geom */, - int /* first */, - int /* count */, - Bool /* freeAll */ -); - -extern void -XkbFreeGeomColors( - XkbGeometryPtr /* geom */, - int /* first */, - int /* count */, - Bool /* freeAll */ -); - -extern void -XkbFreeGeomDoodads( - XkbDoodadPtr /* doodads */, - int /* nDoodads */, - Bool /* freeAll */ -); - - -extern void -XkbFreeGeomProperties( - XkbGeometryPtr /* geom */, - int /* first */, - int /* count */, - Bool /* freeAll */ -); - -extern void -XkbFreeGeomOverlayKeys( - XkbOverlayRowPtr /* row */, - int /* first */, - int /* count */, - Bool /* freeAll */ -); - -extern void -XkbFreeGeomOverlayRows( - XkbOverlayPtr /* overlay */, - int /* first */, - int /* count */, - Bool /* freeAll */ -); - -extern void -XkbFreeGeomOverlays( - XkbSectionPtr /* section */, - int /* first */, - int /* count */, - Bool /* freeAll */ -); - -extern void -XkbFreeGeomKeys( - XkbRowPtr /* row */, - int /* first */, - int /* count */, - Bool /* freeAll */ -); - -extern void -XkbFreeGeomRows( - XkbSectionPtr /* section */, - int /* first */, - int /* count */, - Bool /* freeAll */ -); - -extern void -XkbFreeGeomSections( - XkbGeometryPtr /* geom */, - int /* first */, - int /* count */, - Bool /* freeAll */ -); - - -extern void -XkbFreeGeomPoints( - XkbOutlinePtr /* outline */, - int /* first */, - int /* count */, - Bool /* freeAll */ -); - -extern void -XkbFreeGeomOutlines( - XkbShapePtr /* shape */, - int /* first */, - int /* count */, - Bool /* freeAll */ -); - -extern void -XkbFreeGeomShapes( - XkbGeometryPtr /* geom */, - int /* first */, - int /* count */, - Bool /* freeAll */ -); - -extern void -XkbFreeGeometry( - XkbGeometryPtr /* geom */, - unsigned int /* which */, - Bool /* freeMap */ -); - -extern Bool -XkbGeomRealloc( - void ** /* buffer */, - int /* szItems */, - int /* nrItems */, - int /* itemSize */, - XkbGeomClearance /* clearance */ -); - -extern Status -XkbAllocGeomProps( - XkbGeometryPtr /* geom */, - int /* nProps */ -); - -extern Status -XkbAllocGeomKeyAliases( - XkbGeometryPtr /* geom */, - int /* nAliases */ -); - -extern Status -XkbAllocGeomColors( - XkbGeometryPtr /* geom */, - int /* nColors */ -); - -extern Status -XkbAllocGeomShapes( - XkbGeometryPtr /* geom */, - int /* nShapes */ -); - -extern Status -XkbAllocGeomSections( - XkbGeometryPtr /* geom */, - int /* nSections */ -); - -extern Status -XkbAllocGeomOverlays( - XkbSectionPtr /* section */, - int /* num_needed */ -); - -extern Status -XkbAllocGeomOverlayRows( - XkbOverlayPtr /* overlay */, - int /* num_needed */ -); - -extern Status -XkbAllocGeomOverlayKeys( - XkbOverlayRowPtr /* row */, - int /* num_needed */ -); - -extern Status -XkbAllocGeomDoodads( - XkbGeometryPtr /* geom */, - int /* nDoodads */ -); - -extern Status -XkbAllocGeomSectionDoodads( - XkbSectionPtr /* section */, - int /* nDoodads */ -); - -extern Status -XkbAllocGeomOutlines( - XkbShapePtr /* shape */, - int /* nOL */ -); - -extern Status -XkbAllocGeomRows( - XkbSectionPtr /* section */, - int /* nRows */ -); - -extern Status -XkbAllocGeomPoints( - XkbOutlinePtr /* ol */, - int /* nPts */ -); - -extern Status -XkbAllocGeomKeys( - XkbRowPtr /* row */, - int /* nKeys */ -); - -extern Status -XkbAllocGeometry( - XkbDescPtr /* xkb */, - XkbGeometrySizesPtr /* sizes */ -); - -extern Bool -XkbComputeShapeTop( - XkbShapePtr /* shape */, - XkbBoundsPtr /* bounds */ -); - -extern Bool -XkbComputeShapeBounds( - XkbShapePtr /* shape */ -); - -extern Bool -XkbComputeRowBounds( - XkbGeometryPtr /* geom */, - XkbSectionPtr /* section */, - XkbRowPtr /* row */ -); - -extern Bool -XkbComputeSectionBounds( - XkbGeometryPtr /* geom */, - XkbSectionPtr /* section */ -); - -extern char * -XkbFindOverlayForKey( - XkbGeometryPtr /* geom */, - XkbSectionPtr /* wanted */, - char * /* under */ -); - -#endif /* _XKBGEOM_H_ */ +/************************************************************
+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_
+
+#include "xkbstr.h"
+
+#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
+
+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) ((int)((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) ((int)((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;
+
+/**
+ * Specifies which items should be cleared in an XKB geometry array
+ * when the array is reallocated.
+ */
+typedef enum
+{
+ XKB_GEOM_CLEAR_NONE, /* Don't clear any items, just reallocate. */
+ XKB_GEOM_CLEAR_EXCESS, /* Clear new extra items after reallocation. */
+ XKB_GEOM_CLEAR_ALL /* Clear all items after reallocation. */
+} XkbGeomClearance;
+
+extern XkbPropertyPtr
+XkbAddGeomProperty(
+ XkbGeometryPtr /* geom */,
+ char * /* name */,
+ char * /* value */
+);
+
+extern XkbKeyAliasPtr
+XkbAddGeomKeyAlias(
+ XkbGeometryPtr /* geom */,
+ char * /* alias */,
+ char * /* real */
+);
+
+extern XkbColorPtr
+XkbAddGeomColor(
+ XkbGeometryPtr /* geom */,
+ char * /* spec */,
+ unsigned int /* pixel */
+);
+
+extern XkbOutlinePtr
+XkbAddGeomOutline(
+ XkbShapePtr /* shape */,
+ int /* sz_points */
+);
+
+extern XkbShapePtr
+XkbAddGeomShape(
+ XkbGeometryPtr /* geom */,
+ Atom /* name */,
+ int /* sz_outlines */
+);
+
+extern XkbKeyPtr
+XkbAddGeomKey(
+ XkbRowPtr /* row */
+);
+
+extern XkbRowPtr
+XkbAddGeomRow(
+ XkbSectionPtr /* section */,
+ int /* sz_keys */
+);
+
+extern XkbSectionPtr
+XkbAddGeomSection(
+ XkbGeometryPtr /* geom */,
+ Atom /* name */,
+ int /* sz_rows */,
+ int /* sz_doodads */,
+ int /* sz_overlays */
+);
+
+extern XkbOverlayPtr
+XkbAddGeomOverlay(
+ XkbSectionPtr /* section */,
+ Atom /* name */,
+ int /* sz_rows */
+);
+
+extern XkbOverlayRowPtr
+XkbAddGeomOverlayRow(
+ XkbOverlayPtr /* overlay */,
+ int /* row_under */,
+ int /* sz_keys */
+);
+
+extern XkbOverlayKeyPtr
+XkbAddGeomOverlayKey(
+ XkbOverlayPtr /* overlay */,
+ XkbOverlayRowPtr /* row */,
+ char * /* over */,
+ char * /* under */
+);
+
+extern XkbDoodadPtr
+XkbAddGeomDoodad(
+ XkbGeometryPtr /* geom */,
+ XkbSectionPtr /* section */,
+ Atom /* name */
+);
+
+
+extern void
+XkbFreeGeomKeyAliases(
+ XkbGeometryPtr /* geom */,
+ int /* first */,
+ int /* count */,
+ Bool /* freeAll */
+);
+
+extern void
+XkbFreeGeomColors(
+ XkbGeometryPtr /* geom */,
+ int /* first */,
+ int /* count */,
+ Bool /* freeAll */
+);
+
+extern void
+XkbFreeGeomDoodads(
+ XkbDoodadPtr /* doodads */,
+ int /* nDoodads */,
+ Bool /* freeAll */
+);
+
+
+extern void
+XkbFreeGeomProperties(
+ XkbGeometryPtr /* geom */,
+ int /* first */,
+ int /* count */,
+ Bool /* freeAll */
+);
+
+extern void
+XkbFreeGeomOverlayKeys(
+ XkbOverlayRowPtr /* row */,
+ int /* first */,
+ int /* count */,
+ Bool /* freeAll */
+);
+
+extern void
+XkbFreeGeomOverlayRows(
+ XkbOverlayPtr /* overlay */,
+ int /* first */,
+ int /* count */,
+ Bool /* freeAll */
+);
+
+extern void
+XkbFreeGeomOverlays(
+ XkbSectionPtr /* section */,
+ int /* first */,
+ int /* count */,
+ Bool /* freeAll */
+);
+
+extern void
+XkbFreeGeomKeys(
+ XkbRowPtr /* row */,
+ int /* first */,
+ int /* count */,
+ Bool /* freeAll */
+);
+
+extern void
+XkbFreeGeomRows(
+ XkbSectionPtr /* section */,
+ int /* first */,
+ int /* count */,
+ Bool /* freeAll */
+);
+
+extern void
+XkbFreeGeomSections(
+ XkbGeometryPtr /* geom */,
+ int /* first */,
+ int /* count */,
+ Bool /* freeAll */
+);
+
+
+extern void
+XkbFreeGeomPoints(
+ XkbOutlinePtr /* outline */,
+ int /* first */,
+ int /* count */,
+ Bool /* freeAll */
+);
+
+extern void
+XkbFreeGeomOutlines(
+ XkbShapePtr /* shape */,
+ int /* first */,
+ int /* count */,
+ Bool /* freeAll */
+);
+
+extern void
+XkbFreeGeomShapes(
+ XkbGeometryPtr /* geom */,
+ int /* first */,
+ int /* count */,
+ Bool /* freeAll */
+);
+
+extern void
+XkbFreeGeometry(
+ XkbGeometryPtr /* geom */,
+ unsigned int /* which */,
+ Bool /* freeMap */
+);
+
+extern Bool
+XkbGeomRealloc(
+ void ** /* buffer */,
+ int /* szItems */,
+ int /* nrItems */,
+ int /* itemSize */,
+ XkbGeomClearance /* clearance */
+);
+
+extern Status
+XkbAllocGeomProps(
+ XkbGeometryPtr /* geom */,
+ int /* nProps */
+);
+
+extern Status
+XkbAllocGeomKeyAliases(
+ XkbGeometryPtr /* geom */,
+ int /* nAliases */
+);
+
+extern Status
+XkbAllocGeomColors(
+ XkbGeometryPtr /* geom */,
+ int /* nColors */
+);
+
+extern Status
+XkbAllocGeomShapes(
+ XkbGeometryPtr /* geom */,
+ int /* nShapes */
+);
+
+extern Status
+XkbAllocGeomSections(
+ XkbGeometryPtr /* geom */,
+ int /* nSections */
+);
+
+extern Status
+XkbAllocGeomOverlays(
+ XkbSectionPtr /* section */,
+ int /* num_needed */
+);
+
+extern Status
+XkbAllocGeomOverlayRows(
+ XkbOverlayPtr /* overlay */,
+ int /* num_needed */
+);
+
+extern Status
+XkbAllocGeomOverlayKeys(
+ XkbOverlayRowPtr /* row */,
+ int /* num_needed */
+);
+
+extern Status
+XkbAllocGeomDoodads(
+ XkbGeometryPtr /* geom */,
+ int /* nDoodads */
+);
+
+extern Status
+XkbAllocGeomSectionDoodads(
+ XkbSectionPtr /* section */,
+ int /* nDoodads */
+);
+
+extern Status
+XkbAllocGeomOutlines(
+ XkbShapePtr /* shape */,
+ int /* nOL */
+);
+
+extern Status
+XkbAllocGeomRows(
+ XkbSectionPtr /* section */,
+ int /* nRows */
+);
+
+extern Status
+XkbAllocGeomPoints(
+ XkbOutlinePtr /* ol */,
+ int /* nPts */
+);
+
+extern Status
+XkbAllocGeomKeys(
+ XkbRowPtr /* row */,
+ int /* nKeys */
+);
+
+extern Status
+XkbAllocGeometry(
+ XkbDescPtr /* xkb */,
+ XkbGeometrySizesPtr /* sizes */
+);
+
+extern Bool
+XkbComputeShapeTop(
+ XkbShapePtr /* shape */,
+ XkbBoundsPtr /* bounds */
+);
+
+extern Bool
+XkbComputeShapeBounds(
+ XkbShapePtr /* shape */
+);
+
+extern Bool
+XkbComputeRowBounds(
+ XkbGeometryPtr /* geom */,
+ XkbSectionPtr /* section */,
+ XkbRowPtr /* row */
+);
+
+extern Bool
+XkbComputeSectionBounds(
+ XkbGeometryPtr /* geom */,
+ XkbSectionPtr /* section */
+);
+
+extern char *
+XkbFindOverlayForKey(
+ XkbGeometryPtr /* geom */,
+ XkbSectionPtr /* wanted */,
+ char * /* under */
+);
+
+#endif /* _XKBGEOM_H_ */
|