69 lines
1.6 KiB
C
69 lines
1.6 KiB
C
/* SPDX-License-Identifier: MIT OR X11
|
|
*
|
|
* Copyright © 2024 Enrico Weigelt, metux IT consult <info@metux.net>
|
|
*/
|
|
#ifndef _XSERVER_XKB_XKBRULES_PRIV_H
|
|
#define _XSERVER_XKB_XKBRULES_PRIV_H
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <X11/Xdefs.h>
|
|
|
|
#include "include/xkbrules.h"
|
|
|
|
typedef struct _XkbRF_VarDefs {
|
|
const char *model;
|
|
const char *layout;
|
|
const char *variant;
|
|
const char *options;
|
|
} XkbRF_VarDefsRec, *XkbRF_VarDefsPtr;
|
|
|
|
typedef struct _XkbRF_Rule {
|
|
int number;
|
|
int layout_num;
|
|
int variant_num;
|
|
const char *model;
|
|
const char *layout;
|
|
const char *variant;
|
|
const char *option;
|
|
/* yields */
|
|
const char *keycodes;
|
|
const char *symbols;
|
|
const char *types;
|
|
const char *compat;
|
|
const char *geometry;
|
|
unsigned flags;
|
|
} XkbRF_RuleRec, *XkbRF_RulePtr;
|
|
|
|
typedef struct _XkbRF_Group {
|
|
int number;
|
|
const char *name;
|
|
char *words;
|
|
} XkbRF_GroupRec, *XkbRF_GroupPtr;
|
|
|
|
typedef struct _XkbRF_Rules {
|
|
unsigned short sz_rules;
|
|
unsigned short num_rules;
|
|
XkbRF_RulePtr rules;
|
|
unsigned short sz_groups;
|
|
unsigned short num_groups;
|
|
XkbRF_GroupPtr groups;
|
|
} XkbRF_RulesRec, *XkbRF_RulesPtr;
|
|
|
|
struct _XkbComponentNames;
|
|
|
|
Bool XkbRF_GetComponents(XkbRF_RulesPtr rules,
|
|
XkbRF_VarDefsPtr var_defs,
|
|
struct _XkbComponentNames *names);
|
|
|
|
Bool XkbRF_LoadRules(FILE *file, XkbRF_RulesPtr rules);
|
|
|
|
static inline XkbRF_RulesPtr XkbRF_Create(void)
|
|
{
|
|
return calloc(1, sizeof(XkbRF_RulesRec));
|
|
}
|
|
|
|
void XkbRF_Free(XkbRF_RulesPtr rules);
|
|
|
|
#endif /* _XSERVER_XKB_XKBRULES_PRIV_H */
|