netstar pushed a commit to branch master.

http://git.enlightenment.org/apps/evisum.git/commit/?id=0aea127f8ec3aa8f9ce91163599219986e4d87fc

commit 0aea127f8ec3aa8f9ce91163599219986e4d87fc
Author: Alastair Poole <[email protected]>
Date:   Sun May 17 16:33:27 2020 +0100

    process_view: Small Changes
---
 src/bin/meson.build                            |  8 +--
 src/bin/ui/meson.build                         |  4 +-
 src/bin/ui/ui.c                                |  2 +-
 src/bin/ui/{ui_process.c => ui_process_view.c} | 91 +++++++++++++++++++-------
 src/bin/ui/{ui_process.h => ui_process_view.h} |  7 ++
 5 files changed, 80 insertions(+), 32 deletions(-)

diff --git a/src/bin/meson.build b/src/bin/meson.build
index 526ca2d..c86ddd7 100644
--- a/src/bin/meson.build
+++ b/src/bin/meson.build
@@ -12,10 +12,10 @@ src += files([
 ])
 
 executable('evisum', src,
-   include_directories : inc,
-   dependencies        : [ deps, deps_os, deps_nls ],
-   gui_app             : true,
-   install             : true)
+   include_directories  : inc,
+   dependencies         : [ deps, deps_os, deps_nls ],
+   gui_app              : true,
+   install              : true)
 
 if host_os == 'freebsd' or host_os == 'dragonfly'
    meson.add_install_script('perms.sh')
diff --git a/src/bin/ui/meson.build b/src/bin/ui/meson.build
index 6cda90e..7445263 100644
--- a/src/bin/ui/meson.build
+++ b/src/bin/ui/meson.build
@@ -10,6 +10,6 @@ src += files([
    'ui_memory.c',
    'ui_cpu.c',
    'ui_cpu.h',
-   'ui_process.c',
-   'ui_process.h',
+   'ui_process_view.c',
+   'ui_process_view.h',
 ])
diff --git a/src/bin/ui/ui.c b/src/bin/ui/ui.c
index 4586dd7..8956e82 100644
--- a/src/bin/ui/ui.c
+++ b/src/bin/ui/ui.c
@@ -4,7 +4,7 @@
 #include "ui/ui_misc.h"
 #include "ui/ui_memory.h"
 #include "ui/ui_cpu.h"
-#include "ui/ui_process.h"
+#include "ui/ui_process_view.h"
 
 #include <stdio.h>
 #include <sys/types.h>
diff --git a/src/bin/ui/ui_process.c b/src/bin/ui/ui_process_view.c
similarity index 89%
rename from src/bin/ui/ui_process.c
rename to src/bin/ui/ui_process_view.c
index ef2ec90..d2e4bda 100644
--- a/src/bin/ui/ui_process.c
+++ b/src/bin/ui/ui_process_view.c
@@ -1,4 +1,4 @@
-#include "ui_process.h"
+#include "ui_process_view.h"
 #include "../system/process.h"
 
 Eina_List *
