00001
00005 #ifndef __XKLABIER_CONFIG_H__
00006 #define __XKLABIER_CONFIG_H__
00007
00008 #include <libxklavier/xklavier.h>
00009
00013 #define XKL_MAX_CI_NAME_LENGTH 64
00014
00019 #define XKL_MAX_CI_DESC_LENGTH 192
00020
00021 #ifdef __cplusplus
00022 extern "C"
00023 {
00024 #endif
00025
00029 typedef struct _XklConfigItem
00030 {
00034 char name[XKL_MAX_CI_NAME_LENGTH];
00035
00039 char description[XKL_MAX_CI_DESC_LENGTH];
00040 }
00041 XklConfigItem, *XklConfigItemPtr;
00042
00046 typedef struct _XklConfigRec
00047 {
00051 char *model;
00055 char *layout;
00059 char *variant;
00063 int numOptions;
00067 char **options;
00068 }
00069 XklConfigRec, *XklConfigRecPtr;
00078 extern void XklConfigInit( void );
00079
00083 extern void XklConfigTerm( void );
00084
00089 extern Bool XklConfigLoadRegistry( void );
00090
00094 extern void XklConfigFreeRegistry( void );
00107 typedef void ( *ConfigItemProcessFunc ) ( const XklConfigItemPtr configItem,
00108 void *userData );
00109
00116 typedef void ( *GroupProcessFunc ) ( const XklConfigItemPtr configItem,
00117 Bool allowMultipleSelection,
00118 void *userData );
00127 typedef int ( *XkbDescModifierFunc ) ( XkbDescPtr kbd, void *userData );
00133 extern void XklConfigEnumModels( ConfigItemProcessFunc func,
00134 void *userData );
00135
00141 extern void XklConfigEnumLayouts( ConfigItemProcessFunc func,
00142 void *userData );
00143
00150 extern void XklConfigEnumLayoutVariants( const char *layoutName,
00151 ConfigItemProcessFunc func,
00152 void *userData );
00153
00159 extern void XklConfigEnumOptionGroups( GroupProcessFunc func,
00160 void *userData );
00161
00169 extern void XklConfigEnumOptions( const char *optionGroupName,
00170 ConfigItemProcessFunc func,
00171 void *userData );
00172
00186 extern Bool XklConfigFindModel( XklConfigItemPtr ptr );
00187
00194 extern Bool XklConfigFindLayout( XklConfigItemPtr ptr );
00195
00204 extern Bool XklConfigFindVariant( const char *layoutName,
00205 XklConfigItemPtr ptr );
00206
00216 extern Bool XklConfigFindOptionGroup( XklConfigItemPtr ptr,
00217 Bool * allowMultipleSelection );
00218
00227 extern Bool XklConfigFindOption( const char *optionGroupName,
00228 XklConfigItemPtr ptr );
00246 extern Bool XklConfigActivate( const XklConfigRecPtr data,
00247 XkbDescModifierFunc fun, void *userData );
00248
00255 extern int XklSetKeyAsSwitcher( XkbDescPtr kbd, void *userData );
00256
00262 extern Bool XklConfigGetFromServer( XklConfigRecPtr data );
00263
00270 extern Bool XklConfigGetFromBackup( XklConfigRecPtr data );
00271
00282 extern Bool XklConfigWriteXKMFile( const char *fileName,
00283 const XklConfigRecPtr data,
00284 XkbDescModifierFunc fun,
00285 void *userData );
00286
00303 extern Bool XklGetNamesProp( const char propName[],
00304 char **rulesFileOut,
00305 XklConfigRecPtr configOut );
00306
00314 extern Bool XklSetNamesProp( const char propName[],
00315 char *rulesFile, XklConfigRecPtr config );
00316
00322 extern Bool XklBackupNamesProp( );
00323
00329 extern Bool XklRestoreNamesProp( );
00330
00343 extern void XklConfigRecInit( XklConfigRecPtr data );
00344
00349 extern void XklConfigRecReset( XklConfigRecPtr data );
00350
00355 extern void XklConfigRecDestroy( XklConfigRecPtr data );
00356
00359 #ifdef __cplusplus
00360 }
00361 #endif
00362
00363 #endif