279 lines
6.8 KiB
C
279 lines
6.8 KiB
C
#ifndef _XKBCONFIG_H_
|
|
#define _XKBCONFIG_H_ 1
|
|
|
|
/************************************************************
|
|
Copyright (c) 1995 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.
|
|
|
|
********************************************************/
|
|
|
|
|
|
typedef struct _XkbConfigRtrn *XkbConfigRtrnPtr;
|
|
typedef struct _XkbConfigField *XkbConfigFieldPtr;
|
|
typedef struct _XkbConfigFields *XkbConfigFieldsPtr;
|
|
|
|
typedef Bool (*XkbConfigParseFunc)(
|
|
FILE * /* file */,
|
|
XkbConfigFieldsPtr /* fields */,
|
|
XkbConfigFieldPtr /* field */,
|
|
XkbDescPtr /* xkb */,
|
|
XkbConfigRtrnPtr /* rtrn */
|
|
);
|
|
|
|
#define XkbCF_Check 0
|
|
#define XkbCF_Apply 1
|
|
#define XkbCF_CleanUp 2
|
|
#define XkbCF_Destroy 3
|
|
|
|
typedef Bool (*XkbConfigFinishFunc)(
|
|
XkbConfigFieldsPtr /* fields */,
|
|
XkbDescPtr /* xkb */,
|
|
XkbConfigRtrnPtr /* rtrn */,
|
|
int /* what */
|
|
);
|
|
|
|
typedef struct _XkbConfigRtrnPriv {
|
|
int cfg_id;
|
|
XPointer priv;
|
|
struct _XkbConfigRtrnPriv * next;
|
|
} XkbConfigRtrnPrivRec,*XkbConfigRtrnPrivPtr;
|
|
|
|
typedef struct _XkbConfigModInfo {
|
|
Bool replace;
|
|
unsigned char mods;
|
|
unsigned char mods_clear;
|
|
unsigned short vmods;
|
|
unsigned short vmods_clear;
|
|
} XkbConfigModInfoRec,*XkbConfigModInfoPtr;
|
|
|
|
typedef struct _XkbConfigUnboundMod {
|
|
unsigned char what;
|
|
unsigned char mods;
|
|
unsigned short vmods;
|
|
short merge;
|
|
char * name;
|
|
} XkbConfigUnboundModRec,*XkbConfigUnboundModPtr;
|
|
|
|
#define XkbCF_MergeSet 0
|
|
#define XkbCF_MergeAdd 1
|
|
#define XkbCF_MergeRemove 2
|
|
|
|
#define XkbCF_InitialMods (1L<<0)
|
|
#define XkbCF_InternalMods (1L<<1)
|
|
#define XkbCF_IgnoreLockMods (1L<<2)
|
|
#define XkbCF_InitialCtrls (1L<<3)
|
|
#define XkbCF_AccessXTimeout (1L<<4)
|
|
#define XkbCF_AccessXTimeoutCtrlsOn (1L<<5)
|
|
#define XkbCF_AccessXTimeoutCtrlsOff (1L<<6)
|
|
#define XkbCF_AccessXTimeoutOptsOn (1L<<7)
|
|
#define XkbCF_AccessXTimeoutOptsOff (1L<<8)
|
|
#define XkbCF_GroupsWrap (1L<<9)
|
|
#define XkbCF_InitialOpts (1L<<10)
|
|
|
|
typedef struct _XkbConfigRtrn {
|
|
unsigned defined;
|
|
int error;
|
|
int line;
|
|
|
|
int click_volume;
|
|
int bell_volume;
|
|
int bell_pitch;
|
|
int bell_duration;
|
|
int repeat_delay;
|
|
int repeat_interval;
|
|
|
|
char * rules_file;
|
|
char * model;
|
|
char * layout;
|
|
char * variant;
|
|
char * options;
|
|
|
|
char * keymap;
|
|
char * keycodes;
|
|
char * geometry;
|
|
char * phys_symbols;
|
|
char * symbols;
|
|
char * types;
|
|
char * compat;
|
|
|
|
Bool replace_initial_ctrls;
|
|
unsigned long initial_ctrls;
|
|
unsigned long initial_ctrls_clear;
|
|
|
|
Bool replace_initial_opts;
|
|
unsigned short initial_opts;
|
|
unsigned short initial_opts_clear;
|
|
|
|
XkbConfigModInfoRec initial_mods;
|
|
XkbConfigModInfoRec internal_mods;
|
|
XkbConfigModInfoRec ignore_lock_mods;
|
|
|
|
short num_unbound_mods;
|
|
short sz_unbound_mods;
|
|
XkbConfigUnboundModPtr unbound_mods;
|
|
|
|
int groups_wrap;
|
|
int slow_keys_delay;
|
|
int debounce_delay;
|
|
int mk_delay;
|
|
int mk_interval;
|
|
int mk_time_to_max;
|
|
int mk_max_speed;
|
|
int mk_curve;
|
|
int ax_timeout;
|
|
|
|
Bool replace_axt_ctrls_on;
|
|
Bool replace_axt_ctrls_off;
|
|
unsigned long axt_ctrls_on;
|
|
unsigned long axt_ctrls_off;
|
|
unsigned long axt_ctrls_ignore;
|
|
|
|
Bool replace_axt_opts_off;
|
|
Bool replace_axt_opts_on;
|
|
unsigned short axt_opts_off;
|
|
unsigned short axt_opts_on;
|
|
unsigned short axt_opts_ignore;
|
|
XkbConfigRtrnPrivPtr priv;
|
|
} XkbConfigRtrnRec;
|
|
|
|
typedef struct _XkbConfigField {
|
|
char * field;
|
|
unsigned char field_id;
|
|
} XkbConfigFieldRec;
|
|
|
|
typedef struct _XkbConfigFields {
|
|
unsigned short cfg_id;
|
|
unsigned short num_fields;
|
|
XkbConfigFieldPtr fields;
|
|
XkbConfigParseFunc parser;
|
|
XkbConfigFinishFunc finish;
|
|
XPointer priv;
|
|
struct _XkbConfigFields *next;
|
|
} XkbConfigFieldsRec;
|
|
|
|
#define XkbCF_EOF -1
|
|
#define XkbCF_Unknown 0
|
|
#define XkbCF_EOL 1
|
|
#define XkbCF_Semi 2
|
|
#define XkbCF_Equals 3
|
|
#define XkbCF_PlusEquals 4
|
|
#define XkbCF_MinusEquals 5
|
|
#define XkbCF_Plus 6
|
|
#define XkbCF_Minus 7
|
|
#define XkbCF_String 10
|
|
#define XkbCF_Ident 11
|
|
#define XkbCF_Integer 12
|
|
|
|
#define XkbCF_UnterminatedString 100
|
|
#define XkbCF_BadAlloc 101
|
|
#define XkbCF_MissingIdent 102
|
|
#define XkbCF_MissingEquals 103
|
|
#define XkbCF_ExpectedEOS 104
|
|
#define XkbCF_ExpectedBoolean 105
|
|
#define XkbCF_ExpectedInteger 106
|
|
#define XkbCF_ExpectedString 107
|
|
#define XkbCF_ExpectedModifier 108
|
|
#define XkbCF_ExpectedControl 109
|
|
#define XkbCF_ExpectedAXOption 110
|
|
#define XkbCF_ExpectedOperator 111
|
|
#define XkbCF_ExpectedOORGroupBehavior 112
|
|
|
|
typedef union {
|
|
int ival;
|
|
char * str;
|
|
} XkbCFScanResultRec,*XkbCFScanResultPtr;
|
|
|
|
extern XkbConfigFieldsPtr XkbCFDflts;
|
|
|
|
_XFUNCPROTOBEGIN
|
|
|
|
extern int XkbCFScan(
|
|
FILE * /* file */,
|
|
XkbCFScanResultPtr /* val_rtrn */,
|
|
XkbConfigRtrnPtr /* rtrn */
|
|
);
|
|
|
|
extern XkbConfigFieldsPtr XkbCFDup(
|
|
XkbConfigFieldsPtr /* fields */
|
|
);
|
|
|
|
extern XkbConfigFieldsPtr XkbCFFree(
|
|
XkbConfigFieldsPtr /* fields */,
|
|
Bool /* all */
|
|
);
|
|
|
|
extern XkbConfigUnboundModPtr XkbCFAddModByName(
|
|
XkbConfigRtrnPtr /* rtrn */,
|
|
int /* what */,
|
|
char * /* name */,
|
|
Bool /* merge */,
|
|
XkbConfigUnboundModPtr /* last */
|
|
);
|
|
|
|
extern Bool XkbCFBindMods(
|
|
XkbConfigRtrnPtr /* rtrn */,
|
|
XkbDescPtr /* xkb */
|
|
);
|
|
|
|
extern Bool XkbCFApplyMods(
|
|
XkbConfigRtrnPtr /* rtrn */,
|
|
int /* what */,
|
|
XkbConfigModInfoPtr /* info */
|
|
);
|
|
|
|
extern Bool XkbCFApplyRtrnValues(
|
|
XkbConfigRtrnPtr /* rtrn */,
|
|
XkbConfigFieldsPtr /* fields */,
|
|
XkbDescPtr /* xkb */
|
|
);
|
|
|
|
extern XkbConfigRtrnPrivPtr XkbCFAddPrivate(
|
|
XkbConfigRtrnPtr /* rtrn */,
|
|
XkbConfigFieldsPtr /* fields */,
|
|
XPointer /* ptr */
|
|
);
|
|
|
|
extern void XkbCFFreeRtrn(
|
|
XkbConfigRtrnPtr /* rtrn */,
|
|
XkbConfigFieldsPtr /* fields */,
|
|
XkbDescPtr /* xkb */
|
|
);
|
|
|
|
extern Bool XkbCFParse(
|
|
FILE * /* file */,
|
|
XkbConfigFieldsPtr /* fields */,
|
|
XkbDescPtr /* xkb */,
|
|
XkbConfigRtrnPtr /* rtrn */
|
|
);
|
|
|
|
extern void XkbCFReportError(
|
|
FILE * /* file */,
|
|
char * /* name */,
|
|
int /* error */,
|
|
int /* line */
|
|
);
|
|
|
|
_XFUNCPROTOEND
|
|
|
|
#endif /* _XKBCONFIG_H_ */
|