14642e01fSmrg/************************************************************ 24642e01fSmrgCopyright (c) 1993 by Silicon Graphics Computer Systems, Inc. 34642e01fSmrg 44642e01fSmrgPermission to use, copy, modify, and distribute this 54642e01fSmrgsoftware and its documentation for any purpose and without 64642e01fSmrgfee is hereby granted, provided that the above copyright 74642e01fSmrgnotice appear in all copies and that both that copyright 84642e01fSmrgnotice and this permission notice appear in supporting 935c4bbdfSmrgdocumentation, and that the name of Silicon Graphics not be 1035c4bbdfSmrgused in advertising or publicity pertaining to distribution 114642e01fSmrgof the software without specific prior written permission. 1235c4bbdfSmrgSilicon Graphics makes no representation about the suitability 134642e01fSmrgof this software for any purpose. It is provided "as is" 144642e01fSmrgwithout any express or implied warranty. 154642e01fSmrg 1635c4bbdfSmrgSILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS 1735c4bbdfSmrgSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 184642e01fSmrgAND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON 1935c4bbdfSmrgGRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL 2035c4bbdfSmrgDAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 2135c4bbdfSmrgDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 224642e01fSmrgOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH 234642e01fSmrgTHE USE OR PERFORMANCE OF THIS SOFTWARE. 244642e01fSmrg 254642e01fSmrg********************************************************/ 264642e01fSmrg 274642e01fSmrg#ifndef _XKBGEOM_H_ 284642e01fSmrg#define _XKBGEOM_H_ 294642e01fSmrg 304642e01fSmrg#include "xkbstr.h" 314642e01fSmrg 324642e01fSmrg#define XkbAddGeomKeyAlias SrvXkbAddGeomKeyAlias 334642e01fSmrg#define XkbAddGeomColor SrvXkbAddGeomColor 344642e01fSmrg#define XkbAddGeomDoodad SrvXkbAddGeomDoodad 354642e01fSmrg#define XkbAddGeomKey SrvXkbAddGeomKey 364642e01fSmrg#define XkbAddGeomOutline SrvXkbAddGeomOutline 374642e01fSmrg#define XkbAddGeomOverlay SrvXkbAddGeomOverlay 384642e01fSmrg#define XkbAddGeomOverlayRow SrvXkbAddGeomOverlayRow 394642e01fSmrg#define XkbAddGeomOverlayKey SrvXkbAddGeomOverlayKey 404642e01fSmrg#define XkbAddGeomProperty SrvXkbAddGeomProperty 414642e01fSmrg#define XkbAddGeomRow SrvXkbAddGeomRow 424642e01fSmrg#define XkbAddGeomSection SrvXkbAddGeomSection 434642e01fSmrg#define XkbAddGeomShape SrvXkbAddGeomShape 444642e01fSmrg#define XkbAllocGeometry SrvXkbAllocGeometry 454642e01fSmrg#define XkbFreeGeomKeyAliases SrvXkbFreeGeomKeyAliases 464642e01fSmrg#define XkbFreeGeomColors SrvXkbFreeGeomColors 474642e01fSmrg#define XkbFreeGeomDoodads SrvXkbFreeGeomDoodads 484642e01fSmrg#define XkbFreeGeomProperties SrvXkbFreeGeomProperties 494642e01fSmrg#define XkbFreeGeomKeys SrvXkbFreeGeomKeys 504642e01fSmrg#define XkbFreeGeomRows SrvXkbFreeGeomRows 514642e01fSmrg#define XkbFreeGeomSections SrvXkbFreeGeomSections 524642e01fSmrg#define XkbFreeGeomPoints SrvXkbFreeGeomPoints 534642e01fSmrg#define XkbFreeGeomOutlines SrvXkbFreeGeomOutlines 544642e01fSmrg#define XkbFreeGeomShapes SrvXkbFreeGeomShapes 554642e01fSmrg#define XkbFreeGeometry SrvXkbFreeGeometry 564642e01fSmrg 5735c4bbdfSmrgtypedef struct _XkbProperty { 5835c4bbdfSmrg char *name; 5935c4bbdfSmrg char *value; 6035c4bbdfSmrg} XkbPropertyRec, *XkbPropertyPtr; 614642e01fSmrg 624642e01fSmrgtypedef struct _XkbColor { 6335c4bbdfSmrg unsigned int pixel; 6435c4bbdfSmrg char *spec; 6535c4bbdfSmrg} XkbColorRec, *XkbColorPtr; 664642e01fSmrg 6735c4bbdfSmrgtypedef struct _XkbPoint { 6835c4bbdfSmrg short x; 6935c4bbdfSmrg short y; 704642e01fSmrg} XkbPointRec, *XkbPointPtr; 714642e01fSmrg 7235c4bbdfSmrgtypedef struct _XkbBounds { 7335c4bbdfSmrg short x1, y1; 7435c4bbdfSmrg short x2, y2; 754642e01fSmrg} XkbBoundsRec, *XkbBoundsPtr; 7635c4bbdfSmrg 774642e01fSmrg#define XkbBoundsWidth(b) (((b)->x2)-((b)->x1)) 784642e01fSmrg#define XkbBoundsHeight(b) (((b)->y2)-((b)->y1)) 794642e01fSmrg 804642e01fSmrgtypedef struct _XkbOutline { 8135c4bbdfSmrg unsigned short num_points; 8235c4bbdfSmrg unsigned short sz_points; 8335c4bbdfSmrg unsigned short corner_radius; 8435c4bbdfSmrg XkbPointPtr points; 854642e01fSmrg} XkbOutlineRec, *XkbOutlinePtr; 864642e01fSmrg 874642e01fSmrgtypedef struct _XkbShape { 8835c4bbdfSmrg Atom name; 8935c4bbdfSmrg unsigned short num_outlines; 9035c4bbdfSmrg unsigned short sz_outlines; 9135c4bbdfSmrg XkbOutlinePtr outlines; 9235c4bbdfSmrg XkbOutlinePtr approx; 9335c4bbdfSmrg XkbOutlinePtr primary; 9435c4bbdfSmrg XkbBoundsRec bounds; 954642e01fSmrg} XkbShapeRec, *XkbShapePtr; 9635c4bbdfSmrg 974642e01fSmrg#define XkbOutlineIndex(s,o) ((int)((o)-&(s)->outlines[0])) 984642e01fSmrg 994642e01fSmrgtypedef struct _XkbShapeDoodad { 10035c4bbdfSmrg Atom name; 10135c4bbdfSmrg unsigned char type; 10235c4bbdfSmrg unsigned char priority; 10335c4bbdfSmrg short top; 10435c4bbdfSmrg short left; 10535c4bbdfSmrg short angle; 10635c4bbdfSmrg unsigned short color_ndx; 10735c4bbdfSmrg unsigned short shape_ndx; 1084642e01fSmrg} XkbShapeDoodadRec, *XkbShapeDoodadPtr; 10935c4bbdfSmrg 1104642e01fSmrg#define XkbShapeDoodadColor(g,d) (&(g)->colors[(d)->color_ndx]) 1114642e01fSmrg#define XkbShapeDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx]) 1124642e01fSmrg#define XkbSetShapeDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0]) 1134642e01fSmrg#define XkbSetShapeDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0]) 1144642e01fSmrg 1154642e01fSmrgtypedef struct _XkbTextDoodad { 11635c4bbdfSmrg Atom name; 11735c4bbdfSmrg unsigned char type; 11835c4bbdfSmrg unsigned char priority; 11935c4bbdfSmrg short top; 12035c4bbdfSmrg short left; 12135c4bbdfSmrg short angle; 12235c4bbdfSmrg short width; 12335c4bbdfSmrg short height; 12435c4bbdfSmrg unsigned short color_ndx; 12535c4bbdfSmrg char *text; 12635c4bbdfSmrg char *font; 1274642e01fSmrg} XkbTextDoodadRec, *XkbTextDoodadPtr; 12835c4bbdfSmrg 1294642e01fSmrg#define XkbTextDoodadColor(g,d) (&(g)->colors[(d)->color_ndx]) 1304642e01fSmrg#define XkbSetTextDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0]) 1314642e01fSmrg 1324642e01fSmrgtypedef struct _XkbIndicatorDoodad { 13335c4bbdfSmrg Atom name; 13435c4bbdfSmrg unsigned char type; 13535c4bbdfSmrg unsigned char priority; 13635c4bbdfSmrg short top; 13735c4bbdfSmrg short left; 13835c4bbdfSmrg short angle; 13935c4bbdfSmrg unsigned short shape_ndx; 14035c4bbdfSmrg unsigned short on_color_ndx; 14135c4bbdfSmrg unsigned short off_color_ndx; 1424642e01fSmrg} XkbIndicatorDoodadRec, *XkbIndicatorDoodadPtr; 14335c4bbdfSmrg 1444642e01fSmrg#define XkbIndicatorDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx]) 1454642e01fSmrg#define XkbIndicatorDoodadOnColor(g,d) (&(g)->colors[(d)->on_color_ndx]) 1464642e01fSmrg#define XkbIndicatorDoodadOffColor(g,d) (&(g)->colors[(d)->off_color_ndx]) 1474642e01fSmrg#define XkbSetIndicatorDoodadOnColor(g,d,c) \ 1484642e01fSmrg ((d)->on_color_ndx= (c)-&(g)->colors[0]) 1494642e01fSmrg#define XkbSetIndicatorDoodadOffColor(g,d,c) \ 1504642e01fSmrg ((d)->off_color_ndx= (c)-&(g)->colors[0]) 1514642e01fSmrg#define XkbSetIndicatorDoodadShape(g,d,s) \ 1524642e01fSmrg ((d)->shape_ndx= (s)-&(g)->shapes[0]) 1534642e01fSmrg 1544642e01fSmrgtypedef struct _XkbLogoDoodad { 15535c4bbdfSmrg Atom name; 15635c4bbdfSmrg unsigned char type; 15735c4bbdfSmrg unsigned char priority; 15835c4bbdfSmrg short top; 15935c4bbdfSmrg short left; 16035c4bbdfSmrg short angle; 16135c4bbdfSmrg unsigned short color_ndx; 16235c4bbdfSmrg unsigned short shape_ndx; 16335c4bbdfSmrg char *logo_name; 1644642e01fSmrg} XkbLogoDoodadRec, *XkbLogoDoodadPtr; 16535c4bbdfSmrg 1664642e01fSmrg#define XkbLogoDoodadColor(g,d) (&(g)->colors[(d)->color_ndx]) 1674642e01fSmrg#define XkbLogoDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx]) 1684642e01fSmrg#define XkbSetLogoDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0]) 1694642e01fSmrg#define XkbSetLogoDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0]) 1704642e01fSmrg 1714642e01fSmrgtypedef struct _XkbAnyDoodad { 17235c4bbdfSmrg Atom name; 17335c4bbdfSmrg unsigned char type; 17435c4bbdfSmrg unsigned char priority; 17535c4bbdfSmrg short top; 17635c4bbdfSmrg short left; 17735c4bbdfSmrg short angle; 1784642e01fSmrg} XkbAnyDoodadRec, *XkbAnyDoodadPtr; 1794642e01fSmrg 1804642e01fSmrgtypedef union _XkbDoodad { 18135c4bbdfSmrg XkbAnyDoodadRec any; 18235c4bbdfSmrg XkbShapeDoodadRec shape; 18335c4bbdfSmrg XkbTextDoodadRec text; 18435c4bbdfSmrg XkbIndicatorDoodadRec indicator; 18535c4bbdfSmrg XkbLogoDoodadRec logo; 1864642e01fSmrg} XkbDoodadRec, *XkbDoodadPtr; 1874642e01fSmrg 1884642e01fSmrg#define XkbUnknownDoodad 0 1894642e01fSmrg#define XkbOutlineDoodad 1 1904642e01fSmrg#define XkbSolidDoodad 2 1914642e01fSmrg#define XkbTextDoodad 3 1924642e01fSmrg#define XkbIndicatorDoodad 4 1934642e01fSmrg#define XkbLogoDoodad 5 1944642e01fSmrg 1954642e01fSmrgtypedef struct _XkbKey { 19635c4bbdfSmrg XkbKeyNameRec name; 19735c4bbdfSmrg short gap; 19835c4bbdfSmrg unsigned char shape_ndx; 19935c4bbdfSmrg unsigned char color_ndx; 2004642e01fSmrg} XkbKeyRec, *XkbKeyPtr; 20135c4bbdfSmrg 2024642e01fSmrg#define XkbKeyShape(g,k) (&(g)->shapes[(k)->shape_ndx]) 2034642e01fSmrg#define XkbKeyColor(g,k) (&(g)->colors[(k)->color_ndx]) 2044642e01fSmrg#define XkbSetKeyShape(g,k,s) ((k)->shape_ndx= (s)-&(g)->shapes[0]) 2054642e01fSmrg#define XkbSetKeyColor(g,k,c) ((k)->color_ndx= (c)-&(g)->colors[0]) 2064642e01fSmrg 2074642e01fSmrgtypedef struct _XkbRow { 20835c4bbdfSmrg short top; 20935c4bbdfSmrg short left; 21035c4bbdfSmrg unsigned short num_keys; 21135c4bbdfSmrg unsigned short sz_keys; 21235c4bbdfSmrg int vertical; 21335c4bbdfSmrg XkbKeyPtr keys; 21435c4bbdfSmrg XkbBoundsRec bounds; 2154642e01fSmrg} XkbRowRec, *XkbRowPtr; 2164642e01fSmrg 2174642e01fSmrgtypedef struct _XkbSection { 21835c4bbdfSmrg Atom name; 21935c4bbdfSmrg unsigned char priority; 22035c4bbdfSmrg short top; 22135c4bbdfSmrg short left; 22235c4bbdfSmrg unsigned short width; 22335c4bbdfSmrg unsigned short height; 22435c4bbdfSmrg short angle; 22535c4bbdfSmrg unsigned short num_rows; 22635c4bbdfSmrg unsigned short num_doodads; 22735c4bbdfSmrg unsigned short num_overlays; 22835c4bbdfSmrg unsigned short sz_rows; 22935c4bbdfSmrg unsigned short sz_doodads; 23035c4bbdfSmrg unsigned short sz_overlays; 23135c4bbdfSmrg XkbRowPtr rows; 23235c4bbdfSmrg XkbDoodadPtr doodads; 23335c4bbdfSmrg XkbBoundsRec bounds; 23435c4bbdfSmrg struct _XkbOverlay *overlays; 2354642e01fSmrg} XkbSectionRec, *XkbSectionPtr; 2364642e01fSmrg 23735c4bbdfSmrgtypedef struct _XkbOverlayKey { 23835c4bbdfSmrg XkbKeyNameRec over; 23935c4bbdfSmrg XkbKeyNameRec under; 24035c4bbdfSmrg} XkbOverlayKeyRec, *XkbOverlayKeyPtr; 2414642e01fSmrg 2424642e01fSmrgtypedef struct _XkbOverlayRow { 24335c4bbdfSmrg unsigned short row_under; 24435c4bbdfSmrg unsigned short num_keys; 24535c4bbdfSmrg unsigned short sz_keys; 24635c4bbdfSmrg XkbOverlayKeyPtr keys; 24735c4bbdfSmrg} XkbOverlayRowRec, *XkbOverlayRowPtr; 2484642e01fSmrg 2494642e01fSmrgtypedef struct _XkbOverlay { 25035c4bbdfSmrg Atom name; 25135c4bbdfSmrg XkbSectionPtr section_under; 25235c4bbdfSmrg unsigned short num_rows; 25335c4bbdfSmrg unsigned short sz_rows; 25435c4bbdfSmrg XkbOverlayRowPtr rows; 25535c4bbdfSmrg XkbBoundsPtr bounds; 25635c4bbdfSmrg} XkbOverlayRec, *XkbOverlayPtr; 2574642e01fSmrg 2584642e01fSmrgtypedef struct _XkbGeometry { 25935c4bbdfSmrg Atom name; 26035c4bbdfSmrg unsigned short width_mm; 26135c4bbdfSmrg unsigned short height_mm; 26235c4bbdfSmrg char *label_font; 26335c4bbdfSmrg XkbColorPtr label_color; 26435c4bbdfSmrg XkbColorPtr base_color; 26535c4bbdfSmrg unsigned short sz_properties; 26635c4bbdfSmrg unsigned short sz_colors; 26735c4bbdfSmrg unsigned short sz_shapes; 26835c4bbdfSmrg unsigned short sz_sections; 26935c4bbdfSmrg unsigned short sz_doodads; 27035c4bbdfSmrg unsigned short sz_key_aliases; 27135c4bbdfSmrg unsigned short num_properties; 27235c4bbdfSmrg unsigned short num_colors; 27335c4bbdfSmrg unsigned short num_shapes; 27435c4bbdfSmrg unsigned short num_sections; 27535c4bbdfSmrg unsigned short num_doodads; 27635c4bbdfSmrg unsigned short num_key_aliases; 27735c4bbdfSmrg XkbPropertyPtr properties; 27835c4bbdfSmrg XkbColorPtr colors; 27935c4bbdfSmrg XkbShapePtr shapes; 28035c4bbdfSmrg XkbSectionPtr sections; 28135c4bbdfSmrg XkbDoodadPtr doodads; 28235c4bbdfSmrg XkbKeyAliasPtr key_aliases; 2834642e01fSmrg} XkbGeometryRec; 28435c4bbdfSmrg 2854642e01fSmrg#define XkbGeomColorIndex(g,c) ((int)((c)-&(g)->colors[0])) 2864642e01fSmrg 2874642e01fSmrg#define XkbGeomPropertiesMask (1<<0) 2884642e01fSmrg#define XkbGeomColorsMask (1<<1) 2894642e01fSmrg#define XkbGeomShapesMask (1<<2) 2904642e01fSmrg#define XkbGeomSectionsMask (1<<3) 2914642e01fSmrg#define XkbGeomDoodadsMask (1<<4) 2924642e01fSmrg#define XkbGeomKeyAliasesMask (1<<5) 2934642e01fSmrg#define XkbGeomAllMask (0x3f) 2944642e01fSmrg 2954642e01fSmrgtypedef struct _XkbGeometrySizes { 29635c4bbdfSmrg unsigned int which; 29735c4bbdfSmrg unsigned short num_properties; 29835c4bbdfSmrg unsigned short num_colors; 29935c4bbdfSmrg unsigned short num_shapes; 30035c4bbdfSmrg unsigned short num_sections; 30135c4bbdfSmrg unsigned short num_doodads; 30235c4bbdfSmrg unsigned short num_key_aliases; 30335c4bbdfSmrg} XkbGeometrySizesRec, *XkbGeometrySizesPtr; 30435c4bbdfSmrg 30535c4bbdfSmrg/** 30635c4bbdfSmrg * Specifies which items should be cleared in an XKB geometry array 30735c4bbdfSmrg * when the array is reallocated. 30835c4bbdfSmrg */ 30935c4bbdfSmrgtypedef enum { 31035c4bbdfSmrg XKB_GEOM_CLEAR_NONE, /* Don't clear any items, just reallocate. */ 31135c4bbdfSmrg XKB_GEOM_CLEAR_EXCESS, /* Clear new extra items after reallocation. */ 31235c4bbdfSmrg XKB_GEOM_CLEAR_ALL /* Clear all items after reallocation. */ 31335c4bbdfSmrg} XkbGeomClearance; 31435c4bbdfSmrg 31535c4bbdfSmrgextern XkbPropertyPtr XkbAddGeomProperty(XkbGeometryPtr /* geom */ , 31635c4bbdfSmrg char * /* name */ , 31735c4bbdfSmrg char * /* value */ 31835c4bbdfSmrg ); 31935c4bbdfSmrg 32035c4bbdfSmrgextern XkbKeyAliasPtr XkbAddGeomKeyAlias(XkbGeometryPtr /* geom */ , 32135c4bbdfSmrg char * /* alias */ , 32235c4bbdfSmrg char * /* real */ 32335c4bbdfSmrg ); 32435c4bbdfSmrg 32535c4bbdfSmrgextern XkbColorPtr XkbAddGeomColor(XkbGeometryPtr /* geom */ , 32635c4bbdfSmrg char * /* spec */ , 32735c4bbdfSmrg unsigned int /* pixel */ 32835c4bbdfSmrg ); 32935c4bbdfSmrg 33035c4bbdfSmrgextern XkbOutlinePtr XkbAddGeomOutline(XkbShapePtr /* shape */ , 33135c4bbdfSmrg int /* sz_points */ 33235c4bbdfSmrg ); 33335c4bbdfSmrg 33435c4bbdfSmrgextern XkbShapePtr XkbAddGeomShape(XkbGeometryPtr /* geom */ , 33535c4bbdfSmrg Atom /* name */ , 33635c4bbdfSmrg int /* sz_outlines */ 33735c4bbdfSmrg ); 33835c4bbdfSmrg 33935c4bbdfSmrgextern XkbKeyPtr XkbAddGeomKey(XkbRowPtr /* row */ 34035c4bbdfSmrg ); 34135c4bbdfSmrg 34235c4bbdfSmrgextern XkbRowPtr XkbAddGeomRow(XkbSectionPtr /* section */ , 34335c4bbdfSmrg int /* sz_keys */ 34435c4bbdfSmrg ); 34535c4bbdfSmrg 34635c4bbdfSmrgextern XkbSectionPtr XkbAddGeomSection(XkbGeometryPtr /* geom */ , 34735c4bbdfSmrg Atom /* name */ , 34835c4bbdfSmrg int /* sz_rows */ , 34935c4bbdfSmrg int /* sz_doodads */ , 35035c4bbdfSmrg int /* sz_overlays */ 35135c4bbdfSmrg ); 35235c4bbdfSmrg 35335c4bbdfSmrgextern XkbOverlayPtr XkbAddGeomOverlay(XkbSectionPtr /* section */ , 35435c4bbdfSmrg Atom /* name */ , 35535c4bbdfSmrg int /* sz_rows */ 35635c4bbdfSmrg ); 35735c4bbdfSmrg 35835c4bbdfSmrgextern XkbOverlayRowPtr XkbAddGeomOverlayRow(XkbOverlayPtr /* overlay */ , 35935c4bbdfSmrg int /* row_under */ , 36035c4bbdfSmrg int /* sz_keys */ 36135c4bbdfSmrg ); 36235c4bbdfSmrg 36335c4bbdfSmrgextern XkbOverlayKeyPtr XkbAddGeomOverlayKey(XkbOverlayPtr /* overlay */ , 36435c4bbdfSmrg XkbOverlayRowPtr /* row */ , 36535c4bbdfSmrg char * /* over */ , 36635c4bbdfSmrg char * /* under */ 36735c4bbdfSmrg ); 36835c4bbdfSmrg 36935c4bbdfSmrgextern XkbDoodadPtr XkbAddGeomDoodad(XkbGeometryPtr /* geom */ , 37035c4bbdfSmrg XkbSectionPtr /* section */ , 37135c4bbdfSmrg Atom /* name */ 37235c4bbdfSmrg ); 3734642e01fSmrg 3744642e01fSmrgextern void 37535c4bbdfSmrg XkbFreeGeomKeyAliases(XkbGeometryPtr /* geom */ , 37635c4bbdfSmrg int /* first */ , 37735c4bbdfSmrg int /* count */ , 37835c4bbdfSmrg Bool /* freeAll */ 37935c4bbdfSmrg ); 3804642e01fSmrg 3814642e01fSmrgextern void 38235c4bbdfSmrg XkbFreeGeomColors(XkbGeometryPtr /* geom */ , 38335c4bbdfSmrg int /* first */ , 38435c4bbdfSmrg int /* count */ , 38535c4bbdfSmrg Bool /* freeAll */ 38635c4bbdfSmrg ); 3874642e01fSmrg 3884642e01fSmrgextern void 38935c4bbdfSmrg XkbFreeGeomDoodads(XkbDoodadPtr /* doodads */ , 39035c4bbdfSmrg int /* nDoodads */ , 39135c4bbdfSmrg Bool /* freeAll */ 39235c4bbdfSmrg ); 3934642e01fSmrg 3944642e01fSmrgextern void 39535c4bbdfSmrg XkbFreeGeomProperties(XkbGeometryPtr /* geom */ , 39635c4bbdfSmrg int /* first */ , 39735c4bbdfSmrg int /* count */ , 39835c4bbdfSmrg Bool /* freeAll */ 39935c4bbdfSmrg ); 4004642e01fSmrg 4014642e01fSmrgextern void 40235c4bbdfSmrg XkbFreeGeomOverlayKeys(XkbOverlayRowPtr /* row */ , 40335c4bbdfSmrg int /* first */ , 40435c4bbdfSmrg int /* count */ , 40535c4bbdfSmrg Bool /* freeAll */ 40635c4bbdfSmrg ); 4074642e01fSmrg 4084642e01fSmrgextern void 40935c4bbdfSmrg XkbFreeGeomOverlayRows(XkbOverlayPtr /* overlay */ , 41035c4bbdfSmrg int /* first */ , 41135c4bbdfSmrg int /* count */ , 41235c4bbdfSmrg Bool /* freeAll */ 41335c4bbdfSmrg ); 4144642e01fSmrg 4154642e01fSmrgextern void 41635c4bbdfSmrg XkbFreeGeomOverlays(XkbSectionPtr /* section */ , 41735c4bbdfSmrg int /* first */ , 41835c4bbdfSmrg int /* count */ , 41935c4bbdfSmrg Bool /* freeAll */ 42035c4bbdfSmrg ); 4214642e01fSmrg 4224642e01fSmrgextern void 42335c4bbdfSmrg XkbFreeGeomKeys(XkbRowPtr /* row */ , 42435c4bbdfSmrg int /* first */ , 42535c4bbdfSmrg int /* count */ , 42635c4bbdfSmrg Bool /* freeAll */ 42735c4bbdfSmrg ); 4284642e01fSmrg 4294642e01fSmrgextern void 43035c4bbdfSmrg XkbFreeGeomRows(XkbSectionPtr /* section */ , 43135c4bbdfSmrg int /* first */ , 43235c4bbdfSmrg int /* count */ , 43335c4bbdfSmrg Bool /* freeAll */ 43435c4bbdfSmrg ); 4354642e01fSmrg 4364642e01fSmrgextern void 43735c4bbdfSmrg XkbFreeGeomSections(XkbGeometryPtr /* geom */ , 43835c4bbdfSmrg int /* first */ , 43935c4bbdfSmrg int /* count */ , 44035c4bbdfSmrg Bool /* freeAll */ 44135c4bbdfSmrg ); 4424642e01fSmrg 4434642e01fSmrgextern void 44435c4bbdfSmrg XkbFreeGeomPoints(XkbOutlinePtr /* outline */ , 44535c4bbdfSmrg int /* first */ , 44635c4bbdfSmrg int /* count */ , 44735c4bbdfSmrg Bool /* freeAll */ 44835c4bbdfSmrg ); 4494642e01fSmrg 4504642e01fSmrgextern void 45135c4bbdfSmrg XkbFreeGeomOutlines(XkbShapePtr /* shape */ , 45235c4bbdfSmrg int /* first */ , 45335c4bbdfSmrg int /* count */ , 45435c4bbdfSmrg Bool /* freeAll */ 45535c4bbdfSmrg ); 4564642e01fSmrg 4574642e01fSmrgextern void 45835c4bbdfSmrg XkbFreeGeomShapes(XkbGeometryPtr /* geom */ , 45935c4bbdfSmrg int /* first */ , 46035c4bbdfSmrg int /* count */ , 46135c4bbdfSmrg Bool /* freeAll */ 46235c4bbdfSmrg ); 4634642e01fSmrg 4644642e01fSmrgextern void 46535c4bbdfSmrg XkbFreeGeometry(XkbGeometryPtr /* geom */ , 46635c4bbdfSmrg unsigned int /* which */ , 46735c4bbdfSmrg Bool /* freeMap */ 46835c4bbdfSmrg ); 46935c4bbdfSmrg 47035c4bbdfSmrgextern Bool 47135c4bbdfSmrg XkbGeomRealloc(void ** /* buffer */ , 47235c4bbdfSmrg int /* szItems */ , 47335c4bbdfSmrg int /* nrItems */ , 47435c4bbdfSmrg int /* itemSize */ , 47535c4bbdfSmrg XkbGeomClearance /* clearance */ 47635c4bbdfSmrg ); 47735c4bbdfSmrg 47835c4bbdfSmrgextern Status XkbAllocGeomProps(XkbGeometryPtr /* geom */ , 47935c4bbdfSmrg int /* nProps */ 48035c4bbdfSmrg ); 48135c4bbdfSmrg 48235c4bbdfSmrgextern Status XkbAllocGeomKeyAliases(XkbGeometryPtr /* geom */ , 48335c4bbdfSmrg int /* nAliases */ 48435c4bbdfSmrg ); 48535c4bbdfSmrg 48635c4bbdfSmrgextern Status XkbAllocGeomColors(XkbGeometryPtr /* geom */ , 48735c4bbdfSmrg int /* nColors */ 48835c4bbdfSmrg ); 48935c4bbdfSmrg 49035c4bbdfSmrgextern Status XkbAllocGeomShapes(XkbGeometryPtr /* geom */ , 49135c4bbdfSmrg int /* nShapes */ 49235c4bbdfSmrg ); 49335c4bbdfSmrg 49435c4bbdfSmrgextern Status XkbAllocGeomSections(XkbGeometryPtr /* geom */ , 49535c4bbdfSmrg int /* nSections */ 49635c4bbdfSmrg ); 49735c4bbdfSmrg 49835c4bbdfSmrgextern Status XkbAllocGeomOverlays(XkbSectionPtr /* section */ , 49935c4bbdfSmrg int /* num_needed */ 50035c4bbdfSmrg ); 50135c4bbdfSmrg 50235c4bbdfSmrgextern Status XkbAllocGeomOverlayRows(XkbOverlayPtr /* overlay */ , 50335c4bbdfSmrg int /* num_needed */ 50435c4bbdfSmrg ); 50535c4bbdfSmrg 50635c4bbdfSmrgextern Status XkbAllocGeomOverlayKeys(XkbOverlayRowPtr /* row */ , 50735c4bbdfSmrg int /* num_needed */ 50835c4bbdfSmrg ); 50935c4bbdfSmrg 51035c4bbdfSmrgextern Status XkbAllocGeomDoodads(XkbGeometryPtr /* geom */ , 51135c4bbdfSmrg int /* nDoodads */ 51235c4bbdfSmrg ); 51335c4bbdfSmrg 51435c4bbdfSmrgextern Status XkbAllocGeomSectionDoodads(XkbSectionPtr /* section */ , 51535c4bbdfSmrg int /* nDoodads */ 51635c4bbdfSmrg ); 51735c4bbdfSmrg 51835c4bbdfSmrgextern Status XkbAllocGeomOutlines(XkbShapePtr /* shape */ , 51935c4bbdfSmrg int /* nOL */ 52035c4bbdfSmrg ); 52135c4bbdfSmrg 52235c4bbdfSmrgextern Status XkbAllocGeomRows(XkbSectionPtr /* section */ , 52335c4bbdfSmrg int /* nRows */ 52435c4bbdfSmrg ); 52535c4bbdfSmrg 52635c4bbdfSmrgextern Status XkbAllocGeomPoints(XkbOutlinePtr /* ol */ , 52735c4bbdfSmrg int /* nPts */ 52835c4bbdfSmrg ); 52935c4bbdfSmrg 53035c4bbdfSmrgextern Status XkbAllocGeomKeys(XkbRowPtr /* row */ , 53135c4bbdfSmrg int /* nKeys */ 53235c4bbdfSmrg ); 53335c4bbdfSmrg 53435c4bbdfSmrgextern Status XkbAllocGeometry(XkbDescPtr /* xkb */ , 53535c4bbdfSmrg XkbGeometrySizesPtr /* sizes */ 53635c4bbdfSmrg ); 53735c4bbdfSmrg 53835c4bbdfSmrgextern Bool 53935c4bbdfSmrg XkbComputeShapeTop(XkbShapePtr /* shape */ , 54035c4bbdfSmrg XkbBoundsPtr /* bounds */ 54135c4bbdfSmrg ); 54235c4bbdfSmrg 54335c4bbdfSmrgextern Bool 54435c4bbdfSmrg XkbComputeShapeBounds(XkbShapePtr /* shape */ 54535c4bbdfSmrg ); 54635c4bbdfSmrg 54735c4bbdfSmrgextern Bool 54835c4bbdfSmrg XkbComputeRowBounds(XkbGeometryPtr /* geom */ , 54935c4bbdfSmrg XkbSectionPtr /* section */ , 55035c4bbdfSmrg XkbRowPtr /* row */ 55135c4bbdfSmrg ); 55235c4bbdfSmrg 55335c4bbdfSmrgextern Bool 55435c4bbdfSmrg XkbComputeSectionBounds(XkbGeometryPtr /* geom */ , 55535c4bbdfSmrg XkbSectionPtr /* section */ 55635c4bbdfSmrg ); 55735c4bbdfSmrg 55835c4bbdfSmrgextern char *XkbFindOverlayForKey(XkbGeometryPtr /* geom */ , 55935c4bbdfSmrg XkbSectionPtr /* wanted */ , 56035c4bbdfSmrg char * /* under */ 56135c4bbdfSmrg ); 56235c4bbdfSmrg 56335c4bbdfSmrg#endif /* _XKBGEOM_H_ */ 564