netstar pushed a commit to branch master.

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

commit 0cc32d24f01535e1b7b675b70be869cd7ba5265e
Author: Alastair Poole <nets...@gmail.com>
Date:   Wed Mar 3 13:48:30 2021 +0000

    proclist: deal with the phat scroller.
---
 src/bin/ui/ui_process_list.c | 78 +++++++++++++++++++-------------------------
 1 file changed, 34 insertions(+), 44 deletions(-)

diff --git a/src/bin/ui/ui_process_list.c b/src/bin/ui/ui_process_list.c
index 6dc2c8f..8639870 100644
--- a/src/bin/ui/ui_process_list.c
+++ b/src/bin/ui/ui_process_list.c
@@ -75,6 +75,7 @@ typedef struct
    Evas_Object            *btn_time;
    Evas_Object            *btn_cpu_usage;
 
+   Proc_Field              field_max;
    Evas_Object            *fields_menu;
 
    struct
@@ -169,6 +170,7 @@ _content_reset(Ui_Data *pd)
              evas_object_hide(f->btn);
              continue;
           }
+        pd->field_max = i;
         evas_object_show(f->btn);
         elm_table_pack(pd->tb_content, f->btn, j++, 0, 1, 1);
      }
@@ -449,7 +451,7 @@ _run_time_set(char *buf, size_t n, int64_t secs)
 {
    int rem;
 
-   if (secs < 86400)
+    if (secs < 86400)
      snprintf(buf, n, "%02" PRIi64 ":%02"PRIi64, secs / 60, secs % 60);
    else
      {
@@ -458,6 +460,21 @@ _run_time_set(char *buf, size_t n, int64_t secs)
      }
 }
 
+static void
+_field_adjust(Ui_Data *pd, Proc_Field id, Evas_Object *obj, Evas_Coord w)
+{
+   Evas_Object *rec = evas_object_data_get(obj, "rec");
+   if (id != pd->field_max)
+     evas_object_size_hint_min_set(rec, w, 1);
+   else
+     {
+        evas_object_size_hint_min_set(rec, 1, 1);
+        evas_object_size_hint_weight_set(rec, EXPAND, EXPAND);
+        evas_object_size_hint_weight_set(obj, EXPAND, EXPAND);
+     }
+   evas_object_show(obj);
+}
+
 static Evas_Object *
 _content_get(void *data, Evas_Object *obj, const char *source)
 {
@@ -499,11 +516,11 @@ _content_get(void *data, Evas_Object *obj, const char 
*source)
    evas_object_show(lb);
    elm_box_recalculate(hbx);
 
-   o = evas_object_data_get(it->obj, "icon");
    const char *new = evisum_icon_path_get(evisum_icon_cache_find(proc));
    const char *old = NULL;
+   o = evas_object_data_get(it->obj, "icon");
    elm_image_file_get(o, &old, NULL);
-   if (!old || strcmp(old, new))
+   if ((!old) || (strcmp(old, new)))
      elm_icon_standard_set(o, new);
    rec = evas_object_data_get(o, "rec");
    evas_object_size_hint_min_set(rec, w, 1);
@@ -528,9 +545,7 @@ _content_get(void *data, Evas_Object *obj, const char 
*source)
                   pd->skip_wait = 1;
                }
           }
-        rec = evas_object_data_get(lb, "rec");
-        evas_object_size_hint_min_set(rec, w, 1);
-        evas_object_show(lb);
+        _field_adjust(pd, PROC_FIELD_UID, lb, w);
      }
 
    if (_field_enabled(PROC_FIELD_PID))
@@ -540,9 +555,7 @@ _content_get(void *data, Evas_Object *obj, const char 
*source)
         snprintf(buf, sizeof(buf), "%d", proc->pid);
         if (strcmp(buf, elm_object_text_get(lb)))
           elm_object_text_set(lb, buf);
-        rec = evas_object_data_get(lb, "rec");
-        evas_object_size_hint_min_set(rec, w, 1);
-        evas_object_show(lb);
+        _field_adjust(pd, PROC_FIELD_PID, lb, w);
      }
 
    if (_field_enabled(PROC_FIELD_THREADS))
@@ -552,9 +565,7 @@ _content_get(void *data, Evas_Object *obj, const char 
*source)
         snprintf(buf, sizeof(buf), "%d", proc->numthreads);
         if (strcmp(buf, elm_object_text_get(lb)))
           elm_object_text_set(lb, buf);
-        rec = evas_object_data_get(lb, "rec");
-        evas_object_size_hint_min_set(rec, w, 1);
-        evas_object_show(lb);
+        _field_adjust(pd, PROC_FIELD_THREADS, lb, w);
      }
 
    if (_field_enabled(PROC_FIELD_CPU))
@@ -564,9 +575,7 @@ _content_get(void *data, Evas_Object *obj, const char 
*source)
         snprintf(buf, sizeof(buf), "%d", proc->cpu_id);
         if (strcmp(buf, elm_object_text_get(lb)))
           elm_object_text_set(lb, buf);
-        rec = evas_object_data_get(lb, "rec");
-        evas_object_size_hint_min_set(rec, w, 1);
-        evas_object_show(lb);
+        _field_adjust(pd, PROC_FIELD_CPU, lb, w);
      }
 
    if (_field_enabled(PROC_FIELD_PRI))
@@ -576,9 +585,7 @@ _content_get(void *data, Evas_Object *obj, const char 
*source)
         snprintf(buf, sizeof(buf), "%d", proc->priority);
         if (strcmp(buf, elm_object_text_get(lb)))
           elm_object_text_set(lb, buf);
