a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/************************************************************
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncCopyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncPermission to use, copy, modify, and distribute this
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncsoftware and its documentation for any purpose and without
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfee is hereby granted, provided that the above copyright
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncnotice appear in all copies and that both that copyright
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncnotice and this permission notice appear in supporting
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncdocumentation, and that the name of Silicon Graphics not be
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncused in advertising or publicity pertaining to distribution
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncof the software without specific prior written permission.
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncSilicon Graphics makes no representation about the suitability
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncof this software for any purpose. It is provided "as is"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncwithout any express or implied warranty.
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncSILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncAND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncGRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncDAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncTHE USE OR PERFORMANCE OF THIS SOFTWARE.
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync********************************************************/
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#ifndef _XKBGEOM_H_
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define _XKBGEOM_H_
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "xkbstr.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbAddGeomKeyAlias SrvXkbAddGeomKeyAlias
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbAddGeomColor SrvXkbAddGeomColor
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbAddGeomDoodad SrvXkbAddGeomDoodad
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbAddGeomKey SrvXkbAddGeomKey
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbAddGeomOutline SrvXkbAddGeomOutline
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbAddGeomOverlay SrvXkbAddGeomOverlay
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbAddGeomOverlayRow SrvXkbAddGeomOverlayRow
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbAddGeomOverlayKey SrvXkbAddGeomOverlayKey
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbAddGeomProperty SrvXkbAddGeomProperty
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbAddGeomRow SrvXkbAddGeomRow
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbAddGeomSection SrvXkbAddGeomSection
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbAddGeomShape SrvXkbAddGeomShape
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbAllocGeometry SrvXkbAllocGeometry
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbFreeGeomKeyAliases SrvXkbFreeGeomKeyAliases
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbFreeGeomColors SrvXkbFreeGeomColors
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbFreeGeomDoodads SrvXkbFreeGeomDoodads
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbFreeGeomProperties SrvXkbFreeGeomProperties
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbFreeGeomKeys SrvXkbFreeGeomKeys
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbFreeGeomRows SrvXkbFreeGeomRows
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbFreeGeomSections SrvXkbFreeGeomSections
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbFreeGeomPoints SrvXkbFreeGeomPoints
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbFreeGeomOutlines SrvXkbFreeGeomOutlines
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbFreeGeomShapes SrvXkbFreeGeomShapes
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbFreeGeometry SrvXkbFreeGeometry
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _XkbProperty {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync char *name;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync char *value;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} XkbPropertyRec, *XkbPropertyPtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _XkbColor {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned int pixel;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync char *spec;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} XkbColorRec, *XkbColorPtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _XkbPoint {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short x;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short y;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} XkbPointRec, *XkbPointPtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _XkbBounds {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short x1, y1;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short x2, y2;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} XkbBoundsRec, *XkbBoundsPtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbBoundsWidth(b) (((b)->x2)-((b)->x1))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbBoundsHeight(b) (((b)->y2)-((b)->y1))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _XkbOutline {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short num_points;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short sz_points;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short corner_radius;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbPointPtr points;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} XkbOutlineRec, *XkbOutlinePtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _XkbShape {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Atom name;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short num_outlines;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short sz_outlines;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbOutlinePtr outlines;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbOutlinePtr approx;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbOutlinePtr primary;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbBoundsRec bounds;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} XkbShapeRec, *XkbShapePtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbOutlineIndex(s,o) ((int)((o)-&(s)->outlines[0]))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _XkbShapeDoodad {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Atom name;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char type;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char priority;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short top;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short left;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short angle;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short color_ndx;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short shape_ndx;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} XkbShapeDoodadRec, *XkbShapeDoodadPtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbShapeDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbShapeDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbSetShapeDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbSetShapeDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0])
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _XkbTextDoodad {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Atom name;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char type;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char priority;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short top;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short left;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short angle;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short width;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short height;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short color_ndx;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync char *text;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync char *font;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} XkbTextDoodadRec, *XkbTextDoodadPtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbTextDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbSetTextDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _XkbIndicatorDoodad {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Atom name;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char type;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char priority;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short top;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short left;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short angle;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short shape_ndx;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short on_color_ndx;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short off_color_ndx;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} XkbIndicatorDoodadRec, *XkbIndicatorDoodadPtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbIndicatorDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbIndicatorDoodadOnColor(g,d) (&(g)->colors[(d)->on_color_ndx])
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbIndicatorDoodadOffColor(g,d) (&(g)->colors[(d)->off_color_ndx])
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbSetIndicatorDoodadOnColor(g,d,c) \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync ((d)->on_color_ndx= (c)-&(g)->colors[0])
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbSetIndicatorDoodadOffColor(g,d,c) \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync ((d)->off_color_ndx= (c)-&(g)->colors[0])
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbSetIndicatorDoodadShape(g,d,s) \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync ((d)->shape_ndx= (s)-&(g)->shapes[0])
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _XkbLogoDoodad {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Atom name;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char type;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char priority;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short top;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short left;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short angle;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short color_ndx;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short shape_ndx;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync char *logo_name;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} XkbLogoDoodadRec, *XkbLogoDoodadPtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbLogoDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbLogoDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbSetLogoDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbSetLogoDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0])
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _XkbAnyDoodad {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Atom name;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char type;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char priority;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short top;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short left;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short angle;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} XkbAnyDoodadRec, *XkbAnyDoodadPtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef union _XkbDoodad {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbAnyDoodadRec any;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbShapeDoodadRec shape;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbTextDoodadRec text;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbIndicatorDoodadRec indicator;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbLogoDoodadRec logo;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} XkbDoodadRec, *XkbDoodadPtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbUnknownDoodad 0
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbOutlineDoodad 1
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbSolidDoodad 2
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbTextDoodad 3
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbIndicatorDoodad 4
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbLogoDoodad 5
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _XkbKey {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbKeyNameRec name;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short gap;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char shape_ndx;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char color_ndx;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} XkbKeyRec, *XkbKeyPtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbKeyShape(g,k) (&(g)->shapes[(k)->shape_ndx])
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbKeyColor(g,k) (&(g)->colors[(k)->color_ndx])
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbSetKeyShape(g,k,s) ((k)->shape_ndx= (s)-&(g)->shapes[0])
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbSetKeyColor(g,k,c) ((k)->color_ndx= (c)-&(g)->colors[0])
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _XkbRow {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short top;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short left;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short num_keys;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short sz_keys;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int vertical;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbKeyPtr keys;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbBoundsRec bounds;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} XkbRowRec, *XkbRowPtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _XkbSection {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Atom name;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char priority;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short top;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short left;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short width;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short height;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync short angle;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short num_rows;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short num_doodads;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short num_overlays;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short sz_rows;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short sz_doodads;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short sz_overlays;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbRowPtr rows;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbDoodadPtr doodads;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbBoundsRec bounds;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync struct _XkbOverlay *overlays;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} XkbSectionRec, *XkbSectionPtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _XkbOverlayKey {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbKeyNameRec over;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbKeyNameRec under;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} XkbOverlayKeyRec, *XkbOverlayKeyPtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _XkbOverlayRow {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short row_under;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short num_keys;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short sz_keys;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbOverlayKeyPtr keys;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} XkbOverlayRowRec, *XkbOverlayRowPtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _XkbOverlay {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Atom name;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbSectionPtr section_under;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short num_rows;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short sz_rows;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbOverlayRowPtr rows;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbBoundsPtr bounds;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} XkbOverlayRec, *XkbOverlayPtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _XkbGeometry {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Atom name;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short width_mm;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short height_mm;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync char *label_font;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbColorPtr label_color;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbColorPtr base_color;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short sz_properties;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short sz_colors;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short sz_shapes;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short sz_sections;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short sz_doodads;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short sz_key_aliases;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short num_properties;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short num_colors;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short num_shapes;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short num_sections;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short num_doodads;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short num_key_aliases;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbPropertyPtr properties;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbColorPtr colors;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbShapePtr shapes;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbSectionPtr sections;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbDoodadPtr doodads;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbKeyAliasPtr key_aliases;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} XkbGeometryRec;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbGeomColorIndex(g,c) ((int)((c)-&(g)->colors[0]))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbGeomPropertiesMask (1<<0)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbGeomColorsMask (1<<1)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbGeomShapesMask (1<<2)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbGeomSectionsMask (1<<3)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbGeomDoodadsMask (1<<4)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbGeomKeyAliasesMask (1<<5)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define XkbGeomAllMask (0x3f)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _XkbGeometrySizes {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned int which;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short num_properties;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short num_colors;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short num_shapes;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short num_sections;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short num_doodads;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short num_key_aliases;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} XkbGeometrySizesRec, *XkbGeometrySizesPtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/**
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * Specifies which items should be cleared in an XKB geometry array
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * when the array is reallocated.
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef enum {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XKB_GEOM_CLEAR_NONE, /* Don't clear any items, just reallocate. */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XKB_GEOM_CLEAR_EXCESS, /* Clear new extra items after reallocation. */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XKB_GEOM_CLEAR_ALL /* Clear all items after reallocation. */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} XkbGeomClearance;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern XkbPropertyPtr XkbAddGeomProperty(XkbGeometryPtr /* geom */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync char * /* name */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync char * /* value */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern XkbKeyAliasPtr XkbAddGeomKeyAlias(XkbGeometryPtr /* geom */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync char * /* alias */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync char * /* real */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern XkbColorPtr XkbAddGeomColor(XkbGeometryPtr /* geom */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync char * /* spec */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned int /* pixel */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern XkbOutlinePtr XkbAddGeomOutline(XkbShapePtr /* shape */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* sz_points */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern XkbShapePtr XkbAddGeomShape(XkbGeometryPtr /* geom */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Atom /* name */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* sz_outlines */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern XkbKeyPtr XkbAddGeomKey(XkbRowPtr /* row */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern XkbRowPtr XkbAddGeomRow(XkbSectionPtr /* section */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* sz_keys */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern XkbSectionPtr XkbAddGeomSection(XkbGeometryPtr /* geom */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Atom /* name */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* sz_rows */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* sz_doodads */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* sz_overlays */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern XkbOverlayPtr XkbAddGeomOverlay(XkbSectionPtr /* section */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Atom /* name */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* sz_rows */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern XkbOverlayRowPtr XkbAddGeomOverlayRow(XkbOverlayPtr /* overlay */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* row_under */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* sz_keys */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern XkbOverlayKeyPtr XkbAddGeomOverlayKey(XkbOverlayPtr /* overlay */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbOverlayRowPtr /* row */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync char * /* over */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync char * /* under */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern XkbDoodadPtr XkbAddGeomDoodad(XkbGeometryPtr /* geom */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbSectionPtr /* section */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Atom /* name */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbFreeGeomKeyAliases(XkbGeometryPtr /* geom */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* first */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* count */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool /* freeAll */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbFreeGeomColors(XkbGeometryPtr /* geom */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* first */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* count */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool /* freeAll */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbFreeGeomDoodads(XkbDoodadPtr /* doodads */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* nDoodads */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool /* freeAll */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbFreeGeomProperties(XkbGeometryPtr /* geom */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* first */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* count */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool /* freeAll */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbFreeGeomOverlayKeys(XkbOverlayRowPtr /* row */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* first */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* count */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool /* freeAll */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbFreeGeomOverlayRows(XkbOverlayPtr /* overlay */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* first */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* count */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool /* freeAll */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbFreeGeomOverlays(XkbSectionPtr /* section */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* first */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* count */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool /* freeAll */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbFreeGeomKeys(XkbRowPtr /* row */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* first */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* count */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool /* freeAll */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbFreeGeomRows(XkbSectionPtr /* section */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* first */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* count */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool /* freeAll */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbFreeGeomSections(XkbGeometryPtr /* geom */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* first */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* count */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool /* freeAll */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbFreeGeomPoints(XkbOutlinePtr /* outline */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* first */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* count */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool /* freeAll */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbFreeGeomOutlines(XkbShapePtr /* shape */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* first */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* count */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool /* freeAll */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbFreeGeomShapes(XkbGeometryPtr /* geom */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* first */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* count */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool /* freeAll */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbFreeGeometry(XkbGeometryPtr /* geom */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned int /* which */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool /* freeMap */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbGeomRealloc(void ** /* buffer */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* szItems */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* nrItems */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* itemSize */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbGeomClearance /* clearance */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern Status XkbAllocGeomProps(XkbGeometryPtr /* geom */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* nProps */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern Status XkbAllocGeomKeyAliases(XkbGeometryPtr /* geom */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* nAliases */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern Status XkbAllocGeomColors(XkbGeometryPtr /* geom */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* nColors */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern Status XkbAllocGeomShapes(XkbGeometryPtr /* geom */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* nShapes */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern Status XkbAllocGeomSections(XkbGeometryPtr /* geom */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* nSections */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern Status XkbAllocGeomOverlays(XkbSectionPtr /* section */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* num_needed */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern Status XkbAllocGeomOverlayRows(XkbOverlayPtr /* overlay */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* num_needed */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern Status XkbAllocGeomOverlayKeys(XkbOverlayRowPtr /* row */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* num_needed */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern Status XkbAllocGeomDoodads(XkbGeometryPtr /* geom */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* nDoodads */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern Status XkbAllocGeomSectionDoodads(XkbSectionPtr /* section */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* nDoodads */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern Status XkbAllocGeomOutlines(XkbShapePtr /* shape */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* nOL */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern Status XkbAllocGeomRows(XkbSectionPtr /* section */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* nRows */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern Status XkbAllocGeomPoints(XkbOutlinePtr /* ol */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* nPts */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern Status XkbAllocGeomKeys(XkbRowPtr /* row */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int /* nKeys */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern Status XkbAllocGeometry(XkbDescPtr /* xkb */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbGeometrySizesPtr /* sizes */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbComputeShapeTop(XkbShapePtr /* shape */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbBoundsPtr /* bounds */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbComputeShapeBounds(XkbShapePtr /* shape */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbComputeRowBounds(XkbGeometryPtr /* geom */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbSectionPtr /* section */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbRowPtr /* row */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbComputeSectionBounds(XkbGeometryPtr /* geom */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbSectionPtr /* section */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern char *XkbFindOverlayForKey(XkbGeometryPtr /* geom */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XkbSectionPtr /* wanted */ ,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync char * /* under */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync );
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif /* _XKBGEOM_H_ */