117ca54c3Smrg/************************************************************ 217ca54c3SmrgCopyright (c) 1993 by Silicon Graphics Computer Systems, Inc. 317ca54c3Smrg 417ca54c3SmrgPermission to use, copy, modify, and distribute this 517ca54c3Smrgsoftware and its documentation for any purpose and without 617ca54c3Smrgfee is hereby granted, provided that the above copyright 717ca54c3Smrgnotice appear in all copies and that both that copyright 817ca54c3Smrgnotice and this permission notice appear in supporting 9ea1d6981Smrgdocumentation, and that the name of Silicon Graphics not be 10ea1d6981Smrgused in advertising or publicity pertaining to distribution 1117ca54c3Smrgof the software without specific prior written permission. 12ea1d6981SmrgSilicon Graphics makes no representation about the suitability 1317ca54c3Smrgof this software for any purpose. It is provided "as is" 1417ca54c3Smrgwithout any express or implied warranty. 1517ca54c3Smrg 16ea1d6981SmrgSILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS 17ea1d6981SmrgSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 1817ca54c3SmrgAND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON 19ea1d6981SmrgGRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL 20ea1d6981SmrgDAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 21ea1d6981SmrgDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 2217ca54c3SmrgOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH 2317ca54c3SmrgTHE USE OR PERFORMANCE OF THIS SOFTWARE. 2417ca54c3Smrg 2517ca54c3Smrg********************************************************/ 2617ca54c3Smrg 2717ca54c3Smrg#ifndef _XKBGEOM_H_ 2817ca54c3Smrg#define _XKBGEOM_H_ 2917ca54c3Smrg 3017ca54c3Smrg#include <X11/extensions/XKBstr.h> 3117ca54c3Smrg 3217ca54c3Smrg#ifdef XKB_IN_SERVER 3317ca54c3Smrg#define XkbAddGeomKeyAlias SrvXkbAddGeomKeyAlias 3417ca54c3Smrg#define XkbAddGeomColor SrvXkbAddGeomColor 3517ca54c3Smrg#define XkbAddGeomDoodad SrvXkbAddGeomDoodad 3617ca54c3Smrg#define XkbAddGeomKey SrvXkbAddGeomKey 3717ca54c3Smrg#define XkbAddGeomOutline SrvXkbAddGeomOutline 3817ca54c3Smrg#define XkbAddGeomOverlay SrvXkbAddGeomOverlay 3917ca54c3Smrg#define XkbAddGeomOverlayRow SrvXkbAddGeomOverlayRow 4017ca54c3Smrg#define XkbAddGeomOverlayKey SrvXkbAddGeomOverlayKey 4117ca54c3Smrg#define XkbAddGeomProperty SrvXkbAddGeomProperty 4217ca54c3Smrg#define XkbAddGeomRow SrvXkbAddGeomRow 4317ca54c3Smrg#define XkbAddGeomSection SrvXkbAddGeomSection 4417ca54c3Smrg#define XkbAddGeomShape SrvXkbAddGeomShape 4517ca54c3Smrg#define XkbAllocGeomKeyAliases SrvXkbAllocGeomKeyAliases 4617ca54c3Smrg#define XkbAllocGeomColors SrvXkbAllocGeomColors 4717ca54c3Smrg#define XkbAllocGeomDoodads SrvXkbAllocGeomDoodads 4817ca54c3Smrg#define XkbAllocGeomKeys SrvXkbAllocGeomKeys 4917ca54c3Smrg#define XkbAllocGeomOutlines SrvXkbAllocGeomOutlines 5017ca54c3Smrg#define XkbAllocGeomPoints SrvXkbAllocGeomPoints 5117ca54c3Smrg#define XkbAllocGeomProps SrvXkbAllocGeomProps 5217ca54c3Smrg#define XkbAllocGeomRows SrvXkbAllocGeomRows 5317ca54c3Smrg#define XkbAllocGeomSectionDoodads SrvXkbAllocGeomSectionDoodads 5417ca54c3Smrg#define XkbAllocGeomSections SrvXkbAllocGeomSections 5517ca54c3Smrg#define XkbAllocGeomOverlays SrvXkbAllocGeomOverlays 5617ca54c3Smrg#define XkbAllocGeomOverlayRows SrvXkbAllocGeomOverlayRows 5717ca54c3Smrg#define XkbAllocGeomOverlayKeys SrvXkbAllocGeomOverlayKeys 5817ca54c3Smrg#define XkbAllocGeomShapes SrvXkbAllocGeomShapes 5917ca54c3Smrg#define XkbAllocGeometry SrvXkbAllocGeometry 6017ca54c3Smrg#define XkbFreeGeomKeyAliases SrvXkbFreeGeomKeyAliases 6117ca54c3Smrg#define XkbFreeGeomColors SrvXkbFreeGeomColors 6217ca54c3Smrg#define XkbFreeGeomDoodads SrvXkbFreeGeomDoodads 6317ca54c3Smrg#define XkbFreeGeomProperties SrvXkbFreeGeomProperties 6417ca54c3Smrg#define XkbFreeGeomOverlayKeys SrvXkbFreeGeomOverlayKeys 6517ca54c3Smrg#define XkbFreeGeomOverlayRows SrvXkbFreeGeomOverlayRows 6617ca54c3Smrg#define XkbFreeGeomOverlays SrvXkbFreeGeomOverlays 6717ca54c3Smrg#define XkbFreeGeomKeys SrvXkbFreeGeomKeys 6817ca54c3Smrg#define XkbFreeGeomRows SrvXkbFreeGeomRows 6917ca54c3Smrg#define XkbFreeGeomSections SrvXkbFreeGeomSections 7017ca54c3Smrg#define XkbFreeGeomPoints SrvXkbFreeGeomPoints 7117ca54c3Smrg#define XkbFreeGeomOutlines SrvXkbFreeGeomOutlines 7217ca54c3Smrg#define XkbFreeGeomShapes SrvXkbFreeGeomShapes 7317ca54c3Smrg#define XkbFreeGeometry SrvXkbFreeGeometry 7417ca54c3Smrg#endif 7517ca54c3Smrg 7617ca54c3Smrgtypedef struct _XkbProperty { 7717ca54c3Smrg char *name; 7817ca54c3Smrg char *value; 7917ca54c3Smrg} XkbPropertyRec,*XkbPropertyPtr; 8017ca54c3Smrg 8117ca54c3Smrgtypedef struct _XkbColor { 8217ca54c3Smrg unsigned int pixel; 8317ca54c3Smrg char * spec; 8417ca54c3Smrg} XkbColorRec,*XkbColorPtr; 8517ca54c3Smrg 8617ca54c3Smrgtypedef struct _XkbPoint { 8717ca54c3Smrg short x; 8817ca54c3Smrg short y; 8917ca54c3Smrg} XkbPointRec, *XkbPointPtr; 9017ca54c3Smrg 9117ca54c3Smrgtypedef struct _XkbBounds { 9217ca54c3Smrg short x1,y1; 9317ca54c3Smrg short x2,y2; 9417ca54c3Smrg} XkbBoundsRec, *XkbBoundsPtr; 9517ca54c3Smrg#define XkbBoundsWidth(b) (((b)->x2)-((b)->x1)) 9617ca54c3Smrg#define XkbBoundsHeight(b) (((b)->y2)-((b)->y1)) 9717ca54c3Smrg 9817ca54c3Smrg/* 9917ca54c3Smrg * In the following structs, this pattern is used for dynamically sized arrays: 10017ca54c3Smrg * foo is an array for which sz_foo entries are allocated & num_foo are used 10117ca54c3Smrg */ 10217ca54c3Smrg 10317ca54c3Smrgtypedef struct _XkbOutline { 10417ca54c3Smrg unsigned short num_points; 10517ca54c3Smrg unsigned short sz_points; 10617ca54c3Smrg unsigned short corner_radius; 10717ca54c3Smrg XkbPointPtr points; 10817ca54c3Smrg} XkbOutlineRec, *XkbOutlinePtr; 10917ca54c3Smrg 11017ca54c3Smrgtypedef struct _XkbShape { 11117ca54c3Smrg Atom name; 11217ca54c3Smrg unsigned short num_outlines; 11317ca54c3Smrg unsigned short sz_outlines; 11417ca54c3Smrg XkbOutlinePtr outlines; 11517ca54c3Smrg XkbOutlinePtr approx; 11617ca54c3Smrg XkbOutlinePtr primary; 11717ca54c3Smrg XkbBoundsRec bounds; 11817ca54c3Smrg} XkbShapeRec, *XkbShapePtr; 11917ca54c3Smrg#define XkbOutlineIndex(s,o) ((int)((o)-&(s)->outlines[0])) 12017ca54c3Smrg 12117ca54c3Smrgtypedef struct _XkbShapeDoodad { 12217ca54c3Smrg Atom name; 12317ca54c3Smrg unsigned char type; 12417ca54c3Smrg unsigned char priority; 12517ca54c3Smrg short top; 12617ca54c3Smrg short left; 12717ca54c3Smrg short angle; 12817ca54c3Smrg unsigned short color_ndx; 12917ca54c3Smrg unsigned short shape_ndx; 13017ca54c3Smrg} XkbShapeDoodadRec, *XkbShapeDoodadPtr; 13117ca54c3Smrg#define XkbShapeDoodadColor(g,d) (&(g)->colors[(d)->color_ndx]) 13217ca54c3Smrg#define XkbShapeDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx]) 13317ca54c3Smrg#define XkbSetShapeDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0]) 13417ca54c3Smrg#define XkbSetShapeDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0]) 13517ca54c3Smrg 13617ca54c3Smrgtypedef struct _XkbTextDoodad { 13717ca54c3Smrg Atom name; 13817ca54c3Smrg unsigned char type; 13917ca54c3Smrg unsigned char priority; 14017ca54c3Smrg short top; 14117ca54c3Smrg short left; 14217ca54c3Smrg short angle; 14317ca54c3Smrg short width; 14417ca54c3Smrg short height; 14517ca54c3Smrg unsigned short color_ndx; 14617ca54c3Smrg char * text; 14717ca54c3Smrg char * font; 14817ca54c3Smrg} XkbTextDoodadRec, *XkbTextDoodadPtr; 14917ca54c3Smrg#define XkbTextDoodadColor(g,d) (&(g)->colors[(d)->color_ndx]) 15017ca54c3Smrg#define XkbSetTextDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0]) 15117ca54c3Smrg 15217ca54c3Smrgtypedef struct _XkbIndicatorDoodad { 15317ca54c3Smrg Atom name; 15417ca54c3Smrg unsigned char type; 15517ca54c3Smrg unsigned char priority; 15617ca54c3Smrg short top; 15717ca54c3Smrg short left; 15817ca54c3Smrg short angle; 15917ca54c3Smrg unsigned short shape_ndx; 16017ca54c3Smrg unsigned short on_color_ndx; 16117ca54c3Smrg unsigned short off_color_ndx; 16217ca54c3Smrg} XkbIndicatorDoodadRec, *XkbIndicatorDoodadPtr; 16317ca54c3Smrg#define XkbIndicatorDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx]) 16417ca54c3Smrg#define XkbIndicatorDoodadOnColor(g,d) (&(g)->colors[(d)->on_color_ndx]) 16517ca54c3Smrg#define XkbIndicatorDoodadOffColor(g,d) (&(g)->colors[(d)->off_color_ndx]) 16617ca54c3Smrg#define XkbSetIndicatorDoodadOnColor(g,d,c) \ 16717ca54c3Smrg ((d)->on_color_ndx= (c)-&(g)->colors[0]) 16817ca54c3Smrg#define XkbSetIndicatorDoodadOffColor(g,d,c) \ 16917ca54c3Smrg ((d)->off_color_ndx= (c)-&(g)->colors[0]) 17017ca54c3Smrg#define XkbSetIndicatorDoodadShape(g,d,s) \ 17117ca54c3Smrg ((d)->shape_ndx= (s)-&(g)->shapes[0]) 17217ca54c3Smrg 17317ca54c3Smrgtypedef struct _XkbLogoDoodad { 17417ca54c3Smrg Atom name; 17517ca54c3Smrg unsigned char type; 17617ca54c3Smrg unsigned char priority; 17717ca54c3Smrg short top; 17817ca54c3Smrg short left; 17917ca54c3Smrg short angle; 18017ca54c3Smrg unsigned short color_ndx; 18117ca54c3Smrg unsigned short shape_ndx; 18217ca54c3Smrg char * logo_name; 18317ca54c3Smrg} XkbLogoDoodadRec, *XkbLogoDoodadPtr; 18417ca54c3Smrg#define XkbLogoDoodadColor(g,d) (&(g)->colors[(d)->color_ndx]) 18517ca54c3Smrg#define XkbLogoDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx]) 18617ca54c3Smrg#define XkbSetLogoDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0]) 18717ca54c3Smrg#define XkbSetLogoDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0]) 18817ca54c3Smrg 18917ca54c3Smrgtypedef struct _XkbAnyDoodad { 19017ca54c3Smrg Atom name; 19117ca54c3Smrg unsigned char type; 19217ca54c3Smrg unsigned char priority; 19317ca54c3Smrg short top; 19417ca54c3Smrg short left; 19517ca54c3Smrg short angle; 19617ca54c3Smrg} XkbAnyDoodadRec, *XkbAnyDoodadPtr; 19717ca54c3Smrg 19817ca54c3Smrgtypedef union _XkbDoodad { 19917ca54c3Smrg XkbAnyDoodadRec any; 20017ca54c3Smrg XkbShapeDoodadRec shape; 20117ca54c3Smrg XkbTextDoodadRec text; 20217ca54c3Smrg XkbIndicatorDoodadRec indicator; 20317ca54c3Smrg XkbLogoDoodadRec logo; 20417ca54c3Smrg} XkbDoodadRec, *XkbDoodadPtr; 20517ca54c3Smrg 20617ca54c3Smrg#define XkbUnknownDoodad 0 20717ca54c3Smrg#define XkbOutlineDoodad 1 20817ca54c3Smrg#define XkbSolidDoodad 2 20917ca54c3Smrg#define XkbTextDoodad 3 21017ca54c3Smrg#define XkbIndicatorDoodad 4 21117ca54c3Smrg#define XkbLogoDoodad 5 21217ca54c3Smrg 21317ca54c3Smrgtypedef struct _XkbKey { 21417ca54c3Smrg XkbKeyNameRec name; 21517ca54c3Smrg short gap; 21617ca54c3Smrg unsigned char shape_ndx; 21717ca54c3Smrg unsigned char color_ndx; 21817ca54c3Smrg} XkbKeyRec, *XkbKeyPtr; 21917ca54c3Smrg#define XkbKeyShape(g,k) (&(g)->shapes[(k)->shape_ndx]) 22017ca54c3Smrg#define XkbKeyColor(g,k) (&(g)->colors[(k)->color_ndx]) 22117ca54c3Smrg#define XkbSetKeyShape(g,k,s) ((k)->shape_ndx= (s)-&(g)->shapes[0]) 22217ca54c3Smrg#define XkbSetKeyColor(g,k,c) ((k)->color_ndx= (c)-&(g)->colors[0]) 22317ca54c3Smrg 22417ca54c3Smrgtypedef struct _XkbRow { 22517ca54c3Smrg short top; 22617ca54c3Smrg short left; 22717ca54c3Smrg unsigned short num_keys; 22817ca54c3Smrg unsigned short sz_keys; 22917ca54c3Smrg int vertical; 23017ca54c3Smrg XkbKeyPtr keys; 23117ca54c3Smrg XkbBoundsRec bounds; 23217ca54c3Smrg} XkbRowRec, *XkbRowPtr; 23317ca54c3Smrg 23417ca54c3Smrgtypedef struct _XkbSection { 23517ca54c3Smrg Atom name; 23617ca54c3Smrg unsigned char priority; 23717ca54c3Smrg short top; 23817ca54c3Smrg short left; 23917ca54c3Smrg unsigned short width; 24017ca54c3Smrg unsigned short height; 24117ca54c3Smrg short angle; 24217ca54c3Smrg unsigned short num_rows; 24317ca54c3Smrg unsigned short num_doodads; 24417ca54c3Smrg unsigned short num_overlays; 24517ca54c3Smrg unsigned short sz_rows; 24617ca54c3Smrg unsigned short sz_doodads; 24717ca54c3Smrg unsigned short sz_overlays; 24817ca54c3Smrg XkbRowPtr rows; 24917ca54c3Smrg XkbDoodadPtr doodads; 25017ca54c3Smrg XkbBoundsRec bounds; 25117ca54c3Smrg struct _XkbOverlay *overlays; 25217ca54c3Smrg} XkbSectionRec, *XkbSectionPtr; 25317ca54c3Smrg 25417ca54c3Smrgtypedef struct _XkbOverlayKey { 25517ca54c3Smrg XkbKeyNameRec over; 25617ca54c3Smrg XkbKeyNameRec under; 25717ca54c3Smrg} XkbOverlayKeyRec,*XkbOverlayKeyPtr; 25817ca54c3Smrg 25917ca54c3Smrgtypedef struct _XkbOverlayRow { 26017ca54c3Smrg unsigned short row_under; 26117ca54c3Smrg unsigned short num_keys; 26217ca54c3Smrg unsigned short sz_keys; 26317ca54c3Smrg XkbOverlayKeyPtr keys; 26417ca54c3Smrg} XkbOverlayRowRec,*XkbOverlayRowPtr; 26517ca54c3Smrg 26617ca54c3Smrgtypedef struct _XkbOverlay { 26717ca54c3Smrg Atom name; 26817ca54c3Smrg XkbSectionPtr section_under; 26917ca54c3Smrg unsigned short num_rows; 27017ca54c3Smrg unsigned short sz_rows; 27117ca54c3Smrg XkbOverlayRowPtr rows; 27217ca54c3Smrg XkbBoundsPtr bounds; 27317ca54c3Smrg} XkbOverlayRec,*XkbOverlayPtr; 27417ca54c3Smrg 27517ca54c3Smrgtypedef struct _XkbGeometry { 27617ca54c3Smrg Atom name; 27717ca54c3Smrg unsigned short width_mm; 27817ca54c3Smrg unsigned short height_mm; 27917ca54c3Smrg char * label_font; 28017ca54c3Smrg XkbColorPtr label_color; 28117ca54c3Smrg XkbColorPtr base_color; 28217ca54c3Smrg unsigned short sz_properties; 28317ca54c3Smrg unsigned short sz_colors; 28417ca54c3Smrg unsigned short sz_shapes; 28517ca54c3Smrg unsigned short sz_sections; 28617ca54c3Smrg unsigned short sz_doodads; 28717ca54c3Smrg unsigned short sz_key_aliases; 28817ca54c3Smrg unsigned short num_properties; 28917ca54c3Smrg unsigned short num_colors; 29017ca54c3Smrg unsigned short num_shapes; 29117ca54c3Smrg unsigned short num_sections; 29217ca54c3Smrg unsigned short num_doodads; 29317ca54c3Smrg unsigned short num_key_aliases; 29417ca54c3Smrg XkbPropertyPtr properties; 29517ca54c3Smrg XkbColorPtr colors; 29617ca54c3Smrg XkbShapePtr shapes; 29717ca54c3Smrg XkbSectionPtr sections; 29817ca54c3Smrg XkbDoodadPtr doodads; 29917ca54c3Smrg XkbKeyAliasPtr key_aliases; 30017ca54c3Smrg} XkbGeometryRec; 30117ca54c3Smrg#define XkbGeomColorIndex(g,c) ((int)((c)-&(g)->colors[0])) 30217ca54c3Smrg 30317ca54c3Smrg#define XkbGeomPropertiesMask (1<<0) 30417ca54c3Smrg#define XkbGeomColorsMask (1<<1) 30517ca54c3Smrg#define XkbGeomShapesMask (1<<2) 30617ca54c3Smrg#define XkbGeomSectionsMask (1<<3) 30717ca54c3Smrg#define XkbGeomDoodadsMask (1<<4) 30817ca54c3Smrg#define XkbGeomKeyAliasesMask (1<<5) 30917ca54c3Smrg#define XkbGeomAllMask (0x3f) 31017ca54c3Smrg 31117ca54c3Smrgtypedef struct _XkbGeometrySizes { 31217ca54c3Smrg unsigned int which; 31317ca54c3Smrg unsigned short num_properties; 31417ca54c3Smrg unsigned short num_colors; 31517ca54c3Smrg unsigned short num_shapes; 31617ca54c3Smrg unsigned short num_sections; 31717ca54c3Smrg unsigned short num_doodads; 31817ca54c3Smrg unsigned short num_key_aliases; 31917ca54c3Smrg} XkbGeometrySizesRec,*XkbGeometrySizesPtr; 32017ca54c3Smrg 32117ca54c3Smrg_XFUNCPROTOBEGIN 32217ca54c3Smrg 32317ca54c3Smrgextern XkbPropertyPtr 32417ca54c3SmrgXkbAddGeomProperty( 32517ca54c3Smrg XkbGeometryPtr /* geom */, 32617ca54c3Smrg char * /* name */, 32717ca54c3Smrg char * /* value */ 32817ca54c3Smrg); 32917ca54c3Smrg 33017ca54c3Smrgextern XkbKeyAliasPtr 33117ca54c3SmrgXkbAddGeomKeyAlias( 33217ca54c3Smrg XkbGeometryPtr /* geom */, 33317ca54c3Smrg char * /* alias */, 33417ca54c3Smrg char * /* real */ 33517ca54c3Smrg); 33617ca54c3Smrg 33717ca54c3Smrgextern XkbColorPtr 33817ca54c3SmrgXkbAddGeomColor( 33917ca54c3Smrg XkbGeometryPtr /* geom */, 34017ca54c3Smrg char * /* spec */, 34117ca54c3Smrg unsigned int /* pixel */ 34217ca54c3Smrg); 34317ca54c3Smrg 34417ca54c3Smrgextern XkbOutlinePtr 34517ca54c3SmrgXkbAddGeomOutline( 34617ca54c3Smrg XkbShapePtr /* shape */, 34717ca54c3Smrg int /* sz_points */ 34817ca54c3Smrg); 34917ca54c3Smrg 35017ca54c3Smrgextern XkbShapePtr 35117ca54c3SmrgXkbAddGeomShape( 35217ca54c3Smrg XkbGeometryPtr /* geom */, 35317ca54c3Smrg Atom /* name */, 35417ca54c3Smrg int /* sz_outlines */ 35517ca54c3Smrg); 35617ca54c3Smrg 35717ca54c3Smrgextern XkbKeyPtr 35817ca54c3SmrgXkbAddGeomKey( 35917ca54c3Smrg XkbRowPtr /* row */ 36017ca54c3Smrg); 36117ca54c3Smrg 36217ca54c3Smrgextern XkbRowPtr 36317ca54c3SmrgXkbAddGeomRow( 36417ca54c3Smrg XkbSectionPtr /* section */, 36517ca54c3Smrg int /* sz_keys */ 36617ca54c3Smrg); 36717ca54c3Smrg 36817ca54c3Smrgextern XkbSectionPtr 36917ca54c3SmrgXkbAddGeomSection( 37017ca54c3Smrg XkbGeometryPtr /* geom */, 37117ca54c3Smrg Atom /* name */, 37217ca54c3Smrg int /* sz_rows */, 37317ca54c3Smrg int /* sz_doodads */, 37417ca54c3Smrg int /* sz_overlays */ 37517ca54c3Smrg); 37617ca54c3Smrg 37717ca54c3Smrgextern XkbOverlayPtr 37817ca54c3SmrgXkbAddGeomOverlay( 37917ca54c3Smrg XkbSectionPtr /* section */, 38017ca54c3Smrg Atom /* name */, 38117ca54c3Smrg int /* sz_rows */ 38217ca54c3Smrg); 38317ca54c3Smrg 38417ca54c3Smrgextern XkbOverlayRowPtr 38517ca54c3SmrgXkbAddGeomOverlayRow( 38617ca54c3Smrg XkbOverlayPtr /* overlay */, 38717ca54c3Smrg int /* row_under */, 38817ca54c3Smrg int /* sz_keys */ 38917ca54c3Smrg); 39017ca54c3Smrg 39117ca54c3Smrgextern XkbOverlayKeyPtr 39217ca54c3SmrgXkbAddGeomOverlayKey( 39317ca54c3Smrg XkbOverlayPtr /* overlay */, 39417ca54c3Smrg XkbOverlayRowPtr /* row */, 39517ca54c3Smrg char * /* over */, 39617ca54c3Smrg char * /* under */ 39717ca54c3Smrg); 39817ca54c3Smrg 39917ca54c3Smrgextern XkbDoodadPtr 40017ca54c3SmrgXkbAddGeomDoodad( 40117ca54c3Smrg XkbGeometryPtr /* geom */, 40217ca54c3Smrg XkbSectionPtr /* section */, 40317ca54c3Smrg Atom /* name */ 40417ca54c3Smrg); 40517ca54c3Smrg 40617ca54c3Smrg 40717ca54c3Smrgextern void 40817ca54c3SmrgXkbFreeGeomKeyAliases( 40917ca54c3Smrg XkbGeometryPtr /* geom */, 41017ca54c3Smrg int /* first */, 41117ca54c3Smrg int /* count */, 41217ca54c3Smrg Bool /* freeAll */ 41317ca54c3Smrg); 41417ca54c3Smrg 41517ca54c3Smrgextern void 41617ca54c3SmrgXkbFreeGeomColors( 41717ca54c3Smrg XkbGeometryPtr /* geom */, 41817ca54c3Smrg int /* first */, 41917ca54c3Smrg int /* count */, 42017ca54c3Smrg Bool /* freeAll */ 42117ca54c3Smrg); 42217ca54c3Smrg 42317ca54c3Smrgextern void 42417ca54c3SmrgXkbFreeGeomDoodads( 42517ca54c3Smrg XkbDoodadPtr /* doodads */, 42617ca54c3Smrg int /* nDoodads */, 42717ca54c3Smrg Bool /* freeAll */ 42817ca54c3Smrg); 42917ca54c3Smrg 43017ca54c3Smrg 43117ca54c3Smrgextern void 43217ca54c3SmrgXkbFreeGeomProperties( 43317ca54c3Smrg XkbGeometryPtr /* geom */, 43417ca54c3Smrg int /* first */, 43517ca54c3Smrg int /* count */, 43617ca54c3Smrg Bool /* freeAll */ 43717ca54c3Smrg); 43817ca54c3Smrg 43917ca54c3Smrgextern void 44017ca54c3SmrgXkbFreeGeomOverlayKeys( 44117ca54c3Smrg XkbOverlayRowPtr /* row */, 44217ca54c3Smrg int /* first */, 44317ca54c3Smrg int /* count */, 44417ca54c3Smrg Bool /* freeAll */ 44517ca54c3Smrg); 44617ca54c3Smrg 44717ca54c3Smrgextern void 44817ca54c3SmrgXkbFreeGeomOverlayRows( 44917ca54c3Smrg XkbOverlayPtr /* overlay */, 45017ca54c3Smrg int /* first */, 45117ca54c3Smrg int /* count */, 45217ca54c3Smrg Bool /* freeAll */ 45317ca54c3Smrg); 45417ca54c3Smrg 45517ca54c3Smrgextern void 45617ca54c3SmrgXkbFreeGeomOverlays( 45717ca54c3Smrg XkbSectionPtr /* section */, 45817ca54c3Smrg int /* first */, 45917ca54c3Smrg int /* count */, 46017ca54c3Smrg Bool /* freeAll */ 46117ca54c3Smrg); 46217ca54c3Smrg 46317ca54c3Smrgextern void 46417ca54c3SmrgXkbFreeGeomKeys( 46517ca54c3Smrg XkbRowPtr /* row */, 46617ca54c3Smrg int /* first */, 46717ca54c3Smrg int /* count */, 46817ca54c3Smrg Bool /* freeAll */ 46917ca54c3Smrg); 47017ca54c3Smrg 47117ca54c3Smrgextern void 47217ca54c3SmrgXkbFreeGeomRows( 47317ca54c3Smrg XkbSectionPtr /* section */, 47417ca54c3Smrg int /* first */, 47517ca54c3Smrg int /* count */, 47617ca54c3Smrg Bool /* freeAll */ 47717ca54c3Smrg); 47817ca54c3Smrg 47917ca54c3Smrgextern void 48017ca54c3SmrgXkbFreeGeomSections( 48117ca54c3Smrg XkbGeometryPtr /* geom */, 48217ca54c3Smrg int /* first */, 48317ca54c3Smrg int /* count */, 48417ca54c3Smrg Bool /* freeAll */ 48517ca54c3Smrg); 48617ca54c3Smrg 48717ca54c3Smrg 48817ca54c3Smrgextern void 48917ca54c3SmrgXkbFreeGeomPoints( 49017ca54c3Smrg XkbOutlinePtr /* outline */, 49117ca54c3Smrg int /* first */, 49217ca54c3Smrg int /* count */, 49317ca54c3Smrg Bool /* freeAll */ 49417ca54c3Smrg); 49517ca54c3Smrg 49617ca54c3Smrgextern void 49717ca54c3SmrgXkbFreeGeomOutlines( 49817ca54c3Smrg XkbShapePtr /* shape */, 49917ca54c3Smrg int /* first */, 50017ca54c3Smrg int /* count */, 50117ca54c3Smrg Bool /* freeAll */ 50217ca54c3Smrg); 50317ca54c3Smrg 50417ca54c3Smrgextern void 50517ca54c3SmrgXkbFreeGeomShapes( 50617ca54c3Smrg XkbGeometryPtr /* geom */, 50717ca54c3Smrg int /* first */, 50817ca54c3Smrg int /* count */, 50917ca54c3Smrg Bool /* freeAll */ 51017ca54c3Smrg); 51117ca54c3Smrg 51217ca54c3Smrgextern void 51317ca54c3SmrgXkbFreeGeometry( 51417ca54c3Smrg XkbGeometryPtr /* geom */, 51517ca54c3Smrg unsigned int /* which */, 51617ca54c3Smrg Bool /* freeMap */ 51717ca54c3Smrg); 51817ca54c3Smrg 51917ca54c3Smrgextern Status 52017ca54c3SmrgXkbAllocGeomProps( 52117ca54c3Smrg XkbGeometryPtr /* geom */, 52217ca54c3Smrg int /* nProps */ 52317ca54c3Smrg); 52417ca54c3Smrg 52517ca54c3Smrgextern Status 52617ca54c3SmrgXkbAllocGeomKeyAliases( 52717ca54c3Smrg XkbGeometryPtr /* geom */, 52817ca54c3Smrg int /* nAliases */ 52917ca54c3Smrg); 53017ca54c3Smrg 53117ca54c3Smrgextern Status 53217ca54c3SmrgXkbAllocGeomColors( 53317ca54c3Smrg XkbGeometryPtr /* geom */, 53417ca54c3Smrg int /* nColors */ 53517ca54c3Smrg); 53617ca54c3Smrg 53717ca54c3Smrgextern Status 53817ca54c3SmrgXkbAllocGeomShapes( 53917ca54c3Smrg XkbGeometryPtr /* geom */, 54017ca54c3Smrg int /* nShapes */ 54117ca54c3Smrg); 54217ca54c3Smrg 54317ca54c3Smrgextern Status 54417ca54c3SmrgXkbAllocGeomSections( 54517ca54c3Smrg XkbGeometryPtr /* geom */, 54617ca54c3Smrg int /* nSections */ 54717ca54c3Smrg); 54817ca54c3Smrg 54917ca54c3Smrgextern Status 55017ca54c3SmrgXkbAllocGeomOverlays( 55117ca54c3Smrg XkbSectionPtr /* section */, 55217ca54c3Smrg int /* num_needed */ 55317ca54c3Smrg); 55417ca54c3Smrg 55517ca54c3Smrgextern Status 55617ca54c3SmrgXkbAllocGeomOverlayRows( 55717ca54c3Smrg XkbOverlayPtr /* overlay */, 55817ca54c3Smrg int /* num_needed */ 55917ca54c3Smrg); 56017ca54c3Smrg 56117ca54c3Smrgextern Status 56217ca54c3SmrgXkbAllocGeomOverlayKeys( 56317ca54c3Smrg XkbOverlayRowPtr /* row */, 56417ca54c3Smrg int /* num_needed */ 56517ca54c3Smrg); 56617ca54c3Smrg 56717ca54c3Smrgextern Status 56817ca54c3SmrgXkbAllocGeomDoodads( 56917ca54c3Smrg XkbGeometryPtr /* geom */, 57017ca54c3Smrg int /* nDoodads */ 57117ca54c3Smrg); 57217ca54c3Smrg 57317ca54c3Smrgextern Status 57417ca54c3SmrgXkbAllocGeomSectionDoodads( 57517ca54c3Smrg XkbSectionPtr /* section */, 57617ca54c3Smrg int /* nDoodads */ 57717ca54c3Smrg); 57817ca54c3Smrg 57917ca54c3Smrgextern Status 58017ca54c3SmrgXkbAllocGeomOutlines( 58117ca54c3Smrg XkbShapePtr /* shape */, 58217ca54c3Smrg int /* nOL */ 58317ca54c3Smrg); 58417ca54c3Smrg 58517ca54c3Smrgextern Status 58617ca54c3SmrgXkbAllocGeomRows( 58717ca54c3Smrg XkbSectionPtr /* section */, 58817ca54c3Smrg int /* nRows */ 58917ca54c3Smrg); 59017ca54c3Smrg 59117ca54c3Smrgextern Status 59217ca54c3SmrgXkbAllocGeomPoints( 59317ca54c3Smrg XkbOutlinePtr /* ol */, 59417ca54c3Smrg int /* nPts */ 59517ca54c3Smrg); 59617ca54c3Smrg 59717ca54c3Smrgextern Status 59817ca54c3SmrgXkbAllocGeomKeys( 59917ca54c3Smrg XkbRowPtr /* row */, 60017ca54c3Smrg int /* nKeys */ 60117ca54c3Smrg); 60217ca54c3Smrg 60317ca54c3Smrgextern Status 60417ca54c3SmrgXkbAllocGeometry( 60517ca54c3Smrg XkbDescPtr /* xkb */, 60617ca54c3Smrg XkbGeometrySizesPtr /* sizes */ 60717ca54c3Smrg); 60817ca54c3Smrg 60917ca54c3Smrgextern Status 61017ca54c3SmrgXkbSetGeometry( 61117ca54c3Smrg Display * /* dpy */, 61217ca54c3Smrg unsigned /* deviceSpec */, 61317ca54c3Smrg XkbGeometryPtr /* geom */ 61417ca54c3Smrg); 61517ca54c3Smrg 61617ca54c3Smrgextern Bool 61717ca54c3SmrgXkbComputeShapeTop( 61817ca54c3Smrg XkbShapePtr /* shape */, 61917ca54c3Smrg XkbBoundsPtr /* bounds */ 62017ca54c3Smrg); 62117ca54c3Smrg 62217ca54c3Smrgextern Bool 62317ca54c3SmrgXkbComputeShapeBounds( 62417ca54c3Smrg XkbShapePtr /* shape */ 62517ca54c3Smrg); 62617ca54c3Smrg 62717ca54c3Smrgextern Bool 62817ca54c3SmrgXkbComputeRowBounds( 62917ca54c3Smrg XkbGeometryPtr /* geom */, 63017ca54c3Smrg XkbSectionPtr /* section */, 63117ca54c3Smrg XkbRowPtr /* row */ 63217ca54c3Smrg); 63317ca54c3Smrg 63417ca54c3Smrgextern Bool 63517ca54c3SmrgXkbComputeSectionBounds( 63617ca54c3Smrg XkbGeometryPtr /* geom */, 63717ca54c3Smrg XkbSectionPtr /* section */ 63817ca54c3Smrg); 63917ca54c3Smrg 64017ca54c3Smrgextern char * 64117ca54c3SmrgXkbFindOverlayForKey( 64217ca54c3Smrg XkbGeometryPtr /* geom */, 64317ca54c3Smrg XkbSectionPtr /* wanted */, 64417ca54c3Smrg char * /* under */ 64517ca54c3Smrg); 64617ca54c3Smrg 64717ca54c3Smrgextern Status 64817ca54c3SmrgXkbGetGeometry( 64917ca54c3Smrg Display * /* dpy */, 65017ca54c3Smrg XkbDescPtr /* xkb */ 65117ca54c3Smrg); 65217ca54c3Smrg 65317ca54c3Smrgextern Status 65417ca54c3SmrgXkbGetNamedGeometry( 65517ca54c3Smrg Display * /* dpy */, 65617ca54c3Smrg XkbDescPtr /* xkb */, 65717ca54c3Smrg Atom /* name */ 65817ca54c3Smrg); 65917ca54c3Smrg 66017ca54c3Smrg_XFUNCPROTOEND 66117ca54c3Smrg 66217ca54c3Smrg#endif /* _XKBSTR_H_ */ 663