/************************************************************
Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
Permission to use, copy, modify, and distribute this
software and its documentation for any purpose and without
fee is hereby granted, provided that the above copyright
notice appear in all copies and that both that copyright
notice and this permission notice appear in supporting
documentation, and that the name of Silicon Graphics not be
used in advertising or publicity pertaining to distribution
of the software without specific prior written permission.
Silicon Graphics makes no representation about the suitability
of this software for any purpose. It is provided "as is"
without any express or implied warranty.
SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
#ifndef _XKBGEOM_H_
#define _XKBGEOM_H_
#include "xkbstr.h"
typedef struct _XkbProperty {
char *name;
char *value;
typedef struct _XkbColor {
unsigned int pixel;
char * spec;
typedef struct _XkbPoint {
short x;
short y;
typedef struct _XkbBounds {
typedef struct _XkbOutline {
unsigned short num_points;
unsigned short sz_points;
unsigned short corner_radius;
typedef struct _XkbShape {
unsigned short num_outlines;
unsigned short sz_outlines;
typedef struct _XkbShapeDoodad {
unsigned char type;
unsigned char priority;
short top;
short left;
short angle;
unsigned short color_ndx;
unsigned short shape_ndx;
typedef struct _XkbTextDoodad {
unsigned char type;
unsigned char priority;
short top;
short left;
short angle;
short width;
short height;
unsigned short color_ndx;
char * text;
char * font;
typedef struct _XkbIndicatorDoodad {
unsigned char type;
unsigned char priority;
short top;
short left;
short angle;
unsigned short shape_ndx;
unsigned short on_color_ndx;
unsigned short off_color_ndx;
#define XkbSetIndicatorDoodadOnColor(g,d,c) \
((d)->on_color_ndx= (c)-&(g)->colors[0])
#define XkbSetIndicatorDoodadOffColor(g,d,c) \
((d)->off_color_ndx= (c)-&(g)->colors[0])
#define XkbSetIndicatorDoodadShape(g,d,s) \
typedef struct _XkbLogoDoodad {
unsigned char type;
unsigned char priority;
short top;
short left;
short angle;
unsigned short color_ndx;
unsigned short shape_ndx;
char * logo_name;
typedef struct _XkbAnyDoodad {
unsigned char type;
unsigned char priority;
short top;
short left;
short angle;
typedef union _XkbDoodad {
#define XkbUnknownDoodad 0
typedef struct _XkbKey {
short gap;
unsigned char shape_ndx;
unsigned char color_ndx;
typedef struct _XkbRow {
short top;
short left;
unsigned short num_keys;
unsigned short sz_keys;
int vertical;
typedef struct _XkbSection {
unsigned char priority;
short top;
short left;
unsigned short width;
unsigned short height;
short angle;
unsigned short num_rows;
unsigned short num_doodads;
unsigned short num_overlays;
unsigned short sz_rows;
unsigned short sz_doodads;
unsigned short sz_overlays;
typedef struct _XkbOverlayKey {
typedef struct _XkbOverlayRow {
unsigned short row_under;
unsigned short num_keys;
unsigned short sz_keys;
typedef struct _XkbOverlay {
unsigned short num_rows;
unsigned short sz_rows;
typedef struct _XkbGeometry {
unsigned short width_mm;
unsigned short height_mm;
char * label_font;
unsigned short sz_properties;
unsigned short sz_colors;
unsigned short sz_shapes;
unsigned short sz_sections;
unsigned short sz_doodads;
unsigned short sz_key_aliases;
unsigned short num_properties;
unsigned short num_colors;
unsigned short num_shapes;
unsigned short num_sections;
unsigned short num_doodads;
unsigned short num_key_aliases;
typedef struct _XkbGeometrySizes {
unsigned int which;
unsigned short num_properties;
unsigned short num_colors;
unsigned short num_shapes;
unsigned short num_sections;
unsigned short num_doodads;
unsigned short num_key_aliases;
extern XkbPropertyPtr
XkbGeometryPtr /* geom */,
char * /* name */,
char * /* value */
);
extern XkbKeyAliasPtr
XkbGeometryPtr /* geom */,
char * /* alias */,
char * /* real */
);
extern XkbColorPtr
XkbGeometryPtr /* geom */,
char * /* spec */,
unsigned int /* pixel */
);
extern XkbOutlinePtr
XkbShapePtr /* shape */,
int /* sz_points */
);
extern XkbShapePtr
XkbGeometryPtr /* geom */,
Atom /* name */,
int /* sz_outlines */
);
extern XkbKeyPtr
XkbRowPtr /* row */
);
extern XkbRowPtr
XkbSectionPtr /* section */,
int /* sz_keys */
);
extern XkbSectionPtr
XkbGeometryPtr /* geom */,
Atom /* name */,
int /* sz_rows */,
int /* sz_doodads */,
int /* sz_overlays */
);
extern XkbOverlayPtr
XkbSectionPtr /* section */,
Atom /* name */,
int /* sz_rows */
);
extern XkbOverlayRowPtr
XkbOverlayPtr /* overlay */,
int /* row_under */,
int /* sz_keys */
);
extern XkbOverlayKeyPtr
XkbOverlayPtr /* overlay */,
XkbOverlayRowPtr /* row */,
char * /* over */,
char * /* under */
);
extern XkbDoodadPtr
XkbGeometryPtr /* geom */,
XkbSectionPtr /* section */,
Atom /* name */
);
extern void
XkbGeometryPtr /* geom */,
int /* first */,
int /* count */,
Bool /* freeAll */
);
extern void
XkbGeometryPtr /* geom */,
int /* first */,
int /* count */,
Bool /* freeAll */
);
extern void
XkbDoodadPtr /* doodads */,
int /* nDoodads */,
Bool /* freeAll */
);
extern void
XkbGeometryPtr /* geom */,
int /* first */,
int /* count */,
Bool /* freeAll */
);
extern void
XkbOverlayRowPtr /* row */,
int /* first */,
int /* count */,
Bool /* freeAll */
);
extern void
XkbOverlayPtr /* overlay */,
int /* first */,
int /* count */,
Bool /* freeAll */
);
extern void
XkbSectionPtr /* section */,
int /* first */,
int /* count */,
Bool /* freeAll */
);
extern void
XkbRowPtr /* row */,
int /* first */,
int /* count */,
Bool /* freeAll */
);
extern void
XkbSectionPtr /* section */,
int /* first */,
int /* count */,
Bool /* freeAll */
);
extern void
XkbGeometryPtr /* geom */,
int /* first */,
int /* count */,
Bool /* freeAll */
);
extern void
XkbOutlinePtr /* outline */,
int /* first */,
int /* count */,
Bool /* freeAll */
);
extern void
XkbShapePtr /* shape */,
int /* first */,
int /* count */,
Bool /* freeAll */
);
extern void
XkbGeometryPtr /* geom */,
int /* first */,
int /* count */,
Bool /* freeAll */
);
extern void
XkbGeometryPtr /* geom */,
unsigned int /* which */,
Bool /* freeMap */
);
extern Status
XkbGeometryPtr /* geom */,
int /* nProps */
);
extern Status
XkbGeometryPtr /* geom */,
int /* nAliases */
);
extern Status
XkbGeometryPtr /* geom */,
int /* nColors */
);
extern Status
XkbGeometryPtr /* geom */,
int /* nShapes */
);
extern Status
XkbGeometryPtr /* geom */,
int /* nSections */
);
extern Status
XkbSectionPtr /* section */,
int /* num_needed */
);
extern Status
XkbOverlayPtr /* overlay */,
int /* num_needed */
);
extern Status
XkbOverlayRowPtr /* row */,
int /* num_needed */
);
extern Status
XkbGeometryPtr /* geom */,
int /* nDoodads */
);
extern Status
XkbSectionPtr /* section */,
int /* nDoodads */
);
extern Status
XkbShapePtr /* shape */,
int /* nOL */
);
extern Status
XkbSectionPtr /* section */,
int /* nRows */
);
extern Status
XkbOutlinePtr /* ol */,
int /* nPts */
);
extern Status
XkbRowPtr /* row */,
int /* nKeys */
);
extern Status
XkbDescPtr /* xkb */,
XkbGeometrySizesPtr /* sizes */
);
extern Bool
XkbShapePtr /* shape */,
XkbBoundsPtr /* bounds */
);
extern Bool
XkbShapePtr /* shape */
);
extern Bool
XkbGeometryPtr /* geom */,
XkbSectionPtr /* section */,
XkbRowPtr /* row */
);
extern Bool
XkbGeometryPtr /* geom */,
XkbSectionPtr /* section */
);
extern char *
XkbGeometryPtr /* geom */,
XkbSectionPtr /* wanted */,
char * /* under */
);
#endif /* _XKBGEOM_H_ */