8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync/************************************************************
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncCopyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncPermission to use, copy, modify, and distribute this
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncsoftware and its documentation for any purpose and without
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncfee is hereby granted, provided that the above copyright
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncnotice appear in all copies and that both that copyright
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncnotice and this permission notice appear in supporting
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncdocumentation, and that the name of Silicon Graphics not be
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncused in advertising or publicity pertaining to distribution
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncof the software without specific prior written permission.
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncSilicon Graphics makes no representation about the suitability
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncof this software for any purpose. It is provided "as is"
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncwithout any express or implied warranty.
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncSILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncAND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncGRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncDAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncTHE USE OR PERFORMANCE OF THIS SOFTWARE.
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync********************************************************/
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#ifndef _XKBGEOM_H_
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define _XKBGEOM_H_
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#include "xkbstr.h"
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAddGeomKeyAlias SrvXkbAddGeomKeyAlias
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAddGeomColor SrvXkbAddGeomColor
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAddGeomDoodad SrvXkbAddGeomDoodad
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAddGeomKey SrvXkbAddGeomKey
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAddGeomOutline SrvXkbAddGeomOutline
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAddGeomOverlay SrvXkbAddGeomOverlay
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAddGeomOverlayRow SrvXkbAddGeomOverlayRow
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAddGeomOverlayKey SrvXkbAddGeomOverlayKey
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAddGeomProperty SrvXkbAddGeomProperty
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAddGeomRow SrvXkbAddGeomRow
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAddGeomSection SrvXkbAddGeomSection
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAddGeomShape SrvXkbAddGeomShape
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAllocGeomKeyAliases SrvXkbAllocGeomKeyAliases
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAllocGeomColors SrvXkbAllocGeomColors
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAllocGeomDoodads SrvXkbAllocGeomDoodads
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAllocGeomKeys SrvXkbAllocGeomKeys
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAllocGeomOutlines SrvXkbAllocGeomOutlines
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAllocGeomPoints SrvXkbAllocGeomPoints
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAllocGeomProps SrvXkbAllocGeomProps
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAllocGeomRows SrvXkbAllocGeomRows
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAllocGeomSectionDoodads SrvXkbAllocGeomSectionDoodads
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAllocGeomSections SrvXkbAllocGeomSections
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAllocGeomOverlays SrvXkbAllocGeomOverlays
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAllocGeomOverlayRows SrvXkbAllocGeomOverlayRows
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAllocGeomOverlayKeys SrvXkbAllocGeomOverlayKeys
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAllocGeomShapes SrvXkbAllocGeomShapes
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbAllocGeometry SrvXkbAllocGeometry
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbFreeGeomKeyAliases SrvXkbFreeGeomKeyAliases
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbFreeGeomColors SrvXkbFreeGeomColors
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbFreeGeomDoodads SrvXkbFreeGeomDoodads
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbFreeGeomProperties SrvXkbFreeGeomProperties
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbFreeGeomOverlayKeys SrvXkbFreeGeomOverlayKeys
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbFreeGeomOverlayRows SrvXkbFreeGeomOverlayRows
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbFreeGeomOverlays SrvXkbFreeGeomOverlays
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbFreeGeomKeys SrvXkbFreeGeomKeys
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbFreeGeomRows SrvXkbFreeGeomRows
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbFreeGeomSections SrvXkbFreeGeomSections
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbFreeGeomPoints SrvXkbFreeGeomPoints
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbFreeGeomOutlines SrvXkbFreeGeomOutlines
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbFreeGeomShapes SrvXkbFreeGeomShapes
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbFreeGeometry SrvXkbFreeGeometry
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef struct _XkbProperty {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync char *name;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync char *value;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync} XkbPropertyRec,*XkbPropertyPtr;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef struct _XkbColor {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned int pixel;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync char * spec;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync} XkbColorRec,*XkbColorPtr;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef struct _XkbPoint {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short x;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short y;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync} XkbPointRec, *XkbPointPtr;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef struct _XkbBounds {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short x1,y1;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short x2,y2;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync} XkbBoundsRec, *XkbBoundsPtr;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbBoundsWidth(b) (((b)->x2)-((b)->x1))
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbBoundsHeight(b) (((b)->y2)-((b)->y1))
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef struct _XkbOutline {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short num_points;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short sz_points;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short corner_radius;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbPointPtr points;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync} XkbOutlineRec, *XkbOutlinePtr;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef struct _XkbShape {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Atom name;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short num_outlines;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short sz_outlines;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbOutlinePtr outlines;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbOutlinePtr approx;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbOutlinePtr primary;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbBoundsRec bounds;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync} XkbShapeRec, *XkbShapePtr;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbOutlineIndex(s,o) ((int)((o)-&(s)->outlines[0]))
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef struct _XkbShapeDoodad {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Atom name;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned char type;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned char priority;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short top;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short left;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short angle;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short color_ndx;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short shape_ndx;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync} XkbShapeDoodadRec, *XkbShapeDoodadPtr;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbShapeDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbShapeDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbSetShapeDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbSetShapeDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0])
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef struct _XkbTextDoodad {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Atom name;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned char type;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned char priority;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short top;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short left;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short angle;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short width;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short height;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short color_ndx;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync char * text;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync char * font;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync} XkbTextDoodadRec, *XkbTextDoodadPtr;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbTextDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbSetTextDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef struct _XkbIndicatorDoodad {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Atom name;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned char type;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned char priority;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short top;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short left;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short angle;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short shape_ndx;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short on_color_ndx;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short off_color_ndx;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync} XkbIndicatorDoodadRec, *XkbIndicatorDoodadPtr;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbIndicatorDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbIndicatorDoodadOnColor(g,d) (&(g)->colors[(d)->on_color_ndx])
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbIndicatorDoodadOffColor(g,d) (&(g)->colors[(d)->off_color_ndx])
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbSetIndicatorDoodadOnColor(g,d,c) \
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ((d)->on_color_ndx= (c)-&(g)->colors[0])
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbSetIndicatorDoodadOffColor(g,d,c) \
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ((d)->off_color_ndx= (c)-&(g)->colors[0])
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbSetIndicatorDoodadShape(g,d,s) \
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync ((d)->shape_ndx= (s)-&(g)->shapes[0])
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef struct _XkbLogoDoodad {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Atom name;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned char type;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned char priority;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short top;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short left;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short angle;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short color_ndx;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short shape_ndx;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync char * logo_name;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync} XkbLogoDoodadRec, *XkbLogoDoodadPtr;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbLogoDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbLogoDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbSetLogoDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbSetLogoDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0])
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef struct _XkbAnyDoodad {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Atom name;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned char type;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned char priority;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short top;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short left;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short angle;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync} XkbAnyDoodadRec, *XkbAnyDoodadPtr;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef union _XkbDoodad {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbAnyDoodadRec any;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbShapeDoodadRec shape;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbTextDoodadRec text;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbIndicatorDoodadRec indicator;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbLogoDoodadRec logo;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync} XkbDoodadRec, *XkbDoodadPtr;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbUnknownDoodad 0
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbOutlineDoodad 1
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbSolidDoodad 2
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbTextDoodad 3
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbIndicatorDoodad 4
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbLogoDoodad 5
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef struct _XkbKey {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbKeyNameRec name;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short gap;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned char shape_ndx;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned char color_ndx;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync} XkbKeyRec, *XkbKeyPtr;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbKeyShape(g,k) (&(g)->shapes[(k)->shape_ndx])
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbKeyColor(g,k) (&(g)->colors[(k)->color_ndx])
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbSetKeyShape(g,k,s) ((k)->shape_ndx= (s)-&(g)->shapes[0])
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbSetKeyColor(g,k,c) ((k)->color_ndx= (c)-&(g)->colors[0])
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef struct _XkbRow {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short top;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short left;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short num_keys;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short sz_keys;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int vertical;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbKeyPtr keys;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbBoundsRec bounds;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync} XkbRowRec, *XkbRowPtr;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef struct _XkbSection {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Atom name;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned char priority;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short top;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short left;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short width;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short height;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync short angle;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short num_rows;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short num_doodads;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short num_overlays;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short sz_rows;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short sz_doodads;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short sz_overlays;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbRowPtr rows;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbDoodadPtr doodads;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbBoundsRec bounds;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync struct _XkbOverlay *overlays;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync} XkbSectionRec, *XkbSectionPtr;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef struct _XkbOverlayKey {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbKeyNameRec over;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbKeyNameRec under;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync} XkbOverlayKeyRec,*XkbOverlayKeyPtr;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef struct _XkbOverlayRow {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short row_under;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short num_keys;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short sz_keys;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbOverlayKeyPtr keys;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync} XkbOverlayRowRec,*XkbOverlayRowPtr;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef struct _XkbOverlay {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Atom name;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbSectionPtr section_under;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short num_rows;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short sz_rows;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbOverlayRowPtr rows;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbBoundsPtr bounds;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync} XkbOverlayRec,*XkbOverlayPtr;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef struct _XkbGeometry {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Atom name;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short width_mm;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short height_mm;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync char * label_font;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbColorPtr label_color;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbColorPtr base_color;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short sz_properties;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short sz_colors;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short sz_shapes;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short sz_sections;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short sz_doodads;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short sz_key_aliases;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short num_properties;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short num_colors;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short num_shapes;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short num_sections;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short num_doodads;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short num_key_aliases;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbPropertyPtr properties;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbColorPtr colors;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbShapePtr shapes;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbSectionPtr sections;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbDoodadPtr doodads;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbKeyAliasPtr key_aliases;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync} XkbGeometryRec;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbGeomColorIndex(g,c) ((int)((c)-&(g)->colors[0]))
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbGeomPropertiesMask (1<<0)
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbGeomColorsMask (1<<1)
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbGeomShapesMask (1<<2)
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbGeomSectionsMask (1<<3)
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbGeomDoodadsMask (1<<4)
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbGeomKeyAliasesMask (1<<5)
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#define XkbGeomAllMask (0x3f)
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsynctypedef struct _XkbGeometrySizes {
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned int which;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short num_properties;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short num_colors;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short num_shapes;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short num_sections;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short num_doodads;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned short num_key_aliases;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync} XkbGeometrySizesRec,*XkbGeometrySizesPtr;
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern XkbPropertyPtr
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAddGeomProperty(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbGeometryPtr /* geom */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync char * /* name */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync char * /* value */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern XkbKeyAliasPtr
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAddGeomKeyAlias(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbGeometryPtr /* geom */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync char * /* alias */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync char * /* real */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern XkbColorPtr
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAddGeomColor(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbGeometryPtr /* geom */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync char * /* spec */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned int /* pixel */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern XkbOutlinePtr
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAddGeomOutline(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbShapePtr /* shape */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* sz_points */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern XkbShapePtr
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAddGeomShape(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbGeometryPtr /* geom */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Atom /* name */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* sz_outlines */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern XkbKeyPtr
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAddGeomKey(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbRowPtr /* row */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern XkbRowPtr
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAddGeomRow(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbSectionPtr /* section */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* sz_keys */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern XkbSectionPtr
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAddGeomSection(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbGeometryPtr /* geom */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Atom /* name */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* sz_rows */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* sz_doodads */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* sz_overlays */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern XkbOverlayPtr
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAddGeomOverlay(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbSectionPtr /* section */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Atom /* name */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* sz_rows */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern XkbOverlayRowPtr
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAddGeomOverlayRow(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbOverlayPtr /* overlay */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* row_under */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* sz_keys */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern XkbOverlayKeyPtr
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAddGeomOverlayKey(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbOverlayPtr /* overlay */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbOverlayRowPtr /* row */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync char * /* over */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync char * /* under */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern XkbDoodadPtr
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAddGeomDoodad(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbGeometryPtr /* geom */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbSectionPtr /* section */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Atom /* name */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern void
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbFreeGeomKeyAliases(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbGeometryPtr /* geom */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* first */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* count */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Bool /* freeAll */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern void
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbFreeGeomColors(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbGeometryPtr /* geom */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* first */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* count */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Bool /* freeAll */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern void
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbFreeGeomDoodads(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbDoodadPtr /* doodads */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* nDoodads */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Bool /* freeAll */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern void
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbFreeGeomProperties(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbGeometryPtr /* geom */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* first */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* count */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Bool /* freeAll */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern void
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbFreeGeomOverlayKeys(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbOverlayRowPtr /* row */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* first */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* count */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Bool /* freeAll */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern void
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbFreeGeomOverlayRows(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbOverlayPtr /* overlay */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* first */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* count */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Bool /* freeAll */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern void
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbFreeGeomOverlays(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbSectionPtr /* section */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* first */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* count */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Bool /* freeAll */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern void
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbFreeGeomKeys(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbRowPtr /* row */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* first */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* count */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Bool /* freeAll */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern void
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbFreeGeomRows(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbSectionPtr /* section */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* first */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* count */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Bool /* freeAll */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern void
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbFreeGeomSections(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbGeometryPtr /* geom */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* first */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* count */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Bool /* freeAll */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern void
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbFreeGeomPoints(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbOutlinePtr /* outline */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* first */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* count */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Bool /* freeAll */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern void
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbFreeGeomOutlines(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbShapePtr /* shape */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* first */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* count */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Bool /* freeAll */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern void
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbFreeGeomShapes(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbGeometryPtr /* geom */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* first */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* count */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Bool /* freeAll */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern void
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbFreeGeometry(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbGeometryPtr /* geom */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync unsigned int /* which */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync Bool /* freeMap */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern Status
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAllocGeomProps(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbGeometryPtr /* geom */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* nProps */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern Status
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAllocGeomKeyAliases(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbGeometryPtr /* geom */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* nAliases */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern Status
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAllocGeomColors(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbGeometryPtr /* geom */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* nColors */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern Status
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAllocGeomShapes(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbGeometryPtr /* geom */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* nShapes */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern Status
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAllocGeomSections(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbGeometryPtr /* geom */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* nSections */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern Status
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAllocGeomOverlays(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbSectionPtr /* section */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* num_needed */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern Status
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAllocGeomOverlayRows(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbOverlayPtr /* overlay */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* num_needed */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern Status
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAllocGeomOverlayKeys(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbOverlayRowPtr /* row */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* num_needed */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern Status
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAllocGeomDoodads(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbGeometryPtr /* geom */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* nDoodads */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern Status
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAllocGeomSectionDoodads(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbSectionPtr /* section */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* nDoodads */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern Status
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAllocGeomOutlines(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbShapePtr /* shape */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* nOL */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern Status
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAllocGeomRows(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbSectionPtr /* section */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* nRows */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern Status
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAllocGeomPoints(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbOutlinePtr /* ol */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* nPts */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern Status
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAllocGeomKeys(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbRowPtr /* row */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync int /* nKeys */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern Status
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbAllocGeometry(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbDescPtr /* xkb */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbGeometrySizesPtr /* sizes */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern Bool
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbComputeShapeTop(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbShapePtr /* shape */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbBoundsPtr /* bounds */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern Bool
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbComputeShapeBounds(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbShapePtr /* shape */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern Bool
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbComputeRowBounds(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbGeometryPtr /* geom */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbSectionPtr /* section */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbRowPtr /* row */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern Bool
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbComputeSectionBounds(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbGeometryPtr /* geom */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbSectionPtr /* section */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncextern char *
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsyncXkbFindOverlayForKey(
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbGeometryPtr /* geom */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync XkbSectionPtr /* wanted */,
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync char * /* under */
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync);
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync
8c3d541c7ee7442f570b22eca3d82808b35b0385vboxsync#endif /* _XKBGEOM_H_ */