netstar pushed a commit to branch master. http://git.enlightenment.org/apps/evisum.git/commit/?id=f2dcc451483ad882a9cc5ef180e21d069cceb365
commit f2dcc451483ad882a9cc5ef180e21d069cceb365 Author: Alastair Poole <[email protected]> Date: Fri Feb 5 09:21:52 2021 +0000 proclist: remove --- src/bin/ui/ui_process_list.c | 193 ++++++++++++++++++++++++++----------------- 1 file changed, 117 insertions(+), 76 deletions(-) diff --git a/src/bin/ui/ui_process_list.c b/src/bin/ui/ui_process_list.c index 1bc80de..0329364 100644 --- a/src/bin/ui/ui_process_list.c +++ b/src/bin/ui/ui_process_list.c @@ -26,40 +26,38 @@ typedef struct Ecore_Thread *thread; Evisum_Ui_Cache *cache; Ecore_Event_Handler *handler[2]; + Eina_Hash *cpu_times; Eina_Bool skip_wait; - Sorter sorters[SORT_BY_MAX]; - Eina_Hash *cpu_times; - - int poll_count; + pid_t selected_pid; + int poll_count; Ui *ui; Ecore_Timer *resize_timer; - Evas_Object *win; Evas_Object *main_menu; Evas_Object *menu; - pid_t selected_pid; - - char *search_text; - size_t search_len; - Ecore_Timer *search_timer; - Evas_Object *search_pop; - Evas_Object *search_entry; - Eina_Bool search_visible; - double search_keytime; + struct + { + char *text; + size_t len; + Ecore_Timer *timer; + Evas_Object *pop; + Evas_Object *entry; + Eina_Bool visible; + double keytime; + } search; - Evas_Object *scroller; Evas_Object *genlist; Elm_Genlist_Item_Class itc; Evas_Object *btn_menu; - - Evas_Object *btn_pid; - Evas_Object *btn_uid; + Eina_List *headers; Evas_Object *btn_cmd; + Evas_Object *btn_uid; + Evas_Object *btn_pid; Evas_Object *btn_pri; Evas_Object *btn_nice; Evas_Object *btn_size; @@ -359,11 +357,11 @@ _item_create(Evas_Object *obj) lb = _item_column_add(tbl, "proc_cpuid", i++); evas_object_size_hint_align_set(lb, 1.0, FILL); lb = _item_column_add(tbl, "proc_time", i++); - evas_object_size_hint_align_set(lb, 1.0, FILL); + evas_object_size_hint_align_set(lb, 0.5, FILL); rec = evas_object_rectangle_add(evas_object_evas_get(tbl)); elm_table_pack(tbl, rec, i++, 0, 1, 1); lb = _item_column_add(tbl, "proc_state", i++); - evas_object_size_hint_align_set(lb, 1.0, FILL); + evas_object_size_hint_align_set(lb, 0.5, FILL); elm_table_pack(tbl, rec, i++, 0, 1, 1); pb = elm_progressbar_add(hbx); @@ -596,9 +594,9 @@ _bring_in(void *data) int h_page, v_page; pd = data; - elm_scroller_gravity_set(pd->scroller, 0.0, 0.0); - elm_scroller_last_page_get(pd->scroller, &h_page, &v_page); - elm_scroller_page_bring_in(pd->scroller, h_page, v_page); + elm_scroller_gravity_set(pd->genlist, 0.0, 0.0); + elm_scroller_last_page_get(pd->genlist, &h_page, &v_page); + elm_scroller_page_bring_in(pd->genlist, h_page, v_page); elm_genlist_realized_items_update(pd->genlist); evas_object_show(pd->genlist); @@ -660,9 +658,9 @@ _process_list_search_trim(Eina_List *list, Ui_Data *pd) EINA_LIST_FOREACH_SAFE(list, l, l_next, proc) { if ((proc->pid == ui->program_pid) || - ((pd->search_len) && - (strncasecmp(proc->command, pd->search_text, pd->search_len) && - (!strstr(proc->command, pd->search_text)))) + ((pd->search.len) && + (strncasecmp(proc->command, pd->search.text, pd->search.len) && + (!strstr(proc->command, pd->search.text)))) ) { proc_info_free(proc); @@ -847,7 +845,7 @@ _btn_clicked_state_save(Ui_Data *pd, Evas_Object *btn) _process_list_update(pd); - elm_scroller_page_bring_in(pd->scroller, 0, 0); + elm_scroller_page_bring_in(pd->genlist, 0, 0); } static void @@ -1283,6 +1281,24 @@ _btn_menu_clicked_cb(void *data, Evas_Object *obj, _main_menu_dismissed_cb(pd, NULL, NULL); } +typedef struct +{ + Evas_Object *btn; + Evas_Object *rec; +} List_Header; + +static Evas_Object +*_btn_min_size(Ui_Data *pd, Evas_Object *parent) +{ + Evas_Object *rec = evas_object_rectangle_add(evas_object_evas_get(parent)); + evas_object_size_hint_min_set(rec, ELM_SCALE_SIZE(64), 1); + + List_Header *hdr = malloc(sizeof(List_Header)); + pd->headers = eina_list_append(pd->headers, hdr); + + return rec; +} + static Evas_Object * _ui_content_system_add(Ui_Data *pd, Evas_Object *parent) { @@ -1326,6 +1342,8 @@ _ui_content_system_add(Ui_Data *pd, Evas_Object *parent) evas_object_size_hint_align_set(btn, FILL, FILL); elm_object_text_set(btn, _("user")); evas_object_show(btn); + rec = _btn_min_size(pd, parent); + elm_table_pack(tbl, rec, i, 1, 1, 1); elm_table_pack(tbl, btn, i++, 1, 1, 1); evas_object_smart_callback_add(btn, "clicked", _btn_uid_clicked_cb, pd); @@ -1339,6 +1357,8 @@ _ui_content_system_add(Ui_Data *pd, Evas_Object *parent) evas_object_size_hint_align_set(btn, FILL, FILL); elm_object_text_set(btn, _("pid")); evas_object_show(btn); + rec = _btn_min_size(pd, parent); + elm_table_pack(tbl, rec, i, 1, 1, 1); elm_table_pack(tbl, btn, i++, 1, 1, 1); evas_object_smart_callback_add(btn, "clicked", _btn_pid_clicked_cb, pd); @@ -1352,6 +1372,8 @@ _ui_content_system_add(Ui_Data *pd, Evas_Object *parent) evas_object_size_hint_align_set(btn, FILL, FILL); elm_object_text_set(btn, _("prio")); evas_object_show(btn); + rec = _btn_min_size(pd, parent); + elm_table_pack(tbl, rec, i, 1, 1, 1); elm_table_pack(tbl, btn, i++, 1, 1, 1); evas_object_smart_callback_add(btn, "clicked", _btn_pri_clicked_cb, pd); @@ -1365,6 +1387,8 @@ _ui_content_system_add(Ui_Data *pd, Evas_Object *parent) evas_object_size_hint_align_set(btn, FILL, FILL); elm_object_text_set(btn, _("nice")); evas_object_show(btn); + rec = _btn_min_size(pd, parent); + elm_table_pack(tbl, rec, i, 1, 1, 1); elm_table_pack(tbl, btn, i++, 1, 1, 1); evas_object_smart_callback_add(btn, "clicked", _btn_nice_clicked_cb, pd); @@ -1378,6 +1402,8 @@ _ui_content_system_add(Ui_Data *pd, Evas_Object *parent) evas_object_size_hint_align_set(btn, FILL, FILL); elm_object_text_set(btn, _("size")); evas_object_show(btn); + rec = _btn_min_size(pd, parent); + elm_table_pack(tbl, rec, i, 1, 1, 1); elm_table_pack(tbl, btn, i++, 1, 1, 1); evas_object_smart_callback_add(btn, "clicked", _btn_size_clicked_cb, pd); @@ -1391,6 +1417,8 @@ _ui_content_system_add(Ui_Data *pd, Evas_Object *parent) evas_object_size_hint_align_set(btn, FILL, FILL); elm_object_text_set(btn, _("res")); evas_object_show(btn); + rec = _btn_min_size(pd, parent); + elm_table_pack(tbl, rec, i, 1, 1, 1); elm_table_pack(tbl, btn, i++, 1, 1, 1); evas_object_smart_callback_add(btn, "clicked", _btn_rss_clicked_cb, pd); @@ -1404,6 +1432,8 @@ _ui_content_system_add(Ui_Data *pd, Evas_Object *parent) evas_object_size_hint_align_set(btn, FILL, FILL); elm_object_text_set(btn, _("thr")); evas_object_show(btn); + rec = _btn_min_size(pd, parent); + elm_table_pack(tbl, rec, i, 1, 1, 1); elm_table_pack(tbl, btn, i++, 1, 1, 1); evas_object_smart_callback_add(btn, "clicked", _btn_threads_clicked_cb, pd); @@ -1417,6 +1447,8 @@ _ui_content_system_add(Ui_Data *pd, Evas_Object *parent) evas_object_size_hint_align_set(btn, FILL, FILL); elm_object_text_set(btn, _("cpu")); evas_object_show(btn); + rec = _btn_min_size(pd, parent); + elm_table_pack(tbl, rec, i, 1, 1, 1); elm_table_pack(tbl, btn, i++, 1, 1, 1); evas_object_smart_callback_add(btn, "clicked", _btn_cpu_clicked_cb, pd); @@ -1430,6 +1462,8 @@ _ui_content_system_add(Ui_Data *pd, Evas_Object *parent) evas_object_size_hint_align_set(btn, FILL, FILL); elm_object_text_set(btn, _("time")); evas_object_show(btn); + rec = _btn_min_size(pd, parent); + elm_table_pack(tbl, rec, i, 1, 1, 1); elm_table_pack(tbl, btn, i++, 1, 1, 1); evas_object_smart_callback_add(btn, "clicked", _btn_time_clicked_cb, pd); @@ -1443,6 +1477,8 @@ _ui_content_system_add(Ui_Data *pd, Evas_Object *parent) evas_object_size_hint_align_set(btn, FILL, FILL); elm_object_text_set(btn, _("state")); evas_object_show(btn); + rec = _btn_min_size(pd, parent); + elm_table_pack(tbl, rec, i, 1, 1, 1); elm_table_pack(tbl, btn, i++, 1, 1, 1); evas_object_smart_callback_add(btn, "clicked", _btn_state_clicked_cb, pd); @@ -1456,15 +1492,17 @@ _ui_content_system_add(Ui_Data *pd, Evas_Object *parent) evas_object_size_hint_align_set(btn, FILL, FILL); elm_object_text_set(btn, _("cpu %")); evas_object_show(btn); + rec = _btn_min_size(pd, parent); + elm_table_pack(tbl, rec, i, 1, 1, 1); elm_table_pack(tbl, btn, i++, 1, 1, 1); evas_object_smart_callback_add(btn, "clicked", _btn_cpu_usage_clicked_cb, pd); - pd->scroller = pd->genlist = glist = elm_genlist_add(parent); + pd->genlist = pd->genlist = glist = elm_genlist_add(parent); elm_genlist_homogeneous_set(glist, 1); - elm_scroller_gravity_set(pd->scroller, 0.0, 1.0); + elm_scroller_gravity_set(pd->genlist, 0.0, 1.0); elm_object_focus_allow_set(glist, 1); - elm_scroller_policy_set(pd->scroller, ELM_SCROLLER_POLICY_OFF, + elm_scroller_policy_set(pd->genlist, ELM_SCROLLER_POLICY_OFF, (ui->proc.show_scroller ? ELM_SCROLLER_POLICY_AUTO : ELM_SCROLLER_POLICY_OFF)); @@ -1494,21 +1532,21 @@ _search_empty_cb(void *data) { Ui_Data *pd = data; - if (!pd->search_len) + if (!pd->search.len) { - evas_object_lower(pd->search_pop); - elm_object_focus_allow_set(pd->search_entry, 0); - pd->search_visible = 0; - pd->search_timer = NULL; + evas_object_lower(pd->search.pop); + elm_object_focus_allow_set(pd->search.entry, 0); + pd->search.visible = 0; + pd->search.timer = NULL; pd->skip_wait = 1; return 0; } - if (pd->search_keytime && - ((ecore_loop_time_get() - pd->search_keytime) > 0.1)) + if (pd->search.keytime && + ((ecore_loop_time_get() - pd->search.keytime) > 0.1)) { pd->skip_wait = 1; - pd->search_keytime = 0; + pd->search.keytime = 0; } return 1; @@ -1517,10 +1555,10 @@ _search_empty_cb(void *data) static void _search_clear(Ui_Data *pd) { - if (pd->search_text) - free(pd->search_text); - pd->search_text = NULL; - pd->search_len = 0; + if (pd->search.text) + free(pd->search.text); + pd->search.text = NULL; + pd->search.len = 0; } static void @@ -1534,17 +1572,17 @@ _search_key_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) ev = event_info; if (ev && !strcmp(ev->keyname, "Escape")) - elm_object_text_set(pd->search_entry, ""); + elm_object_text_set(pd->search.entry, ""); text = elm_object_text_get(obj); if (text) { - pd->search_keytime = ecore_loop_time_get(); + pd->search.keytime = ecore_loop_time_get(); _search_clear(pd); - pd->search_text = strdup(text); - pd->search_len = strlen(text); - if (!pd->search_timer) - pd->search_timer = ecore_timer_add(0.05, _search_empty_cb, pd); + pd->search.text = strdup(text); + pd->search.len = strlen(text); + if (!pd->search.timer) + pd->search.timer = ecore_timer_add(0.05, _search_empty_cb, pd); } } @@ -1553,7 +1591,7 @@ _search_add(Ui_Data *pd) { Evas_Object *tbl, *fr, *rec, *entry; - pd->search_pop = tbl = elm_table_add(pd->win); + pd->search.pop = tbl = elm_table_add(pd->win); evas_object_lower(tbl); rec = evas_object_rectangle_add(evas_object_evas_get(pd->win)); @@ -1567,7 +1605,7 @@ _search_add(Ui_Data *pd) evas_object_size_hint_align_set(fr, FILL, 0.5); evas_object_show(fr); - pd->search_entry = entry = elm_entry_add(fr); + pd->search.entry = entry = elm_entry_add(fr); evas_object_size_hint_weight_set(entry, 0, 0); evas_object_size_hint_align_set(entry, 0.5, 0.5); elm_entry_single_line_set(entry, 1); @@ -1589,12 +1627,12 @@ _win_key_down_search(Ui_Data *pd, Evas_Event_Key_Down *ev) if (!strcmp(ev->keyname, "Escape")) { - elm_object_text_set(pd->search_entry, ""); + elm_object_text_set(pd->search.entry, ""); _search_clear(pd); pd->skip_wait = 0; - elm_object_focus_allow_set(pd->search_entry, 0); - evas_object_lower(pd->search_pop); - pd->search_visible = 0; + elm_object_focus_allow_set(pd->search.entry, 0); + evas_object_lower(pd->search.pop); + pd->search.visible = 0; } else if (ev->string && strcmp(ev->keyname, "BackSpace")) { @@ -1602,17 +1640,17 @@ _win_key_down_search(Ui_Data *pd, Evas_Event_Key_Down *ev) size_t len = strlen(ev->string); if (len) { - elm_entry_entry_append(pd->search_entry, ev->string); - elm_entry_cursor_pos_set(pd->search_entry, len); - _search_key_down_cb(pd, NULL, pd->search_entry, NULL); + elm_entry_entry_append(pd->search.entry, ev->string); + elm_entry_cursor_pos_set(pd->search.entry, len); + _search_key_down_cb(pd, NULL, pd->search.entry, NULL); } evas_object_geometry_get(pd->win, NULL, NULL, &w, &h); - evas_object_move(pd->search_pop, w / 2, h / 2); - evas_object_raise(pd->search_pop); - elm_object_focus_allow_set(pd->search_entry, 1); - elm_object_focus_set(pd->search_entry, 1); - evas_object_show(pd->search_pop); - pd->search_visible = 1; + evas_object_move(pd->search.pop, w / 2, h / 2); + evas_object_raise(pd->search.pop); + elm_object_focus_allow_set(pd->search.entry, 1); + elm_object_focus_set(pd->search.entry, 1); + evas_object_show(pd->search.pop); + pd->search.visible = 1; } } @@ -1631,17 +1669,17 @@ _win_key_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) if (!pd) return; - elm_scroller_region_get(pd->scroller, &x, &y, &w, &h); + elm_scroller_region_get(pd->genlist, &x, &y, &w, &h); - if (!strcmp(ev->keyname, "Escape") && !pd->search_visible) + if (!strcmp(ev->keyname, "Escape") && !pd->search.visible) { evas_object_del(pd->win); return; } else if (!strcmp(ev->keyname, "Prior")) - elm_scroller_region_bring_in(pd->scroller, x, y - h, w, h); + elm_scroller_region_bring_in(pd->genlist, x, y - h, w, h); else if (!strcmp(ev->keyname, "Next")) - elm_scroller_region_bring_in(pd->scroller, x, y + h, w, h); + elm_scroller_region_bring_in(pd->genlist, x, y + h, w, h); else _win_key_down_search(pd, ev); @@ -1672,16 +1710,15 @@ _win_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) pd->skip_wait = 1; + evas_object_geometry_get(obj, NULL, NULL, + &ui->proc.width, &ui->proc.height); if (pd->resize_timer) ecore_timer_reset(pd->resize_timer); else pd->resize_timer = ecore_timer_add(0.2, _resize_cb, pd); - evas_object_lower(pd->search_pop); + evas_object_lower(pd->search.pop); if (pd->main_menu) _main_menu_dismissed_cb(pd, NULL, NULL); - - evas_object_geometry_get(obj, NULL, NULL, - &ui->proc.width, &ui->proc.height); } @@ -1705,7 +1742,7 @@ _evisum_config_changed_cb(void *data, int type EINA_UNUSED, eina_iterator_free(it); - elm_scroller_policy_set(pd->scroller, ELM_SCROLLER_POLICY_OFF, + elm_scroller_policy_set(pd->genlist, ELM_SCROLLER_POLICY_OFF, (ui->proc.show_scroller ? ELM_SCROLLER_POLICY_AUTO : ELM_SCROLLER_POLICY_OFF)); @@ -1732,14 +1769,15 @@ _win_del_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Ui *ui; + List_Header *h; Ui_Data *pd = data; ui = pd->ui; evisum_ui_config_save(ui); - if (pd->search_timer) - ecore_timer_del(pd->search_timer); + if (pd->search.timer) + ecore_timer_del(pd->search.timer); if (pd->thread) ecore_thread_cancel(pd->thread); @@ -1749,11 +1787,14 @@ _win_del_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, ecore_event_handler_del(pd->handler[0]); + EINA_LIST_FREE(pd->headers, h) + free(h); + pd->thread = NULL; ui->proc.win = NULL; - if (pd->search_text) - free(pd->search_text); + if (pd->search.text) + free(pd->search.text); if (pd->cache) evisum_ui_item_cache_free(pd->cache); --
