#ifndef XKBCOMP_ACTION_H
#define XKBCOMP_ACTION_H
-typedef struct _ActionInfo ActionInfo;
+/*
+ * This struct contains the default values which every new action
+ * (e.g. in an interpret statement) starts off with. It can be
+ * modified within the files (see calls to SetActionField).
+ */
+typedef struct {
+ union xkb_action actions[_ACTION_TYPE_NUM_ENTRIES];
+} ActionsInfo;
+
+ActionsInfo *
+NewActionsInfo(void);
void
-FreeActionInfo(ActionInfo *info);
+FreeActionsInfo(ActionsInfo *info);
-int
-HandleActionDef(ExprDef *def, struct xkb_keymap *keymap,
- union xkb_action *action, ActionInfo *info);
+bool
+HandleActionDef(struct xkb_context *ctx, ActionsInfo *info,
+ const struct xkb_mod_set *mods, ExprDef *def,
+ union xkb_action *action);
-int
-SetActionField(struct xkb_keymap *keymap, const char *elem, const char *field,
- ExprDef *index, ExprDef *value, ActionInfo **info_rtrn);
+bool
+SetActionField(struct xkb_context *ctx, ActionsInfo *info,
+ struct xkb_mod_set *mods, const char *elem,
+ const char *field, ExprDef *array_ndx, ExprDef *value);
-extern const LookupEntry ctrlNames[];
#endif