Pager and Batman: Use pages in config popup and standardize look.

This commit is contained in:
Stephen 'Okra' Houston 2017-02-09 11:14:03 -06:00
parent 5489f690cc
commit 8547164c16
3 changed files with 170 additions and 72 deletions

View File

@ -268,7 +268,7 @@ _config_virtual_desks_show(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
static Evas_Object *
_config_create_pages(Evas_Object *parent)
{
Evas_Object *m, *tb, *ow;
Evas_Object *m, *tb, *ow, *fr;
int row = 5;
m = elm_table_add(parent);
@ -276,8 +276,15 @@ _config_create_pages(Evas_Object *parent)
evas_object_show(m);
/* General Page */
fr = elm_frame_add(m);
elm_object_text_set(fr, _("General"));
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_button_add(tb);
@ -318,7 +325,7 @@ _config_create_pages(Evas_Object *parent)
ow = elm_label_add(tb);
elm_object_text_set(ow, _("Resistance to dragging"));
elm_table_pack(tb, ow, 0, 3, 1, 1);
E_ALIGN(ow, 0.5, 0.5);
E_ALIGN(ow, 0.0, 0.0);
E_WEIGHT(ow, EVAS_HINT_EXPAND, 0);
evas_object_show(ow);
@ -339,7 +346,7 @@ _config_create_pages(Evas_Object *parent)
ow = elm_label_add(tb);
elm_object_text_set(ow, _("Select and Slide button"));
elm_table_pack(tb, ow, 0, row, 1, 1);
E_ALIGN(ow, 0.5, 0.5);
E_ALIGN(ow, 0.0, 0.0);
E_WEIGHT(ow, EVAS_HINT_EXPAND, 0);
evas_object_show(ow);
row++;
@ -359,7 +366,7 @@ _config_create_pages(Evas_Object *parent)
ow = elm_label_add(tb);
elm_object_text_set(ow, _("Drag and Drop button"));
elm_table_pack(tb, ow, 0, row, 1, 1);
E_ALIGN(ow, 0.5, 0.5);
E_ALIGN(ow, 0.0, 0.0);
E_WEIGHT(ow, EVAS_HINT_EXPAND, 0);
evas_object_show(ow);
row++;
@ -378,7 +385,7 @@ _config_create_pages(Evas_Object *parent)
ow = elm_label_add(tb);
elm_object_text_set(ow, _("Drag whole desktop"));
elm_table_pack(tb, ow, 0, row, 1, 1);
E_ALIGN(ow, 0.5, 0.5);
E_ALIGN(ow, 0.0, 0.0);
E_WEIGHT(ow, EVAS_HINT_EXPAND, 0);
evas_object_show(ow);
row++;
@ -395,12 +402,19 @@ _config_create_pages(Evas_Object *parent)
_config_update_btns();
elm_table_pack(m, tb, 0, 0, 1, 1);
pager_gadget_config_objects->general_page = tb;
elm_table_pack(m, fr, 0, 0, 1, 1);
pager_gadget_config_objects->general_page = fr;
/* Popup Page */
tb = elm_table_add(m);
fr = elm_frame_add(m);
elm_object_text_set(fr, _("Popup"));
E_EXPAND(fr);
E_FILL(fr);
evas_object_show(fr);
tb = elm_table_add(fr);
E_EXPAND(tb);
elm_object_content_set(fr, tb);
evas_object_show(tb);
ow = elm_check_add(tb);
@ -419,7 +433,7 @@ _config_create_pages(Evas_Object *parent)
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);
E_ALIGN(ow, 0.5, 0.5);
E_ALIGN(ow, 0.0, 0.0);
E_WEIGHT(ow, EVAS_HINT_EXPAND, 0);
evas_object_show(ow);
@ -441,7 +455,7 @@ _config_create_pages(Evas_Object *parent)
elm_object_text_set(ow, _("Popup duration"));
elm_object_disabled_set(ow, !pager_config->popup);
elm_table_pack(tb, ow, 0, 3, 1, 1);
E_ALIGN(ow, 0.5, 0.5);
E_ALIGN(ow, 0.0, 0.0);
E_WEIGHT(ow, EVAS_HINT_EXPAND, 0);
evas_object_show(ow);
@ -463,7 +477,7 @@ _config_create_pages(Evas_Object *parent)
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);
E_ALIGN(ow, 0.5, 0.5);
E_ALIGN(ow, 0.0, 0.0);
E_WEIGHT(ow, EVAS_HINT_EXPAND, 0);
evas_object_show(ow);
@ -481,12 +495,19 @@ _config_create_pages(Evas_Object *parent)
evas_object_show(ow);
pager_gadget_config_objects->o_popup_act_height = ow;
elm_table_pack(m, tb, 0, 0, 1, 1);
pager_gadget_config_objects->popup_page = tb;
elm_table_pack(m, fr, 0, 0, 1, 1);
pager_gadget_config_objects->popup_page = fr;
/* Urgent Page */
tb = elm_table_add(m);
fr = elm_frame_add(m);
elm_object_text_set(fr, _("Urgent"));
E_EXPAND(fr);
E_FILL(fr);
evas_object_show(fr);
tb = elm_table_add(fr);
E_EXPAND(tb);
elm_object_content_set(fr, tb);
evas_object_show(tb);
ow = elm_check_add(tb);
@ -531,7 +552,7 @@ _config_create_pages(Evas_Object *parent)
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);
E_ALIGN(ow, 0.5, 0.5);
E_ALIGN(ow, 0.0, 0.0);
E_WEIGHT(ow, EVAS_HINT_EXPAND, 0);
evas_object_show(ow);
@ -549,8 +570,8 @@ _config_create_pages(Evas_Object *parent)
evas_object_show(ow);
pager_gadget_config_objects->o_popup_urgent_speed = ow;
elm_table_pack(m, tb, 0, 0, 1, 1);
pager_gadget_config_objects->urgent_page = tb;
elm_table_pack(m, fr, 0, 0, 1, 1);
pager_gadget_config_objects->urgent_page = fr;
return m;
}
@ -558,7 +579,7 @@ _config_create_pages(Evas_Object *parent)
EINTERN Evas_Object *
config_pager(E_Zone *zone)
{
Evas_Object *popup, *tb, *lbl, *list, *fr;
Evas_Object *popup, *tb, *lbl, *list;
Elm_Object_Item *it;
pager_gadget_config_objects = E_NEW(Config_Objects, 1);
@ -597,13 +618,8 @@ config_pager(E_Zone *zone)
elm_list_go(list);
evas_object_show(list);
fr = elm_frame_add(tb);
E_EXPAND(fr);
elm_table_pack(tb, fr, 1, 1, 1, 1);
evas_object_show(fr);
elm_object_content_set(fr,
_config_create_pages(fr));
elm_table_pack(tb,
_config_create_pages(tb), 1, 1, 1, 1);
_config_show_general(NULL, NULL, NULL);
popup = e_comp_object_util_add(popup, E_COMP_OBJECT_TYPE_NONE);

View File

@ -85,6 +85,9 @@ struct _Batman_Config
Evas_Object *alert_time;
Evas_Object *alert_percent;
Evas_Object *alert_timeout;
Evas_Object *general_page;
Evas_Object *alert_page;
Evas_Object *power_page;
};
Eina_List *_batman_battery_find(const char *udi);

