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