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