Main Page | Modules | Class List | File List | Class Members | File Members

xklavier.h

Go to the documentation of this file.
00001 
00005 #ifndef __XKLAVIER_H__
00006 #define __XKLAVIER_H__
00007 
00008 #include <stdarg.h>
00009 
00010 #include <X11/Xlib.h>
00011 
00012 #ifdef XKB_HEADERS_PRESENT
00013 #include <X11/XKBlib.h>
00014 #endif
00015 
00016 #ifdef __cplusplus
00017 extern "C"
00018 {
00019 #endif
00020 
00021   typedef enum
00022   {
00026     GROUP_CHANGED,
00030     INDICATORS_CHANGED
00031   }
00032   XklStateChange;
00033 
00037   typedef struct
00038   {
00040     int group;
00042     unsigned indicators;
00043   }
00044   XklState;
00045 
00059   extern int XklInit( Display * dpy );
00060 
00064   extern int XklTerm( void );
00065 
00077   extern int XklStartListen( void );
00078 
00083   extern int XklStopListen( void );
00084 
00089   extern int XklPauseListen( void );
00090 
00095   extern int XklResumeListen( void );
00096 
00103   extern Bool XklGrabKey( int key, unsigned modifiers );
00104 
00111   extern Bool XklUngrabKey( int key, unsigned modifiers );
00112 
00120   extern int XklFilterEvents( XEvent * evt );
00121 
00125   extern void XklAllowOneSwitchToSecondaryGroup( void );
00126 
00137   extern Window XklGetCurrentWindow( void );
00138 
00143   extern XklState *XklGetCurrentState( void );
00144 
00156   extern char *XklGetWindowTitle( Window w );
00157 
00165   extern Bool XklGetState( Window win, XklState * state_return );
00166 
00171   extern void XklDelState( Window win );
00172 
00178   extern void XklSaveState( Window win, XklState * state );
00179 
00187   extern void XklSetTransparent( Window win, Bool transparent );
00188 
00194   extern Bool XklIsTransparent( Window win );
00195 
00202   extern Bool XklIsSameApp( Window win1, Window win2 );
00203 
00215   extern unsigned XklGetNumGroups( void );
00216 
00222   extern const char **XklGetGroupNames( void );
00223 
00229   extern const char **XklGetIndicatorNames( void );
00230 
00242   extern int XklGetNextGroup( void );
00243 
00248   extern int XklGetPrevGroup( void );
00249 
00254   extern int XklGetRestoreGroup( void );
00255 
00263   extern void XklLockGroup( int group );
00264 
00277   typedef void ( *XklConfigCallback ) ( void *userData );
00278 
00285   extern int XklRegisterConfigCallback( XklConfigCallback fun,
00286                                         void *userData );
00287 
00299   typedef int ( *XklWinCallback ) ( Window win, Window parent,
00300                                     void *userData );
00301 
00308   extern int XklRegisterWindowCallback( XklWinCallback fun, void *userData );
00309 
00319   typedef void ( *XklStateCallback ) ( XklStateChange changeType, int group,
00320                                        Bool restore, void *userData );
00321 
00328   extern int XklRegisterStateCallback( XklStateCallback fun, void *userData );
00329 
00341   extern void XklSetGroupPerApp( Bool isGlobal );
00342 
00346   extern Bool XklIsGroupPerApp( void );
00347 
00352   extern void XklSetIndicatorsHandling( Bool whetherHandle );
00353 
00357   extern Bool XklGetIndicatorsHandling( void );
00358 
00365   extern void XklSetSecondaryGroupsMask( int mask );
00366 
00370   extern int XklGetSecondaryGroupsMask( void );
00371 
00377   extern void XklSetDefaultGroup( int group );
00378 
00384   extern int XklGetDefaultGroup( void );
00385 
00396   extern const char *XklGetLastError( void );
00397 
00408   extern void _XklDebug( const char file[], const char function[], int level,
00409                          const char format[], ... );
00410 
00425   typedef void ( *XklLogAppender ) ( const char file[], const char function[],
00426                                      int level, const char format[],
00427                                      va_list args );
00428 
00440   extern void XklDefaultLogAppender( const char file[], const char function[],
00441                                      int level, const char format[],
00442                                      va_list args );
00443 
00448   extern void XklSetLogAppender( XklLogAppender fun );
00449 
00455   extern void XklSetDebugLevel( int level );
00456 
00463 #ifdef G_HAVE_ISO_VARARGS
00464 #define XklDebug( level, ... ) \
00465   _XklDebug( __FILE__, __func__, level, __VA_ARGS__ )
00466 #elif defined(G_HAVE_GNUC_VARARGS)
00467 #define XklDebug( level, format, args... ) \
00468    _XklDebug( __FILE__, __func__, level, format, ## args )
00469 #else
00470 #define XklDebug( level, ... ) \
00471   _XklDebug( __FILE__, __func__, level, __VA_ARGS__ )
00472 #endif
00473 
00476 #ifdef __cplusplus
00477 }
00478 #endif                          /* __cplusplus */
00479 
00480 #endif

Generated on Fri Oct 1 22:38:20 2004 for libxklavier by doxygen 1.3.6