summaryrefslogtreecommitdiff
path: root/src/xkbcomp/action.h
blob: f5c9443b4e9dd46ba6780eb74009a08407895ee1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/************************************************************
 * 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 XKBCOMP_ACTION_H
#define XKBCOMP_ACTION_H

#define F_ClearLocks  0
#define F_LatchToLock 1
#define F_GenKeyEvent 2
#define F_Report      3
#define F_Default     4
#define F_Affect      5
#define F_Increment   6
#define F_Modifiers   7
#define F_Group       8
#define F_X           9
#define F_Y           10
#define F_Accel       11
#define F_Button      12
#define F_Value       13
#define F_Controls    14
#define F_Type        15
#define F_Count       16
#define F_Screen      17
#define F_Same        18
#define F_Data        19
#define F_Device      20
#define F_Keycode     21
#define F_ModsToClear 22
#define F_LastField   F_ModsToClear
#define F_NumFields   (F_LastField + 1)

#define PrivateAction (XkbSA_LastAction + 1)

typedef struct _ActionInfo {
    unsigned action;
    unsigned field;
    ExprDef *array_ndx;
    ExprDef *value;
    struct _ActionInfo *next;
} ActionInfo;

int
HandleActionDef(ExprDef *def, struct xkb_keymap *keymap,
                union xkb_action *action, ActionInfo *info);

int
SetActionField(struct xkb_keymap *keymap, const char *elem, const char *field,
               ExprDef *index, ExprDef *value, ActionInfo **info_rtrn);

extern const LookupEntry ctrlNames[];

#endif