80 lines
2.0 KiB
C
80 lines
2.0 KiB
C
/* SPDX-License-Identifier: MIT OR X11
|
|
*
|
|
* Copyright © 2024 Enrico Weigelt, metux IT consult <info@metux.net>
|
|
*/
|
|
#ifndef _XSERVER_XKB_XKBFMISC_PRIV_H
|
|
#define _XSERVER_XKB_XKBFMISC_PRIV_H
|
|
|
|
/* needed for X11/keysymdef.h to define all symdefs */
|
|
#define XK_MISCELLANY
|
|
|
|
#include <stdio.h>
|
|
#include <X11/X.h>
|
|
#include <X11/Xdefs.h>
|
|
#include <X11/keysymdef.h>
|
|
|
|
#include "xkbstr.h"
|
|
|
|
/*
|
|
* return mask bits for _XkbKSCheckCase()
|
|
*/
|
|
#define _XkbKSLower (1<<0)
|
|
#define _XkbKSUpper (1<<1)
|
|
|
|
/*
|
|
* check whether given KeySym is a upper or lower case key
|
|
*
|
|
* @param sym the KeySym to check
|
|
* @return mask of _XkbKS* flags
|
|
*/
|
|
unsigned int _XkbKSCheckCase(KeySym sym);
|
|
|
|
/*
|
|
* check whether given KeySym is an lower case key
|
|
*
|
|
* @param k the KeySym to check
|
|
* @return TRUE if k is a lower case key
|
|
*/
|
|
static inline Bool XkbKSIsLower(KeySym k) { return _XkbKSCheckCase(k)&_XkbKSLower; }
|
|
|
|
/*
|
|
* check whether given KeySym is an upper case key
|
|
*
|
|
* @param k the KeySym to check
|
|
* @return TRUE if k is a upper case key
|
|
*/
|
|
static inline Bool XkbKSIsUpper(KeySym k) { return _XkbKSCheckCase(k)&_XkbKSUpper; }
|
|
|
|
/*
|
|
* check whether given KeySym is an keypad key
|
|
*
|
|
* @param k the KeySym to check
|
|
* @return TRUE if k is a keypad key
|
|
*/
|
|
static inline Bool XkbKSIsKeypad(KeySym k) { return (((k)>=XK_KP_Space)&&((k)<=XK_KP_Equal)); }
|
|
|
|
/*
|
|
* find a keycode by its name
|
|
*
|
|
* @param xkb pointer to xkb descriptor
|
|
* @param name the key name
|
|
* @param use_aliases TRUE if aliases should be resolved
|
|
* @return keycode ID
|
|
*/
|
|
int XkbFindKeycodeByName(XkbDescPtr xkb, char *name, Bool use_aliases);
|
|
|
|
/*
|
|
* write keymap for given component names
|
|
*
|
|
* @param file the FILE to write to
|
|
* @param names pointer to list of keymap component names to write out
|
|
* @param xkb pointer to xkb descriptor
|
|
* @param want bitmask of wanted elements
|
|
* @param need bitmask of needed elements
|
|
* @return TRUE if succeeded
|
|
*/
|
|
Bool XkbWriteXKBKeymapForNames(FILE *file, XkbComponentNamesPtr names,
|
|
XkbDescPtr xkb, unsigned want, unsigned need);
|
|
|
|
#endif /* _XSERVER_XKB_XKBFMISC_PRIV_H */
|