netstar pushed a commit to branch master.

http://git.enlightenment.org/apps/evisum.git/commit/?id=57663dd0b207770358e55ef6c761ebd37cb6addb

commit 57663dd0b207770358e55ef6c761ebd37cb6addb
Author: Alastair Poole <nets...@gmail.com>
Date:   Wed Dec 23 23:14:11 2020 +0000

    ui: not done, dont moan until i am done.
    
    Then you can moan. :)
---
 src/bin/ui/ui_memory.c       | 64 ++++++++++++++++++++++++++++----------------
 src/bin/ui/ui_process_list.c | 25 ++++++++++-------
 2 files changed, 56 insertions(+), 33 deletions(-)

diff --git a/src/bin/ui/ui_memory.c b/src/bin/ui/ui_memory.c
index d557b29..9bee0a9 100644
--- a/src/bin/ui/ui_memory.c
+++ b/src/bin/ui/ui_memory.c
@@ -14,23 +14,26 @@ typedef struct  {
    Evas_Object  *swap;
    Evas_Object  *video[MEM_VIDEO_CARD_MAX];
 
-   double        scale;
+   int           pos;
 
    Ui           *ui;
 } Ui_Data;
 
+static Eina_Bool starting = 1;
+
+#define STEP      1
 #define MAX_HIST  2048
-#define UPOLLTIME 100000
+#define UPOLLTIME 250000
 
 #define GR_USED   0
 #define GR_CACHED 1
 #define GR_BUFFER 2
 #define GR_SHARED 3
 
-#define COLOR_USED   229, 64, 89, 255
-#define COLOR_CACHED 253, 179, 106, 255
-#define COLOR_BUFFER 142, 31, 81, 255
-#define COLOR_SHARED 89, 229, 64, 255
+#define COLOR_USED   206, 70, 93, 255
+#define COLOR_CACHED 135, 190, 85, 255
+#define COLOR_BUFFER 100, 177, 242, 255
+#define COLOR_SHARED 225, 107, 62, 255
 #define COLOR_NONE   0, 0, 0, 0
 
 static Eina_Lock _lock;
@@ -79,8 +82,8 @@ vg_add(Evas_Object *w)
    o = evas_object_vg_add(evas_object_evas_get(w));
    con = evas_vg_container_add(o);
    sh = evas_vg_shape_add(con);
-   evas_object_vg_root_node_set(o, con);
    evas_object_show(o);
+   evas_object_vg_root_node_set(o, con);
    evas_object_data_set(o, "con", con);
    evas_object_data_set(o, "shape", sh);
    return o;
@@ -92,17 +95,12 @@ vg_fill(Evas_Object *o, Ui_Data *pd, int w, int h, double 
*pt, int r, int g, int
    Evas_Vg_Shape *sh;
    int i;
    double v;
+   Evas_Vg_Node *n;
 
    evas_object_resize(o, w, h);
    sh = evas_object_data_get(o, "shape");
    evas_vg_shape_reset(sh);
-   if (pd->scale > 1.0)
-     evas_vg_shape_stroke_width_set(sh, 2);
-   else
-     evas_vg_shape_stroke_width_set(sh, 1);
-
-   evas_vg_shape_stroke_color_set(sh, r, g, b, a);
-   evas_vg_shape_append_move_to(sh, 0, 1 + h - ((h / 100) * pt[0]));
+   evas_vg_shape_append_move_to(sh, 0, h);
    for (i = 0; i < w; i++)
      {
         v = (h / 100) * pt[i];
@@ -110,7 +108,11 @@ vg_fill(Evas_Object *o, Ui_Data *pd, int w, int h, double 
*pt, int r, int g, int
         else if (v >  h) v = h;
         evas_vg_shape_append_line_to(sh, i, h - v);
      }
-   evas_vg_node_origin_set(evas_object_data_get(0, "shape"), 0, 0);
+   evas_vg_shape_append_line_to(sh, pd->pos, h);
+   n = evas_object_data_get(sh, "shape");
+   evas_vg_shape_fill_set(sh, n);
+   evas_vg_node_color_set(sh, r, g, b, a);
+   evas_vg_node_origin_set(n, 0, 0);
 }
 
 static void
@@ -149,7 +151,7 @@ position_gr_list(Eina_List *list, int w, int h, int offset)
              evas_object_move(o, x, 0);
              evas_object_resize(o, w, h);
           }
-        x -= (w - 1);
+        x -= (w - STEP);
      }
 }
 
@@ -243,26 +245,43 @@ _update_widgets(Ui_Data *pd, meminfo_t *memory)
      }
 }
 