View File

@ -11,6 +11,36 @@ _config_close(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, voi
e_config_save_queue();
}
static void
_config_show_general(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Batman_Config *bc = data;
evas_object_hide(bc->power_page);
evas_object_hide(bc->alert_page);
evas_object_show(bc->general_page);
}
static void
_config_show_alert(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Batman_Config *bc = data;
evas_object_hide(bc->general_page);
evas_object_hide(bc->power_page);
evas_object_show(bc->alert_page);
}
static void
_config_show_power(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Batman_Config *bc = data;
evas_object_hide(bc->general_page);
evas_object_hide(bc->alert_page);
evas_object_show(bc->power_page);
}
static void
_update_suspend_percent(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{
@ -213,8 +243,9 @@ _icon_theme_file_set(Evas_Object *img, const char *icon)
Evas_Object *
batman_configure(Instance *inst)
{
Evas_Object *popup, *frame, *main_box, *box, *o, *group, *groupy, *lbl;
Evas_Object *popup, *tb, *list, *frame, *box, *o, *group, *groupy, *lbl;
Evas_Object *slider, *check, *but, *img;
Elm_Object_Item *it;
Eina_Bool show_alert;
E_Zone *zone = e_zone_current_get();
Batman_Config *bc = E_NEW(Batman_Config, 1);
@ -231,37 +262,59 @@ batman_configure(Instance *inst)
elm_popup_allow_events_set(popup, 1);
elm_popup_scrollable_set(popup, 1);
main_box = elm_box_add(popup);
elm_box_horizontal_set(main_box, EINA_FALSE);
E_EXPAND(main_box);
E_FILL(main_box);
evas_object_show(main_box);
elm_object_content_set(popup, main_box);
tb = elm_table_add(popup);
E_EXPAND(tb);
evas_object_show(tb);
elm_object_content_set(popup, tb);
lbl = elm_label_add(main_box);
lbl = elm_label_add(tb);
evas_object_size_hint_weight_set(lbl, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(lbl, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_style_set(lbl, "marker");
elm_object_text_set(lbl, _("Batman Configuration"));
elm_box_pack_end(main_box, lbl);
elm_table_pack(tb, lbl, 0, 0, 2, 1);
evas_object_show(lbl);
frame = elm_frame_add(main_box);
elm_object_text_set(frame, _("Update Poll Interval"));
list = elm_list_add(tb);
E_ALIGN(list, 0, EVAS_HINT_FILL);
E_WEIGHT(list, 0, EVAS_HINT_EXPAND);
elm_table_pack(tb, list, 0, 1, 1, 1);
elm_list_select_mode_set(list, ELM_OBJECT_SELECT_MODE_ALWAYS);
elm_scroller_content_min_limit(list, 1, 1);
it = elm_list_item_append(list, _("General"), NULL, NULL,
_config_show_general, bc);
elm_list_item_selected_set(it, 1);
it = elm_list_item_append(list, _("Alert"), NULL, NULL,
_config_show_alert, bc);
it = elm_list_item_append(list, _("Power"), NULL, NULL,
_config_show_power, bc);
elm_list_go(list);
evas_object_show(list);
frame = elm_frame_add(tb);
elm_object_text_set(frame, _("General"));
E_EXPAND(frame);
E_FILL(frame);
elm_box_pack_end(main_box, frame);
elm_table_pack(tb, frame, 1, 1, 1, 1);
evas_object_show(frame);
bc->general_page = frame;
box = elm_box_add(frame);
elm_box_horizontal_set(box, EINA_FALSE);
E_EXPAND(box);
evas_object_show(box);
lbl = elm_label_add(box);
elm_object_text_set(lbl, _("Update Poll Interval:"));
E_ALIGN(lbl, 0.0, 0.0);
E_WEIGHT(lbl, EVAS_HINT_EXPAND, 0);
elm_box_pack_end(box, lbl);
evas_object_show(lbl);
o = elm_radio_add(box);
elm_radio_state_value_set(o, 0);
E_EXPAND(o);
E_ALIGN(o, 0, 0);
E_ALIGN(o, 0.0, 0.0);
E_WEIGHT(o, EVAS_HINT_EXPAND, 0);
elm_object_text_set(o, _("Fast (4 ticks)"));
elm_box_pack_end(box, o);
evas_object_smart_callback_add(o, "changed", _poll_changed, bc);
@ -271,8 +324,8 @@ batman_configure(Instance *inst)
o = elm_radio_add(box);
elm_radio_state_value_set(o, 1);
elm_radio_group_add(o, group);
E_EXPAND(o);
E_ALIGN(o, 0, 0);
E_ALIGN(o, 0.0, 0.0);
E_WEIGHT(o, EVAS_HINT_EXPAND, 0);
elm_object_text_set(o, _("Medium (8 ticks)"));
elm_box_pack_end(box, o);
evas_object_smart_callback_add(o, "changed", _poll_changed, bc);
@ -281,8 +334,8 @@ batman_configure(Instance *inst)
o = elm_radio_add(box);
elm_radio_state_value_set(o, 2);
elm_radio_group_add(o, group);
E_EXPAND(o);
E_ALIGN(o, 0, 0);
E_ALIGN(o, 0.0, 0.0);
E_WEIGHT(o, EVAS_HINT_EXPAND, 0);
elm_object_text_set(o, _("Normal (32 ticks)"));
elm_box_pack_end(box, o);
evas_object_smart_callback_add(o, "changed", _poll_changed, bc);
@ -291,7 +344,8 @@ batman_configure(Instance *inst)
o = elm_radio_add(box);
elm_radio_state_value_set(o, 3);
elm_radio_group_add(o, group);
E_ALIGN(o, 0, 0);
E_ALIGN(o, 0.0, 0.0);
E_WEIGHT(o, EVAS_HINT_EXPAND, 0);
elm_object_text_set(o, _("Slow (64 ticks)"));
elm_box_pack_end(box, o);
evas_object_smart_callback_add(o, "changed", _poll_changed, bc);
@ -300,8 +354,8 @@ batman_configure(Instance *inst)
o = elm_radio_add(box);
elm_radio_state_value_set(o, 4);
elm_radio_group_add(o, group);
E_EXPAND(o);
E_ALIGN(o, 0, 0);
E_ALIGN(o, 0.0, 0.0);
E_WEIGHT(o, EVAS_HINT_EXPAND, 0);
elm_object_text_set(o, _("Very Slow (256 ticks)"));
elm_box_pack_end(box, o);
evas_object_smart_callback_add(o, "changed", _poll_changed, bc);
@ -330,12 +384,13 @@ batman_configure(Instance *inst)
elm_object_content_set(frame, box);
frame = elm_frame_add(main_box);
frame = elm_frame_add(tb);
elm_object_text_set(frame, _("Alert"));
E_EXPAND(frame);
E_FILL(frame);
elm_box_pack_end(main_box, frame);
elm_table_pack(tb, frame, 1, 1, 1, 1);
evas_object_show(frame);
bc->alert_page = frame;
box = elm_box_add(frame);
elm_box_horizontal_set(box, EINA_FALSE);
@ -345,8 +400,8 @@ batman_configure(Instance *inst)
check = elm_check_add(box);
elm_object_text_set(check, _("Show low battery alert"));
elm_check_state_set(check, show_alert);
evas_object_size_hint_align_set(check, EVAS_HINT_FILL, 0.5);
evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, 0.0);
E_ALIGN(check, 0.0, 0.0);
E_WEIGHT(check, EVAS_HINT_EXPAND, 0);
evas_object_smart_callback_add(check, "changed", _check_changed, bc);
elm_box_pack_end(box, check);
evas_object_show(check);
@ -355,56 +410,74 @@ batman_configure(Instance *inst)
check = elm_check_add(box);
elm_object_text_set(check, _("Show alert as a desktop notification"));
elm_check_state_set(check, inst->cfg->batman.desktop_notifications);
evas_object_size_hint_align_set(check, EVAS_HINT_FILL, 0.5);
evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, 0.0);
E_ALIGN(check, 0.0, 0.0);
E_WEIGHT(check, EVAS_HINT_EXPAND, 0);
evas_object_smart_callback_add(check, "changed", _check_desktop_changed, bc);
elm_object_disabled_set(check, !show_alert);
elm_box_pack_end(box, check);
evas_object_show(check);
bc->alert_desktop = check;
lbl = elm_label_add(box);
elm_object_text_set(lbl, _("Alert when time left is at:"));
E_ALIGN(lbl, 0.0, 0.0);
E_WEIGHT(lbl, EVAS_HINT_EXPAND, 0);
elm_box_pack_end(box, lbl);
evas_object_show(lbl);
slider = elm_slider_add(box);
elm_object_text_set(slider, _("Alert when time left is at:"));
elm_slider_unit_format_set(slider, "%1.0f min");
elm_slider_indicator_format_set(slider, "%1.0f min");
elm_slider_min_max_set(slider, 0, 60);
elm_slider_value_set(slider, inst->cfg->batman.alert);
elm_slider_step_set(slider, 1);
elm_slider_span_size_set(slider, 100);
evas_object_size_hint_align_set(slider, EVAS_HINT_FILL, 0.5);
evas_object_size_hint_weight_set(slider, EVAS_HINT_EXPAND, 0.0);
E_ALIGN(slider, 0.0, 0.0);
E_WEIGHT(slider, EVAS_HINT_EXPAND, 0);
evas_object_smart_callback_add(slider, "delay,changed", _update_alert_time, bc);
elm_object_disabled_set(slider, !show_alert);
elm_box_pack_end(box, slider);
evas_object_show(slider);
bc->alert_time = slider;
lbl = elm_label_add(box);
elm_object_text_set(lbl, _("Alert when percent left is at:"));
E_ALIGN(lbl, 0.0, 0.0);
E_WEIGHT(lbl, EVAS_HINT_EXPAND, 0);
elm_box_pack_end(box, lbl);
evas_object_show(lbl);
slider = elm_slider_add(box);
elm_object_text_set(slider, _("Alert when percent left is at:"));
elm_slider_unit_format_set(slider, "%1.0f %%");
elm_slider_indicator_format_set(slider, "%1.0f %%");
elm_slider_min_max_set(slider, 0, 100);
elm_slider_value_set(slider, inst->cfg->batman.alert_p);
elm_slider_step_set(slider, 1);
elm_slider_span_size_set(slider, 100);
evas_object_size_hint_align_set(slider, EVAS_HINT_FILL, 0.5);
evas_object_size_hint_weight_set(slider, EVAS_HINT_EXPAND, 0.0);
E_ALIGN(slider, 0.0, 0.0);
E_WEIGHT(slider, EVAS_HINT_EXPAND, 0);
evas_object_smart_callback_add(slider, "delay,changed", _update_alert_percent, bc);
elm_object_disabled_set(slider, !show_alert);
elm_box_pack_end(box, slider);
evas_object_show(slider);
bc->alert_percent = slider;
lbl = elm_label_add(box);
elm_object_text_set(lbl, _("Alert timeout:"));
E_ALIGN(lbl, 0.0, 0.0);
E_WEIGHT(lbl, EVAS_HINT_EXPAND, 0);
elm_box_pack_end(box, lbl);
evas_object_show(lbl);
slider = elm_slider_add(box);
elm_object_text_set(slider, _("Alert timeout:"));
elm_slider_unit_format_set(slider, "%1.0f s");
elm_slider_indicator_format_set(slider, "%1.0f s");
elm_slider_min_max_set(slider, 1, 300);
elm_slider_value_set(slider, inst->cfg->batman.alert_timeout);
elm_slider_step_set(slider, 1);
elm_slider_span_size_set(slider, 100);
evas_object_size_hint_align_set(slider, EVAS_HINT_FILL, 0.5);
evas_object_size_hint_weight_set(slider, EVAS_HINT_EXPAND, 0.0);
E_ALIGN(slider, 0.0, 0.0);
E_WEIGHT(slider, EVAS_HINT_EXPAND, 0);
evas_object_smart_callback_add(slider, "delay,changed", _update_alert_timeout, bc);
elm_box_pack_end(box, slider);
evas_object_show(slider);
@ -412,12 +485,13 @@ batman_configure(Instance *inst)
elm_object_content_set(frame, box);
frame = elm_frame_add(main_box);
frame = elm_frame_add(tb);
elm_object_text_set(frame, _("Power Management"));
E_EXPAND(frame);
E_FILL(frame);
elm_box_pack_end(main_box, frame);
elm_table_pack(tb, frame, 1, 1, 1, 1);
evas_object_show(frame);
bc->power_page = frame;
box = elm_box_add(frame);
elm_box_horizontal_set(box, EINA_FALSE);
@ -426,8 +500,8 @@ batman_configure(Instance *inst)
o = elm_radio_add(box);
elm_radio_state_value_set(o, 0);
E_EXPAND(o);
E_ALIGN(o, 0, 0);
E_ALIGN(o, 0.0, 0.0);
E_WEIGHT(o, EVAS_HINT_EXPAND, 0);
elm_object_text_set(o, _("Suspend when below:"));
elm_box_pack_end(box, o);
evas_object_smart_callback_add(o, "changed", _suspend_changed, bc);
@ -437,7 +511,8 @@ batman_configure(Instance *inst)
o = elm_radio_add(box);
elm_radio_state_value_set(o, 1);
elm_radio_group_add(o, groupy);
E_ALIGN(o, 0, 0);
E_ALIGN(o, 0.0, 0.0);
E_WEIGHT(o, EVAS_HINT_EXPAND, 0);
elm_object_text_set(o, _("Hibernate when below:"));
elm_box_pack_end(box, o);
evas_object_smart_callback_add(o, "changed", _suspend_changed, bc);
@ -446,8 +521,8 @@ batman_configure(Instance *inst)
o = elm_radio_add(box);
elm_radio_state_value_set(o, 2);
elm_radio_group_add(o, groupy);
E_EXPAND(o);
E_ALIGN(o, 0, 0);
E_ALIGN(o, 0.0, 0.0);
E_WEIGHT(o, EVAS_HINT_EXPAND, 0);
elm_object_text_set(o, _("Shutdown when below:"));
elm_box_pack_end(box, o);
evas_object_smart_callback_add(o, "changed", _suspend_changed, bc);
@ -475,8 +550,8 @@ batman_configure(Instance *inst)
elm_slider_value_set(slider, inst->cfg->batman.suspend_below);
elm_slider_step_set(slider, 1);
elm_slider_span_size_set(slider, 100);
evas_object_size_hint_align_set(slider, EVAS_HINT_FILL, 0.5);
evas_object_size_hint_weight_set(slider, EVAS_HINT_EXPAND, 0.0);
E_ALIGN(slider, 0.0, 0.0);
E_WEIGHT(slider, EVAS_HINT_EXPAND, 0);
evas_object_smart_callback_add(slider, "delay,changed", _update_suspend_percent, bc);
elm_box_pack_end(box, slider);
evas_object_show(slider);
@ -489,14 +564,18 @@ batman_configure(Instance *inst)
but = elm_button_add(box);
elm_object_part_content_set(but, "icon", img);
elm_object_text_set(but, _("Power Management Timing"));
E_EXPAND(but);
evas_object_size_hint_align_set(but, EVAS_HINT_FILL, EVAS_HINT_FILL);
E_ALIGN(but, 0.0, 0.0);
E_WEIGHT(but, EVAS_HINT_EXPAND, 0);
E_FILL(but);
evas_object_data_set(but, "popup", popup);
evas_object_smart_callback_add(but, "clicked", _power_management_cb, popup);
elm_box_pack_end(box, but);
evas_object_show(but);
elm_object_content_set(frame, box);
_config_show_general(bc, NULL, NULL);
popup = e_comp_object_util_add(popup, E_COMP_OBJECT_TYPE_NONE);
evas_object_layer_set(popup, E_LAYER_POPUP);
evas_object_resize(popup, zone->w / 4, zone->h / 3);