aboutsummaryrefslogtreecommitdiff
path: root/xkbcomp/xkbcomp.h
diff options
context:
space:
mode:
Diffstat (limited to 'xkbcomp/xkbcomp.h')
-rw-r--r--xkbcomp/xkbcomp.h380
1 files changed, 380 insertions, 0 deletions
diff --git a/xkbcomp/xkbcomp.h b/xkbcomp/xkbcomp.h
new file mode 100644
index 000000000..b9b9caed1
--- /dev/null
+++ b/xkbcomp/xkbcomp.h
@@ -0,0 +1,380 @@
+/* $Xorg: xkbcomp.h,v 1.3 2000/08/17 19:54:33 cpqbld Exp $ */
+/************************************************************
+ 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.
+
+ ********************************************************/
+/* $XFree86: xc/programs/xkbcomp/xkbcomp.h,v 3.8 2001/12/19 21:30:30 dawes Exp $ */
+
+#ifndef XKBCOMP_H
+#define XKBCOMP_H 1
+
+#ifndef DEBUG_VAR
+#define DEBUG_VAR_NOT_LOCAL
+#define DEBUG_VAR debugFlags
+#endif
+
+#include <X11/Xlib.h>
+#include <X11/XKBlib.h>
+
+#include "utils.h"
+
+#include <X11/extensions/XKM.h>
+#include <X11/extensions/XKBfile.h>
+
+extern char *scanFile;
+
+#define TypeUnknown 0
+#define TypeBoolean 1
+#define TypeInt 2
+#define TypeFloat 3
+#define TypeString 4
+#define TypeAction 5
+#define TypeKeyName 6
+#define TypeSymbols 7
+
+#define StmtUnknown 0
+#define StmtInclude 1
+#define StmtKeycodeDef 2
+#define StmtKeyAliasDef 3
+#define StmtExpr 4
+#define StmtVarDef 5
+#define StmtKeyTypeDef 6
+#define StmtInterpDef 7
+#define StmtVModDef 8
+#define StmtSymbolsDef 9
+#define StmtModMapDef 10
+#define StmtGroupCompatDef 11
+#define StmtIndicatorMapDef 12
+#define StmtIndicatorNameDef 13
+#define StmtOutlineDef 14
+#define StmtShapeDef 15
+#define StmtKeyDef 16
+#define StmtRowDef 17
+#define StmtSectionDef 18
+#define StmtOverlayKeyDef 19
+#define StmtOverlayDef 20
+#define StmtDoodadDef 21
+
+#define FileSymInterp 100
+
+typedef struct _ParseCommon {
+ unsigned stmtType;
+ struct _ParseCommon *next;
+} ParseCommon;
+
+#define ExprValue 0
+#define ExprIdent 1
+#define ExprActionDecl 2
+#define ExprFieldRef 3
+#define ExprArrayRef 4
+#define ExprKeysymList 5
+#define ExprActionList 6
+#define ExprCoord 7
+
+#define OpAdd 20
+#define OpSubtract 21
+#define OpMultiply 22
+#define OpDivide 23
+#define OpAssign 24
+#define OpNot 25
+#define OpNegate 26
+#define OpInvert 27
+#define OpUnaryPlus 28
+
+#define MergeDefault 0
+#define MergeAugment 1
+#define MergeOverride 2
+#define MergeReplace 3
+#define MergeAltForm 4
+
+#define AutoKeyNames (1L << 0)
+#define CreateKeyNames(x) ((x)->flags&AutoKeyNames)
+
+extern unsigned warningLevel;
+extern unsigned optionalParts;
+
+typedef struct _IncludeStmt {
+ ParseCommon common;
+ unsigned merge;
+ char *stmt;
+ char *file;
+ char *map;
+ char *modifier;
+ char *path;
+ struct _IncludeStmt *next;
+} IncludeStmt;
+
+typedef struct _Expr {
+ ParseCommon common;
+ unsigned op;
+ unsigned type;
+ union {
+ struct {
+ struct _Expr *left;
+ struct _Expr *right;
+ } binary;
+ struct {
+ Atom element;
+ Atom field;
+ } field;
+ struct {
+ Atom element;
+ Atom field;
+ struct _Expr *entry;
+ } array;
+ struct {
+ Atom name;
+ struct _Expr *args;
+ } action;
+ struct {
+ int nSyms;
+ int szSyms;
+ KeySym * syms;
+ } list;
+ struct {
+ int x;
+ int y;
+ } coord;
+ struct _Expr *child;
+ Atom str;
+ unsigned uval;
+ int ival;
+ char keyName[5];
+ Opaque ptr;
+ } value;
+} ExprDef;
+
+typedef struct _VarDef {
+ ParseCommon common;
+ unsigned merge;
+ ExprDef *name;
+ ExprDef *value;
+} VarDef;
+
+typedef struct _VModDef {
+ ParseCommon common;
+ unsigned merge;
+ Atom name;
+ ExprDef *value;
+} VModDef;
+
+typedef struct _KeycodeDef {
+ ParseCommon common;
+ unsigned merge;
+ char name[5];
+ ExprDef *value;
+} KeycodeDef;
+
+typedef struct _KeyAliasDef {
+ ParseCommon common;
+ unsigned merge;
+ char alias[5];
+ char real[5];
+} KeyAliasDef;
+
+typedef struct _KeyTypeDef {
+ ParseCommon common;
+ unsigned merge;
+ Atom name;
+ VarDef *body;
+} KeyTypeDef;
+
+typedef struct _SymbolsDef {
+ ParseCommon common;
+ unsigned merge;
+ char keyName[5];
+ ExprDef * symbols;
+} SymbolsDef;
+
+typedef struct _ModMapDef {
+ ParseCommon common;
+ unsigned merge;
+ Atom modifier;
+ ExprDef * keys;
+} ModMapDef;
+
+typedef struct _GroupCompatDef {
+ ParseCommon common;
+ unsigned merge;
+ int group;
+ ExprDef * def;
+} GroupCompatDef;
+
+typedef struct _InterpDef {
+ ParseCommon common;
+ unsigned merge;
+ KeySym sym;
+ ExprDef *match;
+ VarDef *def;
+} InterpDef;
+
+typedef struct _IndicatorNameDef {
+ ParseCommon common;
+ unsigned merge;
+ int ndx;
+ ExprDef * name;
+ Bool virtual;
+} IndicatorNameDef;
+
+typedef struct _OutlineDef {
+ ParseCommon common;
+ Atom field;
+ int nPoints;
+ ExprDef * points;
+} OutlineDef;
+
+typedef struct _ShapeDef {
+ ParseCommon common;
+ unsigned merge;
+ Atom name;
+ int nOutlines;
+ OutlineDef * outlines;
+} ShapeDef;
+
+typedef struct _KeyDef {
+ ParseCommon common;
+ unsigned defined;
+ char * name;
+ ExprDef * expr;
+} KeyDef;
+
+typedef struct _RowDef {
+ ParseCommon common;
+ int nKeys;
+ KeyDef * keys;
+} RowDef;
+
+typedef struct _SectionDef {
+ ParseCommon common;
+ unsigned merge;
+ Atom name;
+ int nRows;
+ RowDef * rows;
+} SectionDef;
+
+typedef struct _OverlayKeyDef {
+ ParseCommon common;
+ char over[5];
+ char under[5];
+} OverlayKeyDef;
+
+typedef struct _OverlayDef {
+ ParseCommon common;
+ unsigned merge;
+ Atom name;
+ int nKeys;
+ OverlayKeyDef * keys;
+} OverlayDef;
+
+typedef struct _DoodadDef {
+ ParseCommon common;
+ unsigned merge;
+ unsigned type;
+ Atom name;
+ VarDef * body;
+} DoodadDef;
+
+/* IndicatorMapDef doesn't use the type field, but the rest of the fields
+ need to be at the same offsets as in DoodadDef. Use #define to avoid
+ any strict aliasing problems. */
+#define IndicatorMapDef DoodadDef
+
+typedef struct _XkbFile {
+ ParseCommon common;
+ int type;
+ char * topName;
+ char * name;
+ ParseCommon *defs;
+ int id;
+ unsigned flags;
+ Bool compiled;
+} XkbFile;
+
+extern Bool CompileKeymap(
+ XkbFile * /* file */,
+ XkbFileInfo * /* result */,
+ unsigned /* merge */
+);
+
+extern Bool CompileKeycodes(
+ XkbFile * /* file */,
+ XkbFileInfo * /* result */,
+ unsigned /* merge */
+);
+
+extern Bool CompileGeometry(
+ XkbFile * /* file */,
+ XkbFileInfo * /* result */,
+ unsigned /* merge */
+);
+
+extern Bool CompileKeyTypes(
+ XkbFile * /* file */,
+ XkbFileInfo * /* result */,
+ unsigned /* merge */
+);
+
+typedef struct _LEDInfo *LEDInfoPtr;
+
+extern Bool CompileCompatMap(
+ XkbFile * /* file */,
+ XkbFileInfo * /* result */,
+ unsigned /* merge */,
+ LEDInfoPtr * /* unboundLEDs */
+);
+
+extern Bool CompileSymbols(
+ XkbFile * /* file */,
+ XkbFileInfo * /* result */,
+ unsigned /* merge */
+);
+
+#define WantLongListing (1<<0)
+#define WantPartialMaps (1<<1)
+#define WantHiddenMaps (1<<2)
+#define WantFullNames (1<<3)
+#define ListRecursive (1<<4)
+
+extern char * rootDir;
+extern unsigned verboseLevel;
+extern unsigned dirsToStrip;
+
+extern Bool AddListing(
+ char * /* file */,
+ char * /* map */
+);
+
+extern Bool AddMatchingFiles(
+ char * /* head_in */
+);
+
+extern int AddMapOnly(
+ char * /* map */
+);
+
+extern int GenerateListing(
+ char * /* filename */
+);
+
+#endif /* XKBCOMP_H */