netstar pushed a commit to branch master. http://git.enlightenment.org/apps/evisum.git/commit/?id=ef82eb7b9f937cfd700124afaab59b15d433eac5
commit ef82eb7b9f937cfd700124afaab59b15d433eac5 Author: Alastair Poole <nets...@gmail.com> Date: Tue Oct 12 09:57:20 2021 +0100 ui: show/hide status bar. On or off. I don't really like it. --- src/bin/evisum_config.c | 1 + src/bin/evisum_config.h | 3 +- src/bin/ui/evisum_ui.c | 25 +++++++++++++ src/bin/ui/evisum_ui.h | 1 + src/bin/ui/ui_process_list.c | 84 +++++++++++++++++++++++++------------------- 5 files changed, 77 insertions(+), 37 deletions(-) diff --git a/src/bin/evisum_config.c b/src/bin/evisum_config.c index 06b9461..abb63f0 100644 --- a/src/bin/evisum_config.c +++ b/src/bin/evisum_config.c @@ -62,6 +62,7 @@ _config_init() cfg->proc.poll_delay = 3; cfg->proc.show_kthreads = 0; cfg->proc.show_scroller = 1; + cfg->proc.show_statusbar = 0; cfg->proc.transparent = 0; cfg->proc.fields = 0xffffe24f; cfg->proc.alpha = 100; diff --git a/src/bin/evisum_config.h b/src/bin/evisum_config.h index ebc9411..0d54096 100644 --- a/src/bin/evisum_config.h +++ b/src/bin/evisum_config.h @@ -3,7 +3,7 @@ #include "ui/evisum_ui.h" -#define CONFIG_VERSION 0x0011 +#define CONFIG_VERSION 0x0012 typedef struct _Evisum_Config { @@ -27,6 +27,7 @@ typedef struct _Evisum_Config unsigned char poll_delay; unsigned int fields; + Eina_Bool show_statusbar; Eina_Bool show_scroller; Eina_Bool transparent; unsigned char alpha; diff --git a/src/bin/ui/evisum_ui.c b/src/bin/ui/evisum_ui.c index b0b6d41..d183a60 100644 --- a/src/bin/ui/evisum_ui.c +++ b/src/bin/ui/evisum_ui.c @@ -34,6 +34,7 @@ evisum_ui_config_save(Evisum_Ui *ui) (config()->proc.show_kthreads != ui->proc.show_kthreads) || (config()->proc.show_user != ui->proc.show_user) || (config()->proc.show_scroller != ui->proc.show_scroller) || + (config()->proc.show_statusbar != ui->proc.show_statusbar) || (config()->proc.transparent != ui->proc.transparent) || (config()->proc.alpha != ui->proc.alpha) ) @@ -52,6 +53,7 @@ evisum_ui_config_save(Evisum_Ui *ui) config()->proc.show_kthreads = ui->proc.show_kthreads; config()->proc.show_user = ui->proc.show_user; config()->proc.show_scroller = ui->proc.show_scroller; + config()->proc.show_statusbar = ui->proc.show_statusbar; config()->proc.transparent = ui->proc.transparent; config()->proc.alpha = ui->proc.alpha; config()->proc.fields = ui->proc.fields; @@ -136,6 +138,7 @@ evisum_ui_config_load(Evisum_Ui *ui) proc_info_kthreads_show_set(ui->proc.show_kthreads); ui->proc.show_user = config()->proc.show_user; ui->proc.show_scroller = config()->proc.show_scroller; + ui->proc.show_statusbar = config()->proc.show_statusbar; ui->proc.transparent = config()->proc.transparent; ui->proc.alpha = config()->proc.alpha; @@ -354,6 +357,17 @@ _main_menu_show_scroller_changed_cb(void *data EINA_UNUSED, Evas_Object *obj, evisum_ui_config_save(ui); } +static void +_main_menu_show_statusbar_changed_cb(void *data EINA_UNUSED, Evas_Object *obj, + void *event_info EINA_UNUSED) +{ + Evisum_Ui *ui = data; + + ui->proc.show_statusbar = elm_check_state_get(obj); + evisum_ui_config_save(ui); +} + + static void _main_menu_show_user_changed_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) @@ -601,6 +615,17 @@ evisum_ui_main_menu_create(Evisum_Ui *ui, Evas_Object *parent, Evas_Object *obj) _main_menu_show_scroller_changed_cb, ui); elm_box_pack_end(bx, chk); + chk = elm_check_add(bx); + evas_object_size_hint_weight_set(chk, EXPAND, EXPAND); + evas_object_size_hint_align_set(chk, FILL, FILL); + elm_object_text_set(chk, _("Display status bar?")); + elm_check_state_set(chk, ui->proc.show_statusbar); + evas_object_show(chk); + evas_object_smart_callback_add(chk, "changed", + _main_menu_show_statusbar_changed_cb, ui); + elm_box_pack_end(bx, chk); + + hbx = elm_box_add(o); evas_object_size_hint_weight_set(hbx, EXPAND, 0); evas_object_size_hint_align_set(hbx, FILL, FILL); diff --git a/src/bin/ui/evisum_ui.h b/src/bin/ui/evisum_ui.h index 332ad16..2a73fc1 100644 --- a/src/bin/ui/evisum_ui.h +++ b/src/bin/ui/evisum_ui.h @@ -53,6 +53,7 @@ typedef struct _Evisum_Ui unsigned char alpha; Eina_Bool transparent; Eina_Bool show_scroller; + Eina_Bool show_statusbar; } proc; Evas_Object *win_about; diff --git a/src/bin/ui/ui_process_list.c b/src/bin/ui/ui_process_list.c index eaa0fd7..6a3e17d 100644 --- a/src/bin/ui/ui_process_list.c +++ b/src/bin/ui/ui_process_list.c @@ -978,9 +978,12 @@ _summary_update(Win_Data *wd) Battery *bat; Eina_List *l; + ui = wd->ui; + + if (!ui->proc.show_statusbar) return; + buf = eina_strbuf_new(); - ui = wd->ui; eina_strbuf_append_printf(buf, _("%i processes: "), wd->summary.total); if (wd->summary.running) @@ -1011,7 +1014,8 @@ _summary_update(Win_Data *wd) elm_object_part_text_set(wd->summary.pb_mem, "elm.text.status", eina_strbuf_string_get(buf)); EINA_LIST_FOREACH(ui->batteries, l, bat) - elm_progressbar_value_set(bat->pb, bat->usage / 100.0); + elm_progressbar_value_set(bat->pb, bat->usage / 100.0); + eina_strbuf_free(buf); } @@ -1036,15 +1040,47 @@ _summary_total(Win_Data *wd, Proc_Info *proc) } static void -_first_run_tasks(Win_Data *wd) +summary_add(Win_Data *wd) { Evisum_Ui *ui = wd->ui; Battery *bat; Eina_List *l; - Evas_Object *hbx, *ic, *pb, *bx; + Evas_Object *hbx, *ic, *pb, *bx, *lb; + + if (!ui->proc.show_statusbar) return; hbx = wd->summary.hbx; + ic = elm_icon_add(hbx); + elm_icon_standard_set(ic, evisum_icon_path_get("cpu")); + evas_object_size_hint_min_set(ic, ELM_SCALE_SIZE(16), ELM_SCALE_SIZE(16)); + evas_object_size_hint_weight_set(ic, 0, EXPAND); + elm_box_pack_end(hbx, ic); + evas_object_show(ic); + + wd->summary.pb_cpu = pb = elm_progressbar_add(hbx); + elm_progressbar_unit_format_set(pb, "%1.2f %%"); + elm_progressbar_span_size_set(pb, 120); + elm_box_pack_end(hbx, pb); + evas_object_show(pb); + + ic = elm_icon_add(hbx); + elm_icon_standard_set(ic, evisum_icon_path_get("memory")); + evas_object_size_hint_min_set(ic, ELM_SCALE_SIZE(16), ELM_SCALE_SIZE(16)); + evas_object_size_hint_weight_set(ic, 0, EXPAND); + elm_box_pack_end(hbx, ic); + evas_object_show(ic); + + wd->summary.pb_mem = pb= elm_progressbar_add(hbx); + elm_progressbar_span_size_set(pb, 120); + evas_object_show(pb); + elm_box_pack_end(hbx, pb); + + wd->summary.lb = lb = elm_label_add(hbx); + evas_object_size_hint_weight_set(lb, EXPAND, 0); + evas_object_size_hint_align_set(lb, 1.0, FILL); + evas_object_show(lb); + EINA_LIST_FOREACH(ui->batteries, l, bat) { ic = elm_icon_add(wd->win); @@ -1055,6 +1091,7 @@ _first_run_tasks(Win_Data *wd) evas_object_show(ic); bat->pb = pb = elm_progressbar_add(wd->win); + evas_object_data_set(pb, "icon", ic); elm_object_tooltip_text_set(pb, eina_slstr_printf("%s (%s)", bat->vendor, bat->model)); elm_progressbar_span_size_set(pb, 120); elm_progressbar_value_set(pb, bat->usage / 100.0); @@ -1286,7 +1323,7 @@ _process_list_feedback_cb(void *data, Ecore_Thread *thread EINA_UNUSED, #endif if (wd->first_run) - _first_run_tasks(wd); + summary_add(wd); wd->poll_count++; @@ -1697,7 +1734,7 @@ static Evas_Object * _content_add(Win_Data *wd, Evas_Object *parent) { Evas_Object *tb, *btn, *glist; - Evas_Object *fr, *hbx, *ic, *pb, *lb; + Evas_Object *fr, *hbx; Evisum_Ui *ui = wd->ui; tb = elm_table_add(parent); @@ -1962,36 +1999,6 @@ _content_add(Win_Data *wd, Evas_Object *parent) evas_object_size_hint_align_set(hbx, FILL, FILL); evas_object_show(hbx); - ic = elm_icon_add(parent); - elm_icon_standard_set(ic, evisum_icon_path_get("cpu")); - evas_object_size_hint_min_set(ic, ELM_SCALE_SIZE(16), ELM_SCALE_SIZE(16)); - evas_object_size_hint_weight_set(ic, 0, EXPAND); - elm_box_pack_end(hbx, ic); - evas_object_show(ic); - - wd->summary.pb_cpu = pb = elm_progressbar_add(parent); - elm_progressbar_unit_format_set(pb, "%1.2f %%"); - elm_progressbar_span_size_set(pb, 120); - elm_box_pack_end(hbx, pb); - evas_object_show(pb); - - ic = elm_icon_add(parent); - elm_icon_standard_set(ic, evisum_icon_path_get("memory")); - evas_object_size_hint_min_set(ic, ELM_SCALE_SIZE(16), ELM_SCALE_SIZE(16)); - evas_object_size_hint_weight_set(ic, 0, EXPAND); - elm_box_pack_end(hbx, ic); - evas_object_show(ic); - - wd->summary.pb_mem = pb= elm_progressbar_add(parent); - elm_progressbar_span_size_set(pb, 120); - evas_object_show(pb); - elm_box_pack_end(hbx, pb); - - wd->summary.lb = lb = elm_label_add(parent); - evas_object_size_hint_weight_set(lb, EXPAND, 0); - evas_object_size_hint_align_set(lb, 1.0, FILL); - evas_object_show(lb); - elm_object_content_set(fr, hbx); _fields_init(wd); @@ -2270,6 +2277,11 @@ _evisum_config_changed_cb(void *data, int type EINA_UNUSED, ELM_SCROLLER_POLICY_OFF)); wd->skip_wait = 1; + if (ui->proc.show_statusbar) + summary_add(wd); + else + elm_box_clear(wd->summary.hbx); + _win_alpha_set(wd); return 1; --