From 94eeb91467d0bf7f55cc682af20c2dc8220918b0 Mon Sep 17 00:00:00 2001 From: Alastair Poole Date: Tue, 27 Oct 2020 14:24:30 +0000 Subject: [PATCH] process_tree: icon and click it. --- data/images/application.png | Bin 0 -> 5167 bytes data/images/meson.build | 2 +- src/bin/ui/ui_process_view.c | 59 ++++++++++++++++++++++++++++++++--- 3 files changed, 56 insertions(+), 5 deletions(-) create mode 100644 data/images/application.png diff --git a/data/images/application.png b/data/images/application.png new file mode 100644 index 0000000000000000000000000000000000000000..f7fd70f4b877eebb1941f955a8aaa9d4c1c09be2 GIT binary patch literal 5167 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 Rr1S>>C{2BhYV`+E{{^wn2wDID literal 0 HcmV?d00001 diff --git a/data/images/meson.build b/data/images/meson.build index 5b7c0c1..50ed7b3 100644 --- a/data/images/meson.build +++ b/data/images/meson.build @@ -9,5 +9,5 @@ install_data('go-up.png', 'go-down.png', 'sky_01.jpg', 'sky_02.jpg', 'sky_03.jpg', 'sky_04.jpg', 'effects.png', 'clo.png', 'bolt.png', 'menu.png', - 'lovethisdogharvey.png', + 'lovethisdogharvey.png', 'application.png', install_dir: join_paths(dir_data, 'evisum/images')) diff --git a/src/bin/ui/ui_process_view.c b/src/bin/ui/ui_process_view.c index 8a0a1d0..46c4c3a 100644 --- a/src/bin/ui/ui_process_view.c +++ b/src/bin/ui/ui_process_view.c @@ -361,6 +361,24 @@ _time_string(int64_t epoch) return strdup(buf); } +static void +_item_tree_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info) +{ + Ui_Process *ui; + Elm_Object_Item *it; + Proc_Info *proc; + + ui = data; + it = event_info; + + elm_genlist_item_selected_set(it, EINA_FALSE); + + proc = elm_object_item_data_get(it); + if (!proc) return; + + ui_process_win_add(ui->win, proc->pid, proc->command, 3); +} + static char * _tree_text_get(void *data, Evas_Object *obj, const char *part) @@ -373,6 +391,33 @@ _tree_text_get(void *data, Evas_Object *obj, const char *part) return strdup(buf); } +static Evas_Object * +_tree_icon_get(void *data, Evas_Object *obj, const char *part) +{ + Proc_Info *proc; + Evas_Object *ic = elm_icon_add(obj); + + proc = data; + + if (!strcmp(part, "elm.swallow.icon")) + { + elm_icon_standard_set(ic, evisum_icon_path_get("application")); + } + + evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); + + return ic; +} + +static void +_tree_del(void *data, Evas_Object *obj EINA_UNUSED) +{ + Proc_Info *proc = data; + + eina_list_free(proc->children); + proc_info_free(proc); +} + static void _tree_populate(Evas_Object *genlist_tree, Elm_Object_Item *parent, Eina_List *children) { @@ -383,10 +428,10 @@ _tree_populate(Evas_Object *genlist_tree, Elm_Object_Item *parent, Eina_List *ch itc = elm_genlist_item_class_new(); itc->item_style = "default"; - itc->func.content_get = NULL; + itc->func.content_get = _tree_icon_get; itc->func.text_get = _tree_text_get; itc->func.filter_get = NULL; - itc->func.del = NULL; + itc->func.del = _tree_del; EINA_LIST_FOREACH(children, l, child) { @@ -416,9 +461,13 @@ _tree_view_update(void *data) break; } } + elm_genlist_realized_items_update(ui->genlist_tree); - // XXX: free (tired now)... + child = eina_list_nth(children, 0); + if (child) + proc_info_free(child); + return EINA_TRUE; } @@ -944,10 +993,12 @@ _tree_tab_add(Evas_Object *parent, Ui_Process *ui) evas_object_data_set(genlist, "ui", ui); elm_object_focus_allow_set(genlist, EINA_FALSE); elm_genlist_homogeneous_set(genlist, EINA_TRUE); - elm_genlist_select_mode_set(genlist, ELM_OBJECT_SELECT_MODE_NONE); + elm_genlist_select_mode_set(genlist, ELM_OBJECT_SELECT_MODE_DEFAULT); evas_object_size_hint_weight_set(genlist, EXPAND, EXPAND); evas_object_size_hint_align_set(genlist, FILL, FILL); evas_object_show(genlist); + evas_object_smart_callback_add(genlist, "selected", + _item_tree_clicked_cb, ui); elm_box_pack_end(box, genlist);