forked from enlightenment/enlightenment
Add configuration options to gadman.
Now you can choose the type of background (theme default, custom color, custom image or transparent). And you can also choose to enable/disable the animations for gadgets/background. The custom background image can be any of the e17 background or even a normal (jpg, png..) image. This BREAK all existing themes :( I will update the b_and_w theme tomorrow SVN revision: 36576
This commit is contained in:
parent
574555ca5f
commit
a964e85dc2
|
@ -1430,37 +1430,115 @@ group {
|
||||||
group {
|
group {
|
||||||
name: "e/gadman/full_bg";
|
name: "e/gadman/full_bg";
|
||||||
parts {
|
parts {
|
||||||
part{
|
part {
|
||||||
name: "bg";
|
name: "bg";
|
||||||
type: RECT;
|
type: RECT;
|
||||||
mouse_events: 1;
|
mouse_events: 0;
|
||||||
description {
|
description {
|
||||||
state: "default" 0.0;
|
state: "default" 0.0;
|
||||||
color: 255 255 255 200;
|
color: 255 255 255 0;
|
||||||
}
|
}
|
||||||
description {
|
description {
|
||||||
state: "hidden" 0.0;
|
state: "visible" 0.0;
|
||||||
|
color: 255 255 255 200;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part {
|
||||||
|
name: "custom_bg";
|
||||||
|
type: RECT;
|
||||||
|
description {
|
||||||
|
state: "default" 0.0;
|
||||||
color: 255 255 255 0;
|
color: 255 255 255 0;
|
||||||
}
|
}
|
||||||
|
description {
|
||||||
|
state: "visible" 0.0;
|
||||||
|
color: 255 255 255 200;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part {
|
||||||
|
name: "e.swallow.bg";
|
||||||
|
type: SWALLOW;
|
||||||
|
clip_to: "custom_bg";
|
||||||
|
description {
|
||||||
|
state: "default" 0.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part {
|
||||||
|
name: "grabber";
|
||||||
|
type: RECT;
|
||||||
|
mouse_events: 1;
|
||||||
|
repeat_events: 1;
|
||||||
|
description {
|
||||||
|
state: "default" 0.0;
|
||||||
|
color: 0 0 0 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
programs {
|
programs {
|
||||||
program {
|
program {
|
||||||
name: "hide";
|
name: "show";
|
||||||
signal: "e,state,visibility,hide";
|
signal: "e,state,visibility,show";
|
||||||
source: "e";
|
source: "e";
|
||||||
action: STATE_SET "hidden" 0.0;
|
action: STATE_SET "visible" 0.0;
|
||||||
transition: LINEAR 0.4;
|
transition: LINEAR 0.4;
|
||||||
target: "bg";
|
target: "bg";
|
||||||
}
|
}
|
||||||
program {
|
program {
|
||||||
name: "show";
|
name: "show_now";
|
||||||
signal: "e,state,visibility,show";
|
signal: "e,state,visibility,show,now";
|
||||||
|
source: "e";
|
||||||
|
action: STATE_SET "visible" 0.0;
|
||||||
|
transition: LINEAR 0.0;
|
||||||
|
target: "bg";
|
||||||
|
}
|
||||||
|
program {
|
||||||
|
name: "hide";
|
||||||
|
signal: "e,state,visibility,hide";
|
||||||
source: "e";
|
source: "e";
|
||||||
action: STATE_SET "default" 0.0;
|
action: STATE_SET "default" 0.0;
|
||||||
transition: LINEAR 0.4;
|
transition: LINEAR 0.4;
|
||||||
target: "bg";
|
target: "bg";
|
||||||
}
|
}
|
||||||
|
program {
|
||||||
|
name: "hide_now";
|
||||||
|
signal: "e,state,visibility,hide,now";
|
||||||
|
source: "e";
|
||||||
|
action: STATE_SET "default" 0.0;
|
||||||
|
transition: LINEAR 0.0;
|
||||||
|
target: "bg";
|
||||||
|
}
|
||||||
|
program {
|
||||||
|
name: "show_custom";
|
||||||
|
signal: "e,state,visibility,show,custom";
|
||||||
|
source: "e";
|
||||||
|
action: STATE_SET "visible" 0.0;
|
||||||
|
transition: LINEAR 0.4;
|
||||||
|
target: "custom_bg";
|
||||||
|
}
|
||||||
|
program {
|
||||||
|
name: "show_custom_now";
|
||||||
|
signal: "e,state,visibility,show,custom,now";
|
||||||
|
source: "e";
|
||||||
|
action: STATE_SET "visible" 0.0;
|
||||||
|
transition: LINEAR 0.0;
|
||||||
|
target: "custom_bg";
|
||||||
|
}
|
||||||
|
program {
|
||||||
|
name: "hide_custom";
|
||||||
|
signal: "e,state,visibility,hide,custom";
|
||||||
|
source: "e";
|
||||||
|
action: STATE_SET "default" 0.0;
|
||||||
|
transition: LINEAR 0.4;
|
||||||
|
target: "custom_bg";
|
||||||
|
}
|
||||||
|
program {
|
||||||
|
name: "hide_custom_now";
|
||||||
|
signal: "e,state,visibility,hide,custom,now";
|
||||||
|
source: "e";
|
||||||
|
action: STATE_SET "default" 0.0;
|
||||||
|
transition: LINEAR 0.0;
|
||||||
|
target: "custom_bg";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1618,6 +1696,17 @@ group {
|
||||||
target: "overlay";
|
target: "overlay";
|
||||||
target: "e.swallow.content";
|
target: "e.swallow.content";
|
||||||
}
|
}
|
||||||
|
program {
|
||||||
|
name: "hide_now";
|
||||||
|
signal: "e,state,visibility,hide,now";
|
||||||
|
source: "e";
|
||||||
|
action: STATE_SET "hidden" 0.0;
|
||||||
|
transition: ACCELERATE 0.0;
|
||||||
|
target: "items_clip";
|
||||||
|
target: "background";
|
||||||
|
target: "overlay";
|
||||||
|
target: "e.swallow.content";
|
||||||
|
}
|
||||||
program {
|
program {
|
||||||
name: "show";
|
name: "show";
|
||||||
signal: "e,state,visibility,show";
|
signal: "e,state,visibility,show";
|
||||||
|
@ -1629,5 +1718,16 @@ group {
|
||||||
target: "overlay";
|
target: "overlay";
|
||||||
target: "e.swallow.content";
|
target: "e.swallow.content";
|
||||||
}
|
}
|
||||||
|
program {
|
||||||
|
name: "show_now";
|
||||||
|
signal: "e,state,visibility,show,now";
|
||||||
|
source: "e";
|
||||||
|
action: STATE_SET "default" 0.0;
|
||||||
|
transition: DECELERATE 0.0;
|
||||||
|
target: "items_clip";
|
||||||
|
target: "background";
|
||||||
|
target: "overlay";
|
||||||
|
target: "e.swallow.content";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,14 @@ struct _E_Config_Dialog_Data
|
||||||
{
|
{
|
||||||
Evas_Object *o_avail; //List of available gadgets
|
Evas_Object *o_avail; //List of available gadgets
|
||||||
Evas_Object *o_add; //Add button
|
Evas_Object *o_add; //Add button
|
||||||
|
Evas_Object *o_fm; //Filemanager Object
|
||||||
|
Evas_Object *o_sf; //Filemanager Scrollframe
|
||||||
|
Evas_Object *o_btn; //Filemanager updir button
|
||||||
|
E_Color *color; //Custom Color
|
||||||
|
int bg_method; //Type of background
|
||||||
|
int anim_bg; //Anim the background
|
||||||
|
int anim_gad; //Anim the gadgets
|
||||||
|
int fmdir; //Filemanager dir (personal or system)
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Local protos */
|
/* Local protos */
|
||||||
|
@ -15,12 +23,19 @@ static void *_create_data(E_Config_Dialog *cfd);
|
||||||
static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
|
static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
|
||||||
static Evas_Object *_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
|
static Evas_Object *_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
|
||||||
static int _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
|
static int _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
|
||||||
|
static Evas_Object *_adv_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
|
||||||
|
static int _adv_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
|
||||||
static void _fill_gadgets_list(Evas_Object *ilist);
|
static void _fill_gadgets_list(Evas_Object *ilist);
|
||||||
static void _cb_add(void *data, void *data2);
|
static void _cb_add(void *data, void *data2);
|
||||||
static void _avail_list_cb_change(void *data, Evas_Object *obj);
|
static void _avail_list_cb_change(void *data, Evas_Object *obj);
|
||||||
|
static void _cb_fm_radio_change(void *data, Evas_Object *obj);
|
||||||
|
static void _cb_color_changed(void *data, Evas_Object *o);
|
||||||
|
static void _cb_fm_change(void *data, Evas_Object *obj, void *event_info);
|
||||||
|
static void _cb_fm_sel_change(void *data, Evas_Object *obj, void *event_info);
|
||||||
|
static void _cb_button_up(void *data1, void *data2);
|
||||||
|
|
||||||
EAPI E_Config_Dialog *
|
EAPI E_Config_Dialog *
|
||||||
e_int_config_gadman_module(E_Container *con, const char *params __UNUSED__)
|
_config_gadman_module(E_Container *con, const char *params __UNUSED__)
|
||||||
{
|
{
|
||||||
E_Config_Dialog *cfd;
|
E_Config_Dialog *cfd;
|
||||||
E_Config_Dialog_View *v;
|
E_Config_Dialog_View *v;
|
||||||
|
@ -34,9 +49,10 @@ e_int_config_gadman_module(E_Container *con, const char *params __UNUSED__)
|
||||||
v = E_NEW(E_Config_Dialog_View, 1);
|
v = E_NEW(E_Config_Dialog_View, 1);
|
||||||
v->create_cfdata = _create_data;
|
v->create_cfdata = _create_data;
|
||||||
v->free_cfdata = _free_data;
|
v->free_cfdata = _free_data;
|
||||||
v->basic.apply_cfdata = _basic_apply_data;
|
|
||||||
v->basic.create_widgets = _basic_create_widgets;
|
v->basic.create_widgets = _basic_create_widgets;
|
||||||
v->override_auto_apply = 0; //TODO this should remove the ok/apply buttons ... but doesnt work :(
|
v->basic.apply_cfdata = _basic_apply_data;
|
||||||
|
v->advanced.create_widgets = _adv_create_widgets;
|
||||||
|
v->advanced.apply_cfdata = _adv_apply_data;
|
||||||
|
|
||||||
snprintf(buf, sizeof(buf), "%s/e-module-gadman.edj", Man->module->dir);
|
snprintf(buf, sizeof(buf), "%s/e-module-gadman.edj", Man->module->dir);
|
||||||
cfd = e_config_dialog_new(con, _("Gadgets Manager"),
|
cfd = e_config_dialog_new(con, _("Gadgets Manager"),
|
||||||
|
@ -44,7 +60,6 @@ e_int_config_gadman_module(E_Container *con, const char *params __UNUSED__)
|
||||||
buf, 0, v, Man);
|
buf, 0, v, Man);
|
||||||
|
|
||||||
Man->config_dialog = cfd;
|
Man->config_dialog = cfd;
|
||||||
|
|
||||||
return Man->config_dialog;
|
return Man->config_dialog;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,6 +69,23 @@ _create_data(E_Config_Dialog *cfd)
|
||||||
E_Config_Dialog_Data *cfdata;
|
E_Config_Dialog_Data *cfdata;
|
||||||
|
|
||||||
cfdata = E_NEW(E_Config_Dialog_Data, 1);
|
cfdata = E_NEW(E_Config_Dialog_Data, 1);
|
||||||
|
cfdata->bg_method = Man->conf->bg_type;
|
||||||
|
if (Man->conf->custom_bg)
|
||||||
|
{
|
||||||
|
if (!strstr(Man->conf->custom_bg, e_user_homedir_get()))
|
||||||
|
cfdata->fmdir = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
cfdata->color = E_NEW(E_Color, 1);
|
||||||
|
cfdata->color->r = Man->conf->color_r;
|
||||||
|
cfdata->color->g = Man->conf->color_g;
|
||||||
|
cfdata->color->b = Man->conf->color_b;
|
||||||
|
cfdata->color->a = Man->conf->color_a;
|
||||||
|
cfdata->anim_bg = Man->conf->anim_bg;
|
||||||
|
cfdata->anim_gad = Man->conf->anim_gad;
|
||||||
|
|
||||||
|
e_color_update_rgb(cfdata->color);
|
||||||
|
|
||||||
return cfdata;
|
return cfdata;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,6 +93,7 @@ static void
|
||||||
_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
||||||
{
|
{
|
||||||
Man->config_dialog = NULL;
|
Man->config_dialog = NULL;
|
||||||
|
E_FREE(cfdata->color);
|
||||||
E_FREE(cfdata);
|
E_FREE(cfdata);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,6 +120,7 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
|
||||||
e_widget_framelist_object_append(of, ob);
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
|
||||||
e_widget_list_object_append(o, of, 1, 1, 0.5);
|
e_widget_list_object_append(o, of, 1, 1, 0.5);
|
||||||
|
e_dialog_resizable_set(cfd->dia, 1);
|
||||||
|
|
||||||
return o;
|
return o;
|
||||||
}
|
}
|
||||||
|
@ -99,6 +133,151 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Evas_Object *
|
||||||
|
_adv_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
|
||||||
|
{
|
||||||
|
Evas_Object *rt, *ow, *ft, *of;
|
||||||
|
E_Radio_Group *rg;
|
||||||
|
E_Fm2_Config fmc;
|
||||||
|
char path[PATH_MAX];
|
||||||
|
|
||||||
|
ft = e_widget_table_add(evas, 0);
|
||||||
|
|
||||||
|
//Background mode
|
||||||
|
of = e_widget_frametable_add(evas, _("Background Mode"), 0);
|
||||||
|
rg = e_widget_radio_group_new(&(cfdata->bg_method));
|
||||||
|
ow = e_widget_radio_add(evas, _("Theme Defined"), BG_STD, rg);
|
||||||
|
//~ evas_object_smart_callback_add(ow, "changed", _cb_method_change, cfdata);
|
||||||
|
e_widget_frametable_object_append(of, ow, 0, 0, 1, 1, 1, 0, 1, 0);
|
||||||
|
ow = e_widget_radio_add(evas, _("Custom Image"), BG_CUSTOM, rg);
|
||||||
|
//~ evas_object_smart_callback_add(cfdata->o_custom, "changed",
|
||||||
|
//~ _cb_method_change, cfdata);
|
||||||
|
e_widget_frametable_object_append(of, ow, 0, 1, 1, 1, 1, 0, 1, 0);
|
||||||
|
ow = e_widget_radio_add(evas, _("Custom Color"), BG_COLOR, rg);
|
||||||
|
//~ evas_object_smart_callback_add(cfdata->o_custom, "changed",
|
||||||
|
//~ _cb_method_change, cfdata);
|
||||||
|
e_widget_frametable_object_append(of, ow, 0, 2, 1, 1, 1, 0, 1, 0);
|
||||||
|
ow = e_widget_radio_add(evas, _("Transparent"), BG_TRANS, rg);
|
||||||
|
//~ evas_object_smart_callback_add(cfdata->o_custom, "changed",
|
||||||
|
//~ _cb_method_change, cfdata);
|
||||||
|
e_widget_frametable_object_append(of, ow, 0, 3, 1, 1, 1, 0, 1, 0);
|
||||||
|
e_widget_table_object_append(ft, of, 0, 0, 1, 1, 1, 1, 1, 1);
|
||||||
|
|
||||||
|
//Animations
|
||||||
|
of = e_widget_frametable_add(evas, _("Animations"), 0);
|
||||||
|
ow = e_widget_check_add(evas, "Background", &(cfdata->anim_bg));
|
||||||
|
e_widget_frametable_object_append(of, ow, 0, 0, 1, 1, 1, 0, 1, 0);
|
||||||
|
|
||||||
|
ow = e_widget_check_add(evas, "Gadgets", &(cfdata->anim_gad));
|
||||||
|
e_widget_frametable_object_append(of, ow, 0, 1, 1, 1, 1, 0, 1, 0);
|
||||||
|
|
||||||
|
e_widget_table_object_append(ft, of, 0, 1, 1, 1, 1, 1, 1, 1);
|
||||||
|
|
||||||
|
//Custom Color
|
||||||
|
of = e_widget_framelist_add(evas, _("Custom Color"), 0);
|
||||||
|
ow = e_widget_color_well_add(evas, cfdata->color, 1);
|
||||||
|
e_widget_framelist_object_append(of, ow);
|
||||||
|
e_widget_on_change_hook_set(ow, _cb_color_changed, cfdata);
|
||||||
|
e_widget_table_object_append(ft, of, 0, 2, 1, 1, 1, 1, 1, 1);
|
||||||
|
|
||||||
|
//Background filemanager chooser
|
||||||
|
of = e_widget_frametable_add(evas, _("Custom Image"), 0);
|
||||||
|
rg = e_widget_radio_group_new(&(cfdata->fmdir));
|
||||||
|
ow = e_widget_radio_add(evas, _("Personal"), 0, rg);
|
||||||
|
e_widget_on_change_hook_set(ow, _cb_fm_radio_change, cfdata);
|
||||||
|
e_widget_frametable_object_append(of, ow, 0, 0, 1, 1, 1, 1, 0, 0);
|
||||||
|
ow = e_widget_radio_add(evas, _("System"), 1, rg);
|
||||||
|
e_widget_on_change_hook_set(ow, _cb_fm_radio_change, cfdata);
|
||||||
|
e_widget_frametable_object_append(of, ow, 1, 0, 1, 1, 1, 1, 0, 0);
|
||||||
|
|
||||||
|
cfdata->o_btn = e_widget_button_add(evas, _("Go up a Directory"),
|
||||||
|
"widgets/up_dir", _cb_button_up,
|
||||||
|
cfdata, NULL);
|
||||||
|
e_widget_frametable_object_append(of, cfdata->o_btn, 0, 1, 2, 1, 1, 1, 0, 0);
|
||||||
|
|
||||||
|
|
||||||
|
if (cfdata->fmdir == 1)
|
||||||
|
snprintf(path, sizeof(path), "%s/data/backgrounds", e_prefix_data_get());
|
||||||
|
else
|
||||||
|
snprintf(path, sizeof(path), "%s/.e/e/backgrounds", e_user_homedir_get());
|
||||||
|
|
||||||
|
ow = e_fm2_add(evas);
|
||||||
|
cfdata->o_fm = ow;
|
||||||
|
memset(&fmc, 0, sizeof(E_Fm2_Config));
|
||||||
|
fmc.view.mode = E_FM2_VIEW_MODE_LIST;
|
||||||
|
fmc.view.open_dirs_in_place = 1;
|
||||||
|
fmc.view.selector = 1;
|
||||||
|
fmc.view.single_click = 0;
|
||||||
|
fmc.view.no_subdir_jump = 0;
|
||||||
|
fmc.icon.list.w = 48;
|
||||||
|
fmc.icon.list.h = 48;
|
||||||
|
fmc.icon.fixed.w = 1;
|
||||||
|
fmc.icon.fixed.h = 1;
|
||||||
|
fmc.icon.extension.show = 0;
|
||||||
|
fmc.icon.key_hint = NULL;
|
||||||
|
fmc.list.sort.no_case = 1;
|
||||||
|
fmc.list.sort.dirs.first = 0;
|
||||||
|
fmc.list.sort.dirs.last = 1;
|
||||||
|
fmc.selection.single = 1;
|
||||||
|
fmc.selection.windows_modifiers = 0;
|
||||||
|
e_fm2_config_set(ow, &fmc);
|
||||||
|
e_fm2_icon_menu_flags_set(ow, E_FM2_MENU_NO_SHOW_HIDDEN);
|
||||||
|
e_fm2_path_set(ow, path, "/");
|
||||||
|
|
||||||
|
evas_object_smart_callback_add(ow, "selection_change",
|
||||||
|
_cb_fm_sel_change, cfdata);
|
||||||
|
evas_object_smart_callback_add(ow, "changed", _cb_fm_change, cfdata);
|
||||||
|
|
||||||
|
cfdata->o_sf = e_widget_scrollframe_pan_add(evas, ow, e_fm2_pan_set,
|
||||||
|
e_fm2_pan_get,
|
||||||
|
e_fm2_pan_max_get,
|
||||||
|
e_fm2_pan_child_size_get);
|
||||||
|
e_widget_min_size_set(cfdata->o_sf, 200, 250);
|
||||||
|
e_widget_frametable_object_append(of, cfdata->o_sf, 0, 2, 2, 1, 1, 1, 1, 1);
|
||||||
|
e_widget_table_object_append(ft, of, 1, 0, 1, 3, 1, 1, 1, 1);
|
||||||
|
|
||||||
|
e_dialog_resizable_set(cfd->dia, 1);
|
||||||
|
|
||||||
|
return ft;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
_adv_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
||||||
|
{
|
||||||
|
Evas_List *sel;
|
||||||
|
const char *p = NULL;
|
||||||
|
E_Fm2_Icon_Info *ic;
|
||||||
|
char path[PATH_MAX];
|
||||||
|
|
||||||
|
Man->conf->bg_type = cfdata->bg_method;
|
||||||
|
Man->conf->color_r = cfdata->color->r;
|
||||||
|
Man->conf->color_g = cfdata->color->g;
|
||||||
|
Man->conf->color_b = cfdata->color->b;
|
||||||
|
Man->conf->color_a = 255;
|
||||||
|
Man->conf->anim_bg = cfdata->anim_bg;
|
||||||
|
Man->conf->anim_gad = cfdata->anim_gad;
|
||||||
|
|
||||||
|
p = e_fm2_real_path_get(cfdata->o_fm);
|
||||||
|
sel = e_fm2_selected_list_get(cfdata->o_fm);
|
||||||
|
if (sel && p)
|
||||||
|
{
|
||||||
|
ic = sel->data;
|
||||||
|
if (ic->file)
|
||||||
|
{
|
||||||
|
snprintf(path, sizeof(path), "%s/%s", p, ic->file);
|
||||||
|
if (Man->conf->custom_bg)
|
||||||
|
evas_stringshare_del(Man->conf->custom_bg);
|
||||||
|
Man->conf->custom_bg = evas_stringshare_add(path);
|
||||||
|
}
|
||||||
|
evas_list_free(sel);
|
||||||
|
}
|
||||||
|
|
||||||
|
e_config_save_queue();
|
||||||
|
gadman_update_bg();
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
//Basic Callbacks
|
||||||
static void
|
static void
|
||||||
_fill_gadgets_list(Evas_Object *ilist)
|
_fill_gadgets_list(Evas_Object *ilist)
|
||||||
{
|
{
|
||||||
|
@ -164,3 +343,81 @@ _avail_list_cb_change(void *data, Evas_Object *obj)
|
||||||
if (!(cfdata = data)) return;
|
if (!(cfdata = data)) return;
|
||||||
e_widget_disabled_set(cfdata->o_add, 0);
|
e_widget_disabled_set(cfdata->o_add, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Advanced Callbacks
|
||||||
|
static void
|
||||||
|
_cb_color_changed(void *data, Evas_Object *o)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata;
|
||||||
|
cfdata = data;
|
||||||
|
if (!cfdata) return;
|
||||||
|
e_color_update_rgb(cfdata->color);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_fm_radio_change(void *data, Evas_Object *obj)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata;
|
||||||
|
char path[PATH_MAX];
|
||||||
|
|
||||||
|
cfdata = data;
|
||||||
|
if (!cfdata->o_fm) return;
|
||||||
|
if (cfdata->fmdir == 0)
|
||||||
|
snprintf(path, sizeof(path), "%s/.e/e/backgrounds", e_user_homedir_get());
|
||||||
|
else
|
||||||
|
snprintf(path, sizeof(path), "%s/data/backgrounds", e_prefix_data_get());
|
||||||
|
e_fm2_path_set(cfdata->o_fm, path, "/");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_fm_change(void *data, Evas_Object *obj, void *event_info)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata;
|
||||||
|
const char *p;
|
||||||
|
char path[PATH_MAX];
|
||||||
|
|
||||||
|
cfdata = data;
|
||||||
|
if (!Man->conf->custom_bg) return;
|
||||||
|
if (!cfdata->o_fm) return;
|
||||||
|
|
||||||
|
p = e_fm2_real_path_get(cfdata->o_fm);
|
||||||
|
if (!p) return;
|
||||||
|
|
||||||
|
if (strncmp(p, Man->conf->custom_bg, strlen(p))) return;
|
||||||
|
|
||||||
|
snprintf(path, sizeof(path), "%s/.e/e/backgrounds", e_user_homedir_get());
|
||||||
|
if (!strncmp(Man->conf->custom_bg, path, strlen(path)))
|
||||||
|
p = Man->conf->custom_bg + strlen(path) + 1;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
snprintf(path, sizeof(path), "%s/data/backgrounds", e_prefix_data_get());
|
||||||
|
if (!strncmp(Man->conf->custom_bg, path, strlen(path)))
|
||||||
|
p = Man->conf->custom_bg + strlen(path) + 1;
|
||||||
|
else
|
||||||
|
p = Man->conf->custom_bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
e_fm2_select_set(cfdata->o_fm, p, 1);
|
||||||
|
e_fm2_file_show(cfdata->o_fm, p);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_fm_sel_change(void *data, Evas_Object *obj, void *event_info)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata;
|
||||||
|
|
||||||
|
cfdata = data;
|
||||||
|
e_widget_change(cfdata->o_sf);
|
||||||
|
}
|
||||||
|
static void
|
||||||
|
_cb_button_up(void *data1, void *data2)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata;
|
||||||
|
|
||||||
|
cfdata = data1;
|
||||||
|
if (!cfdata->o_fm) return;
|
||||||
|
|
||||||
|
e_fm2_parent_go(cfdata->o_fm);
|
||||||
|
e_widget_scrollframe_child_pos_set(cfdata->o_sf, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#ifndef E_MOD_CONFIG_H
|
#ifndef E_MOD_CONFIG_H
|
||||||
#define E_MOD_CONFIG_H
|
#define E_MOD_CONFIG_H
|
||||||
|
|
||||||
EAPI E_Config_Dialog *e_int_config_gadman_module(E_Container *con, const char *params __UNUSED__);
|
EAPI E_Config_Dialog *_config_gadman_module(E_Container *con, const char *params __UNUSED__);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
#include <e.h>
|
#include <e.h>
|
||||||
//#include <X11/extensions/shape.h>
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "e_mod_main.h"
|
#include "e_mod_main.h"
|
||||||
#include "e_mod_gadman.h"
|
#include "e_mod_gadman.h"
|
||||||
|
@ -11,7 +10,7 @@ static void _save_widget_position(E_Gadcon_Client *gcc);
|
||||||
static void _apply_widget_position(E_Gadcon_Client *gcc);
|
static void _apply_widget_position(E_Gadcon_Client *gcc);
|
||||||
static char *_get_bind_text(const char* action);
|
static char *_get_bind_text(const char* action);
|
||||||
|
|
||||||
static void _hide_finished(void *data, Evas_Object *o, const char *em, const char *src);
|
//static void _hide_finished(void *data, Evas_Object *o, const char *em, const char *src);
|
||||||
|
|
||||||
static Evas_Object* _create_mover(E_Gadcon *gc);
|
static Evas_Object* _create_mover(E_Gadcon *gc);
|
||||||
static Evas_Object* _get_mover(E_Gadcon_Client *gcc);
|
static Evas_Object* _get_mover(E_Gadcon_Client *gcc);
|
||||||
|
@ -277,16 +276,37 @@ gadman_gadgets_show(void)
|
||||||
|
|
||||||
Man->visible = 1;
|
Man->visible = 1;
|
||||||
ecore_evas_show(Man->top_ee);
|
ecore_evas_show(Man->top_ee);
|
||||||
|
if (Man->conf->bg_type == BG_STD)
|
||||||
edje_object_signal_emit(Man->full_bg, "e,state,visibility,show", "e");
|
{
|
||||||
|
if (Man->conf->anim_bg)
|
||||||
|
edje_object_signal_emit(Man->full_bg,
|
||||||
|
"e,state,visibility,show", "e");
|
||||||
|
else
|
||||||
|
edje_object_signal_emit(Man->full_bg,
|
||||||
|
"e,state,visibility,show,now", "e");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (Man->conf->anim_bg)
|
||||||
|
edje_object_signal_emit(Man->full_bg,
|
||||||
|
"e,state,visibility,show,custom", "e");
|
||||||
|
else
|
||||||
|
edje_object_signal_emit(Man->full_bg,
|
||||||
|
"e,state,visibility,show,custom,now", "e");
|
||||||
|
}
|
||||||
|
|
||||||
for (l = Man->gadgets; l; l = l->next)
|
for (l = Man->gadgets; l; l = l->next)
|
||||||
{
|
{
|
||||||
E_Gadcon_Client *gcc;
|
E_Gadcon_Client *gcc;
|
||||||
|
|
||||||
if (!(gcc = l->data)) continue;
|
if (!(gcc = l->data)) continue;
|
||||||
if (gcc->gadcon == Man->gc_top)
|
if (gcc->gadcon != Man->gc_top) continue;
|
||||||
edje_object_signal_emit(gcc->o_frame, "e,state,visibility,show", "e");
|
if (Man->conf->anim_gad)
|
||||||
|
edje_object_signal_emit(gcc->o_frame,
|
||||||
|
"e,state,visibility,show", "e");
|
||||||
|
else
|
||||||
|
edje_object_signal_emit(gcc->o_frame,
|
||||||
|
"e,state,visibility,show,now", "e");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -297,15 +317,33 @@ gadman_gadgets_hide(void)
|
||||||
|
|
||||||
Man->visible = 0;
|
Man->visible = 0;
|
||||||
|
|
||||||
edje_object_signal_emit(Man->full_bg, "e,state,visibility,hide", "e");
|
if (Man->conf->anim_bg)
|
||||||
|
{
|
||||||
|
edje_object_signal_emit(Man->full_bg,
|
||||||
|
"e,state,visibility,hide", "e");
|
||||||
|
edje_object_signal_emit(Man->full_bg,
|
||||||
|
"e,state,visibility,hide,custom", "e");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
edje_object_signal_emit(Man->full_bg,
|
||||||
|
"e,state,visibility,hide,now", "e");
|
||||||
|
edje_object_signal_emit(Man->full_bg,
|
||||||
|
"e,state,visibility,hide,custom,now", "e");
|
||||||
|
}
|
||||||
|
|
||||||
for (l = Man->gadgets; l; l = l->next)
|
for (l = Man->gadgets; l; l = l->next)
|
||||||
{
|
{
|
||||||
E_Gadcon_Client *gcc;
|
E_Gadcon_Client *gcc;
|
||||||
|
|
||||||
if (!(gcc = l->data)) continue;
|
if (!(gcc = l->data)) continue;
|
||||||
if (gcc->gadcon == Man->gc_top)
|
if (gcc->gadcon != Man->gc_top) continue;
|
||||||
edje_object_signal_emit(gcc->o_frame, "e,state,visibility,hide", "e");
|
if (Man->conf->anim_gad)
|
||||||
|
edje_object_signal_emit(gcc->o_frame,
|
||||||
|
"e,state,visibility,hide", "e");
|
||||||
|
else
|
||||||
|
edje_object_signal_emit(gcc->o_frame,
|
||||||
|
"e,state,visibility,hide,now", "e");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -318,6 +356,54 @@ gadman_gadgets_toggle(void)
|
||||||
gadman_gadgets_show();
|
gadman_gadgets_show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gadman_update_bg(void)
|
||||||
|
{
|
||||||
|
Evas_Object *obj;
|
||||||
|
const char *ext;
|
||||||
|
|
||||||
|
obj = edje_object_part_swallow_get(Man->full_bg, "e.swallow.bg");
|
||||||
|
if (obj)
|
||||||
|
{
|
||||||
|
edje_object_part_unswallow(Man->full_bg, obj);
|
||||||
|
evas_object_del(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (Man->conf->bg_type)
|
||||||
|
{
|
||||||
|
case BG_STD:
|
||||||
|
case BG_TRANS:
|
||||||
|
break;
|
||||||
|
case BG_COLOR:
|
||||||
|
obj = evas_object_rectangle_add(Man->gc_top->evas);
|
||||||
|
evas_object_color_set(obj, Man->conf->color_r, Man->conf->color_g,
|
||||||
|
Man->conf->color_b, 200);
|
||||||
|
edje_object_part_swallow(Man->full_bg, "e.swallow.bg", obj);
|
||||||
|
break;
|
||||||
|
case BG_CUSTOM:
|
||||||
|
ext = strrchr(Man->conf->custom_bg, '.');
|
||||||
|
if (!strcmp(ext, ".edj") || !strcmp(ext, ".EDJ"))
|
||||||
|
{
|
||||||
|
//THIS IS FOR E17 backgrounds
|
||||||
|
obj = edje_object_add(Man->gc_top->evas);
|
||||||
|
edje_object_file_set(obj, Man->conf->custom_bg,
|
||||||
|
"e/desktop/background");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//THIS IS FOR A NORMAL IMAGE
|
||||||
|
obj = evas_object_image_add(Man->gc_top->evas);
|
||||||
|
evas_object_image_file_set(obj, Man->conf->custom_bg, NULL);
|
||||||
|
evas_object_image_fill_set(obj, 0, 0, Man->container->w,
|
||||||
|
Man->container->h);
|
||||||
|
}
|
||||||
|
edje_object_part_swallow(Man->full_bg, "e.swallow.bg", obj);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Internals */
|
/* Internals */
|
||||||
static E_Gadcon*
|
static E_Gadcon*
|
||||||
_gadman_gadcon_new(const char* name, int ontop)
|
_gadman_gadcon_new(const char* name, int ontop)
|
||||||
|
@ -336,18 +422,16 @@ _gadman_gadcon_new(const char* name, int ontop)
|
||||||
/* Create ecore fullscreen window */
|
/* Create ecore fullscreen window */
|
||||||
if (ontop)
|
if (ontop)
|
||||||
{
|
{
|
||||||
Man->top_ee =
|
Man->top_ee = e_canvas_new(e_config->evas_engine_popups,
|
||||||
e_canvas_new(e_config->evas_engine_popups, Man->container->win,
|
Man->container->win, 0, 0, 0, 0, 1, 1,
|
||||||
0, 0, 0, 0, 1, 1, &(Man->top_win), NULL);
|
&(Man->top_win), NULL);
|
||||||
|
|
||||||
if (Man->use_composite)
|
if (Man->use_composite)
|
||||||
{
|
{
|
||||||
ecore_evas_alpha_set(Man->top_ee, 1);
|
ecore_evas_alpha_set(Man->top_ee, 1);
|
||||||
Man->top_win = ecore_evas_software_x11_window_get(Man->top_ee);
|
Man->top_win = ecore_evas_software_x11_window_get(Man->top_ee);
|
||||||
// Leave 1px to switch desktop when mouse is on border
|
ecore_x_window_shape_rectangle_set(Man->top_win, 0, 0,
|
||||||
ecore_x_window_shape_rectangle_set(Man->top_win, 1, 1,
|
Man->width, Man->height);
|
||||||
(Man->width - 2),
|
|
||||||
(Man->height - 2));
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
ecore_evas_shaped_set(Man->top_ee, 1);
|
ecore_evas_shaped_set(Man->top_ee, 1);
|
||||||
|
@ -365,10 +449,8 @@ _gadman_gadcon_new(const char* name, int ontop)
|
||||||
Man->full_bg = edje_object_add(gc->evas);
|
Man->full_bg = edje_object_add(gc->evas);
|
||||||
e_theme_edje_object_set(Man->full_bg, "base/theme/gadman",
|
e_theme_edje_object_set(Man->full_bg, "base/theme/gadman",
|
||||||
"e/gadman/full_bg");
|
"e/gadman/full_bg");
|
||||||
edje_object_signal_callback_add(Man->full_bg, "mouse,down,*", "bg",
|
edje_object_signal_callback_add(Man->full_bg, "mouse,down,*",
|
||||||
on_bg_click, NULL);
|
"grabber", on_bg_click, NULL);
|
||||||
edje_object_signal_callback_add(Man->full_bg, "program,stop", "hide",
|
|
||||||
_hide_finished, NULL);
|
|
||||||
evas_object_move(Man->full_bg, 0, 0);
|
evas_object_move(Man->full_bg, 0, 0);
|
||||||
evas_object_resize(Man->full_bg, Man->width, Man->height);
|
evas_object_resize(Man->full_bg, Man->width, Man->height);
|
||||||
evas_object_show(Man->full_bg);
|
evas_object_show(Man->full_bg);
|
||||||
|
@ -646,11 +728,12 @@ _get_bind_text(const char* action)
|
||||||
return "(You must define a binding)";
|
return "(You must define a binding)";
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
//~ static void
|
||||||
_hide_finished(void *data, Evas_Object *o, const char *em, const char *src)
|
//~ _hide_finished(void *data, Evas_Object *o, const char *em, const char *src)
|
||||||
{
|
//~ {
|
||||||
ecore_evas_hide(Man->top_ee);
|
//~ printf("MACOOMEEEE\n");
|
||||||
}
|
//~ ecore_evas_hide(Man->top_ee);
|
||||||
|
//~ }
|
||||||
|
|
||||||
/* Callbacks */
|
/* Callbacks */
|
||||||
static void
|
static void
|
||||||
|
@ -709,7 +792,6 @@ on_menu_style_inset(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||||
E_Gadcon_Client *gcc;
|
E_Gadcon_Client *gcc;
|
||||||
|
|
||||||
gcc = current;
|
gcc = current;
|
||||||
// printf("Inset (%s)\n", gcc->name);
|
|
||||||
|
|
||||||
if (gcc->style) evas_stringshare_del(gcc->style);
|
if (gcc->style) evas_stringshare_del(gcc->style);
|
||||||
gcc->style = evas_stringshare_add(E_GADCON_CLIENT_STYLE_INSET);
|
gcc->style = evas_stringshare_add(E_GADCON_CLIENT_STYLE_INSET);
|
||||||
|
@ -798,8 +880,6 @@ on_frame_click(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||||
int cx, cy, cw, ch;
|
int cx, cy, cw, ch;
|
||||||
|
|
||||||
mn = e_menu_new();
|
mn = e_menu_new();
|
||||||
//e_menu_post_deactivate_callback_set(mn, _e_gadcon_client_cb_menu_post,
|
|
||||||
// gcc);
|
|
||||||
gcc->menu = mn;
|
gcc->menu = mn;
|
||||||
e_gadcon_client_util_menu_items_append(gcc, mn, 0);
|
e_gadcon_client_util_menu_items_append(gcc, mn, 0);
|
||||||
e_gadcon_canvas_zone_geometry_get(gcc->gadcon, &cx, &cy, &cw, &ch);
|
e_gadcon_canvas_zone_geometry_get(gcc->gadcon, &cx, &cy, &cw, &ch);
|
||||||
|
@ -815,7 +895,7 @@ on_top(void *data, Evas_Object *o, const char *em, const char *src)
|
||||||
{
|
{
|
||||||
static int ox, oy, ow, oh; //Object coord
|
static int ox, oy, ow, oh; //Object coord
|
||||||
int mx, my; //Mouse coord
|
int mx, my; //Mouse coord
|
||||||
int action = (int)data;
|
int action = (int)(long)data;
|
||||||
Evas_Object *mover;
|
Evas_Object *mover;
|
||||||
|
|
||||||
mover = _get_mover(current);
|
mover = _get_mover(current);
|
||||||
|
@ -859,7 +939,7 @@ on_right(void *data, Evas_Object *o, const char *em, const char *src)
|
||||||
|
|
||||||
mover = _get_mover(current);
|
mover = _get_mover(current);
|
||||||
|
|
||||||
action = (int)data;
|
action = (int)(long)data;
|
||||||
if (action == DRAG_START)
|
if (action == DRAG_START)
|
||||||
{
|
{
|
||||||
evas_pointer_output_xy_get(current->gadcon->evas, &mx, &my);
|
evas_pointer_output_xy_get(current->gadcon->evas, &mx, &my);
|
||||||
|
@ -894,7 +974,7 @@ on_down(void *data, Evas_Object *o, const char *em, const char *src)
|
||||||
int mx, my; //Mouse coord
|
int mx, my; //Mouse coord
|
||||||
int action;
|
int action;
|
||||||
|
|
||||||
action = (int)data;
|
action = (int)(long)data;
|
||||||
mover = _get_mover(current);
|
mover = _get_mover(current);
|
||||||
|
|
||||||
if (action == DRAG_START)
|
if (action == DRAG_START)
|
||||||
|
@ -930,7 +1010,7 @@ on_left(void *data, Evas_Object *o, const char *em, const char *src)
|
||||||
int mx, my; //Mouse coord
|
int mx, my; //Mouse coord
|
||||||
int action;
|
int action;
|
||||||
|
|
||||||
action = (int)data;
|
action = (int)(long)data;
|
||||||
mover = _get_mover(current);
|
mover = _get_mover(current);
|
||||||
|
|
||||||
if (action == DRAG_START)
|
if (action == DRAG_START)
|
||||||
|
@ -972,7 +1052,7 @@ on_move(void *data, Evas_Object *o, const char *em, const char *src)
|
||||||
int mx, my; //Mouse coord
|
int mx, my; //Mouse coord
|
||||||
int action;
|
int action;
|
||||||
|
|
||||||
action = (int)data;
|
action = (int)(long)data;
|
||||||
mover = _get_mover(current);
|
mover = _get_mover(current);
|
||||||
|
|
||||||
/* DRAG_START */
|
/* DRAG_START */
|
||||||
|
|
|
@ -10,7 +10,25 @@
|
||||||
#define DRAG_STOP 1
|
#define DRAG_STOP 1
|
||||||
#define DRAG_MOVE 2
|
#define DRAG_MOVE 2
|
||||||
|
|
||||||
|
#define BG_STD 0
|
||||||
|
#define BG_COLOR 1
|
||||||
|
#define BG_CUSTOM 2
|
||||||
|
#define BG_TRANS 3
|
||||||
|
|
||||||
typedef struct _Manager Manager;
|
typedef struct _Manager Manager;
|
||||||
|
typedef struct _Config Config;
|
||||||
|
|
||||||
|
struct _Config
|
||||||
|
{
|
||||||
|
int bg_type;
|
||||||
|
int color_r;
|
||||||
|
int color_g;
|
||||||
|
int color_b;
|
||||||
|
int color_a;
|
||||||
|
const char* custom_bg;
|
||||||
|
int anim_bg;
|
||||||
|
int anim_gad;
|
||||||
|
};
|
||||||
|
|
||||||
struct _Manager
|
struct _Manager
|
||||||
{
|
{
|
||||||
|
@ -34,6 +52,9 @@ struct _Manager
|
||||||
E_Config_Dialog *config_dialog;
|
E_Config_Dialog *config_dialog;
|
||||||
E_Int_Menu_Augmentation *maug;
|
E_Int_Menu_Augmentation *maug;
|
||||||
E_Action *action;
|
E_Action *action;
|
||||||
|
|
||||||
|
E_Config_DD *conf_edd;
|
||||||
|
Config *conf;
|
||||||
};
|
};
|
||||||
|
|
||||||
Manager *Man;
|
Manager *Man;
|
||||||
|
@ -46,5 +67,6 @@ E_Gadcon_Client *gadman_gadget_place(E_Config_Gadcon_Client *cf, int ontop);
|
||||||
void gadman_gadget_edit_start(E_Gadcon_Client *gcc);
|
void gadman_gadget_edit_start(E_Gadcon_Client *gcc);
|
||||||
void gadman_gadget_edit_end(void);
|
void gadman_gadget_edit_end(void);
|
||||||
void gadman_gadgets_toggle(void);
|
void gadman_gadgets_toggle(void);
|
||||||
|
void gadman_update_bg(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -20,17 +20,12 @@ e_modapi_init(E_Module *m)
|
||||||
{
|
{
|
||||||
char buf[4096];
|
char buf[4096];
|
||||||
|
|
||||||
/* Set up module's message catalogue */
|
|
||||||
//snprintf(buf, sizeof(buf), "%s/locale", e_module_dir_get(m));
|
|
||||||
//bindtextdomain(PACKAGE, buf);
|
|
||||||
//bind_textdomain_codeset(PACKAGE, "UTF-8");
|
|
||||||
|
|
||||||
/* Set up a new configuration panel */
|
/* Set up a new configuration panel */
|
||||||
snprintf(buf, sizeof(buf), "%s/e-module-gadman.edj", m->dir);
|
snprintf(buf, sizeof(buf), "%s/e-module-gadman.edj", m->dir);
|
||||||
e_configure_registry_category_add("extensions", 90, _("Extensions"), NULL,
|
e_configure_registry_category_add("extensions", 90, _("Extensions"), NULL,
|
||||||
"enlightenment/extensions");
|
"enlightenment/extensions");
|
||||||
e_configure_registry_item_add("extensions/gadman", 150, _("Gadgets"), NULL,
|
e_configure_registry_item_add("extensions/gadman", 150, _("Gadgets"), NULL,
|
||||||
buf, e_int_config_gadman_module);
|
buf, _config_gadman_module);
|
||||||
|
|
||||||
/* Set this module to be loaded after all other modules, or we don't see
|
/* Set this module to be loaded after all other modules, or we don't see
|
||||||
modules loaded after this */
|
modules loaded after this */
|
||||||
|
@ -38,6 +33,42 @@ e_modapi_init(E_Module *m)
|
||||||
|
|
||||||
gadman_init(m);
|
gadman_init(m);
|
||||||
|
|
||||||
|
//Configuration values
|
||||||
|
Man->conf_edd = E_CONFIG_DD_NEW("Gadman_Config", Config);
|
||||||
|
#undef T
|
||||||
|
#undef D
|
||||||
|
#define T Config
|
||||||
|
#define D Man->conf_edd
|
||||||
|
E_CONFIG_VAL(D, T, bg_type, INT);
|
||||||
|
E_CONFIG_VAL(D, T, color_r, INT);
|
||||||
|
E_CONFIG_VAL(D, T, color_g, INT);
|
||||||
|
E_CONFIG_VAL(D, T, color_b, INT);
|
||||||
|
E_CONFIG_VAL(D, T, color_a, INT);
|
||||||
|
E_CONFIG_VAL(D, T, anim_bg, INT);
|
||||||
|
E_CONFIG_VAL(D, T, anim_gad, INT);
|
||||||
|
E_CONFIG_VAL(D, T, custom_bg, STR);
|
||||||
|
|
||||||
|
Man->conf = e_config_domain_load("module.gadman", Man->conf_edd);
|
||||||
|
if (!Man->conf)
|
||||||
|
{
|
||||||
|
Man->conf = E_NEW(Config, 1);
|
||||||
|
Man->conf->bg_type = 0;
|
||||||
|
Man->conf->color_r = 255;
|
||||||
|
Man->conf->color_g = 255;
|
||||||
|
Man->conf->color_b = 255;
|
||||||
|
Man->conf->color_a = 255;
|
||||||
|
Man->conf->anim_bg = 1;
|
||||||
|
Man->conf->anim_gad = 1;
|
||||||
|
Man->conf->custom_bg = NULL;
|
||||||
|
}
|
||||||
|
E_CONFIG_LIMIT(Man->conf->bg_type, 0, 5);
|
||||||
|
E_CONFIG_LIMIT(Man->conf->color_r, 0, 255);
|
||||||
|
E_CONFIG_LIMIT(Man->conf->color_g, 0, 255);
|
||||||
|
E_CONFIG_LIMIT(Man->conf->color_b, 0, 255);
|
||||||
|
E_CONFIG_LIMIT(Man->conf->color_a, 0, 255);
|
||||||
|
E_CONFIG_LIMIT(Man->conf->anim_bg, 0, 1);
|
||||||
|
E_CONFIG_LIMIT(Man->conf->anim_gad, 0, 1);
|
||||||
|
|
||||||
/* Menu augmentation */
|
/* Menu augmentation */
|
||||||
Man->icon_name = evas_stringshare_add(buf);
|
Man->icon_name = evas_stringshare_add(buf);
|
||||||
Man->maug = NULL;
|
Man->maug = NULL;
|
||||||
|
@ -64,6 +95,8 @@ e_modapi_init(E_Module *m)
|
||||||
e_config_save_queue();
|
e_config_save_queue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gadman_update_bg();
|
||||||
|
|
||||||
return Man;
|
return Man;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,6 +129,7 @@ e_modapi_shutdown(E_Module *m)
|
||||||
EAPI int
|
EAPI int
|
||||||
e_modapi_save(E_Module *m)
|
e_modapi_save(E_Module *m)
|
||||||
{
|
{
|
||||||
|
e_config_domain_save("module.gadman", Man->conf_edd, Man->conf);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue