summaryrefslogtreecommitdiff
path: root/libxklavier/xklavier_private_xkb.h
blob: d0a141e18e7f045ec5a75c4234d900972b2bfafe (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
77
78
79
#ifndef __XKLAVIER_PRIVATE_XKB_H__
#define __XKLAVIER_PRIVATE_XKB_H__

#ifdef XKB_HEADERS_PRESENT

#include <X11/XKBlib.h>
#include <X11/extensions/XKBrules.h>

#define ForPhysIndicators( i, bit ) \
    for ( i=0, bit=1; i<XkbNumIndicators; i++, bit<<=1 ) \
          if ( _xklXkb->indicators->phys_indicators & bit )

extern int _xklXkbEventType, _xklXkbError;

extern XkbRF_VarDefsRec _xklVarDefs;

extern XkbDescPtr _xklXkb;

extern void XklDumpXkbDesc( const char *filename, XkbDescPtr kbd );

extern Bool _XklXkbConfigMultipleLayoutsSupported( void );

extern const char *_XklXkbGetXkbEventName( int xkb_type );

extern Bool _XklXkbConfigPrepareNative( const XklConfigRecPtr data, XkbComponentNamesPtr componentNamesPtr );

extern void _XklXkbConfigCleanupNative( XkbComponentNamesPtr componentNamesPtr );

/* Start VTable methods */

extern Bool _XklXkbConfigActivate( const XklConfigRecPtr data );

extern void _XklXkbConfigInit( void );

extern Bool _XklXkbConfigLoadRegistry( void );

extern Bool _XklXkbConfigWriteFile( const char *fileName,
                                    const XklConfigRecPtr data,
                                    const Bool binary );

extern int _XklXkbEventHandler( XEvent * kev );

extern void _XklXkbFreeAllInfo( void );

extern const char **_XklXkbGetGroupNames( void );

extern unsigned _XklXkbGetMaxNumGroups( void );

extern unsigned _XklXkbGetNumGroups( void );

extern void _XklXkbGetRealState( XklState * curState_return );

extern Bool _XklXkbLoadAllInfo( void );

extern void _XklXkbLockGroup( int group );

extern int _XklXkbPauseListen( void );

extern int _XklXkbResumeListen( void );

extern void _XklXkbSetIndicators( const XklState *windowState );

/* End of VTable methods */

#else

/**
 * VERY VERY BAD STYLE, some kind of 'protected' methods - 
 * but some programs may want to hook into them.
 */
extern Bool _XklXkbConfigPrepareNative( const XklConfigRecPtr data, void * componentNamesPtr );

extern void _XklXkbConfigCleanupNative( void * componentNamesPtr );

#endif

extern Bool _xklXkbExtPresent;

#endif