45e9809aff7304721fddb95654901b32195c9c7avboxsync/************************************************************
45e9809aff7304721fddb95654901b32195c9c7avboxsyncCopyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncPermission to use, copy, modify, and distribute this
45e9809aff7304721fddb95654901b32195c9c7avboxsyncsoftware and its documentation for any purpose and without
45e9809aff7304721fddb95654901b32195c9c7avboxsyncfee is hereby granted, provided that the above copyright
45e9809aff7304721fddb95654901b32195c9c7avboxsyncnotice appear in all copies and that both that copyright
45e9809aff7304721fddb95654901b32195c9c7avboxsyncnotice and this permission notice appear in supporting
45e9809aff7304721fddb95654901b32195c9c7avboxsyncdocumentation, and that the name of Silicon Graphics not be
45e9809aff7304721fddb95654901b32195c9c7avboxsyncused in advertising or publicity pertaining to distribution
45e9809aff7304721fddb95654901b32195c9c7avboxsyncof the software without specific prior written permission.
45e9809aff7304721fddb95654901b32195c9c7avboxsyncSilicon Graphics makes no representation about the suitability
45e9809aff7304721fddb95654901b32195c9c7avboxsyncof this software for any purpose. It is provided "as is"
45e9809aff7304721fddb95654901b32195c9c7avboxsyncwithout any express or implied warranty.
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncSILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
45e9809aff7304721fddb95654901b32195c9c7avboxsyncSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
45e9809aff7304721fddb95654901b32195c9c7avboxsyncAND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
45e9809aff7304721fddb95654901b32195c9c7avboxsyncGRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
45e9809aff7304721fddb95654901b32195c9c7avboxsyncDAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
45e9809aff7304721fddb95654901b32195c9c7avboxsyncDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
45e9809aff7304721fddb95654901b32195c9c7avboxsyncOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
45e9809aff7304721fddb95654901b32195c9c7avboxsyncTHE USE OR PERFORMANCE OF THIS SOFTWARE.
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync********************************************************/
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync#ifndef _XKBGEOM_H_
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define _XKBGEOM_H_
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync#include "xkbstr.h"
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAddGeomKeyAlias SrvXkbAddGeomKeyAlias
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAddGeomColor SrvXkbAddGeomColor
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAddGeomDoodad SrvXkbAddGeomDoodad
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAddGeomKey SrvXkbAddGeomKey
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAddGeomOutline SrvXkbAddGeomOutline
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAddGeomOverlay SrvXkbAddGeomOverlay
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAddGeomOverlayRow SrvXkbAddGeomOverlayRow
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAddGeomOverlayKey SrvXkbAddGeomOverlayKey
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAddGeomProperty SrvXkbAddGeomProperty
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAddGeomRow SrvXkbAddGeomRow
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAddGeomSection SrvXkbAddGeomSection
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAddGeomShape SrvXkbAddGeomShape
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAllocGeomKeyAliases SrvXkbAllocGeomKeyAliases
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAllocGeomColors SrvXkbAllocGeomColors
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAllocGeomDoodads SrvXkbAllocGeomDoodads
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAllocGeomKeys SrvXkbAllocGeomKeys
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAllocGeomOutlines SrvXkbAllocGeomOutlines
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAllocGeomPoints SrvXkbAllocGeomPoints
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAllocGeomProps SrvXkbAllocGeomProps
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAllocGeomRows SrvXkbAllocGeomRows
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAllocGeomSectionDoodads SrvXkbAllocGeomSectionDoodads
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAllocGeomSections SrvXkbAllocGeomSections
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAllocGeomOverlays SrvXkbAllocGeomOverlays
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAllocGeomOverlayRows SrvXkbAllocGeomOverlayRows
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAllocGeomOverlayKeys SrvXkbAllocGeomOverlayKeys
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAllocGeomShapes SrvXkbAllocGeomShapes
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAllocGeometry SrvXkbAllocGeometry
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbFreeGeomKeyAliases SrvXkbFreeGeomKeyAliases
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbFreeGeomColors SrvXkbFreeGeomColors
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbFreeGeomDoodads SrvXkbFreeGeomDoodads
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbFreeGeomProperties SrvXkbFreeGeomProperties
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbFreeGeomOverlayKeys SrvXkbFreeGeomOverlayKeys
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbFreeGeomOverlayRows SrvXkbFreeGeomOverlayRows
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbFreeGeomOverlays SrvXkbFreeGeomOverlays
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbFreeGeomKeys SrvXkbFreeGeomKeys
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbFreeGeomRows SrvXkbFreeGeomRows
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbFreeGeomSections SrvXkbFreeGeomSections
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbFreeGeomPoints SrvXkbFreeGeomPoints
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbFreeGeomOutlines SrvXkbFreeGeomOutlines
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbFreeGeomShapes SrvXkbFreeGeomShapes
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbFreeGeometry SrvXkbFreeGeometry
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef struct _XkbProperty {
45e9809aff7304721fddb95654901b32195c9c7avboxsync char *name;
45e9809aff7304721fddb95654901b32195c9c7avboxsync char *value;
45e9809aff7304721fddb95654901b32195c9c7avboxsync} XkbPropertyRec,*XkbPropertyPtr;
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef struct _XkbColor {
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int pixel;
45e9809aff7304721fddb95654901b32195c9c7avboxsync char * spec;
45e9809aff7304721fddb95654901b32195c9c7avboxsync} XkbColorRec,*XkbColorPtr;
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef struct _XkbPoint {
45e9809aff7304721fddb95654901b32195c9c7avboxsync short x;
45e9809aff7304721fddb95654901b32195c9c7avboxsync short y;
45e9809aff7304721fddb95654901b32195c9c7avboxsync} XkbPointRec, *XkbPointPtr;
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef struct _XkbBounds {
45e9809aff7304721fddb95654901b32195c9c7avboxsync short x1,y1;
45e9809aff7304721fddb95654901b32195c9c7avboxsync short x2,y2;
45e9809aff7304721fddb95654901b32195c9c7avboxsync} XkbBoundsRec, *XkbBoundsPtr;
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbBoundsWidth(b) (((b)->x2)-((b)->x1))
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbBoundsHeight(b) (((b)->y2)-((b)->y1))
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef struct _XkbOutline {
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short num_points;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short sz_points;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short corner_radius;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbPointPtr points;
45e9809aff7304721fddb95654901b32195c9c7avboxsync} XkbOutlineRec, *XkbOutlinePtr;
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef struct _XkbShape {
45e9809aff7304721fddb95654901b32195c9c7avboxsync Atom name;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short num_outlines;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short sz_outlines;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbOutlinePtr outlines;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbOutlinePtr approx;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbOutlinePtr primary;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbBoundsRec bounds;
45e9809aff7304721fddb95654901b32195c9c7avboxsync} XkbShapeRec, *XkbShapePtr;
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbOutlineIndex(s,o) ((int)((o)-&(s)->outlines[0]))
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef struct _XkbShapeDoodad {
45e9809aff7304721fddb95654901b32195c9c7avboxsync Atom name;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned char type;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned char priority;
45e9809aff7304721fddb95654901b32195c9c7avboxsync short top;
45e9809aff7304721fddb95654901b32195c9c7avboxsync short left;
45e9809aff7304721fddb95654901b32195c9c7avboxsync short angle;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short color_ndx;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short shape_ndx;
45e9809aff7304721fddb95654901b32195c9c7avboxsync} XkbShapeDoodadRec, *XkbShapeDoodadPtr;
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbShapeDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbShapeDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbSetShapeDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbSetShapeDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0])
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef struct _XkbTextDoodad {
45e9809aff7304721fddb95654901b32195c9c7avboxsync Atom name;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned char type;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned char priority;
45e9809aff7304721fddb95654901b32195c9c7avboxsync short top;
45e9809aff7304721fddb95654901b32195c9c7avboxsync short left;
45e9809aff7304721fddb95654901b32195c9c7avboxsync short angle;
45e9809aff7304721fddb95654901b32195c9c7avboxsync short width;
45e9809aff7304721fddb95654901b32195c9c7avboxsync short height;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short color_ndx;
45e9809aff7304721fddb95654901b32195c9c7avboxsync char * text;
45e9809aff7304721fddb95654901b32195c9c7avboxsync char * font;
45e9809aff7304721fddb95654901b32195c9c7avboxsync} XkbTextDoodadRec, *XkbTextDoodadPtr;
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbTextDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbSetTextDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef struct _XkbIndicatorDoodad {
45e9809aff7304721fddb95654901b32195c9c7avboxsync Atom name;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned char type;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned char priority;
45e9809aff7304721fddb95654901b32195c9c7avboxsync short top;
45e9809aff7304721fddb95654901b32195c9c7avboxsync short left;
45e9809aff7304721fddb95654901b32195c9c7avboxsync short angle;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short shape_ndx;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short on_color_ndx;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short off_color_ndx;
45e9809aff7304721fddb95654901b32195c9c7avboxsync} XkbIndicatorDoodadRec, *XkbIndicatorDoodadPtr;
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbIndicatorDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbIndicatorDoodadOnColor(g,d) (&(g)->colors[(d)->on_color_ndx])
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbIndicatorDoodadOffColor(g,d) (&(g)->colors[(d)->off_color_ndx])
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbSetIndicatorDoodadOnColor(g,d,c) \
45e9809aff7304721fddb95654901b32195c9c7avboxsync ((d)->on_color_ndx= (c)-&(g)->colors[0])
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbSetIndicatorDoodadOffColor(g,d,c) \
45e9809aff7304721fddb95654901b32195c9c7avboxsync ((d)->off_color_ndx= (c)-&(g)->colors[0])
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbSetIndicatorDoodadShape(g,d,s) \
45e9809aff7304721fddb95654901b32195c9c7avboxsync ((d)->shape_ndx= (s)-&(g)->shapes[0])
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef struct _XkbLogoDoodad {
45e9809aff7304721fddb95654901b32195c9c7avboxsync Atom name;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned char type;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned char priority;
45e9809aff7304721fddb95654901b32195c9c7avboxsync short top;
45e9809aff7304721fddb95654901b32195c9c7avboxsync short left;
45e9809aff7304721fddb95654901b32195c9c7avboxsync short angle;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short color_ndx;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short shape_ndx;
45e9809aff7304721fddb95654901b32195c9c7avboxsync char * logo_name;
45e9809aff7304721fddb95654901b32195c9c7avboxsync} XkbLogoDoodadRec, *XkbLogoDoodadPtr;
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbLogoDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbLogoDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbSetLogoDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbSetLogoDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0])
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef struct _XkbAnyDoodad {
45e9809aff7304721fddb95654901b32195c9c7avboxsync Atom name;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned char type;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned char priority;
45e9809aff7304721fddb95654901b32195c9c7avboxsync short top;
45e9809aff7304721fddb95654901b32195c9c7avboxsync short left;
45e9809aff7304721fddb95654901b32195c9c7avboxsync short angle;
45e9809aff7304721fddb95654901b32195c9c7avboxsync} XkbAnyDoodadRec, *XkbAnyDoodadPtr;
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef union _XkbDoodad {
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbAnyDoodadRec any;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbShapeDoodadRec shape;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbTextDoodadRec text;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbIndicatorDoodadRec indicator;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbLogoDoodadRec logo;
45e9809aff7304721fddb95654901b32195c9c7avboxsync} XkbDoodadRec, *XkbDoodadPtr;
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbUnknownDoodad 0
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbOutlineDoodad 1
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbSolidDoodad 2
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbTextDoodad 3
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbIndicatorDoodad 4
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbLogoDoodad 5
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef struct _XkbKey {
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbKeyNameRec name;
45e9809aff7304721fddb95654901b32195c9c7avboxsync short gap;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned char shape_ndx;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned char color_ndx;
45e9809aff7304721fddb95654901b32195c9c7avboxsync} XkbKeyRec, *XkbKeyPtr;
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbKeyShape(g,k) (&(g)->shapes[(k)->shape_ndx])
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbKeyColor(g,k) (&(g)->colors[(k)->color_ndx])
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbSetKeyShape(g,k,s) ((k)->shape_ndx= (s)-&(g)->shapes[0])
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbSetKeyColor(g,k,c) ((k)->color_ndx= (c)-&(g)->colors[0])
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef struct _XkbRow {
45e9809aff7304721fddb95654901b32195c9c7avboxsync short top;
45e9809aff7304721fddb95654901b32195c9c7avboxsync short left;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short num_keys;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short sz_keys;
45e9809aff7304721fddb95654901b32195c9c7avboxsync int vertical;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbKeyPtr keys;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbBoundsRec bounds;
45e9809aff7304721fddb95654901b32195c9c7avboxsync} XkbRowRec, *XkbRowPtr;
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef struct _XkbSection {
45e9809aff7304721fddb95654901b32195c9c7avboxsync Atom name;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned char priority;
45e9809aff7304721fddb95654901b32195c9c7avboxsync short top;
45e9809aff7304721fddb95654901b32195c9c7avboxsync short left;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short width;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short height;
45e9809aff7304721fddb95654901b32195c9c7avboxsync short angle;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short num_rows;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short num_doodads;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short num_overlays;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short sz_rows;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short sz_doodads;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short sz_overlays;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbRowPtr rows;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbDoodadPtr doodads;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbBoundsRec bounds;
45e9809aff7304721fddb95654901b32195c9c7avboxsync struct _XkbOverlay *overlays;
45e9809aff7304721fddb95654901b32195c9c7avboxsync} XkbSectionRec, *XkbSectionPtr;
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef struct _XkbOverlayKey {
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbKeyNameRec over;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbKeyNameRec under;
45e9809aff7304721fddb95654901b32195c9c7avboxsync} XkbOverlayKeyRec,*XkbOverlayKeyPtr;
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef struct _XkbOverlayRow {
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short row_under;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short num_keys;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short sz_keys;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbOverlayKeyPtr keys;
45e9809aff7304721fddb95654901b32195c9c7avboxsync} XkbOverlayRowRec,*XkbOverlayRowPtr;
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef struct _XkbOverlay {
45e9809aff7304721fddb95654901b32195c9c7avboxsync Atom name;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbSectionPtr section_under;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short num_rows;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short sz_rows;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbOverlayRowPtr rows;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbBoundsPtr bounds;
45e9809aff7304721fddb95654901b32195c9c7avboxsync} XkbOverlayRec,*XkbOverlayPtr;
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef struct _XkbGeometry {
45e9809aff7304721fddb95654901b32195c9c7avboxsync Atom name;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short width_mm;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short height_mm;
45e9809aff7304721fddb95654901b32195c9c7avboxsync char * label_font;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbColorPtr label_color;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbColorPtr base_color;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short sz_properties;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short sz_colors;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short sz_shapes;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short sz_sections;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short sz_doodads;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short sz_key_aliases;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short num_properties;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short num_colors;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short num_shapes;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short num_sections;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short num_doodads;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short num_key_aliases;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbPropertyPtr properties;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbColorPtr colors;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbShapePtr shapes;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbSectionPtr sections;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbDoodadPtr doodads;
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbKeyAliasPtr key_aliases;
45e9809aff7304721fddb95654901b32195c9c7avboxsync} XkbGeometryRec;
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbGeomColorIndex(g,c) ((int)((c)-&(g)->colors[0]))
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbGeomPropertiesMask (1<<0)
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbGeomColorsMask (1<<1)
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbGeomShapesMask (1<<2)
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbGeomSectionsMask (1<<3)
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbGeomDoodadsMask (1<<4)
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbGeomKeyAliasesMask (1<<5)
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbGeomAllMask (0x3f)
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef struct _XkbGeometrySizes {
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int which;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short num_properties;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short num_colors;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short num_shapes;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short num_sections;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short num_doodads;
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned short num_key_aliases;
45e9809aff7304721fddb95654901b32195c9c7avboxsync} XkbGeometrySizesRec,*XkbGeometrySizesPtr;
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern XkbPropertyPtr
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAddGeomProperty(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbGeometryPtr /* geom */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync char * /* name */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync char * /* value */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern XkbKeyAliasPtr
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAddGeomKeyAlias(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbGeometryPtr /* geom */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync char * /* alias */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync char * /* real */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern XkbColorPtr
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAddGeomColor(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbGeometryPtr /* geom */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync char * /* spec */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* pixel */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern XkbOutlinePtr
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAddGeomOutline(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbShapePtr /* shape */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* sz_points */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern XkbShapePtr
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAddGeomShape(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbGeometryPtr /* geom */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync Atom /* name */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* sz_outlines */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern XkbKeyPtr
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAddGeomKey(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbRowPtr /* row */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern XkbRowPtr
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAddGeomRow(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbSectionPtr /* section */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* sz_keys */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern XkbSectionPtr
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAddGeomSection(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbGeometryPtr /* geom */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync Atom /* name */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* sz_rows */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* sz_doodads */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* sz_overlays */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern XkbOverlayPtr
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAddGeomOverlay(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbSectionPtr /* section */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync Atom /* name */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* sz_rows */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern XkbOverlayRowPtr
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAddGeomOverlayRow(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbOverlayPtr /* overlay */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* row_under */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* sz_keys */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern XkbOverlayKeyPtr
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAddGeomOverlayKey(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbOverlayPtr /* overlay */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbOverlayRowPtr /* row */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync char * /* over */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync char * /* under */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern XkbDoodadPtr
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAddGeomDoodad(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbGeometryPtr /* geom */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbSectionPtr /* section */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync Atom /* name */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern void
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbFreeGeomKeyAliases(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbGeometryPtr /* geom */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* first */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* count */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool /* freeAll */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern void
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbFreeGeomColors(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbGeometryPtr /* geom */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* first */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* count */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool /* freeAll */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern void
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbFreeGeomDoodads(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbDoodadPtr /* doodads */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* nDoodads */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool /* freeAll */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern void
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbFreeGeomProperties(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbGeometryPtr /* geom */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* first */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* count */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool /* freeAll */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern void
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbFreeGeomOverlayKeys(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbOverlayRowPtr /* row */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* first */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* count */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool /* freeAll */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern void
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbFreeGeomOverlayRows(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbOverlayPtr /* overlay */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* first */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* count */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool /* freeAll */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern void
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbFreeGeomOverlays(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbSectionPtr /* section */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* first */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* count */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool /* freeAll */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern void
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbFreeGeomKeys(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbRowPtr /* row */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* first */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* count */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool /* freeAll */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern void
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbFreeGeomRows(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbSectionPtr /* section */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* first */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* count */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool /* freeAll */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern void
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbFreeGeomSections(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbGeometryPtr /* geom */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* first */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* count */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool /* freeAll */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern void
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbFreeGeomPoints(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbOutlinePtr /* outline */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* first */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* count */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool /* freeAll */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern void
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbFreeGeomOutlines(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbShapePtr /* shape */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* first */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* count */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool /* freeAll */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern void
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbFreeGeomShapes(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbGeometryPtr /* geom */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* first */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* count */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool /* freeAll */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern void
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbFreeGeometry(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbGeometryPtr /* geom */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* which */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool /* freeMap */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern Status
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAllocGeomProps(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbGeometryPtr /* geom */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* nProps */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern Status
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAllocGeomKeyAliases(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbGeometryPtr /* geom */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* nAliases */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern Status
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAllocGeomColors(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbGeometryPtr /* geom */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* nColors */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern Status
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAllocGeomShapes(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbGeometryPtr /* geom */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* nShapes */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern Status
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAllocGeomSections(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbGeometryPtr /* geom */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* nSections */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern Status
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAllocGeomOverlays(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbSectionPtr /* section */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* num_needed */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern Status
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAllocGeomOverlayRows(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbOverlayPtr /* overlay */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* num_needed */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern Status
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAllocGeomOverlayKeys(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbOverlayRowPtr /* row */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* num_needed */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern Status
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAllocGeomDoodads(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbGeometryPtr /* geom */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* nDoodads */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern Status
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAllocGeomSectionDoodads(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbSectionPtr /* section */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* nDoodads */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern Status
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAllocGeomOutlines(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbShapePtr /* shape */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* nOL */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern Status
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAllocGeomRows(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbSectionPtr /* section */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* nRows */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern Status
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAllocGeomPoints(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbOutlinePtr /* ol */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* nPts */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern Status
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAllocGeomKeys(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbRowPtr /* row */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* nKeys */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern Status
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbAllocGeometry(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbDescPtr /* xkb */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbGeometrySizesPtr /* sizes */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern Bool
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbComputeShapeTop(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbShapePtr /* shape */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbBoundsPtr /* bounds */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern Bool
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbComputeShapeBounds(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbShapePtr /* shape */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern Bool
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbComputeRowBounds(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbGeometryPtr /* geom */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbSectionPtr /* section */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbRowPtr /* row */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern Bool
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbComputeSectionBounds(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbGeometryPtr /* geom */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbSectionPtr /* section */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern char *
45e9809aff7304721fddb95654901b32195c9c7avboxsyncXkbFindOverlayForKey(
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbGeometryPtr /* geom */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync XkbSectionPtr /* wanted */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync char * /* under */
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync#endif /* _XKBGEOM_H_ */