aboutsummaryrefslogtreecommitdiff
path: root/libxkbfile/include/X11/extensions/XKMformat.h
diff options
context:
space:
mode:
Diffstat (limited to 'libxkbfile/include/X11/extensions/XKMformat.h')
-rw-r--r--libxkbfile/include/X11/extensions/XKMformat.h299
1 files changed, 299 insertions, 0 deletions
diff --git a/libxkbfile/include/X11/extensions/XKMformat.h b/libxkbfile/include/X11/extensions/XKMformat.h
new file mode 100644
index 000000000..6204e5da8
--- /dev/null
+++ b/libxkbfile/include/X11/extensions/XKMformat.h
@@ -0,0 +1,299 @@
+/************************************************************
+ Copyright (c) 1994 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 _XKMFORMAT_H_
+#define _XKMFORMAT_H_ 1
+
+#include <X11/extensions/XKB.h>
+#include <X11/extensions/XKBproto.h>
+#include <X11/extensions/XKM.h>
+
+typedef struct _xkmFileInfo {
+ CARD8 type;
+ CARD8 min_kc;
+ CARD8 max_kc;
+ CARD8 num_toc;
+ CARD16 present B16;
+ CARD16 pad B16;
+} xkmFileInfo;
+#define sz_xkmFileInfo 8
+
+typedef struct _xkmSectionInfo {
+ CARD16 type B16;
+ CARD16 format B16;
+ CARD16 size B16;
+ CARD16 offset B16;
+} xkmSectionInfo;
+#define sz_xkmSectionInfo 8
+
+typedef struct _xkmKeyTypeDesc {
+ CARD8 realMods;
+ CARD8 numLevels;
+ CARD16 virtualMods B16;
+ CARD8 nMapEntries;
+ CARD8 nLevelNames;
+ CARD8 preserve;
+ CARD8 pad;
+} xkmKeyTypeDesc;
+#define sz_xkmKeyTypeDesc 8
+
+typedef struct _xkmKTMapEntryDesc {
+ CARD8 level;
+ CARD8 realMods;
+ CARD16 virtualMods B16;
+} xkmKTMapEntryDesc;
+#define sz_xkmKTMapEntryDesc 4
+
+typedef struct _xkmModsDesc {
+ CARD8 realMods;
+ CARD8 pad;
+ CARD16 virtualMods B16;
+} xkmModsDesc;
+#define sz_xkmModsDesc 4
+
+typedef struct _xkmVModMapDesc {
+ CARD8 key;
+ CARD8 pad;
+ CARD16 vmods B16;
+} xkmVModMapDesc;
+#define sz_xkmVModMapDesc 4
+
+typedef struct _xkmSymInterpretDesc {
+ CARD32 sym B32;
+ CARD8 mods;
+ CARD8 match;
+ CARD8 virtualMod;
+ CARD8 flags;
+ CARD8 actionType;
+ CARD8 actionData[7];
+} xkmSymInterpretDesc;
+#define sz_xkmSymInterpretDesc 16
+
+typedef struct _xkmBehaviorDesc {
+ CARD8 type;
+ CARD8 data;
+ CARD16 pad B16;
+} xkmBehaviorDesc;
+#define sz_xkmBehaviorDesc 4
+
+typedef struct _xkmActionDesc {
+ CARD8 type;
+ CARD8 data[7];
+} xkmActionDesc;
+#define sz_xkmActionDesc 8
+
+#define XkmKeyHasTypes (0x0f)
+#define XkmKeyHasGroup1Type (1<<0)
+#define XkmKeyHasGroup2Type (1<<1)
+#define XkmKeyHasGroup3Type (1<<2)
+#define XkmKeyHasGroup4Type (1<<3)
+#define XkmKeyHasActions (1<<4)
+#define XkmKeyHasBehavior (1<<5)
+#define XkmRepeatingKey (1<<6)
+#define XkmNonRepeatingKey (1<<7)
+
+typedef struct _xkmKeySymMapDesc {
+ CARD8 width;
+ CARD8 num_groups;
+ CARD8 modifier_map;
+ CARD8 flags;
+} xkmKeySymMapDesc;
+#define sz_xkmKeySymMapDesc 4
+
+typedef struct _xkmIndicatorMapDesc {
+ CARD8 indicator;
+ CARD8 flags;
+ CARD8 which_mods;
+ CARD8 real_mods;
+ CARD16 vmods B16;
+ CARD8 which_groups;
+ CARD8 groups;
+ CARD32 ctrls B32;
+} xkmIndicatorMapDesc;
+#define sz_xkmIndicatorMapDesc 12
+
+typedef struct _xkmGeometryDesc {
+ CARD16 width_mm B16;
+ CARD16 height_mm B16;
+ CARD8 base_color_ndx;
+ CARD8 label_color_ndx;
+ CARD16 num_properties B16;
+ CARD16 num_colors B16;
+ CARD16 num_shapes B16;
+ CARD16 num_sections B16;
+ CARD16 num_doodads B16;
+ CARD16 num_key_aliases B16;
+ CARD16 pad1 B16;
+} xkmGeometryDesc;
+#define sz_xkmGeometryDesc 20
+
+typedef struct _xkmPointDesc {
+ INT16 x B16;
+ INT16 y B16;
+} xkmPointDesc;
+#define sz_xkmPointDesc 4
+
+typedef struct _xkmOutlineDesc {
+ CARD8 num_points;
+ CARD8 corner_radius;
+ CARD16 pad B16;
+} xkmOutlineDesc;
+#define sz_xkmOutlineDesc 4
+
+typedef struct _xkmShapeDesc {
+ CARD8 num_outlines;
+ CARD8 primary_ndx;
+ CARD8 approx_ndx;
+ CARD8 pad;
+} xkmShapeDesc;
+#define sz_xkmShapeDesc 4
+
+typedef struct _xkmSectionDesc {
+ INT16 top B16;
+ INT16 left B16;
+ CARD16 width B16;
+ CARD16 height B16;
+ INT16 angle B16;
+ CARD8 priority;
+ CARD8 num_rows;
+ CARD8 num_doodads;
+ CARD8 num_overlays;
+ CARD16 pad2 B16;
+} xkmSectionDesc;
+#define sz_xkmSectionDesc 16
+
+typedef struct _xkmRowDesc {
+ INT16 top B16;
+ INT16 left B16;
+ CARD8 num_keys;
+ BOOL vertical;
+ CARD16 pad B16;
+} xkmRowDesc;
+#define sz_xkmRowDesc 8
+
+typedef struct _xkmKeyDesc {
+ CARD8 name[XkbKeyNameLength];
+ INT16 gap B16;
+ CARD8 shape_ndx;
+ CARD8 color_ndx;
+} xkmKeyDesc;
+#define sz_xkmKeyDesc 8
+
+typedef struct _xkmOverlayDesc {
+ CARD8 num_rows;
+ CARD8 pad1;
+ CARD16 pad2 B16;
+} xkmOverlayDesc;
+#define sz_xkmOverlayDesc 4
+
+typedef struct _xkmOverlayRowDesc {
+ CARD8 row_under;
+ CARD8 num_keys;
+ CARD16 pad B16;
+} xkmOverlayRowDesc;
+#define sz_xkmOverlayRowDesc 4
+
+typedef struct _xkmOverlayKeyDesc {
+ char over[XkbKeyNameLength];
+ char under[XkbKeyNameLength];
+} xkmOverlayKeyDesc;
+#define sz_xkmOverlayKeyDesc 8
+
+typedef struct _xkmShapeDoodadDesc {
+ CARD8 type;
+ CARD8 priority;
+ INT16 top B16;
+ INT16 left B16;
+ INT16 angle B16;
+ CARD8 color_ndx;
+ CARD8 shape_ndx;
+ CARD16 pad B16;
+ CARD32 pad1 B32;
+} xkmShapeDoodadDesc;
+#define sz_xkmShapeDoodadDesc 16
+
+typedef struct _xkmTextDoodadDesc {
+ CARD8 type;
+ CARD8 priority;
+ INT16 top B16;
+ INT16 left B16;
+ INT16 angle B16;
+ CARD16 width B16;
+ CARD16 height B16;
+ CARD8 color_ndx;
+ CARD8 pad1;
+ CARD16 pad2 B16;
+} xkmTextDoodadDesc;
+#define sz_xkmTextDoodadDesc 16
+
+typedef struct _xkmIndicatorDoodadDesc {
+ CARD8 type;
+ CARD8 priority;
+ INT16 top B16;
+ INT16 left B16;
+ CARD8 shape_ndx;
+ CARD8 on_color_ndx;
+ CARD8 off_color_ndx;
+ CARD8 pad1;
+ CARD16 pad2 B16;
+ CARD32 pad3 B32;
+} xkmIndicatorDoodadDesc;
+#define sz_xkmIndicatorDoodadDesc 16
+
+typedef struct _xkmLogoDoodadDesc {
+ CARD8 type;
+ CARD8 priority;
+ INT16 top B16;
+ INT16 left B16;
+ INT16 angle B16;
+ CARD8 color_ndx;
+ CARD8 shape_ndx;
+ CARD16 pad B16;
+ CARD32 pad1 B32;
+} xkmLogoDoodadDesc;
+#define sz_xkmLogoDoodadDesc 16
+
+typedef struct _xkmAnyDoodadDesc {
+ CARD8 type;
+ CARD8 priority;
+ INT16 top B16;
+ INT16 left B16;
+ CARD16 pad1 B16;
+ CARD32 pad2 B32;
+ CARD32 pad3 B32;
+} xkmAnyDoodadDesc;
+#define sz_xkmAnyDoodadDesc 16
+
+typedef union _xkmDoodadDesc {
+ xkmAnyDoodadDesc any;
+ xkmShapeDoodadDesc shape;
+ xkmTextDoodadDesc text;
+ xkmIndicatorDoodadDesc indicator;
+ xkmLogoDoodadDesc logo;
+} xkmDoodadDesc;
+#define sz_xkmDoodadDesc 16
+
+#endif /* _XKMFORMAT_H_ */