564 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			564 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			C
		
	
	
	
/************************************************************
 | 
						|
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 XkbAllocGeometry		SrvXkbAllocGeometry
 | 
						|
#define XkbFreeGeomKeyAliases		SrvXkbFreeGeomKeyAliases
 | 
						|
#define XkbFreeGeomColors		SrvXkbFreeGeomColors
 | 
						|
#define XkbFreeGeomDoodads		SrvXkbFreeGeomDoodads
 | 
						|
#define XkbFreeGeomProperties		SrvXkbFreeGeomProperties
 | 
						|
#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_ */
 |