From b9cb1dfa499a31a06b0e64e025c468ab5c427ef9 Mon Sep 17 00:00:00 2001 From: Alastair Poole Date: Wed, 1 Jul 2020 13:09:32 +0100 Subject: [PATCH] startup: See how this behaves --- src/bin/ui/ui.c | 28 ++++++++++++++++++++++++++++ src/bin/ui/ui.h | 1 + 2 files changed, 29 insertions(+) diff --git a/src/bin/ui/ui.c b/src/bin/ui/ui.c index 93115d7..eab45f3 100644 --- a/src/bin/ui/ui.c +++ b/src/bin/ui/ui.c @@ -374,6 +374,15 @@ _item_create(Evas_Object *parent) return table; } +static void +_item_show_hide(Evas_Object *obj, Eina_Bool show) +{ + if (show) + evas_object_show(obj); + else + evas_object_hide(obj); +} + static Evas_Object * _content_get(void *data, Evas_Object *obj, const char *source) { @@ -404,6 +413,7 @@ _content_get(void *data, Evas_Object *obj, const char *source) if (ow > w) evas_object_size_hint_min_set(ui->btn_pid, w, 1); r = evas_object_data_get(l, "rect"); evas_object_size_hint_min_set(r, w, 1); + _item_show_hide(l, ui->show_genlist); evas_object_geometry_get(ui->btn_uid, NULL, NULL, &w, NULL); l = evas_object_data_get(it->obj, "proc_uid"); @@ -416,6 +426,7 @@ _content_get(void *data, Evas_Object *obj, const char *source) if (ow > w) evas_object_size_hint_min_set(ui->btn_uid, w, 1); r = evas_object_data_get(l, "rect"); evas_object_size_hint_min_set(r, w, 1); + _item_show_hide(l, ui->show_genlist); evas_object_geometry_get(ui->btn_size, NULL, NULL, &w, NULL); l = evas_object_data_get(it->obj, "proc_size"); @@ -424,6 +435,7 @@ _content_get(void *data, Evas_Object *obj, const char *source) if (ow > w) evas_object_size_hint_min_set(ui->btn_size, w, 1); r = evas_object_data_get(l, "rect"); evas_object_size_hint_min_set(r, w, 1); + _item_show_hide(l, ui->show_genlist); evas_object_geometry_get(ui->btn_rss, NULL, NULL, &w, NULL); l = evas_object_data_get(it->obj, "proc_rss"); @@ -432,6 +444,7 @@ _content_get(void *data, Evas_Object *obj, const char *source) if (ow > w) evas_object_size_hint_min_set(ui->btn_rss, w, 1); r = evas_object_data_get(l, "rect"); evas_object_size_hint_min_set(r, w, 1); + _item_show_hide(l, ui->show_genlist); evas_object_geometry_get(ui->btn_cmd, NULL, NULL, &w, NULL); l = evas_object_data_get(it->obj, "proc_cmd"); @@ -440,6 +453,7 @@ _content_get(void *data, Evas_Object *obj, const char *source) if (ow > w) evas_object_size_hint_min_set(ui->btn_cmd, w, 1); r = evas_object_data_get(l, "rect"); evas_object_size_hint_min_set(r, w, 1); + _item_show_hide(l, ui->show_genlist); evas_object_geometry_get(ui->btn_state, NULL, NULL, &w, NULL); l = evas_object_data_get(it->obj, "proc_state"); @@ -448,6 +462,7 @@ _content_get(void *data, Evas_Object *obj, const char *source) if (ow > w) evas_object_size_hint_min_set(ui->btn_state, w, 1); r = evas_object_data_get(l, "rect"); evas_object_size_hint_min_set(r, w, 1); + _item_show_hide(l, ui->show_genlist); evas_object_geometry_get(ui->btn_cpu_usage, NULL, NULL, &w, NULL); l = evas_object_data_get(it->obj, "proc_cpu_usage"); @@ -456,6 +471,7 @@ _content_get(void *data, Evas_Object *obj, const char *source) if (ow > w) evas_object_size_hint_min_set(ui->btn_cpu_usage, w, 1); r = evas_object_data_get(l, "rect"); evas_object_size_hint_min_set(r, w, 1); + _item_show_hide(l, ui->show_genlist); return it->obj; } @@ -495,6 +511,16 @@ _genlist_ensure_n_items(Evas_Object *genlist, unsigned int items) elm_genlist_item_class_free(itc); } +static Eina_Bool +_show_items(void *data) +{ + Ui *ui = data; + ui->show_genlist = EINA_TRUE; + elm_genlist_realized_items_update(ui->genlist_procs); + + return EINA_FALSE; +} + static Eina_Bool _bring_in(void *data) { @@ -506,6 +532,8 @@ _bring_in(void *data) elm_scroller_last_page_get(ui->scroller, &h_page, &v_page); elm_scroller_page_bring_in(ui->scroller, h_page, v_page); + ecore_timer_add(0.5, _show_items, ui); + return EINA_FALSE; } diff --git a/src/bin/ui/ui.h b/src/bin/ui/ui.h index 20f023b..dc7f7c9 100644 --- a/src/bin/ui/ui.h +++ b/src/bin/ui/ui.h @@ -61,6 +61,7 @@ typedef struct Ui Evisum_Ui_Cache *cache; Evas_Object *genlist_procs; Evas_Object *entry_search; + Eina_Bool show_genlist; Ecore_Thread *thread_system; Ecore_Thread *thread_process;