00001
00005 #ifndef __XKLABIER_CONFIG_H__
00006 #define __XKLABIER_CONFIG_H__
00007
00011 #define XKL_MAX_CI_NAME_LENGTH 64
00012
00017 #define XKL_MAX_CI_DESC_LENGTH 192
00018
00019 #ifdef __cplusplus
00020 extern "C"
00021 {
00022 #endif
00023
00027 typedef struct _XklConfigItem
00028 {
00032 char name[XKL_MAX_CI_NAME_LENGTH];
00033
00037 char description[XKL_MAX_CI_DESC_LENGTH];
00038 }
00039 XklConfigItem, *XklConfigItemPtr;
00040
00049 extern void XklConfigInit( void );
00050
00054 extern void XklConfigTerm( void );
00055
00060 extern Bool XklConfigLoadRegistry( void );
00061
00065 extern void XklConfigFreeRegistry( void );
00078 typedef void ( *ConfigItemProcessFunc ) ( const XklConfigItemPtr configItem,
00079 void *userData );
00080
00087 typedef void ( *GroupProcessFunc ) ( const XklConfigItemPtr configItem,
00088 Bool allowMultipleSelection,
00089 void *userData );
00090
00096 extern void XklConfigEnumModels( ConfigItemProcessFunc func,
00097 void *userData );
00098
00104 extern void XklConfigEnumLayouts( ConfigItemProcessFunc func,
00105 void *userData );
00106
00113 extern void XklConfigEnumLayoutVariants( const char *layoutName,
00114 ConfigItemProcessFunc func,
00115 void *userData );
00116
00122 extern void XklConfigEnumOptionGroups( GroupProcessFunc func,
00123 void *userData );
00124
00132 extern void XklConfigEnumOptions( const char *optionGroupName,
00133 ConfigItemProcessFunc func,
00134 void *userData );
00148 extern Bool XklConfigFindModel( XklConfigItemPtr ptr );
00149
00156 extern Bool XklConfigFindLayout( XklConfigItemPtr ptr );
00157
00166 extern Bool XklConfigFindVariant( const char *layoutName,
00167 XklConfigItemPtr ptr );
00168
00178 extern Bool XklConfigFindOptionGroup( XklConfigItemPtr ptr,
00179 Bool * allowMultipleSelection );
00180
00189 extern Bool XklConfigFindOption( const char *optionGroupName,
00190 XklConfigItemPtr ptr );
00208 extern Bool XklConfigActivate( const char *model, const char *layout,
00209 const char *variant, const int numOptions,
00210 const char *options[] );
00211
00223 extern Bool XklConfigWriteXKMFile( const char *fileName, const char *model,
00224 const char *layout, const char *variant,
00225 const int numOptions,
00226 const char *options[] );
00229 #ifdef __cplusplus
00230 }
00231 #endif
00232
00233 #endif