netstar pushed a commit to branch master.

http://git.enlightenment.org/apps/evisum.git/commit/?id=6cc91568e7b3d9197a4ba04fdddbfb80f601e2b3

commit 6cc91568e7b3d9197a4ba04fdddbfb80f601e2b3
Author: Alastair Poole <nets...@gmail.com>
Date:   Mon Nov 9 15:32:02 2020 +0000

    ui: yeh rewrite
---
 src/bin/system/machine.c     |  1 +
 src/bin/ui/ui.h              |  5 +++++
 src/bin/ui/ui_process_list.c | 40 +++++++++++++++++++++++++++++++++-------
 3 files changed, 39 insertions(+), 7 deletions(-)

diff --git a/src/bin/system/machine.c b/src/bin/system/machine.c
index 8917e2d..b11074d 100644
--- a/src/bin/system/machine.c
+++ b/src/bin/system/machine.c
@@ -115,6 +115,7 @@ system_info_basic_get(void)
    info->cores = system_cpu_usage_get(&info->cpu_count);
 
    system_memory_usage_get(&info->memory);
+   system_power_state_get(&info->power);
 
    return info;
 }
diff --git a/src/bin/ui/ui.h b/src/bin/ui/ui.h
index 9ec8c63..a78ae83 100644
--- a/src/bin/ui/ui.h
+++ b/src/bin/ui/ui.h
@@ -42,12 +42,17 @@ typedef struct Ui
       Evas_Object     *win;
       Evas_Object     *bg;
       Evas_Object     *menu;
+
+      Evas_Object     *summary_box;
+      Evas_Object     *summary_bat;
+
       Evas_Object     *scroller;
 
       Ecore_Thread    *thread;
 
       Evas_Object     *progress_cpu;
       Evas_Object     *progress_mem;
+      Evas_Object     *progress_bat;
 
       Evas_Object     *btn_pid;
       Evas_Object     *btn_uid;
diff --git a/src/bin/ui/ui_process_list.c b/src/bin/ui/ui_process_list.c
index 1907393..eb54975 100644
--- a/src/bin/ui/ui_process_list.c
+++ b/src/bin/ui/ui_process_list.c
@@ -1200,7 +1200,7 @@ _ui_content_system_add(Ui *ui, Evas_Object *parent)
    evas_object_show(box);
    elm_table_pack(table, box, 0, 0, i, 1);
 
-   hbox = elm_box_add(box);
+   ui->processes.summary_box = hbox = elm_box_add(box);
    evas_object_size_hint_weight_set(hbox, EXPAND, 0);
    evas_object_size_hint_align_set(hbox, FILL, 0);
    elm_box_horizontal_set(hbox, EINA_TRUE);
@@ -1236,6 +1236,19 @@ _ui_content_system_add(Ui *ui, Evas_Object *parent)
    evas_object_show(pb);
    elm_object_content_set(frame, pb);
 
+   ui->processes.summary_bat = frame = elm_frame_add(hbox);
+   evas_object_size_hint_weight_set(frame, EXPAND, EXPAND);
+   evas_object_size_hint_align_set(frame, FILL, FILL);
+   elm_object_style_set(frame, "pad_small");
+   evas_object_show(frame);
+   elm_box_pack_end(hbox, frame);
+
+   ui->processes.progress_bat = pb = elm_progressbar_add(parent);
+   evas_object_size_hint_align_set(pb, FILL, FILL);
+   evas_object_size_hint_weight_set(pb, EXPAND, EXPAND);
+   evas_object_show(pb);
+   elm_object_content_set(frame, pb);
+
    evas_object_smart_callback_add(ui->processes.btn_pid, "clicked",
                    _btn_pid_clicked_cb, ui);
    evas_object_smart_callback_add(ui->processes.btn_uid, "clicked",
@@ -1385,7 +1398,7 @@ _system_info_all_poll_feedback_cb(void *data, 
Ecore_Thread *thread, void *msg)
    Ui *ui;
    Evas_Object *pb;
    Sys_Info *info;
-   double ratio, value, cpu_usage = 0.0;
+   double ratio, value, usage = 0.0;
 
    ui = data;
    info = msg;
@@ -1394,13 +1407,13 @@ _system_info_all_poll_feedback_cb(void *data, 
Ecore_Thread *thread, void *msg)
      goto out;
 
    for (int i = 0; i < info->cpu_count; i++)
-     cpu_usage += info->cores[i]->percent;
+     usage += info->cores[i]->percent;
 
-   cpu_usage /= system_cpu_online_count_get();
+   usage /= system_cpu_online_count_get();
 
-   elm_progressbar_value_set(ui->processes.progress_cpu, cpu_usage / 100);
+   elm_progressbar_value_set(ui->processes.progress_cpu, usage / 100);
 
-   ui->cpu_usage = cpu_usage;
+   ui->cpu_usage = usage;
 
    if (ui->mem.zfs_mounted)
      info->memory.used += info->memory.zfs_arc_used;
@@ -1412,6 +1425,19 @@ _system_info_all_poll_feedback_cb(void *data, 
Ecore_Thread *thread, void *msg)
    elm_progressbar_unit_format_set(pb, eina_slstr_printf("%s / %s",
                                    evisum_size_format(info->memory.used),
                                    evisum_size_format(info->memory.total)));
+   usage = 0.0;
+
+   if (info->power.battery_count)
+     {
+        for (int i = 0; i < info->power.battery_count; i++)
+          usage += info->power.batteries[i]->percent;
+        elm_progressbar_value_set(ui->processes.progress_bat, (usage / 
info->power.battery_count) / 100);
+     }
+   else if (!info->power.battery_count)
+     {
+        elm_box_unpack(ui->processes.summary_box, ui->processes.summary_bat);
+        evas_object_hide(ui->processes.summary_bat);
+     }
 out:
    system_info_all_free(info);
 }
@@ -1458,7 +1484,7 @@ _win_del_cb(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED,
      evisum_ui_item_cache_free(ui->processes.cache);
 
    _proc_pid_cpu_times_free(ui);
-   
+
    eina_lock_free(&_lock);
 
    if (evisum_ui_can_exit(ui))

-- 


Reply via email to