-        rec = evas_object_data_get(lb, "rec");
-        evas_object_size_hint_min_set(rec, w, 1);
-        evas_object_show(lb);
+        _field_adjust(pd, PROC_FIELD_PRI, lb, w);
      }
 
    if (_field_enabled(PROC_FIELD_NICE))
@@ -588,9 +595,7 @@ _content_get(void *data, Evas_Object *obj, const char 
*source)
         snprintf(buf, sizeof(buf), "%d", proc->nice);
         if (strcmp(buf, elm_object_text_get(lb)))
           elm_object_text_set(lb, buf);
-        rec = evas_object_data_get(lb, "rec");
-        evas_object_size_hint_min_set(rec, w, 1);
-        evas_object_show(lb);
+        _field_adjust(pd, PROC_FIELD_NICE, lb, w);
      }
 
    if (_field_enabled(PROC_FIELD_FILES))
@@ -600,9 +605,7 @@ _content_get(void *data, Evas_Object *obj, const char 
*source)
         snprintf(buf, sizeof(buf), "%d", proc->numfiles);
         if (strcmp(buf, elm_object_text_get(lb)))
           elm_object_text_set(lb, buf);
-        rec = evas_object_data_get(lb, "rec");
-        evas_object_size_hint_min_set(rec, w, 1);
-        evas_object_show(lb);
+        _field_adjust(pd, PROC_FIELD_FILES, lb, w);
      }
 
    if (_field_enabled(PROC_FIELD_SIZE))
@@ -612,9 +615,7 @@ _content_get(void *data, Evas_Object *obj, const char 
*source)
         snprintf(buf, sizeof(buf), "%s", evisum_size_format(proc->mem_size));
         if (strcmp(buf, elm_object_text_get(lb)))
           elm_object_text_set(lb, buf);
-        rec = evas_object_data_get(lb, "rec");
-        evas_object_size_hint_min_set(rec, w, 1);
-        evas_object_show(lb);
+        _field_adjust(pd, PROC_FIELD_SIZE, lb, w);
      }
 
    if (_field_enabled(PROC_FIELD_VIRT))
@@ -624,9 +625,7 @@ _content_get(void *data, Evas_Object *obj, const char 
*source)
         snprintf(buf, sizeof(buf), "%s", evisum_size_format(proc->mem_virt));
         if (strcmp(buf, elm_object_text_get(lb)))
           elm_object_text_set(lb, buf);
-        rec = evas_object_data_get(lb, "rec");
-        evas_object_size_hint_min_set(rec, w, 1);
-        evas_object_show(lb);
+        _field_adjust(pd, PROC_FIELD_VIRT, lb, w);
      }
 
    if (_field_enabled(PROC_FIELD_RSS))
@@ -636,9 +635,7 @@ _content_get(void *data, Evas_Object *obj, const char 
*source)
         snprintf(buf, sizeof(buf), "%s", evisum_size_format(proc->mem_rss));
         if (strcmp(buf, elm_object_text_get(lb)))
           elm_object_text_set(lb, buf);
-        rec = evas_object_data_get(lb, "rec");
-        evas_object_size_hint_min_set(rec, w, 1);
-        evas_object_show(lb);
+        _field_adjust(pd, PROC_FIELD_RSS, lb, w);
      }
 
    if (_field_enabled(PROC_FIELD_SHARED))
@@ -648,9 +645,7 @@ _content_get(void *data, Evas_Object *obj, const char 
*source)
         snprintf(buf, sizeof(buf), "%s", evisum_size_format(proc->mem_shared));
         if (strcmp(buf, elm_object_text_get(lb)))
           elm_object_text_set(lb, buf);
-        rec = evas_object_data_get(lb, "rec");
-        evas_object_size_hint_min_set(rec, w, 1);
-        evas_object_show(lb);
+        _field_adjust(pd, PROC_FIELD_SHARED, lb, w);
      }
 
    if (_field_enabled(PROC_FIELD_STATE))
@@ -660,9 +655,7 @@ _content_get(void *data, Evas_Object *obj, const char 
*source)
         snprintf(buf, sizeof(buf), "%s", proc->state);
         if (strcmp(buf, elm_object_text_get(lb)))
           elm_object_text_set(lb, buf);
-        rec = evas_object_data_get(lb, "rec");
-        evas_object_size_hint_min_set(rec, w, 1);
-        evas_object_show(lb);
+        _field_adjust(pd, PROC_FIELD_STATE, lb, w);
      }
 
    if (_field_enabled(PROC_FIELD_TIME))
@@ -672,9 +665,7 @@ _content_get(void *data, Evas_Object *obj, const char 
*source)
         _run_time_set(buf, sizeof(buf), proc->run_time);
         if (strcmp(buf, elm_object_text_get(lb)))
           elm_object_text_set(lb, buf);
-        rec = evas_object_data_get(lb, "rec");
-        evas_object_size_hint_min_set(rec, w, 1);
-        evas_object_show(lb);
+        _field_adjust(pd, PROC_FIELD_TIME, lb, w);
      }
 
    if (_field_enabled(PROC_FIELD_CPU_USAGE))
@@ -684,8 +675,7 @@ _content_get(void *data, Evas_Object *obj, const char 
*source)
         double last = elm_progressbar_value_get(pb);
 
         evas_object_geometry_get(pd->btn_cpu_usage, NULL, NULL, &w, NULL);
-        rec = evas_object_data_get(pb, "rec");
-        evas_object_size_hint_min_set(rec, w, 1);
+        _field_adjust(pd, PROC_FIELD_CPU_USAGE, pb, w);
 
         if (!EINA_DBL_EQ(value, last))
           {

-- 


Reply via email to