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 __cplusplus
00013 extern "C"
00014 {
00015 #endif
00016 
00017   typedef enum
00018   {
00022     GROUP_CHANGED,
00026     INDICATORS_CHANGED
00027   }
00028   XklStateChange;
00029 
00033   typedef struct
00034   {
00036     int group;
00038     unsigned indicators;
00039   }
00040   XklState;
00041 
00055   extern int XklInit( Display * dpy );
00056 
00060   extern int XklTerm( void );
00061 
00073   extern int XklStartListen( void );
00074 
00079   extern int XklStopListen( void );
00080 
00085   extern int XklPauseListen( void );
00086 
00091   extern int XklResumeListen( void );
00092 
00099   extern Bool XklGrabKey( int key, unsigned modifiers );
00100 
00107   extern Bool XklUngrabKey( int key, unsigned modifiers );
00108 
00116   extern int XklFilterEvents( XEvent * evt );
00117 
00121   extern void XklAllowOneSwitchToSecondaryGroup( void );
00122 
00133   extern Window XklGetCurrentWindow( void );
00134 
00139   extern XklState *XklGetCurrentState( void );
00140 
00152   extern char *XklGetWindowTitle( Window w );
00153 
00161   extern Bool XklGetState( Window win, XklState * state_return );
00162 
00167   extern void XklDelState( Window win );
00168 
00174   extern void XklSaveState( Window win, XklState * state );
00175 
00183   extern void XklSetTransparent( Window win, Bool transparent );
00184 
00190   extern Bool XklIsTransparent( Window win );
00191 
00198   extern Bool XklIsSameApp( Window win1, Window win2 );
00199 
00211   extern unsigned XklGetNumGroups( void );
00212 
00218   extern const char **XklGetGroupNames( void );
00219 
00225   extern const char **XklGetIndicatorNames( void );
00226 
00238   extern int XklGetNextGroup( void );
00239 
00244   extern int XklGetPrevGroup( void );
00245 
00250   extern int XklGetRestoreGroup( void );
00251 
00259   extern void XklLockGroup( int group );
00260 
00273   typedef void ( *XklConfigCallback ) ( void *userData );
00274 
00281   extern int XklRegisterConfigCallback( XklConfigCallback fun,
00282                                         void *userData );
00283 
00295   typedef int ( *XklWinCallback ) ( Window win, Window parent,
00296                                     void *userData );
00297 
00304   extern int XklRegisterWindowCallback( XklWinCallback fun, void *userData );
00305 
00315   typedef void ( *XklStateCallback ) ( XklStateChange changeType, int group,
00316                                        Bool restore, void *userData );
00317 
00324   extern int XklRegisterStateCallback( XklStateCallback fun, void *userData );
00325 
00337   extern void XklSetGroupPerApp( Bool isGlobal );
00338 
00342   extern Bool XklIsGroupPerApp( void );
00343 
00348   extern void XklSetIndicatorsHandling( Bool whetherHandle );
00349 
00353   extern Bool XklGetIndicatorsHandling( void );
00354 
00361   extern void XklSetSecondaryGroupsMask( int mask );
00362 
00366   extern int XklGetSecondaryGroupsMask( void );
00367 
00373   extern void XklSetDefaultGroup( int group );
00374 
00380   extern int XklGetDefaultGroup( void );
00381 
00392   extern const char *XklGetLastError( void );
00393 
00404   extern void _XklDebug( const char file[], const char function[], int level,
00405                          const char format[], ... );
00406 
00421   typedef void ( *XklLogAppender ) ( const char file[], const char function[],
00422                                      int level, const char format[],
00423                                      va_list args );
00424 
00436   extern void XklDefaultLogAppender( const char file[], const char function[],
00437                                      int level, const char format[],
00438                                      va_list args );
00439 
00444   extern void XklSetLogAppender( XklLogAppender fun );
00445 
00451   extern void XklSetDebugLevel( int level );
00452 
00459 #ifdef G_HAVE_ISO_VARARGS
00460 #define XklDebug( level, ... ) \
00461   _XklDebug( __FILE__, __func__, level, __VA_ARGS__ )
00462 #elif defined(G_HAVE_GNUC_VARARGS)
00463 #define XklDebug( level, format, args... ) \
00464    _XklDebug( __FILE__, __func__, level, format, ## args )
00465 #else
00466 #define XklDebug( level, ... ) \
00467   _XklDebug( __FILE__, __func__, level, __VA_ARGS__ )
00468 #endif
00469 
00472 #ifdef __cplusplus
00473 }
00474 #endif                          /* __cplusplus */
00475 
00476 #endif

Generated on Thu Nov 4 01:02:17 2004 for libxklavier by doxygen 1.3.6