@@ -89,45 +89,42 @@ _item_del(void *data, Evas_Object *obj EINA_UNUSED)
 static Evas_Object *
 _item_column_add(Evas_Object *table, const char *text, int col)
 {
-   Evas_Object *rect, *hbox, *label;
-
-   hbox = elm_box_add(table);
-   evas_object_size_hint_align_set(hbox, 0.0, EVAS_HINT_EXPAND);
-   evas_object_size_hint_weight_set(hbox, EVAS_HINT_FILL, EVAS_HINT_FILL);
-   elm_box_horizontal_set(hbox, EINA_TRUE);
-   evas_object_show(hbox);
+   Evas_Object *rect, *label;
 
    label = elm_label_add(table);
    evas_object_size_hint_align_set(label, 0.0, EVAS_HINT_EXPAND);
-   evas_object_size_hint_weight_set(label, 0.5, EVAS_HINT_FILL);
+   evas_object_size_hint_weight_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
    evas_object_data_set(table, text, label);
    evas_object_show(label);
-   elm_box_pack_end(hbox, label);
 
    rect = evas_object_rectangle_add(table);
    evas_object_data_set(label, "rect", rect);
 
-   elm_table_pack(table, hbox, col, 0, 1, 1);
+   elm_table_pack(table, label, col, 0, 1, 1);
    elm_table_pack(table, rect, col, 0, 1, 1);
 
-   return table;
+   return label;
 }
 
 static Evas_Object *
 _item_create(Evas_Object *parent)
 {
-   Evas_Object *table;
+   Evas_Object *table, *label;
 
    table = elm_table_add(parent);
    evas_object_size_hint_align_set(table, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    evas_object_size_hint_weight_set(table, EVAS_HINT_FILL, EVAS_HINT_FILL);
    evas_object_show(table);
 
-   _item_column_add(table, "tid", 0);
+   label = _item_column_add(table, "tid", 0);
+   evas_object_size_hint_align_set(label, 0.5, EVAS_HINT_EXPAND);
    _item_column_add(table, "name", 1);
-   _item_column_add(table, "state", 2);
-   _item_column_add(table, "cpu_id", 3);
-   _item_column_add(table, "cpu_usage", 4);
+   label = _item_column_add(table, "state", 2);
+   evas_object_size_hint_align_set(label, 0.5, EVAS_HINT_EXPAND);
+   label = _item_column_add(table, "cpu_id", 3);
+   evas_object_size_hint_align_set(label, 0.5, EVAS_HINT_EXPAND);
+
+   label = _item_column_add(table, "cpu_usage", 4);
 
    return table;
 }
@@ -186,6 +183,7 @@ _content_get(void *data, Evas_Object *obj, const char 
*source)
    if (!th) return NULL;
    ui = evas_object_data_get(obj, "ui");
    if (!ui) return NULL;
+   if (!ui->threads_ready) return NULL;
 
    Item_Cache *it = _cache_get(ui);
    if (!it)
@@ -194,30 +192,31 @@ _content_get(void *data, Evas_Object *obj, const char 
*source)
         exit(-1);
      }
 
-   evas_object_geometry_get(ui->win, NULL, NULL, &w, NULL);
-
-   w = w / 6;
-
+   evas_object_geometry_get(ui->btn_thread_id, NULL, NULL, &w, NULL);
    l = evas_object_data_get(it->obj, "tid");
    elm_object_text_set(l, eina_slstr_printf("%d", th->tid));
    r = evas_object_data_get(l, "rect");
    evas_object_size_hint_min_set(r, w, 1);
 
+   evas_object_geometry_get(ui->btn_thread_name, NULL, NULL, &w, NULL);
    l = evas_object_data_get(it->obj, "name");
    elm_object_text_set(l, eina_slstr_printf("%s", th->name));
    r = evas_object_data_get(l, "rect");
    evas_object_size_hint_min_set(r, w, 1);
 
+   evas_object_geometry_get(ui->btn_thread_state, NULL, NULL, &w, NULL);
    l = evas_object_data_get(it->obj, "state");
    elm_object_text_set(l, eina_slstr_printf("%s", th->state));
    r = evas_object_data_get(l, "rect");
    evas_object_size_hint_min_set(r, w, 1);
 
+   evas_object_geometry_get(ui->btn_thread_cpu_id, NULL, NULL, &w, NULL);
    l = evas_object_data_get(it->obj, "cpu_id");
    elm_object_text_set(l, eina_slstr_printf("%d", th->cpu_id));
    r = evas_object_data_get(l, "rect");
    evas_object_size_hint_min_set(r, w, 1);
 
+   evas_object_geometry_get(ui->btn_thread_cpu_usage, NULL, NULL, &w, NULL);
    l = evas_object_data_get(it->obj, "cpu_usage");
    elm_object_text_set(l, eina_slstr_printf("%1.1f%%", th->cpu_usage));
    r = evas_object_data_get(l, "rect");
