e_ibar: make ibar external config
This commit is contained in:
parent
e694ba3942
commit
8c8cb30cef
|
@ -13,6 +13,8 @@ src_modules_ibar_module_la_LIBADD = $(MOD_LIBS)
|
||||||
src_modules_ibar_module_la_CPPFLAGS = $(MOD_CPPFLAGS)
|
src_modules_ibar_module_la_CPPFLAGS = $(MOD_CPPFLAGS)
|
||||||
src_modules_ibar_module_la_LDFLAGS = $(MOD_LDFLAGS)
|
src_modules_ibar_module_la_LDFLAGS = $(MOD_LDFLAGS)
|
||||||
src_modules_ibar_module_la_SOURCES = src/modules/ibar/e_mod_main.c \
|
src_modules_ibar_module_la_SOURCES = src/modules/ibar/e_mod_main.c \
|
||||||
|
src/modules/ibar/config_descriptor.c \
|
||||||
|
src/modules/ibar/config_descriptor.h \
|
||||||
src/modules/ibar/e_mod_main.h \
|
src/modules/ibar/e_mod_main.h \
|
||||||
src/modules/ibar/e_mod_config.c
|
src/modules/ibar/e_mod_config.c
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
#include <e.h>
|
||||||
|
#include "config_descriptor.h"
|
||||||
|
|
||||||
|
|
||||||
|
static E_Config_DD *conf_edd = NULL;
|
||||||
|
static E_Config_DD *conf_item_edd = NULL;
|
||||||
|
|
||||||
|
void
|
||||||
|
config_descriptor_init(void)
|
||||||
|
{
|
||||||
|
conf_item_edd = E_CONFIG_DD_NEW("IBar_Config_Item", Config_Item);
|
||||||
|
#undef T
|
||||||
|
#undef D
|
||||||
|
#define T Config_Item
|
||||||
|
#define D conf_item_edd
|
||||||
|
E_CONFIG_VAL(D, T, id, STR);
|
||||||
|
E_CONFIG_VAL(D, T, dir, STR);
|
||||||
|
E_CONFIG_VAL(D, T, show_label, INT);
|
||||||
|
E_CONFIG_VAL(D, T, eap_label, INT);
|
||||||
|
E_CONFIG_VAL(D, T, lock_move, INT);
|
||||||
|
E_CONFIG_VAL(D, T, dont_add_nonorder, INT);
|
||||||
|
E_CONFIG_VAL(D, T, dont_track_launch, UCHAR);
|
||||||
|
E_CONFIG_VAL(D, T, dont_icon_menu_mouseover, UCHAR);
|
||||||
|
|
||||||
|
conf_edd = E_CONFIG_DD_NEW("IBar_Config", Config);
|
||||||
|
#undef T
|
||||||
|
#undef D
|
||||||
|
#define T Config
|
||||||
|
#define D conf_edd
|
||||||
|
E_CONFIG_LIST(D, T, items, conf_item_edd);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
config_descriptor_shutdown(void)
|
||||||
|
{
|
||||||
|
E_CONFIG_DD_FREE(conf_item_edd);
|
||||||
|
E_CONFIG_DD_FREE(conf_edd);
|
||||||
|
}
|
||||||
|
|
||||||
|
E_Config_DD *
|
||||||
|
config_descriptor_get(void)
|
||||||
|
{
|
||||||
|
return conf_edd;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
#ifndef IBAR_CONFIG_DESCRIPTOR_H
|
||||||
|
#define IBAR_CONFIG_DESCRIPTOR_H
|
||||||
|
|
||||||
|
|
||||||
|
#undef _Config
|
||||||
|
#undef Config
|
||||||
|
#undef _Config_Item
|
||||||
|
#undef Config_Item
|
||||||
|
#undef config_descriptor_init
|
||||||
|
#undef config_descriptor_shutdown
|
||||||
|
#undef config_descriptor_get
|
||||||
|
|
||||||
|
#define _Config _Ibar_Config
|
||||||
|
#define Config Ibar_Config
|
||||||
|
#define _Config_Item _Ibar_Config_Item
|
||||||
|
#define Config_Item Ibar_Config_Item
|
||||||
|
#define config_descriptor_init ibar_config_descriptor_init
|
||||||
|
#define config_descriptor_shutdown ibar_config_descriptor_shutdown
|
||||||
|
#define config_descriptor_get ibar_config_descriptor_get
|
||||||
|
|
||||||
|
typedef struct _Config Config;
|
||||||
|
typedef struct _Config_Item Config_Item;
|
||||||
|
|
||||||
|
struct _Config
|
||||||
|
{
|
||||||
|
/* saved * loaded config values */
|
||||||
|
Eina_List *items;
|
||||||
|
/* just config state */
|
||||||
|
E_Module *module;
|
||||||
|
E_Config_Dialog *config_dialog;
|
||||||
|
Eina_List *instances;
|
||||||
|
Eina_List *handlers;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _Config_Item
|
||||||
|
{
|
||||||
|
const char *id;
|
||||||
|
const char *dir;
|
||||||
|
int show_label;
|
||||||
|
int eap_label;
|
||||||
|
int lock_move;
|
||||||
|
int dont_add_nonorder;
|
||||||
|
unsigned char dont_track_launch;
|
||||||
|
unsigned char dont_icon_menu_mouseover;
|
||||||
|
};
|
||||||
|
|
||||||
|
void config_descriptor_init(void);
|
||||||
|
void config_descriptor_shutdown(void);
|
||||||
|
E_Config_DD *config_descriptor_get(void);
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* IBAR_CONFIG_DESCRIPTOR_H */
|
|
@ -141,9 +141,6 @@ static Eina_Bool _ibar_cb_out_hide_delay(void *data);
|
||||||
static void _ibar_icon_menu_show(IBar_Icon *ic, Eina_Bool grab);
|
static void _ibar_icon_menu_show(IBar_Icon *ic, Eina_Bool grab);
|
||||||
static void _ibar_icon_menu_hide(IBar_Icon *ic, Eina_Bool grab);
|
static void _ibar_icon_menu_hide(IBar_Icon *ic, Eina_Bool grab);
|
||||||
|
|
||||||
static E_Config_DD *conf_edd = NULL;
|
|
||||||
static E_Config_DD *conf_item_edd = NULL;
|
|
||||||
|
|
||||||
static Eina_Hash *ibar_orders = NULL;
|
static Eina_Hash *ibar_orders = NULL;
|
||||||
static Eina_List *ibars = NULL;
|
static Eina_List *ibars = NULL;
|
||||||
|
|
||||||
|
@ -2770,28 +2767,8 @@ E_API E_Module_Api e_modapi =
|
||||||
E_API void *
|
E_API void *
|
||||||
e_modapi_init(E_Module *m)
|
e_modapi_init(E_Module *m)
|
||||||
{
|
{
|
||||||
conf_item_edd = E_CONFIG_DD_NEW("IBar_Config_Item", Config_Item);
|
config_descriptor_init();
|
||||||
#undef T
|
ibar_config = e_config_domain_load("module.ibar", config_descriptor_get());
|
||||||
#undef D
|
|
||||||
#define T Config_Item
|
|
||||||
#define D conf_item_edd
|
|
||||||
E_CONFIG_VAL(D, T, id, STR);
|
|
||||||
E_CONFIG_VAL(D, T, dir, STR);
|
|
||||||
E_CONFIG_VAL(D, T, show_label, INT);
|
|
||||||
E_CONFIG_VAL(D, T, eap_label, INT);
|
|
||||||
E_CONFIG_VAL(D, T, lock_move, INT);
|
|
||||||
E_CONFIG_VAL(D, T, dont_add_nonorder, INT);
|
|
||||||
E_CONFIG_VAL(D, T, dont_track_launch, UCHAR);
|
|
||||||
E_CONFIG_VAL(D, T, dont_icon_menu_mouseover, UCHAR);
|
|
||||||
|
|
||||||
conf_edd = E_CONFIG_DD_NEW("IBar_Config", Config);
|
|
||||||
#undef T
|
|
||||||
#undef D
|
|
||||||
#define T Config
|
|
||||||
#define D conf_edd
|
|
||||||
E_CONFIG_LIST(D, T, items, conf_item_edd);
|
|
||||||
|
|
||||||
ibar_config = e_config_domain_load("module.ibar", conf_edd);
|
|
||||||
|
|
||||||
if (!ibar_config)
|
if (!ibar_config)
|
||||||
{
|
{
|
||||||
|
@ -2870,15 +2847,14 @@ e_modapi_shutdown(E_Module *m EINA_UNUSED)
|
||||||
ibar_config = NULL;
|
ibar_config = NULL;
|
||||||
eina_hash_free(ibar_orders);
|
eina_hash_free(ibar_orders);
|
||||||
ibar_orders = NULL;
|
ibar_orders = NULL;
|
||||||
E_CONFIG_DD_FREE(conf_item_edd);
|
config_descriptor_shutdown();
|
||||||
E_CONFIG_DD_FREE(conf_edd);
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
E_API int
|
E_API int
|
||||||
e_modapi_save(E_Module *m EINA_UNUSED)
|
e_modapi_save(E_Module *m EINA_UNUSED)
|
||||||
{
|
{
|
||||||
e_config_domain_save("module.ibar", conf_edd, ibar_config);
|
e_config_domain_save("module.ibar", config_descriptor_get(), ibar_config);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,31 +1,7 @@
|
||||||
#ifndef E_MOD_MAIN_H
|
#ifndef E_MOD_MAIN_H
|
||||||
#define E_MOD_MAIN_H
|
#define E_MOD_MAIN_H
|
||||||
|
|
||||||
typedef struct _Config Config;
|
#include "config_descriptor.h"
|
||||||
typedef struct _Config_Item Config_Item;
|
|
||||||
|
|
||||||
struct _Config
|
|
||||||
{
|
|
||||||
/* saved * loaded config values */
|
|
||||||
Eina_List *items;
|
|
||||||
/* just config state */
|
|
||||||
E_Module *module;
|
|
||||||
E_Config_Dialog *config_dialog;
|
|
||||||
Eina_List *instances;
|
|
||||||
Eina_List *handlers;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _Config_Item
|
|
||||||
{
|
|
||||||
const char *id;
|
|
||||||
const char *dir;
|
|
||||||
int show_label;
|
|
||||||
int eap_label;
|
|
||||||
int lock_move;
|
|
||||||
int dont_add_nonorder;
|
|
||||||
unsigned char dont_track_launch;
|
|
||||||
unsigned char dont_icon_menu_mouseover;
|
|
||||||
};
|
|
||||||
|
|
||||||
E_API extern E_Module_Api e_modapi;
|
E_API extern E_Module_Api e_modapi;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue