Pager: Add the option to switch between live and plain pagers as well as switch to plain pager when saving power.

This commit is contained in:
Stephen 'Okra' Houston 2017-08-26 14:24:20 -05:00
parent 4a22d2f178
commit 2ab2fe18ea
6 changed files with 1026 additions and 154 deletions

View File

@ -153,7 +153,7 @@ _basic_apply(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata)
pager_config->show_desk_names = cfdata->show_desk_names;
pager_config->popup_urgent = cfdata->popup.urgent_show;
_pager_cb_config_updated();
_pager_cb_config_gadget_updated();
_pager_cb_config_gadget_updated(EINA_FALSE);
e_config_save_queue();
return 1;
}
@ -307,7 +307,7 @@ _adv_apply(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata)
pager_config->btn_noplace = cfdata->btn.noplace;
pager_config->btn_desk = cfdata->btn.desk;
_pager_cb_config_updated();
_pager_cb_config_gadget_updated();
_pager_cb_config_gadget_updated(EINA_FALSE);
e_config_save_queue();
return 1;
}

View File

@ -164,7 +164,6 @@ static Pager_Popup *act_popup = NULL; /* active popup */
static int hold_count = 0;
static int hold_mod = 0;
static E_Desk *current_desk = NULL;
static E_Config_DD *conf_edd = NULL;
static Eina_List *pagers = NULL;
EINTERN E_Module *module;
@ -2052,57 +2051,6 @@ e_modapi_init(E_Module *m)
e_util_dialog_show(_("Error"), _("Pager module cannot be loaded at the same time as Pager Plain!"));
return NULL;
}
conf_edd = E_CONFIG_DD_NEW("Pager_Config", Config);
#undef T
#undef D
#define T Config
#define D conf_edd
E_CONFIG_VAL(D, T, popup, UINT);
E_CONFIG_VAL(D, T, popup_speed, DOUBLE);
E_CONFIG_VAL(D, T, popup_urgent, UINT);
E_CONFIG_VAL(D, T, popup_urgent_stick, UINT);
E_CONFIG_VAL(D, T, popup_urgent_speed, DOUBLE);
E_CONFIG_VAL(D, T, show_desk_names, UINT);
E_CONFIG_VAL(D, T, popup_height, INT);
E_CONFIG_VAL(D, T, popup_act_height, INT);
E_CONFIG_VAL(D, T, drag_resist, UINT);
E_CONFIG_VAL(D, T, btn_drag, UCHAR);
E_CONFIG_VAL(D, T, btn_noplace, UCHAR);
E_CONFIG_VAL(D, T, btn_desk, UCHAR);
E_CONFIG_VAL(D, T, flip_desk, UCHAR);
pager_config = e_config_domain_load("module.pager", conf_edd);
if (!pager_config)
{
pager_config = E_NEW(Config, 1);
pager_config->popup = 1;
pager_config->popup_speed = 1.0;
pager_config->popup_urgent = 0;
pager_config->popup_urgent_stick = 0;
pager_config->popup_urgent_speed = 1.5;
pager_config->show_desk_names = 0;
pager_config->popup_height = 60;
pager_config->popup_act_height = 60;
pager_config->drag_resist = 3;
pager_config->btn_drag = 1;
pager_config->btn_noplace = 2;
pager_config->btn_desk = 2;
pager_config->flip_desk = 0;
}
E_CONFIG_LIMIT(pager_config->popup, 0, 1);
E_CONFIG_LIMIT(pager_config->popup_speed, 0.1, 10.0);
E_CONFIG_LIMIT(pager_config->popup_urgent, 0, 1);
E_CONFIG_LIMIT(pager_config->popup_urgent_stick, 0, 1);
E_CONFIG_LIMIT(pager_config->popup_urgent_speed, 0.1, 10.0);
E_CONFIG_LIMIT(pager_config->show_desk_names, 0, 1);
E_CONFIG_LIMIT(pager_config->popup_height, 20, 200);
E_CONFIG_LIMIT(pager_config->popup_act_height, 20, 200);
E_CONFIG_LIMIT(pager_config->drag_resist, 0, 50);
E_CONFIG_LIMIT(pager_config->flip_desk, 0, 1);
E_CONFIG_LIMIT(pager_config->btn_drag, 0, 32);
E_CONFIG_LIMIT(pager_config->btn_noplace, 0, 32);
E_CONFIG_LIMIT(pager_config->btn_desk, 0, 32);
E_LIST_HANDLER_APPEND(shandlers, E_EVENT_ZONE_DESK_COUNT_SET, _pager_cb_event_zone_desk_count_set, NULL);
E_LIST_HANDLER_APPEND(shandlers, E_EVENT_DESK_SHOW, _pager_cb_event_desk_show, NULL);
@ -2155,8 +2103,6 @@ e_modapi_shutdown(E_Module *m)
e_object_del(E_OBJECT(config_dialog));
E_FREE_LIST(shandlers, ecore_event_handler_del);
e_configure_registry_item_del("extensions/pager");
e_action_del("pager_show");
e_action_del("pager_switch");
@ -2167,8 +2113,6 @@ e_modapi_shutdown(E_Module *m)
e_action_predef_name_del("Pager", "Popup Desk Next");
e_action_predef_name_del("Pager", "Popup Desk Previous");
E_FREE(pager_config);
E_CONFIG_DD_FREE(conf_edd);
return 1;
}
@ -2176,7 +2120,6 @@ E_API int
e_modapi_save(E_Module *m)
{
e_modapi_gadget_save(m);
e_config_domain_save("module.pager", conf_edd, pager_config);
return 1;
}

