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 */
 |