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 32
00014
00020 #define XKL_MAX_CI_SHORT_DESC_LENGTH 10
00021
00027 #define XKL_MAX_CI_DESC_LENGTH 192
00028
00029
#ifdef __cplusplus
00030
extern "C"
00031 {
00032
#endif
00033
00037 typedef struct _XklConfigItem
00038 {
00042 char name[
XKL_MAX_CI_NAME_LENGTH];
00043
00047 char shortDescription[
XKL_MAX_CI_DESC_LENGTH];
00048
00052 char description[
XKL_MAX_CI_DESC_LENGTH];
00053 }
00054
XklConfigItem, *
XklConfigItemPtr;
00055
00059 typedef struct _XklConfigRec
00060 {
00064 char *
model;
00068 int numLayouts;
00072 char **
layouts;
00076 int numVariants;
00080 char **
variants;
00084 int numOptions;
00088 char **
options;
00089 }
00090
XklConfigRec, *
XklConfigRecPtr;
00099
extern void XklConfigInit(
void );
00100
00104
extern void XklConfigTerm(
void );
00105
00111
extern Bool
XklConfigLoadRegistryFromFile(
const char* fileName );
00112
00117
extern Bool
XklConfigLoadRegistry(
void );
00118
00122
extern void XklConfigFreeRegistry(
void );
00135 typedef void ( *
ConfigItemProcessFunc ) (
const XklConfigItemPtr configItem,
00136
void *userData );
00137
00144 typedef void ( *
GroupProcessFunc ) (
const XklConfigItemPtr configItem,
00145 Bool allowMultipleSelection,
00146
void *userData );
00152
extern void XklConfigEnumModels( ConfigItemProcessFunc func,
00153
void *userData );
00154
00160
extern void XklConfigEnumLayouts( ConfigItemProcessFunc func,
00161
void *userData );
00162
00169
extern void XklConfigEnumLayoutVariants(
const char *layoutName,
00170 ConfigItemProcessFunc func,
00171
void *userData );
00172
00178
extern void XklConfigEnumOptionGroups( GroupProcessFunc func,
00179
void *userData );
00180
00188
extern void XklConfigEnumOptions(
const char *optionGroupName,
00189 ConfigItemProcessFunc func,
00190
void *userData );
00191
00205
extern Bool
XklConfigFindModel( XklConfigItemPtr ptr );
00206
00213
extern Bool
XklConfigFindLayout( XklConfigItemPtr ptr );
00214
00223
extern Bool
XklConfigFindVariant(
const char *layoutName,
00224 XklConfigItemPtr ptr );
00225
00235
extern Bool
XklConfigFindOptionGroup( XklConfigItemPtr ptr,
00236 Bool * allowMultipleSelection );
00237
00246
extern Bool
XklConfigFindOption(
const char *optionGroupName,
00247 XklConfigItemPtr ptr );
00259
extern Bool
XklMultipleLayoutsSupported(
void );
00269
extern Bool
XklConfigActivate(
const XklConfigRecPtr data,
00270
void *userData );
00271
00277
extern Bool
XklConfigGetFromServer( XklConfigRecPtr data );
00278
00285
extern Bool
XklConfigGetFromBackup( XklConfigRecPtr data );
00286
00296
extern Bool
XklConfigWriteXKMFile(
const char *fileName,
00297
const XklConfigRecPtr data,
00298
void *userData );
00299
00316
extern Bool
XklGetNamesProp( Atom rulesAtomName,
00317
char **rulesFileOut,
00318 XklConfigRecPtr configOut );
00319
00327
extern Bool
XklSetNamesProp( Atom rulesAtomName,
00328
char *rulesFile, XklConfigRecPtr config );
00329
00335
extern Bool
XklBackupNamesProp( );
00336
00342
extern Bool
XklRestoreNamesProp( );
00343
00356
extern void XklConfigRecInit( XklConfigRecPtr data );
00357
00362
extern void XklConfigRecReset( XklConfigRecPtr data );
00363
00368
extern void XklConfigRecDestroy( XklConfigRecPtr data );
00369
00376
extern Bool
XklConfigRecEquals( XklConfigRecPtr data1, XklConfigRecPtr data2 );
00377
00380
#ifdef __cplusplus
00381
}
00382
#endif
00383
00384
#endif