@@ -607,12 +606,54 @@ _process_tab_add(Evas_Object *parent, Ui_Process *ui)
 static Evas_Object *
 _threads_tab_add(Evas_Object *parent, Ui_Process *ui)
 {
-   Evas_Object *box, *genlist;
+   Evas_Object *box, *hbox, *btn, *genlist;
 
    box = elm_box_add(parent);
    evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
 
+   hbox = elm_box_add(box);
+   evas_object_size_hint_weight_set(hbox, EVAS_HINT_EXPAND, 0);
+   evas_object_size_hint_align_set(hbox, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_box_horizontal_set(hbox, EINA_TRUE);
+   elm_box_homogeneous_set(hbox, EINA_TRUE);
+   evas_object_show(hbox);
+
+   ui->btn_thread_id = btn = elm_button_add(hbox);
+   evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_object_text_set(btn, _("ID"));
+   evas_object_show(btn);
+   elm_box_pack_end(hbox, btn);
+
+   ui->btn_thread_name = btn = elm_button_add(hbox);
+   evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_object_text_set(btn, _("Name"));
+   evas_object_show(btn);
+   elm_box_pack_end(hbox, btn);
+
+   ui->btn_thread_state = btn = elm_button_add(hbox);
+   evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_object_text_set(btn, _("State"));
+   evas_object_show(btn);
+   elm_box_pack_end(hbox, btn);
+
+   ui->btn_thread_cpu_id = btn = elm_button_add(hbox);
+   evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_object_text_set(btn, _("CPU ID"));
+   evas_object_show(btn);
+   elm_box_pack_end(hbox, btn);
+
+   ui->btn_thread_cpu_usage = btn = elm_button_add(hbox);
+   evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_object_text_set(btn, _("CPU Usage"));
+   evas_object_show(btn);
+   elm_box_pack_end(hbox, btn);
+
    ui->genlist_threads = genlist = elm_genlist_add(parent);
    evas_object_data_set(genlist, "ui", ui);
    elm_object_focus_allow_set(genlist, EINA_FALSE);
@@ -623,6 +664,7 @@ _threads_tab_add(Evas_Object *parent, Ui_Process *ui)
 
    evas_object_smart_callback_add(ui->genlist_threads, "unrealized", 
_item_unrealized_cb, ui);
 
+   elm_box_pack_end(box, hbox);
    elm_box_pack_end(box, genlist);
 
    return box;
@@ -679,6 +721,7 @@ _btn_threads_clicked_cb(void *data, Evas_Object *obj 
EINA_UNUSED, void *event_in
    Ui_Process *ui;
 
    ui = data;
+   ui->threads_ready = EINA_TRUE;
 
    _hide_all(ui, obj);
    evas_object_show(ui->thread_view);
@@ -800,6 +843,7 @@ ui_process_win_add(int pid, const char *cmd)
    ui->selected_pid = pid;
    ui->selected_cmd = strdup(cmd);
    ui->poll_delay = 3.0;
+   ui->item_cache = NULL;
 
    ui->win = win = elm_win_util_standard_add("evisum", "evisum");
    _win_title_set(win, "%s (%d)", cmd, pid);
@@ -835,10 +879,7 @@ ui_process_win_add(int pid, const char *cmd)
    evas_object_resize(win, 540 * elm_config_scale_get(), 480 * 
elm_config_scale_get());
    evas_object_show(win);
 
-   ui->item_cache = NULL;
-
    _cache_init(ui);
-
    _proc_info_update(ui);
 }
 
diff --git a/src/bin/ui/ui_process.h b/src/bin/ui/ui_process_view.h
similarity index 85%
rename from src/bin/ui/ui_process.h
rename to src/bin/ui/ui_process_view.h
index ab17703..b86d5b0 100644
--- a/src/bin/ui/ui_process.h
+++ b/src/bin/ui/ui_process_view.h
@@ -34,6 +34,12 @@ typedef struct _Ui_Process {
    Evas_Object  *entry_pid_state;
    Evas_Object  *entry_pid_cpu_usage;
 
+   Evas_Object  *btn_thread_id;
+   Evas_Object  *btn_thread_name;
+   Evas_Object  *btn_thread_state;
+   Evas_Object  *btn_thread_cpu_id;
+   Evas_Object  *btn_thread_cpu_usage;
+
    Eina_Hash    *hash_cpu_times;
 
    Eina_List   *item_cache;
@@ -43,6 +49,7 @@ typedef struct _Ui_Process {
    int          selected_pid;
    int64_t      pid_cpu_time;
    Eina_Bool    info_init;
+   Eina_Bool    threads_ready;
 
    Ecore_Timer *timer_pid;
 } Ui_Process;

-- 


Reply via email to