xkbgeom.h revision 4642e01f
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 94642e01fSmrgdocumentation, and that the name of Silicon Graphics not be 104642e01fSmrgused in advertising or publicity pertaining to distribution 114642e01fSmrgof the software without specific prior written permission. 124642e01fSmrgSilicon 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 164642e01fSmrgSILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS 174642e01fSmrgSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 184642e01fSmrgAND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON 194642e01fSmrgGRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL 204642e01fSmrgDAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 214642e01fSmrgDATA 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 XkbAllocGeomKeyAliases SrvXkbAllocGeomKeyAliases 454642e01fSmrg#define XkbAllocGeomColors SrvXkbAllocGeomColors 464642e01fSmrg#define XkbAllocGeomDoodads SrvXkbAllocGeomDoodads 474642e01fSmrg#define XkbAllocGeomKeys SrvXkbAllocGeomKeys 484642e01fSmrg#define XkbAllocGeomOutlines SrvXkbAllocGeomOutlines 494642e01fSmrg#define XkbAllocGeomPoints SrvXkbAllocGeomPoints 504642e01fSmrg#define XkbAllocGeomProps SrvXkbAllocGeomProps 514642e01fSmrg#define XkbAllocGeomRows SrvXkbAllocGeomRows 524642e01fSmrg#define XkbAllocGeomSectionDoodads SrvXkbAllocGeomSectionDoodads 534642e01fSmrg#define XkbAllocGeomSections SrvXkbAllocGeomSections 544642e01fSmrg#define XkbAllocGeomOverlays SrvXkbAllocGeomOverlays 554642e01fSmrg#define XkbAllocGeomOverlayRows SrvXkbAllocGeomOverlayRows 564642e01fSmrg#define XkbAllocGeomOverlayKeys SrvXkbAllocGeomOverlayKeys 574642e01fSmrg#define XkbAllocGeomShapes SrvXkbAllocGeomShapes 584642e01fSmrg#define XkbAllocGeometry SrvXkbAllocGeometry 594642e01fSmrg#define XkbFreeGeomKeyAliases SrvXkbFreeGeomKeyAliases 604642e01fSmrg#define XkbFreeGeomColors SrvXkbFreeGeomColors 614642e01fSmrg#define XkbFreeGeomDoodads SrvXkbFreeGeomDoodads 624642e01fSmrg#define XkbFreeGeomProperties SrvXkbFreeGeomProperties 634642e01fSmrg#define XkbFreeGeomOverlayKeys SrvXkbFreeGeomOverlayKeys 644642e01fSmrg#define XkbFreeGeomOverlayRows SrvXkbFreeGeomOverlayRows 654642e01fSmrg#define XkbFreeGeomOverlays SrvXkbFreeGeomOverlays 664642e01fSmrg#define XkbFreeGeomKeys SrvXkbFreeGeomKeys 674642e01fSmrg#define XkbFreeGeomRows SrvXkbFreeGeomRows 684642e01fSmrg#define XkbFreeGeomSections SrvXkbFreeGeomSections 694642e01fSmrg#define XkbFreeGeomPoints SrvXkbFreeGeomPoints 704642e01fSmrg#define XkbFreeGeomOutlines SrvXkbFreeGeomOutlines 714642e01fSmrg#define XkbFreeGeomShapes SrvXkbFreeGeomShapes 724642e01fSmrg#define XkbFreeGeometry SrvXkbFreeGeometry 734642e01fSmrg 744642e01fSmrgtypedef struct _XkbProperty { 754642e01fSmrg char *name; 764642e01fSmrg char *value; 774642e01fSmrg} XkbPropertyRec,*XkbPropertyPtr; 784642e01fSmrg 794642e01fSmrgtypedef struct _XkbColor { 804642e01fSmrg unsigned int pixel; 814642e01fSmrg char * spec; 824642e01fSmrg} XkbColorRec,*XkbColorPtr; 834642e01fSmrg 844642e01fSmrgtypedef struct _XkbPoint { 854642e01fSmrg short x; 864642e01fSmrg short y; 874642e01fSmrg} XkbPointRec, *XkbPointPtr; 884642e01fSmrg 894642e01fSmrgtypedef struct _XkbBounds { 904642e01fSmrg short x1,y1; 914642e01fSmrg short x2,y2; 924642e01fSmrg} XkbBoundsRec, *XkbBoundsPtr; 934642e01fSmrg#define XkbBoundsWidth(b) (((b)->x2)-((b)->x1)) 944642e01fSmrg#define XkbBoundsHeight(b) (((b)->y2)-((b)->y1)) 954642e01fSmrg 964642e01fSmrgtypedef struct _XkbOutline { 974642e01fSmrg unsigned short num_points; 984642e01fSmrg unsigned short sz_points; 994642e01fSmrg unsigned short corner_radius; 1004642e01fSmrg XkbPointPtr points; 1014642e01fSmrg} XkbOutlineRec, *XkbOutlinePtr; 1024642e01fSmrg 1034642e01fSmrgtypedef struct _XkbShape { 1044642e01fSmrg Atom name; 1054642e01fSmrg unsigned short num_outlines; 1064642e01fSmrg unsigned short sz_outlines; 1074642e01fSmrg XkbOutlinePtr outlines; 1084642e01fSmrg XkbOutlinePtr approx; 1094642e01fSmrg XkbOutlinePtr primary; 1104642e01fSmrg XkbBoundsRec bounds; 1114642e01fSmrg} XkbShapeRec, *XkbShapePtr; 1124642e01fSmrg#define XkbOutlineIndex(s,o) ((int)((o)-&(s)->outlines[0])) 1134642e01fSmrg 1144642e01fSmrgtypedef struct _XkbShapeDoodad { 1154642e01fSmrg Atom name; 1164642e01fSmrg unsigned char type; 1174642e01fSmrg unsigned char priority; 1184642e01fSmrg short top; 1194642e01fSmrg short left; 1204642e01fSmrg short angle; 1214642e01fSmrg unsigned short color_ndx; 1224642e01fSmrg unsigned short shape_ndx; 1234642e01fSmrg} XkbShapeDoodadRec, *XkbShapeDoodadPtr; 1244642e01fSmrg#define XkbShapeDoodadColor(g,d) (&(g)->colors[(d)->color_ndx]) 1254642e01fSmrg#define XkbShapeDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx]) 1264642e01fSmrg#define XkbSetShapeDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0]) 1274642e01fSmrg#define XkbSetShapeDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0]) 1284642e01fSmrg 1294642e01fSmrgtypedef struct _XkbTextDoodad { 1304642e01fSmrg Atom name; 1314642e01fSmrg unsigned char type; 1324642e01fSmrg unsigned char priority; 1334642e01fSmrg short top; 1344642e01fSmrg short left; 1354642e01fSmrg short angle; 1364642e01fSmrg short width; 1374642e01fSmrg short height; 1384642e01fSmrg unsigned short color_ndx; 1394642e01fSmrg char * text; 1404642e01fSmrg char * font; 1414642e01fSmrg} XkbTextDoodadRec, *XkbTextDoodadPtr; 1424642e01fSmrg#define XkbTextDoodadColor(g,d) (&(g)->colors[(d)->color_ndx]) 1434642e01fSmrg#define XkbSetTextDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0]) 1444642e01fSmrg 1454642e01fSmrgtypedef struct _XkbIndicatorDoodad { 1464642e01fSmrg Atom name; 1474642e01fSmrg unsigned char type; 1484642e01fSmrg unsigned char priority; 1494642e01fSmrg short top; 1504642e01fSmrg short left; 1514642e01fSmrg short angle; 1524642e01fSmrg unsigned short shape_ndx; 1534642e01fSmrg unsigned short on_color_ndx; 1544642e01fSmrg unsigned short off_color_ndx; 1554642e01fSmrg} XkbIndicatorDoodadRec, *XkbIndicatorDoodadPtr; 1564642e01fSmrg#define XkbIndicatorDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx]) 1574642e01fSmrg#define XkbIndicatorDoodadOnColor(g,d) (&(g)->colors[(d)->on_color_ndx]) 1584642e01fSmrg#define XkbIndicatorDoodadOffColor(g,d) (&(g)->colors[(d)->off_color_ndx]) 1594642e01fSmrg#define XkbSetIndicatorDoodadOnColor(g,d,c) \ 1604642e01fSmrg ((d)->on_color_ndx= (c)-&(g)->colors[0]) 1614642e01fSmrg#define XkbSetIndicatorDoodadOffColor(g,d,c) \ 1624642e01fSmrg ((d)->off_color_ndx= (c)-&(g)->colors[0]) 1634642e01fSmrg#define XkbSetIndicatorDoodadShape(g,d,s) \ 1644642e01fSmrg ((d)->shape_ndx= (s)-&(g)->shapes[0]) 1654642e01fSmrg 1664642e01fSmrgtypedef struct _XkbLogoDoodad { 1674642e01fSmrg Atom name; 1684642e01fSmrg unsigned char type; 1694642e01fSmrg unsigned char priority; 1704642e01fSmrg short top; 1714642e01fSmrg short left; 1724642e01fSmrg short angle; 1734642e01fSmrg unsigned short color_ndx; 1744642e01fSmrg unsigned short shape_ndx; 1754642e01fSmrg char * logo_name; 1764642e01fSmrg} XkbLogoDoodadRec, *XkbLogoDoodadPtr; 1774642e01fSmrg#define XkbLogoDoodadColor(g,d) (&(g)->colors[(d)->color_ndx]) 1784642e01fSmrg#define XkbLogoDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx]) 1794642e01fSmrg#define XkbSetLogoDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0]) 1804642e01fSmrg#define XkbSetLogoDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0]) 1814642e01fSmrg 1824642e01fSmrgtypedef struct _XkbAnyDoodad { 1834642e01fSmrg Atom name; 1844642e01fSmrg unsigned char type; 1854642e01fSmrg unsigned char priority; 1864642e01fSmrg short top; 1874642e01fSmrg short left; 1884642e01fSmrg short angle; 1894642e01fSmrg} XkbAnyDoodadRec, *XkbAnyDoodadPtr; 1904642e01fSmrg 1914642e01fSmrgtypedef union _XkbDoodad { 1924642e01fSmrg XkbAnyDoodadRec any; 1934642e01fSmrg XkbShapeDoodadRec shape; 1944642e01fSmrg XkbTextDoodadRec text; 1954642e01fSmrg XkbIndicatorDoodadRec indicator; 1964642e01fSmrg XkbLogoDoodadRec logo; 1974642e01fSmrg} XkbDoodadRec, *XkbDoodadPtr; 1984642e01fSmrg 1994642e01fSmrg#define XkbUnknownDoodad 0 2004642e01fSmrg#define XkbOutlineDoodad 1 2014642e01fSmrg#define XkbSolidDoodad 2 2024642e01fSmrg#define XkbTextDoodad 3 2034642e01fSmrg#define XkbIndicatorDoodad 4 2044642e01fSmrg#define XkbLogoDoodad 5 2054642e01fSmrg 2064642e01fSmrgtypedef struct _XkbKey { 2074642e01fSmrg XkbKeyNameRec name; 2084642e01fSmrg short gap; 2094642e01fSmrg unsigned char shape_ndx; 2104642e01fSmrg unsigned char color_ndx; 2114642e01fSmrg} XkbKeyRec, *XkbKeyPtr; 2124642e01fSmrg#define XkbKeyShape(g,k) (&(g)->shapes[(k)->shape_ndx]) 2134642e01fSmrg#define XkbKeyColor(g,k) (&(g)->colors[(k)->color_ndx]) 2144642e01fSmrg#define XkbSetKeyShape(g,k,s) ((k)->shape_ndx= (s)-&(g)->shapes[0]) 2154642e01fSmrg#define XkbSetKeyColor(g,k,c) ((k)->color_ndx= (c)-&(g)->colors[0]) 2164642e01fSmrg 2174642e01fSmrgtypedef struct _XkbRow { 2184642e01fSmrg short top; 2194642e01fSmrg short left; 2204642e01fSmrg unsigned short num_keys; 2214642e01fSmrg unsigned short sz_keys; 2224642e01fSmrg int vertical; 2234642e01fSmrg XkbKeyPtr keys; 2244642e01fSmrg XkbBoundsRec bounds; 2254642e01fSmrg} XkbRowRec, *XkbRowPtr; 2264642e01fSmrg 2274642e01fSmrgtypedef struct _XkbSection { 2284642e01fSmrg Atom name; 2294642e01fSmrg unsigned char priority; 2304642e01fSmrg short top; 2314642e01fSmrg short left; 2324642e01fSmrg unsigned short width; 2334642e01fSmrg unsigned short height; 2344642e01fSmrg short angle; 2354642e01fSmrg unsigned short num_rows; 2364642e01fSmrg unsigned short num_doodads; 2374642e01fSmrg unsigned short num_overlays; 2384642e01fSmrg unsigned short sz_rows; 2394642e01fSmrg unsigned short sz_doodads; 2404642e01fSmrg unsigned short sz_overlays; 2414642e01fSmrg XkbRowPtr rows; 2424642e01fSmrg XkbDoodadPtr doodads; 2434642e01fSmrg XkbBoundsRec bounds; 2444642e01fSmrg struct _XkbOverlay *overlays; 2454642e01fSmrg} XkbSectionRec, *XkbSectionPtr; 2464642e01fSmrg 2474642e01fSmrgtypedef struct _XkbOverlayKey { 2484642e01fSmrg XkbKeyNameRec over; 2494642e01fSmrg XkbKeyNameRec under; 2504642e01fSmrg} XkbOverlayKeyRec,*XkbOverlayKeyPtr; 2514642e01fSmrg 2524642e01fSmrgtypedef struct _XkbOverlayRow { 2534642e01fSmrg unsigned short row_under; 2544642e01fSmrg unsigned short num_keys; 2554642e01fSmrg unsigned short sz_keys; 2564642e01fSmrg XkbOverlayKeyPtr keys; 2574642e01fSmrg} XkbOverlayRowRec,*XkbOverlayRowPtr; 2584642e01fSmrg 2594642e01fSmrgtypedef struct _XkbOverlay { 2604642e01fSmrg Atom name; 2614642e01fSmrg XkbSectionPtr section_under; 2624642e01fSmrg unsigned short num_rows; 2634642e01fSmrg unsigned short sz_rows; 2644642e01fSmrg XkbOverlayRowPtr rows; 2654642e01fSmrg XkbBoundsPtr bounds; 2664642e01fSmrg} XkbOverlayRec,*XkbOverlayPtr; 2674642e01fSmrg 2684642e01fSmrgtypedef struct _XkbGeometry { 2694642e01fSmrg Atom name; 2704642e01fSmrg unsigned short width_mm; 2714642e01fSmrg unsigned short height_mm; 2724642e01fSmrg char * label_font; 2734642e01fSmrg XkbColorPtr label_color; 2744642e01fSmrg XkbColorPtr base_color; 2754642e01fSmrg unsigned short sz_properties; 2764642e01fSmrg unsigned short sz_colors; 2774642e01fSmrg unsigned short sz_shapes; 2784642e01fSmrg unsigned short sz_sections; 2794642e01fSmrg unsigned short sz_doodads; 2804642e01fSmrg unsigned short sz_key_aliases; 2814642e01fSmrg unsigned short num_properties; 2824642e01fSmrg unsigned short num_colors; 2834642e01fSmrg unsigned short num_shapes; 2844642e01fSmrg unsigned short num_sections; 2854642e01fSmrg unsigned short num_doodads; 2864642e01fSmrg unsigned short num_key_aliases; 2874642e01fSmrg XkbPropertyPtr properties; 2884642e01fSmrg XkbColorPtr colors; 2894642e01fSmrg XkbShapePtr shapes; 2904642e01fSmrg XkbSectionPtr sections; 2914642e01fSmrg XkbDoodadPtr doodads; 2924642e01fSmrg XkbKeyAliasPtr key_aliases; 2934642e01fSmrg} XkbGeometryRec; 2944642e01fSmrg#define XkbGeomColorIndex(g,c) ((int)((c)-&(g)->colors[0])) 2954642e01fSmrg 2964642e01fSmrg#define XkbGeomPropertiesMask (1<<0) 2974642e01fSmrg#define XkbGeomColorsMask (1<<1) 2984642e01fSmrg#define XkbGeomShapesMask (1<<2) 2994642e01fSmrg#define XkbGeomSectionsMask (1<<3) 3004642e01fSmrg#define XkbGeomDoodadsMask (1<<4) 3014642e01fSmrg#define XkbGeomKeyAliasesMask (1<<5) 3024642e01fSmrg#define XkbGeomAllMask (0x3f) 3034642e01fSmrg 3044642e01fSmrgtypedef struct _XkbGeometrySizes { 3054642e01fSmrg unsigned int which; 3064642e01fSmrg unsigned short num_properties; 3074642e01fSmrg unsigned short num_colors; 3084642e01fSmrg unsigned short num_shapes; 3094642e01fSmrg unsigned short num_sections; 3104642e01fSmrg unsigned short num_doodads; 3114642e01fSmrg unsigned short num_key_aliases; 3124642e01fSmrg} XkbGeometrySizesRec,*XkbGeometrySizesPtr; 3134642e01fSmrg 3144642e01fSmrg_XFUNCPROTOBEGIN 3154642e01fSmrg 3164642e01fSmrgextern XkbPropertyPtr 3174642e01fSmrgXkbAddGeomProperty( 3184642e01fSmrg XkbGeometryPtr /* geom */, 3194642e01fSmrg char * /* name */, 3204642e01fSmrg char * /* value */ 3214642e01fSmrg); 3224642e01fSmrg 3234642e01fSmrgextern XkbKeyAliasPtr 3244642e01fSmrgXkbAddGeomKeyAlias( 3254642e01fSmrg XkbGeometryPtr /* geom */, 3264642e01fSmrg char * /* alias */, 3274642e01fSmrg char * /* real */ 3284642e01fSmrg); 3294642e01fSmrg 3304642e01fSmrgextern XkbColorPtr 3314642e01fSmrgXkbAddGeomColor( 3324642e01fSmrg XkbGeometryPtr /* geom */, 3334642e01fSmrg char * /* spec */, 3344642e01fSmrg unsigned int /* pixel */ 3354642e01fSmrg); 3364642e01fSmrg 3374642e01fSmrgextern XkbOutlinePtr 3384642e01fSmrgXkbAddGeomOutline( 3394642e01fSmrg XkbShapePtr /* shape */, 3404642e01fSmrg int /* sz_points */ 3414642e01fSmrg); 3424642e01fSmrg 3434642e01fSmrgextern XkbShapePtr 3444642e01fSmrgXkbAddGeomShape( 3454642e01fSmrg XkbGeometryPtr /* geom */, 3464642e01fSmrg Atom /* name */, 3474642e01fSmrg int /* sz_outlines */ 3484642e01fSmrg); 3494642e01fSmrg 3504642e01fSmrgextern XkbKeyPtr 3514642e01fSmrgXkbAddGeomKey( 3524642e01fSmrg XkbRowPtr /* row */ 3534642e01fSmrg); 3544642e01fSmrg 3554642e01fSmrgextern XkbRowPtr 3564642e01fSmrgXkbAddGeomRow( 3574642e01fSmrg XkbSectionPtr /* section */, 3584642e01fSmrg int /* sz_keys */ 3594642e01fSmrg); 3604642e01fSmrg 3614642e01fSmrgextern XkbSectionPtr 3624642e01fSmrgXkbAddGeomSection( 3634642e01fSmrg XkbGeometryPtr /* geom */, 3644642e01fSmrg Atom /* name */, 3654642e01fSmrg int /* sz_rows */, 3664642e01fSmrg int /* sz_doodads */, 3674642e01fSmrg int /* sz_overlays */ 3684642e01fSmrg); 3694642e01fSmrg 3704642e01fSmrgextern XkbOverlayPtr 3714642e01fSmrgXkbAddGeomOverlay( 3724642e01fSmrg XkbSectionPtr /* section */, 3734642e01fSmrg Atom /* name */, 3744642e01fSmrg int /* sz_rows */ 3754642e01fSmrg); 3764642e01fSmrg 3774642e01fSmrgextern XkbOverlayRowPtr 3784642e01fSmrgXkbAddGeomOverlayRow( 3794642e01fSmrg XkbOverlayPtr /* overlay */, 3804642e01fSmrg int /* row_under */, 3814642e01fSmrg int /* sz_keys */ 3824642e01fSmrg); 3834642e01fSmrg 3844642e01fSmrgextern XkbOverlayKeyPtr 3854642e01fSmrgXkbAddGeomOverlayKey( 3864642e01fSmrg XkbOverlayPtr /* overlay */, 3874642e01fSmrg XkbOverlayRowPtr /* row */, 3884642e01fSmrg char * /* over */, 3894642e01fSmrg char * /* under */ 3904642e01fSmrg); 3914642e01fSmrg 3924642e01fSmrgextern XkbDoodadPtr 3934642e01fSmrgXkbAddGeomDoodad( 3944642e01fSmrg XkbGeometryPtr /* geom */, 3954642e01fSmrg XkbSectionPtr /* section */, 3964642e01fSmrg Atom /* name */ 3974642e01fSmrg); 3984642e01fSmrg 3994642e01fSmrg 4004642e01fSmrgextern void 4014642e01fSmrgXkbFreeGeomKeyAliases( 4024642e01fSmrg XkbGeometryPtr /* geom */, 4034642e01fSmrg int /* first */, 4044642e01fSmrg int /* count */, 4054642e01fSmrg Bool /* freeAll */ 4064642e01fSmrg); 4074642e01fSmrg 4084642e01fSmrgextern void 4094642e01fSmrgXkbFreeGeomColors( 4104642e01fSmrg XkbGeometryPtr /* geom */, 4114642e01fSmrg int /* first */, 4124642e01fSmrg int /* count */, 4134642e01fSmrg Bool /* freeAll */ 4144642e01fSmrg); 4154642e01fSmrg 4164642e01fSmrgextern void 4174642e01fSmrgXkbFreeGeomDoodads( 4184642e01fSmrg XkbDoodadPtr /* doodads */, 4194642e01fSmrg int /* nDoodads */, 4204642e01fSmrg Bool /* freeAll */ 4214642e01fSmrg); 4224642e01fSmrg 4234642e01fSmrg 4244642e01fSmrgextern void 4254642e01fSmrgXkbFreeGeomProperties( 4264642e01fSmrg XkbGeometryPtr /* geom */, 4274642e01fSmrg int /* first */, 4284642e01fSmrg int /* count */, 4294642e01fSmrg Bool /* freeAll */ 4304642e01fSmrg); 4314642e01fSmrg 4324642e01fSmrgextern void 4334642e01fSmrgXkbFreeGeomOverlayKeys( 4344642e01fSmrg XkbOverlayRowPtr /* row */, 4354642e01fSmrg int /* first */, 4364642e01fSmrg int /* count */, 4374642e01fSmrg Bool /* freeAll */ 4384642e01fSmrg); 4394642e01fSmrg 4404642e01fSmrgextern void 4414642e01fSmrgXkbFreeGeomOverlayRows( 4424642e01fSmrg XkbOverlayPtr /* overlay */, 4434642e01fSmrg int /* first */, 4444642e01fSmrg int /* count */, 4454642e01fSmrg Bool /* freeAll */ 4464642e01fSmrg); 4474642e01fSmrg 4484642e01fSmrgextern void 4494642e01fSmrgXkbFreeGeomOverlays( 4504642e01fSmrg XkbSectionPtr /* section */, 4514642e01fSmrg int /* first */, 4524642e01fSmrg int /* count */, 4534642e01fSmrg Bool /* freeAll */ 4544642e01fSmrg); 4554642e01fSmrg 4564642e01fSmrgextern void 4574642e01fSmrgXkbFreeGeomKeys( 4584642e01fSmrg XkbRowPtr /* row */, 4594642e01fSmrg int /* first */, 4604642e01fSmrg int /* count */, 4614642e01fSmrg Bool /* freeAll */ 4624642e01fSmrg); 4634642e01fSmrg 4644642e01fSmrgextern void 4654642e01fSmrgXkbFreeGeomRows( 4664642e01fSmrg XkbSectionPtr /* section */, 4674642e01fSmrg int /* first */, 4684642e01fSmrg int /* count */, 4694642e01fSmrg Bool /* freeAll */ 4704642e01fSmrg); 4714642e01fSmrg 4724642e01fSmrgextern void 4734642e01fSmrgXkbFreeGeomSections( 4744642e01fSmrg XkbGeometryPtr /* geom */, 4754642e01fSmrg int /* first */, 4764642e01fSmrg int /* count */, 4774642e01fSmrg Bool /* freeAll */ 4784642e01fSmrg); 4794642e01fSmrg 4804642e01fSmrg 4814642e01fSmrgextern void 4824642e01fSmrgXkbFreeGeomPoints( 4834642e01fSmrg XkbOutlinePtr /* outline */, 4844642e01fSmrg int /* first */, 4854642e01fSmrg int /* count */, 4864642e01fSmrg Bool /* freeAll */ 4874642e01fSmrg); 4884642e01fSmrg 4894642e01fSmrgextern void 4904642e01fSmrgXkbFreeGeomOutlines( 4914642e01fSmrg XkbShapePtr /* shape */, 4924642e01fSmrg int /* first */, 4934642e01fSmrg int /* count */, 4944642e01fSmrg Bool /* freeAll */ 4954642e01fSmrg); 4964642e01fSmrg 4974642e01fSmrgextern void 4984642e01fSmrgXkbFreeGeomShapes( 4994642e01fSmrg XkbGeometryPtr /* geom */, 5004642e01fSmrg int /* first */, 5014642e01fSmrg int /* count */, 5024642e01fSmrg Bool /* freeAll */ 5034642e01fSmrg); 5044642e01fSmrg 5054642e01fSmrgextern void 5064642e01fSmrgXkbFreeGeometry( 5074642e01fSmrg XkbGeometryPtr /* geom */, 5084642e01fSmrg unsigned int /* which */, 5094642e01fSmrg Bool /* freeMap */ 5104642e01fSmrg); 5114642e01fSmrg 5124642e01fSmrgextern Status 5134642e01fSmrgXkbAllocGeomProps( 5144642e01fSmrg XkbGeometryPtr /* geom */, 5154642e01fSmrg int /* nProps */ 5164642e01fSmrg); 5174642e01fSmrg 5184642e01fSmrgextern Status 5194642e01fSmrgXkbAllocGeomKeyAliases( 5204642e01fSmrg XkbGeometryPtr /* geom */, 5214642e01fSmrg int /* nAliases */ 5224642e01fSmrg); 5234642e01fSmrg 5244642e01fSmrgextern Status 5254642e01fSmrgXkbAllocGeomColors( 5264642e01fSmrg XkbGeometryPtr /* geom */, 5274642e01fSmrg int /* nColors */ 5284642e01fSmrg); 5294642e01fSmrg 5304642e01fSmrgextern Status 5314642e01fSmrgXkbAllocGeomShapes( 5324642e01fSmrg XkbGeometryPtr /* geom */, 5334642e01fSmrg int /* nShapes */ 5344642e01fSmrg); 5354642e01fSmrg 5364642e01fSmrgextern Status 5374642e01fSmrgXkbAllocGeomSections( 5384642e01fSmrg XkbGeometryPtr /* geom */, 5394642e01fSmrg int /* nSections */ 5404642e01fSmrg); 5414642e01fSmrg 5424642e01fSmrgextern Status 5434642e01fSmrgXkbAllocGeomOverlays( 5444642e01fSmrg XkbSectionPtr /* section */, 5454642e01fSmrg int /* num_needed */ 5464642e01fSmrg); 5474642e01fSmrg 5484642e01fSmrgextern Status 5494642e01fSmrgXkbAllocGeomOverlayRows( 5504642e01fSmrg XkbOverlayPtr /* overlay */, 5514642e01fSmrg int /* num_needed */ 5524642e01fSmrg); 5534642e01fSmrg 5544642e01fSmrgextern Status 5554642e01fSmrgXkbAllocGeomOverlayKeys( 5564642e01fSmrg XkbOverlayRowPtr /* row */, 5574642e01fSmrg int /* num_needed */ 5584642e01fSmrg); 5594642e01fSmrg 5604642e01fSmrgextern Status 5614642e01fSmrgXkbAllocGeomDoodads( 5624642e01fSmrg XkbGeometryPtr /* geom */, 5634642e01fSmrg int /* nDoodads */ 5644642e01fSmrg); 5654642e01fSmrg 5664642e01fSmrgextern Status 5674642e01fSmrgXkbAllocGeomSectionDoodads( 5684642e01fSmrg XkbSectionPtr /* section */, 5694642e01fSmrg int /* nDoodads */ 5704642e01fSmrg); 5714642e01fSmrg 5724642e01fSmrgextern Status 5734642e01fSmrgXkbAllocGeomOutlines( 5744642e01fSmrg XkbShapePtr /* shape */, 5754642e01fSmrg int /* nOL */ 5764642e01fSmrg); 5774642e01fSmrg 5784642e01fSmrgextern Status 5794642e01fSmrgXkbAllocGeomRows( 5804642e01fSmrg XkbSectionPtr /* section */, 5814642e01fSmrg int /* nRows */ 5824642e01fSmrg); 5834642e01fSmrg 5844642e01fSmrgextern Status 5854642e01fSmrgXkbAllocGeomPoints( 5864642e01fSmrg XkbOutlinePtr /* ol */, 5874642e01fSmrg int /* nPts */ 5884642e01fSmrg); 5894642e01fSmrg 5904642e01fSmrgextern Status 5914642e01fSmrgXkbAllocGeomKeys( 5924642e01fSmrg XkbRowPtr /* row */, 5934642e01fSmrg int /* nKeys */ 5944642e01fSmrg); 5954642e01fSmrg 5964642e01fSmrgextern Status 5974642e01fSmrgXkbAllocGeometry( 5984642e01fSmrg XkbDescPtr /* xkb */, 5994642e01fSmrg XkbGeometrySizesPtr /* sizes */ 6004642e01fSmrg); 6014642e01fSmrg 6024642e01fSmrgextern Bool 6034642e01fSmrgXkbComputeShapeTop( 6044642e01fSmrg XkbShapePtr /* shape */, 6054642e01fSmrg XkbBoundsPtr /* bounds */ 6064642e01fSmrg); 6074642e01fSmrg 6084642e01fSmrgextern Bool 6094642e01fSmrgXkbComputeShapeBounds( 6104642e01fSmrg XkbShapePtr /* shape */ 6114642e01fSmrg); 6124642e01fSmrg 6134642e01fSmrgextern Bool 6144642e01fSmrgXkbComputeRowBounds( 6154642e01fSmrg XkbGeometryPtr /* geom */, 6164642e01fSmrg XkbSectionPtr /* section */, 6174642e01fSmrg XkbRowPtr /* row */ 6184642e01fSmrg); 6194642e01fSmrg 6204642e01fSmrgextern Bool 6214642e01fSmrgXkbComputeSectionBounds( 6224642e01fSmrg XkbGeometryPtr /* geom */, 6234642e01fSmrg XkbSectionPtr /* section */ 6244642e01fSmrg); 6254642e01fSmrg 6264642e01fSmrgextern char * 6274642e01fSmrgXkbFindOverlayForKey( 6284642e01fSmrg XkbGeometryPtr /* geom */, 6294642e01fSmrg XkbSectionPtr /* wanted */, 6304642e01fSmrg char * /* under */ 6314642e01fSmrg); 6324642e01fSmrg 6334642e01fSmrg_XFUNCPROTOEND 6344642e01fSmrg 6354642e01fSmrg#endif /* _XKBGEOM_H_ */ 636