View File

@ -10,6 +10,7 @@ struct _Config_Objects
Evas_Object *general_page;
Evas_Object *popup_page;
Evas_Object *urgent_page;
Evas_Object *style_page;
Evas_Object *o_popup;
Evas_Object *o_popup_speed;
Evas_Object *o_popup_urgent;
@ -25,6 +26,8 @@ struct _Config_Objects
Evas_Object *o_btn_desk;
Evas_Object *o_btn_virtual;
Evas_Object *o_flip_desk;
Evas_Object *o_permanent;
Evas_Object *o_plain;
E_Grab_Dialog *grab_dia;
int grab_btn;
int w, h;
@ -43,6 +46,7 @@ _config_show_general(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void
{
evas_object_hide(pager_gadget_config_objects->popup_page);
evas_object_hide(pager_gadget_config_objects->urgent_page);
evas_object_hide(pager_gadget_config_objects->style_page);
evas_object_show(pager_gadget_config_objects->general_page);
}
@ -51,6 +55,7 @@ _config_show_popup(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *e
{
evas_object_hide(pager_gadget_config_objects->general_page);
evas_object_hide(pager_gadget_config_objects->urgent_page);
evas_object_hide(pager_gadget_config_objects->style_page);
evas_object_show(pager_gadget_config_objects->popup_page);
}
@ -59,12 +64,23 @@ _config_show_urgent(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *
{
evas_object_hide(pager_gadget_config_objects->general_page);
evas_object_hide(pager_gadget_config_objects->popup_page);
evas_object_hide(pager_gadget_config_objects->style_page);
evas_object_show(pager_gadget_config_objects->urgent_page);
}
static void
_config_show_style(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
evas_object_hide(pager_gadget_config_objects->general_page);
evas_object_hide(pager_gadget_config_objects->popup_page);
evas_object_hide(pager_gadget_config_objects->urgent_page);
evas_object_show(pager_gadget_config_objects->style_page);
}
static void
_config_value_changed(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_data EINA_UNUSED)
{
Eina_Bool val, changed = EINA_FALSE;
pager_config->popup =
elm_check_state_get(pager_gadget_config_objects->o_popup);
pager_config->popup_speed =
@ -87,7 +103,15 @@ _config_value_changed(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void
elm_slider_value_get(pager_gadget_config_objects->o_popup_act_height);
pager_config->drag_resist =
elm_slider_value_get(pager_gadget_config_objects->o_drag_resist);
_pager_cb_config_gadget_updated();
val = elm_check_state_get(pager_gadget_config_objects->o_permanent);
if (val != pager_config->permanent_plain)
changed = EINA_TRUE;
pager_config->permanent_plain = val;
val = elm_check_state_get(pager_gadget_config_objects->o_plain);
if (val != pager_config->plain)
changed = EINA_TRUE;
pager_config->plain = val;
_pager_cb_config_gadget_updated(changed);
_pager_cb_config_updated();
e_config_save_queue();
@ -322,7 +346,7 @@ _config_create_pages(Evas_Object *parent)
evas_object_show(ow);
pager_gadget_config_objects->o_show_desk_names = ow;
ow = elm_label_add(tb);
ow = elm_label_add(m);
elm_object_text_set(ow, _("Resistance to dragging"));
elm_table_pack(tb, ow, 0, 3, 1, 1);
E_ALIGN(ow, 0.0, 0.0);
@ -343,7 +367,7 @@ _config_create_pages(Evas_Object *parent)
pager_gadget_config_objects->o_drag_resist = ow;
#if 0
ow = elm_label_add(tb);
ow = elm_label_add(m);
elm_object_text_set(ow, _("Select and Slide button"));
elm_table_pack(tb, ow, 0, row, 1, 1);
E_ALIGN(ow, 0.0, 0.0);
@ -363,7 +387,7 @@ _config_create_pages(Evas_Object *parent)
row++;
#endif
ow = elm_label_add(tb);
ow = elm_label_add(m);
elm_object_text_set(ow, _("Drag and Drop button"));
elm_table_pack(tb, ow, 0, row, 1, 1);
E_ALIGN(ow, 0.0, 0.0);
@ -382,7 +406,7 @@ _config_create_pages(Evas_Object *parent)
pager_gadget_config_objects->o_btn_noplace = ow;
row++;
ow = elm_label_add(tb);
ow = elm_label_add(m);
elm_object_text_set(ow, _("Drag whole desktop"));
elm_table_pack(tb, ow, 0, row, 1, 1);
E_ALIGN(ow, 0.0, 0.0);
@ -429,7 +453,7 @@ _config_create_pages(Evas_Object *parent)
evas_object_show(ow);
pager_gadget_config_objects->o_popup = ow;
ow = elm_label_add(tb);
ow = elm_label_add(m);
elm_object_text_set(ow, _("Popup pager height"));
elm_object_disabled_set(ow, !pager_config->popup);
elm_table_pack(tb, ow, 0, 1, 1, 1);
@ -451,7 +475,7 @@ _config_create_pages(Evas_Object *parent)
evas_object_show(ow);
pager_gadget_config_objects->o_popup_height = ow;
ow = elm_label_add(tb);
ow = elm_label_add(m);
elm_object_text_set(ow, _("Popup duration"));
elm_object_disabled_set(ow, !pager_config->popup);
elm_table_pack(tb, ow, 0, 3, 1, 1);
@ -473,7 +497,7 @@ _config_create_pages(Evas_Object *parent)
evas_object_show(ow);
pager_gadget_config_objects->o_popup_speed = ow;
ow = elm_label_add(tb);
ow = elm_label_add(m);
elm_object_text_set(ow, _("Pager action popup height"));
elm_object_disabled_set(ow, !pager_config->popup);
elm_table_pack(tb, ow, 0, 5, 1, 1);
@ -548,7 +572,7 @@ _config_create_pages(Evas_Object *parent)
evas_object_show(ow);
pager_gadget_config_objects->o_popup_urgent_focus = ow;
ow = elm_label_add(tb);
ow = elm_label_add(m);
elm_object_text_set(ow, _("Urgent Popup Duration"));
elm_object_disabled_set(ow, !pager_config->popup_urgent);
elm_table_pack(tb, ow, 0, 3, 1, 1);
@ -573,6 +597,45 @@ _config_create_pages(Evas_Object *parent)
elm_table_pack(m, fr, 0, 0, 1, 1);
pager_gadget_config_objects->urgent_page = fr;
/* Style Page */
fr = elm_frame_add(m);
elm_object_text_set(fr, _("Style"));
E_EXPAND(fr);
E_FILL(fr);
evas_object_show(fr);
tb = elm_table_add(m);
E_EXPAND(tb);
elm_object_content_set(fr, tb);
evas_object_show(tb);
ow = elm_check_add(tb);
elm_object_text_set(ow, _("Always Use Plain Style"));
evas_object_size_hint_align_set(ow, 0.0, EVAS_HINT_FILL);
elm_check_state_set(ow, pager_config->permanent_plain);
elm_table_pack(tb, ow, 0, 0, 1, 1);
E_ALIGN(ow, EVAS_HINT_FILL, EVAS_HINT_FILL);
E_WEIGHT(ow, EVAS_HINT_EXPAND, 0);
evas_object_smart_callback_add(ow, "changed",
_config_value_changed, NULL);
evas_object_show(ow);
pager_gadget_config_objects->o_permanent = ow;
ow = elm_check_add(tb);
elm_object_text_set(ow, _("Switch to Plain Style When Saving Power"));
evas_object_size_hint_align_set(ow, 0.0, EVAS_HINT_FILL);
elm_check_state_set(ow, pager_config->plain);
elm_table_pack(tb, ow, 0, 1, 1, 1);
E_ALIGN(ow, EVAS_HINT_FILL, EVAS_HINT_FILL);
E_WEIGHT(ow, EVAS_HINT_EXPAND, 0);
evas_object_smart_callback_add(ow, "changed",
_config_value_changed, NULL);
evas_object_show(ow);
pager_gadget_config_objects->o_plain = ow;
elm_table_pack(m, fr, 0, 0, 1, 1);
pager_gadget_config_objects->style_page = fr;
return m;
}
@ -615,6 +678,8 @@ config_pager(E_Zone *zone)
_config_show_popup, NULL);
it = elm_list_item_append(list, _("Urgent"), NULL, NULL,
_config_show_urgent, NULL);
it = elm_list_item_append(list, _("Style"), NULL, NULL,
_config_show_style, NULL);
elm_list_go(list);
evas_object_show(list);

View File

@ -2,7 +2,7 @@
static E_Config_DD *conf_edd = NULL;
Config *pager_config;
Evas_Object *cfg_dialog;
Eina_List *ginstances, *ghandlers;
Eina_List *ginstances, *ghandlers, *phandlers;
EINTERN void *
e_modapi_gadget_init(E_Module *m)
@ -25,6 +25,8 @@ e_modapi_gadget_init(E_Module *m)
E_CONFIG_VAL(D, T, btn_noplace, UCHAR);
E_CONFIG_VAL(D, T, btn_desk, UCHAR);
E_CONFIG_VAL(D, T, flip_desk, UCHAR);
E_CONFIG_VAL(D, T, plain, UCHAR);
E_CONFIG_VAL(D, T, permanent_plain, UCHAR);
pager_config = e_config_domain_load("module.pager", conf_edd);
@ -44,6 +46,8 @@ e_modapi_gadget_init(E_Module *m)
pager_config->btn_noplace = 2;
pager_config->btn_desk = 2;
pager_config->flip_desk = 0;
pager_config->plain = 0;
pager_config->permanent_plain = 0;
}
E_CONFIG_LIMIT(pager_config->popup, 0, 1);
E_CONFIG_LIMIT(pager_config->popup_speed, 0.1, 10.0);
@ -58,6 +62,8 @@ e_modapi_gadget_init(E_Module *m)
E_CONFIG_LIMIT(pager_config->btn_drag, 0, 32);
E_CONFIG_LIMIT(pager_config->btn_noplace, 0, 32);
E_CONFIG_LIMIT(pager_config->btn_desk, 0, 32);
E_CONFIG_LIMIT(pager_config->plain, 0, 1);
E_CONFIG_LIMIT(pager_config->permanent_plain, 0, 1);
pager_init();

File diff suppressed because it is too large Load Diff

View File

@ -24,17 +24,19 @@ struct _Config
unsigned int btn_noplace;
unsigned int btn_desk;
unsigned int flip_desk;
unsigned int plain;
unsigned int permanent_plain;
};
EINTERN Evas_Object *pager_create(Evas_Object *parent, int *id, E_Gadget_Site_Orient orient);
EINTERN Evas_Object *config_pager(E_Zone *zone);
EINTERN void pager_init(void);
EINTERN void _pager_cb_config_gadget_updated(void);
EINTERN void _pager_cb_config_gadget_updated(Eina_Bool style_changed);
EINTERN void _pager_cb_config_updated(void);
EINTERN extern Config *pager_config;
EINTERN extern Evas_Object *cfg_dialog;
EINTERN extern Eina_List *ginstances, *ghandlers;
EINTERN extern Eina_List *ginstances, *ghandlers, *phandlers;
/**
* @addtogroup Optional_Gadgets
* @{