040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/************************************************************
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncCopyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncPermission to use, copy, modify, and distribute this
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncsoftware and its documentation for any purpose and without
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncfee is hereby granted, provided that the above copyright
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncnotice appear in all copies and that both that copyright
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncnotice and this permission notice appear in supporting
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncdocumentation, and that the name of Silicon Graphics not be
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncused in advertising or publicity pertaining to distribution
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncof the software without specific prior written permission.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSilicon Graphics makes no representation about the suitability
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncof this software for any purpose. It is provided "as is"
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncwithout any express or implied warranty.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncAND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncGRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncDAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncTHE USE OR PERFORMANCE OF THIS SOFTWARE.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync********************************************************/
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#ifndef _XKBGEOM_H_
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define _XKBGEOM_H_
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#include "xkbstr.h"
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAddGeomKeyAlias SrvXkbAddGeomKeyAlias
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAddGeomColor SrvXkbAddGeomColor
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAddGeomDoodad SrvXkbAddGeomDoodad
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAddGeomKey SrvXkbAddGeomKey
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAddGeomOutline SrvXkbAddGeomOutline
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAddGeomOverlay SrvXkbAddGeomOverlay
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAddGeomOverlayRow SrvXkbAddGeomOverlayRow
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAddGeomOverlayKey SrvXkbAddGeomOverlayKey
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAddGeomProperty SrvXkbAddGeomProperty
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAddGeomRow SrvXkbAddGeomRow
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAddGeomSection SrvXkbAddGeomSection
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAddGeomShape SrvXkbAddGeomShape
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAllocGeomKeyAliases SrvXkbAllocGeomKeyAliases
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAllocGeomColors SrvXkbAllocGeomColors
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAllocGeomDoodads SrvXkbAllocGeomDoodads
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAllocGeomKeys SrvXkbAllocGeomKeys
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAllocGeomOutlines SrvXkbAllocGeomOutlines
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAllocGeomPoints SrvXkbAllocGeomPoints
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAllocGeomProps SrvXkbAllocGeomProps
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAllocGeomRows SrvXkbAllocGeomRows
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAllocGeomSectionDoodads SrvXkbAllocGeomSectionDoodads
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAllocGeomSections SrvXkbAllocGeomSections
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAllocGeomOverlays SrvXkbAllocGeomOverlays
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAllocGeomOverlayRows SrvXkbAllocGeomOverlayRows
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAllocGeomOverlayKeys SrvXkbAllocGeomOverlayKeys
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAllocGeomShapes SrvXkbAllocGeomShapes
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbAllocGeometry SrvXkbAllocGeometry
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbFreeGeomKeyAliases SrvXkbFreeGeomKeyAliases
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbFreeGeomColors SrvXkbFreeGeomColors
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbFreeGeomDoodads SrvXkbFreeGeomDoodads
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbFreeGeomProperties SrvXkbFreeGeomProperties
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbFreeGeomOverlayKeys SrvXkbFreeGeomOverlayKeys
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbFreeGeomOverlayRows SrvXkbFreeGeomOverlayRows
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbFreeGeomOverlays SrvXkbFreeGeomOverlays
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbFreeGeomKeys SrvXkbFreeGeomKeys
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbFreeGeomRows SrvXkbFreeGeomRows
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbFreeGeomSections SrvXkbFreeGeomSections
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbFreeGeomPoints SrvXkbFreeGeomPoints
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbFreeGeomOutlines SrvXkbFreeGeomOutlines
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbFreeGeomShapes SrvXkbFreeGeomShapes
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbFreeGeometry SrvXkbFreeGeometry
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _XkbProperty {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char *name;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char *value;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} XkbPropertyRec,*XkbPropertyPtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _XkbColor {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned int pixel;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char * spec;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} XkbColorRec,*XkbColorPtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _XkbPoint {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short x;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short y;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} XkbPointRec, *XkbPointPtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _XkbBounds {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short x1,y1;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short x2,y2;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} XkbBoundsRec, *XkbBoundsPtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbBoundsWidth(b) (((b)->x2)-((b)->x1))
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbBoundsHeight(b) (((b)->y2)-((b)->y1))
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _XkbOutline {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short num_points;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short sz_points;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short corner_radius;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbPointPtr points;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} XkbOutlineRec, *XkbOutlinePtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _XkbShape {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Atom name;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short num_outlines;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short sz_outlines;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbOutlinePtr outlines;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbOutlinePtr approx;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbOutlinePtr primary;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbBoundsRec bounds;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} XkbShapeRec, *XkbShapePtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbOutlineIndex(s,o) ((int)((o)-&(s)->outlines[0]))
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _XkbShapeDoodad {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Atom name;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char type;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char priority;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short top;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short left;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short angle;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short color_ndx;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short shape_ndx;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} XkbShapeDoodadRec, *XkbShapeDoodadPtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbShapeDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbShapeDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbSetShapeDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbSetShapeDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0])
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _XkbTextDoodad {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Atom name;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char type;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char priority;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short top;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short left;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short angle;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short width;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short height;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short color_ndx;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char * text;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char * font;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} XkbTextDoodadRec, *XkbTextDoodadPtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbTextDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbSetTextDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _XkbIndicatorDoodad {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Atom name;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char type;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char priority;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short top;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short left;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short angle;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short shape_ndx;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short on_color_ndx;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short off_color_ndx;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} XkbIndicatorDoodadRec, *XkbIndicatorDoodadPtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbIndicatorDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbIndicatorDoodadOnColor(g,d) (&(g)->colors[(d)->on_color_ndx])
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbIndicatorDoodadOffColor(g,d) (&(g)->colors[(d)->off_color_ndx])
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbSetIndicatorDoodadOnColor(g,d,c) \
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ((d)->on_color_ndx= (c)-&(g)->colors[0])
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbSetIndicatorDoodadOffColor(g,d,c) \
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ((d)->off_color_ndx= (c)-&(g)->colors[0])
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbSetIndicatorDoodadShape(g,d,s) \
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ((d)->shape_ndx= (s)-&(g)->shapes[0])
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _XkbLogoDoodad {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Atom name;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char type;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char priority;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short top;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short left;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short angle;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short color_ndx;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short shape_ndx;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char * logo_name;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} XkbLogoDoodadRec, *XkbLogoDoodadPtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbLogoDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbLogoDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbSetLogoDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbSetLogoDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0])
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _XkbAnyDoodad {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Atom name;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char type;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char priority;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short top;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short left;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short angle;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} XkbAnyDoodadRec, *XkbAnyDoodadPtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef union _XkbDoodad {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbAnyDoodadRec any;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbShapeDoodadRec shape;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbTextDoodadRec text;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbIndicatorDoodadRec indicator;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbLogoDoodadRec logo;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} XkbDoodadRec, *XkbDoodadPtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbUnknownDoodad 0
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbOutlineDoodad 1
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbSolidDoodad 2
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbTextDoodad 3
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbIndicatorDoodad 4
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbLogoDoodad 5
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _XkbKey {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbKeyNameRec name;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short gap;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char shape_ndx;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char color_ndx;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} XkbKeyRec, *XkbKeyPtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbKeyShape(g,k) (&(g)->shapes[(k)->shape_ndx])
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbKeyColor(g,k) (&(g)->colors[(k)->color_ndx])
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbSetKeyShape(g,k,s) ((k)->shape_ndx= (s)-&(g)->shapes[0])
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbSetKeyColor(g,k,c) ((k)->color_ndx= (c)-&(g)->colors[0])
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _XkbRow {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short top;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short left;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short num_keys;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short sz_keys;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int vertical;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbKeyPtr keys;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbBoundsRec bounds;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} XkbRowRec, *XkbRowPtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _XkbSection {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Atom name;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char priority;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short top;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short left;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short width;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short height;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync short angle;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short num_rows;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short num_doodads;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short num_overlays;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short sz_rows;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short sz_doodads;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short sz_overlays;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbRowPtr rows;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbDoodadPtr doodads;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbBoundsRec bounds;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync struct _XkbOverlay *overlays;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} XkbSectionRec, *XkbSectionPtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _XkbOverlayKey {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbKeyNameRec over;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbKeyNameRec under;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} XkbOverlayKeyRec,*XkbOverlayKeyPtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _XkbOverlayRow {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short row_under;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short num_keys;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short sz_keys;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbOverlayKeyPtr keys;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} XkbOverlayRowRec,*XkbOverlayRowPtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _XkbOverlay {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Atom name;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbSectionPtr section_under;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short num_rows;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short sz_rows;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbOverlayRowPtr rows;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbBoundsPtr bounds;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} XkbOverlayRec,*XkbOverlayPtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _XkbGeometry {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Atom name;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short width_mm;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short height_mm;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char * label_font;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbColorPtr label_color;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbColorPtr base_color;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short sz_properties;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short sz_colors;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short sz_shapes;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short sz_sections;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short sz_doodads;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short sz_key_aliases;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short num_properties;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short num_colors;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short num_shapes;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short num_sections;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short num_doodads;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short num_key_aliases;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbPropertyPtr properties;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbColorPtr colors;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbShapePtr shapes;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbSectionPtr sections;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbDoodadPtr doodads;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbKeyAliasPtr key_aliases;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} XkbGeometryRec;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbGeomColorIndex(g,c) ((int)((c)-&(g)->colors[0]))
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbGeomPropertiesMask (1<<0)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbGeomColorsMask (1<<1)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbGeomShapesMask (1<<2)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbGeomSectionsMask (1<<3)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbGeomDoodadsMask (1<<4)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbGeomKeyAliasesMask (1<<5)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define XkbGeomAllMask (0x3f)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _XkbGeometrySizes {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned int which;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short num_properties;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short num_colors;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short num_shapes;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short num_sections;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short num_doodads;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned short num_key_aliases;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} XkbGeometrySizesRec,*XkbGeometrySizesPtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync_XFUNCPROTOBEGIN
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern XkbPropertyPtr
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAddGeomProperty(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbGeometryPtr /* geom */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char * /* name */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char * /* value */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern XkbKeyAliasPtr
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAddGeomKeyAlias(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbGeometryPtr /* geom */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char * /* alias */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char * /* real */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern XkbColorPtr
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAddGeomColor(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbGeometryPtr /* geom */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char * /* spec */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned int /* pixel */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern XkbOutlinePtr
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAddGeomOutline(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbShapePtr /* shape */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* sz_points */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern XkbShapePtr
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAddGeomShape(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbGeometryPtr /* geom */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Atom /* name */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* sz_outlines */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern XkbKeyPtr
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAddGeomKey(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbRowPtr /* row */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern XkbRowPtr
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAddGeomRow(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbSectionPtr /* section */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* sz_keys */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern XkbSectionPtr
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAddGeomSection(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbGeometryPtr /* geom */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Atom /* name */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* sz_rows */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* sz_doodads */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* sz_overlays */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern XkbOverlayPtr
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAddGeomOverlay(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbSectionPtr /* section */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Atom /* name */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* sz_rows */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern XkbOverlayRowPtr
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAddGeomOverlayRow(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbOverlayPtr /* overlay */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* row_under */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* sz_keys */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern XkbOverlayKeyPtr
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAddGeomOverlayKey(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbOverlayPtr /* overlay */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbOverlayRowPtr /* row */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char * /* over */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char * /* under */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern XkbDoodadPtr
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAddGeomDoodad(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbGeometryPtr /* geom */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbSectionPtr /* section */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Atom /* name */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbFreeGeomKeyAliases(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbGeometryPtr /* geom */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* first */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* count */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool /* freeAll */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbFreeGeomColors(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbGeometryPtr /* geom */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* first */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* count */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool /* freeAll */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbFreeGeomDoodads(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbDoodadPtr /* doodads */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* nDoodads */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool /* freeAll */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbFreeGeomProperties(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbGeometryPtr /* geom */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* first */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* count */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool /* freeAll */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbFreeGeomOverlayKeys(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbOverlayRowPtr /* row */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* first */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* count */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool /* freeAll */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbFreeGeomOverlayRows(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbOverlayPtr /* overlay */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* first */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* count */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool /* freeAll */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbFreeGeomOverlays(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbSectionPtr /* section */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* first */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* count */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool /* freeAll */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbFreeGeomKeys(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbRowPtr /* row */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* first */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* count */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool /* freeAll */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbFreeGeomRows(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbSectionPtr /* section */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* first */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* count */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool /* freeAll */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbFreeGeomSections(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbGeometryPtr /* geom */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* first */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* count */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool /* freeAll */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbFreeGeomPoints(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbOutlinePtr /* outline */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* first */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* count */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool /* freeAll */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbFreeGeomOutlines(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbShapePtr /* shape */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* first */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* count */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool /* freeAll */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbFreeGeomShapes(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbGeometryPtr /* geom */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* first */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* count */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool /* freeAll */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbFreeGeometry(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbGeometryPtr /* geom */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned int /* which */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool /* freeMap */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Status
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAllocGeomProps(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbGeometryPtr /* geom */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* nProps */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Status
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAllocGeomKeyAliases(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbGeometryPtr /* geom */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* nAliases */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Status
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAllocGeomColors(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbGeometryPtr /* geom */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* nColors */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Status
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAllocGeomShapes(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbGeometryPtr /* geom */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* nShapes */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Status
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAllocGeomSections(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbGeometryPtr /* geom */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* nSections */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Status
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAllocGeomOverlays(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbSectionPtr /* section */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* num_needed */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Status
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAllocGeomOverlayRows(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbOverlayPtr /* overlay */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* num_needed */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Status
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAllocGeomOverlayKeys(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbOverlayRowPtr /* row */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* num_needed */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Status
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAllocGeomDoodads(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbGeometryPtr /* geom */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* nDoodads */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Status
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAllocGeomSectionDoodads(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbSectionPtr /* section */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* nDoodads */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Status
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAllocGeomOutlines(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbShapePtr /* shape */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* nOL */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Status
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAllocGeomRows(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbSectionPtr /* section */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* nRows */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Status
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAllocGeomPoints(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbOutlinePtr /* ol */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* nPts */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Status
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAllocGeomKeys(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbRowPtr /* row */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* nKeys */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Status
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbAllocGeometry(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbDescPtr /* xkb */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbGeometrySizesPtr /* sizes */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Bool
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbComputeShapeTop(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbShapePtr /* shape */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbBoundsPtr /* bounds */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Bool
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbComputeShapeBounds(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbShapePtr /* shape */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Bool
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbComputeRowBounds(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbGeometryPtr /* geom */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbSectionPtr /* section */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbRowPtr /* row */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Bool
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbComputeSectionBounds(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbGeometryPtr /* geom */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbSectionPtr /* section */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern char *
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncXkbFindOverlayForKey(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbGeometryPtr /* geom */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XkbSectionPtr /* wanted */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char * /* under */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync_XFUNCPROTOEND
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#endif /* _XKBGEOM_H_ */