Warning, file /include/X11/extensions/XKBgeom.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027 #ifndef _XKBGEOM_H_
0028 #define _XKBGEOM_H_
0029
0030 #include <X11/extensions/XKBstr.h>
0031
0032 typedef struct _XkbProperty {
0033 char *name;
0034 char *value;
0035 } XkbPropertyRec,*XkbPropertyPtr;
0036
0037 typedef struct _XkbColor {
0038 unsigned int pixel;
0039 char * spec;
0040 } XkbColorRec,*XkbColorPtr;
0041
0042 typedef struct _XkbPoint {
0043 short x;
0044 short y;
0045 } XkbPointRec, *XkbPointPtr;
0046
0047 typedef struct _XkbBounds {
0048 short x1,y1;
0049 short x2,y2;
0050 } XkbBoundsRec, *XkbBoundsPtr;
0051 #define XkbBoundsWidth(b) (((b)->x2)-((b)->x1))
0052 #define XkbBoundsHeight(b) (((b)->y2)-((b)->y1))
0053
0054
0055
0056
0057
0058
0059 typedef struct _XkbOutline {
0060 unsigned short num_points;
0061 unsigned short sz_points;
0062 unsigned short corner_radius;
0063 XkbPointPtr points;
0064 } XkbOutlineRec, *XkbOutlinePtr;
0065
0066 typedef struct _XkbShape {
0067 Atom name;
0068 unsigned short num_outlines;
0069 unsigned short sz_outlines;
0070 XkbOutlinePtr outlines;
0071 XkbOutlinePtr approx;
0072 XkbOutlinePtr primary;
0073 XkbBoundsRec bounds;
0074 } XkbShapeRec, *XkbShapePtr;
0075 #define XkbOutlineIndex(s,o) ((int)((o)-&(s)->outlines[0]))
0076
0077 typedef struct _XkbShapeDoodad {
0078 Atom name;
0079 unsigned char type;
0080 unsigned char priority;
0081 short top;
0082 short left;
0083 short angle;
0084 unsigned short color_ndx;
0085 unsigned short shape_ndx;
0086 } XkbShapeDoodadRec, *XkbShapeDoodadPtr;
0087 #define XkbShapeDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])
0088 #define XkbShapeDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])
0089 #define XkbSetShapeDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])
0090 #define XkbSetShapeDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0])
0091
0092 typedef struct _XkbTextDoodad {
0093 Atom name;
0094 unsigned char type;
0095 unsigned char priority;
0096 short top;
0097 short left;
0098 short angle;
0099 short width;
0100 short height;
0101 unsigned short color_ndx;
0102 char * text;
0103 char * font;
0104 } XkbTextDoodadRec, *XkbTextDoodadPtr;
0105 #define XkbTextDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])
0106 #define XkbSetTextDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])
0107
0108 typedef struct _XkbIndicatorDoodad {
0109 Atom name;
0110 unsigned char type;
0111 unsigned char priority;
0112 short top;
0113 short left;
0114 short angle;
0115 unsigned short shape_ndx;
0116 unsigned short on_color_ndx;
0117 unsigned short off_color_ndx;
0118 } XkbIndicatorDoodadRec, *XkbIndicatorDoodadPtr;
0119 #define XkbIndicatorDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])
0120 #define XkbIndicatorDoodadOnColor(g,d) (&(g)->colors[(d)->on_color_ndx])
0121 #define XkbIndicatorDoodadOffColor(g,d) (&(g)->colors[(d)->off_color_ndx])
0122 #define XkbSetIndicatorDoodadOnColor(g,d,c) \
0123 ((d)->on_color_ndx= (c)-&(g)->colors[0])
0124 #define XkbSetIndicatorDoodadOffColor(g,d,c) \
0125 ((d)->off_color_ndx= (c)-&(g)->colors[0])
0126 #define XkbSetIndicatorDoodadShape(g,d,s) \
0127 ((d)->shape_ndx= (s)-&(g)->shapes[0])
0128
0129 typedef struct _XkbLogoDoodad {
0130 Atom name;
0131 unsigned char type;
0132 unsigned char priority;
0133 short top;
0134 short left;
0135 short angle;
0136 unsigned short color_ndx;
0137 unsigned short shape_ndx;
0138 char * logo_name;
0139 } XkbLogoDoodadRec, *XkbLogoDoodadPtr;
0140 #define XkbLogoDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])
0141 #define XkbLogoDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])
0142 #define XkbSetLogoDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])
0143 #define XkbSetLogoDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0])
0144
0145 typedef struct _XkbAnyDoodad {
0146 Atom name;
0147 unsigned char type;
0148 unsigned char priority;
0149 short top;
0150 short left;
0151 short angle;
0152 } XkbAnyDoodadRec, *XkbAnyDoodadPtr;
0153
0154 typedef union _XkbDoodad {
0155 XkbAnyDoodadRec any;
0156 XkbShapeDoodadRec shape;
0157 XkbTextDoodadRec text;
0158 XkbIndicatorDoodadRec indicator;
0159 XkbLogoDoodadRec logo;
0160 } XkbDoodadRec, *XkbDoodadPtr;
0161
0162 #define XkbUnknownDoodad 0
0163 #define XkbOutlineDoodad 1
0164 #define XkbSolidDoodad 2
0165 #define XkbTextDoodad 3
0166 #define XkbIndicatorDoodad 4
0167 #define XkbLogoDoodad 5
0168
0169 typedef struct _XkbKey {
0170 XkbKeyNameRec name;
0171 short gap;
0172 unsigned char shape_ndx;
0173 unsigned char color_ndx;
0174 } XkbKeyRec, *XkbKeyPtr;
0175 #define XkbKeyShape(g,k) (&(g)->shapes[(k)->shape_ndx])
0176 #define XkbKeyColor(g,k) (&(g)->colors[(k)->color_ndx])
0177 #define XkbSetKeyShape(g,k,s) ((k)->shape_ndx= (s)-&(g)->shapes[0])
0178 #define XkbSetKeyColor(g,k,c) ((k)->color_ndx= (c)-&(g)->colors[0])
0179
0180 typedef struct _XkbRow {
0181 short top;
0182 short left;
0183 unsigned short num_keys;
0184 unsigned short sz_keys;
0185 int vertical;
0186 XkbKeyPtr keys;
0187 XkbBoundsRec bounds;
0188 } XkbRowRec, *XkbRowPtr;
0189
0190 typedef struct _XkbSection {
0191 Atom name;
0192 unsigned char priority;
0193 short top;
0194 short left;
0195 unsigned short width;
0196 unsigned short height;
0197 short angle;
0198 unsigned short num_rows;
0199 unsigned short num_doodads;
0200 unsigned short num_overlays;
0201 unsigned short sz_rows;
0202 unsigned short sz_doodads;
0203 unsigned short sz_overlays;
0204 XkbRowPtr rows;
0205 XkbDoodadPtr doodads;
0206 XkbBoundsRec bounds;
0207 struct _XkbOverlay *overlays;
0208 } XkbSectionRec, *XkbSectionPtr;
0209
0210 typedef struct _XkbOverlayKey {
0211 XkbKeyNameRec over;
0212 XkbKeyNameRec under;
0213 } XkbOverlayKeyRec,*XkbOverlayKeyPtr;
0214
0215 typedef struct _XkbOverlayRow {
0216 unsigned short row_under;
0217 unsigned short num_keys;
0218 unsigned short sz_keys;
0219 XkbOverlayKeyPtr keys;
0220 } XkbOverlayRowRec,*XkbOverlayRowPtr;
0221
0222 typedef struct _XkbOverlay {
0223 Atom name;
0224 XkbSectionPtr section_under;
0225 unsigned short num_rows;
0226 unsigned short sz_rows;
0227 XkbOverlayRowPtr rows;
0228 XkbBoundsPtr bounds;
0229 } XkbOverlayRec,*XkbOverlayPtr;
0230
0231 typedef struct _XkbGeometry {
0232 Atom name;
0233 unsigned short width_mm;
0234 unsigned short height_mm;
0235 char * label_font;
0236 XkbColorPtr label_color;
0237 XkbColorPtr base_color;
0238 unsigned short sz_properties;
0239 unsigned short sz_colors;
0240 unsigned short sz_shapes;
0241 unsigned short sz_sections;
0242 unsigned short sz_doodads;
0243 unsigned short sz_key_aliases;
0244 unsigned short num_properties;
0245 unsigned short num_colors;
0246 unsigned short num_shapes;
0247 unsigned short num_sections;
0248 unsigned short num_doodads;
0249 unsigned short num_key_aliases;
0250 XkbPropertyPtr properties;
0251 XkbColorPtr colors;
0252 XkbShapePtr shapes;
0253 XkbSectionPtr sections;
0254 XkbDoodadPtr doodads;
0255 XkbKeyAliasPtr key_aliases;
0256 } XkbGeometryRec;
0257 #define XkbGeomColorIndex(g,c) ((int)((c)-&(g)->colors[0]))
0258
0259 #define XkbGeomPropertiesMask (1<<0)
0260 #define XkbGeomColorsMask (1<<1)
0261 #define XkbGeomShapesMask (1<<2)
0262 #define XkbGeomSectionsMask (1<<3)
0263 #define XkbGeomDoodadsMask (1<<4)
0264 #define XkbGeomKeyAliasesMask (1<<5)
0265 #define XkbGeomAllMask (0x3f)
0266
0267 typedef struct _XkbGeometrySizes {
0268 unsigned int which;
0269 unsigned short num_properties;
0270 unsigned short num_colors;
0271 unsigned short num_shapes;
0272 unsigned short num_sections;
0273 unsigned short num_doodads;
0274 unsigned short num_key_aliases;
0275 } XkbGeometrySizesRec,*XkbGeometrySizesPtr;
0276
0277 _XFUNCPROTOBEGIN
0278
0279 extern XkbPropertyPtr
0280 XkbAddGeomProperty(
0281 XkbGeometryPtr ,
0282 _Xconst char * ,
0283 _Xconst char *
0284 );
0285
0286 extern XkbKeyAliasPtr
0287 XkbAddGeomKeyAlias(
0288 XkbGeometryPtr ,
0289 _Xconst char * ,
0290 _Xconst char *
0291 );
0292
0293 extern XkbColorPtr
0294 XkbAddGeomColor(
0295 XkbGeometryPtr ,
0296 _Xconst char * ,
0297 unsigned int
0298 );
0299
0300 extern XkbOutlinePtr
0301 XkbAddGeomOutline(
0302 XkbShapePtr ,
0303 int
0304 );
0305
0306 extern XkbShapePtr
0307 XkbAddGeomShape(
0308 XkbGeometryPtr ,
0309 Atom ,
0310 int
0311 );
0312
0313 extern XkbKeyPtr
0314 XkbAddGeomKey(
0315 XkbRowPtr
0316 );
0317
0318 extern XkbRowPtr
0319 XkbAddGeomRow(
0320 XkbSectionPtr ,
0321 int
0322 );
0323
0324 extern XkbSectionPtr
0325 XkbAddGeomSection(
0326 XkbGeometryPtr ,
0327 Atom ,
0328 int ,
0329 int ,
0330 int
0331 );
0332
0333 extern XkbOverlayPtr
0334 XkbAddGeomOverlay(
0335 XkbSectionPtr ,
0336 Atom ,
0337 int
0338 );
0339
0340 extern XkbOverlayRowPtr
0341 XkbAddGeomOverlayRow(
0342 XkbOverlayPtr ,
0343 int ,
0344 int
0345 );
0346
0347 extern XkbOverlayKeyPtr
0348 XkbAddGeomOverlayKey(
0349 XkbOverlayPtr ,
0350 XkbOverlayRowPtr ,
0351 _Xconst char * ,
0352 _Xconst char *
0353 );
0354
0355 extern XkbDoodadPtr
0356 XkbAddGeomDoodad(
0357 XkbGeometryPtr ,
0358 XkbSectionPtr ,
0359 Atom
0360 );
0361
0362
0363 extern void
0364 XkbFreeGeomKeyAliases(
0365 XkbGeometryPtr ,
0366 int ,
0367 int ,
0368 Bool
0369 );
0370
0371 extern void
0372 XkbFreeGeomColors(
0373 XkbGeometryPtr ,
0374 int ,
0375 int ,
0376 Bool
0377 );
0378
0379 extern void
0380 XkbFreeGeomDoodads(
0381 XkbDoodadPtr ,
0382 int ,
0383 Bool
0384 );
0385
0386
0387 extern void
0388 XkbFreeGeomProperties(
0389 XkbGeometryPtr ,
0390 int ,
0391 int ,
0392 Bool
0393 );
0394
0395 extern void
0396 XkbFreeGeomOverlayKeys(
0397 XkbOverlayRowPtr ,
0398 int ,
0399 int ,
0400 Bool
0401 );
0402
0403 extern void
0404 XkbFreeGeomOverlayRows(
0405 XkbOverlayPtr ,
0406 int ,
0407 int ,
0408 Bool
0409 );
0410
0411 extern void
0412 XkbFreeGeomOverlays(
0413 XkbSectionPtr ,
0414 int ,
0415 int ,
0416 Bool
0417 );
0418
0419 extern void
0420 XkbFreeGeomKeys(
0421 XkbRowPtr ,
0422 int ,
0423 int ,
0424 Bool
0425 );
0426
0427 extern void
0428 XkbFreeGeomRows(
0429 XkbSectionPtr ,
0430 int ,
0431 int ,
0432 Bool
0433 );
0434
0435 extern void
0436 XkbFreeGeomSections(
0437 XkbGeometryPtr ,
0438 int ,
0439 int ,
0440 Bool
0441 );
0442
0443
0444 extern void
0445 XkbFreeGeomPoints(
0446 XkbOutlinePtr ,
0447 int ,
0448 int ,
0449 Bool
0450 );
0451
0452 extern void
0453 XkbFreeGeomOutlines(
0454 XkbShapePtr ,
0455 int ,
0456 int ,
0457 Bool
0458 );
0459
0460 extern void
0461 XkbFreeGeomShapes(
0462 XkbGeometryPtr ,
0463 int ,
0464 int ,
0465 Bool
0466 );
0467
0468 extern void
0469 XkbFreeGeometry(
0470 XkbGeometryPtr ,
0471 unsigned int ,
0472 Bool
0473 );
0474
0475 extern Status
0476 XkbAllocGeomProps(
0477 XkbGeometryPtr ,
0478 int
0479 );
0480
0481 extern Status
0482 XkbAllocGeomKeyAliases(
0483 XkbGeometryPtr ,
0484 int
0485 );
0486
0487 extern Status
0488 XkbAllocGeomColors(
0489 XkbGeometryPtr ,
0490 int
0491 );
0492
0493 extern Status
0494 XkbAllocGeomShapes(
0495 XkbGeometryPtr ,
0496 int
0497 );
0498
0499 extern Status
0500 XkbAllocGeomSections(
0501 XkbGeometryPtr ,
0502 int
0503 );
0504
0505 extern Status
0506 XkbAllocGeomOverlays(
0507 XkbSectionPtr ,
0508 int
0509 );
0510
0511 extern Status
0512 XkbAllocGeomOverlayRows(
0513 XkbOverlayPtr ,
0514 int
0515 );
0516
0517 extern Status
0518 XkbAllocGeomOverlayKeys(
0519 XkbOverlayRowPtr ,
0520 int
0521 );
0522
0523 extern Status
0524 XkbAllocGeomDoodads(
0525 XkbGeometryPtr ,
0526 int
0527 );
0528
0529 extern Status
0530 XkbAllocGeomSectionDoodads(
0531 XkbSectionPtr ,
0532 int
0533 );
0534
0535 extern Status
0536 XkbAllocGeomOutlines(
0537 XkbShapePtr ,
0538 int
0539 );
0540
0541 extern Status
0542 XkbAllocGeomRows(
0543 XkbSectionPtr ,
0544 int
0545 );
0546
0547 extern Status
0548 XkbAllocGeomPoints(
0549 XkbOutlinePtr ,
0550 int
0551 );
0552
0553 extern Status
0554 XkbAllocGeomKeys(
0555 XkbRowPtr ,
0556 int
0557 );
0558
0559 extern Status
0560 XkbAllocGeometry(
0561 XkbDescPtr ,
0562 XkbGeometrySizesPtr
0563 );
0564
0565 extern Status
0566 XkbSetGeometry(
0567 Display * ,
0568 unsigned ,
0569 XkbGeometryPtr
0570 );
0571
0572 extern Bool
0573 XkbComputeShapeTop(
0574 XkbShapePtr ,
0575 XkbBoundsPtr
0576 );
0577
0578 extern Bool
0579 XkbComputeShapeBounds(
0580 XkbShapePtr
0581 );
0582
0583 extern Bool
0584 XkbComputeRowBounds(
0585 XkbGeometryPtr ,
0586 XkbSectionPtr ,
0587 XkbRowPtr
0588 );
0589
0590 extern Bool
0591 XkbComputeSectionBounds(
0592 XkbGeometryPtr ,
0593 XkbSectionPtr
0594 );
0595
0596 extern char *
0597 XkbFindOverlayForKey(
0598 XkbGeometryPtr ,
0599 XkbSectionPtr ,
0600 _Xconst char *
0601 );
0602
0603 extern Status
0604 XkbGetGeometry(
0605 Display * ,
0606 XkbDescPtr
0607 );
0608
0609 extern Status
0610 XkbGetNamedGeometry(
0611 Display * ,
0612 XkbDescPtr ,
0613 Atom
0614 );
0615
0616 _XFUNCPROTOEND
0617
0618 #endif