+static void
+_reverse(double *arr, int n)
+{
+   for (int i = 0, j = n - 1; i < j; i++, j--)
+     {
+        double tmp = arr[i];
+        arr[i] = arr[j];
+        arr[j] = tmp;
+     }
+}
+
 static void
 _update_graph(Graph *graph, double perc, Ui_Data *pd, Evas_Coord w, Evas_Coord 
h)
 {
-   int i, r, g, b;
+   int i, r, g, b, a;
    Evas_Object *o;
 
-   r = graph->r; g = graph->g; b = graph->b;
+   r = graph->r; g = graph->g; b = graph->b; a = graph->a;
 
    if (graph->pos == 0)
      {
-        for (i = 0; i < MAX_HIST; i++) graph->history[i] = perc;
+        if (starting)
+          for (i = 0; i < MAX_HIST; i++)
+            graph->history[i] = 0;
+        else
+          _reverse(graph->history, MAX_HIST);
+
         o = vg_add(pd->bg);
         graph->blocks = eina_list_prepend(graph->blocks, o);
      }
    o = graph->blocks->data;
    graph->history[graph->pos] = perc;
-   vg_fill(o, pd, w, h, graph->history, r, g, b, 255);
+   pd->pos = graph->pos;
+   vg_fill(o, pd, w, h, graph->history, r, g, b, a);
    position_gr_list(graph->blocks, w, h, graph->pos);
 
-   graph->pos++;
+   graph->pos += STEP;
    if (graph->pos >= w) graph->pos = 0;
 }
 
@@ -293,6 +312,7 @@ _mem_usage_feedback_cb(void *data, Ecore_Thread *thread 
EINA_UNUSED, void *msgda
    _update_graph(&graphs[GR_BUFFER], memory->buffered / ratio, pd, w, h);
    _update_graph(&graphs[GR_SHARED], memory->shared / ratio, pd, w, h);
 
+   if (starting) starting = 0;
    eina_lock_release(&_lock);
 }
 
@@ -326,8 +346,6 @@ _elm_config_changed_cb(void *data, int type EINA_UNUSED, 
void *event EINA_UNUSED
 {
    Ui_Data *pd = data;
 
-   pd->scale = elm_config_scale_get();
-
    return EINA_TRUE;
 }
 
diff --git a/src/bin/ui/ui_process_list.c b/src/bin/ui/ui_process_list.c
index f1ec6ad..c4adbfe 100644
--- a/src/bin/ui/ui_process_list.c
+++ b/src/bin/ui/ui_process_list.c
@@ -22,6 +22,8 @@ typedef struct
    Eina_List       *cpu_times;
    Eina_List       *cpu_list;
 
+   Ecore_Event_Handler *handler[2];
+
    Ui              *ui;
 
    pid_t            selected_pid;
@@ -776,31 +778,31 @@ _process_list_update(Ui_Data *pd)
 }
 
 static void
-_btn_icon_state_update(Evas_Object *button, Eina_Bool reverse)
+_btn_icon_state_update(Evas_Object *btn, Eina_Bool reverse)
 {
-   Evas_Object *icon = elm_icon_add(button);
+   Evas_Object *icon = elm_icon_add(btn);
 
    if (reverse)
      elm_icon_standard_set(icon, evisum_icon_path_get("go-down"));
    else
      elm_icon_standard_set(icon, evisum_icon_path_get("go-up"));
 
-   elm_object_part_content_set(button, "icon", icon);
+   elm_object_part_content_set(btn, "icon", icon);
    evas_object_show(icon);
 }
 
 static void
-_btn_icon_state_init(Evas_Object *button, Eina_Bool reverse,
+_btn_icon_state_init(Evas_Object *btn, Eina_Bool reverse,
                      Eina_Bool selected EINA_UNUSED)
 {
-   Evas_Object *icon = elm_icon_add(button);
+   Evas_Object *icon = elm_icon_add(btn);
 
    if (reverse)
      elm_icon_standard_set(icon, evisum_icon_path_get("go-down"));
    else
      elm_icon_standard_set(icon, evisum_icon_path_get("go-up"));
 
-   elm_object_part_content_set(button, "icon", icon);
+   elm_object_part_content_set(btn, "icon", icon);
    evas_object_show(icon);
 }
 
@@ -1474,6 +1476,9 @@ _win_del_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_U
    if (pd->thread)
      ecore_thread_wait(pd->thread, 0.2);
 
+   ecore_event_handler_del(pd->handler[0]);
+   ecore_event_handler_del(pd->handler[1]);
+
    pd->thread = NULL;
    ui->win = NULL;
 
@@ -1506,10 +1511,10 @@ ui_process_list_win_add(Ui *ui)
    pd->selected_pid = -1;
    pd->ui = ui;
 
-   ecore_event_handler_add(ELM_EVENT_CONFIG_ALL_CHANGED,
-                           _elm_config_changed_cb, pd);
-   ecore_event_handler_add(EVISUM_EVENT_CONFIG_CHANGED,
-                           _evisum_config_changed_cb, pd);
+   pd->handler[0] = ecore_event_handler_add(ELM_EVENT_CONFIG_ALL_CHANGED,
+                                            _elm_config_changed_cb, pd);
+   pd->handler[1] = ecore_event_handler_add(EVISUM_EVENT_CONFIG_CHANGED,
+                                            _evisum_config_changed_cb, pd);
 
    ui->win = pd->win = win = elm_win_util_standard_add("evisum", "evisum");
    elm_win_autodel_set(win, EINA_TRUE);

-- 


Reply via email to