netstar pushed a commit to branch master.

http://git.enlightenment.org/apps/evisum.git/commit/?id=4e468ff0f22b11c5b2a3f5ab56ade934ebcb6da8

commit 4e468ff0f22b11c5b2a3f5ab56ade934ebcb6da8
Author: Alastair Poole <nets...@gmail.com>
Date:   Wed Jan 20 08:49:00 2021 +0000

    proc_view: show or not show scroller.
    
    I like it off, someone won't, sooooo...
---
 src/bin/evisum_config.h      |  4 +++-
 src/bin/ui/ui.c              | 39 ++++++++++++++++++++++++++++++++++++---
 src/bin/ui/ui.h              |  2 ++
 src/bin/ui/ui_process_list.c | 12 +++++++++++-
 4 files changed, 52 insertions(+), 5 deletions(-)

diff --git a/src/bin/evisum_config.h b/src/bin/evisum_config.h
index 76b73aa..897138f 100644
--- a/src/bin/evisum_config.h
+++ b/src/bin/evisum_config.h
@@ -3,7 +3,7 @@
 
 #include "ui/ui.h"
 
-#define CONFIG_VERSION 0x000c
+#define CONFIG_VERSION 0x000d
 
 typedef struct _Evisum_Config
 {
@@ -25,6 +25,8 @@ typedef struct _Evisum_Config
       int          sort_type;
       Eina_Bool    sort_reverse;
       int          poll_delay;
+
+      int          show_scroller;
    } proc;
 
    struct
diff --git a/src/bin/ui/ui.c b/src/bin/ui/ui.c
index 59347d7..725a7e5 100644
--- a/src/bin/ui/ui.c
+++ b/src/bin/ui/ui.c
@@ -29,8 +29,10 @@ evisum_ui_config_save(Ui *ui)
 
    if (ui->proc.win)
      {
-        if (_evisum_config->proc.poll_delay != ui->proc.poll_delay ||
-            _evisum_config->proc.show_kthreads != ui->proc.show_kthreads)
+        if ((_evisum_config->proc.poll_delay != ui->proc.poll_delay) ||
+            (_evisum_config->proc.show_kthreads != ui->proc.show_kthreads) ||
+            (_evisum_config->proc.show_scroller != ui->proc.show_scroller)
+          )
           {
              notify = EINA_TRUE;
           }
@@ -45,6 +47,7 @@ evisum_ui_config_save(Ui *ui)
         _evisum_config->proc.poll_delay = ui->proc.poll_delay;
         _evisum_config->proc.show_kthreads = ui->proc.show_kthreads;
         _evisum_config->proc.show_user = ui->proc.show_user;
+        _evisum_config->proc.show_scroller = ui->proc.show_scroller;
         proc_info_kthreads_show_set(ui->proc.show_kthreads);
      }
 
@@ -109,6 +112,7 @@ evisum_ui_config_load(Ui *ui)
    ui->proc.show_kthreads = _evisum_config->proc.show_kthreads;
    proc_info_kthreads_show_set(ui->proc.show_kthreads);
    ui->proc.show_user = _evisum_config->proc.show_user;
+   ui->proc.show_scroller = _evisum_config->proc.show_scroller;
 
    ui->proc.width = _evisum_config->proc.width;
    ui->proc.height = _evisum_config->proc.height;
@@ -287,6 +291,16 @@ _main_menu_show_threads_changed_cb(void *data EINA_UNUSED, 
Evas_Object *obj,
    evisum_ui_config_save(ui);
 }
 
+static void
+_main_menu_show_scroller_changed_cb(void *data EINA_UNUSED, Evas_Object *obj,
+                                    void *event_info EINA_UNUSED)
+{
+   Ui *ui = data;
+
+   ui->proc.show_scroller = elm_check_state_get(obj);
+   evisum_ui_config_save(ui);
+}
+
 static void
 _main_menu_show_user_changed_cb(void *data EINA_UNUSED, Evas_Object *obj,
                                 void *event_info EINA_UNUSED)
@@ -296,6 +310,7 @@ _main_menu_show_user_changed_cb(void *data EINA_UNUSED, 
Evas_Object *obj,
    ui->proc.show_user = elm_check_state_get(obj);
    evisum_ui_config_save(ui);
 }
+
 typedef struct
 {
    Ecore_Timer *timer;
@@ -304,7 +319,7 @@ typedef struct
 
 static void
 _main_menu_deleted_cb(void *data EINA_UNUSED, Evas_Object *obj, Evas *e,
-                        void *event_info EINA_UNUSED)
+                      void *event_info EINA_UNUSED)
 {
    Menu_Inst *inst = data;
 
@@ -475,6 +490,24 @@ evisum_ui_main_menu_create(Ui *ui, Evas_Object *parent, 
Evas_Object *obj)
                                   _main_menu_show_user_changed_cb, ui);
    elm_box_pack_end(bx2, chk);
 
+   sep = elm_separator_add(bx2);
+   evas_object_size_hint_align_set(sep, FILL, FILL);
+   evas_object_size_hint_weight_set(sep, EXPAND, EXPAND);
+   elm_separator_horizontal_set(sep, 1);
+   evas_object_show(sep);
+   elm_box_pack_end(bx2, sep);
+
+   chk = elm_check_add(bx2);
+   evas_object_size_hint_weight_set(chk, EXPAND, EXPAND);
+   evas_object_size_hint_align_set(chk, FILL, FILL);
+   elm_object_text_set(chk, _("Display scroll bar?"));
+   elm_check_state_set(chk, ui->proc.show_scroller);
+   evas_object_show(chk);
+   evas_object_smart_callback_add(chk, "changed",
+                                  _main_menu_show_scroller_changed_cb, ui);
+   elm_box_pack_end(bx2, chk);
+
+
    elm_object_content_set(fr, bx2);
    elm_box_pack_end(bx, fr);
 
diff --git a/src/bin/ui/ui.h b/src/bin/ui/ui.h
index 8e31efb..a53695b 100644
--- a/src/bin/ui/ui.h
+++ b/src/bin/ui/ui.h
@@ -35,6 +35,8 @@ typedef struct Ui
       Eina_Bool     show_self;
       Eina_Bool     show_kthreads;
       Eina_Bool     show_user;
+
+      Eina_Bool     show_scroller;
    } proc;
 
    Evas_Object     *win_about;
diff --git a/src/bin/ui/ui_process_list.c b/src/bin/ui/ui_process_list.c
index 3fb384e..82bc956 100644
--- a/src/bin/ui/ui_process_list.c
+++ b/src/bin/ui/ui_process_list.c
@@ -1418,7 +1418,9 @@ _ui_content_system_add(Ui_Data *pd, Evas_Object *parent)
    elm_scroller_gravity_set(pd->scroller, 0.0, 1.0);
    elm_object_focus_allow_set(glist, 1);
    elm_scroller_policy_set(pd->scroller, ELM_SCROLLER_POLICY_OFF,
-                           ELM_SCROLLER_POLICY_OFF);
+                           (ui->proc.show_scroller ?
+                            ELM_SCROLLER_POLICY_ON :
+                            ELM_SCROLLER_POLICY_OFF));
    elm_genlist_multi_select_set(glist, EINA_FALSE);
    evas_object_size_hint_weight_set(glist, EXPAND, EXPAND);
    evas_object_size_hint_align_set(glist, FILL, FILL);
@@ -1619,9 +1621,12 @@ static Eina_Bool
 _evisum_config_changed_cb(void *data, int type EINA_UNUSED, void *event 
EINA_UNUSED)
 {
    Eina_Iterator *it;
+   Ui *ui;
    Ui_Data *pd = data;
    void *d = NULL;
 
+   ui = pd->ui;
+
    it = eina_hash_iterator_data_new(pd->cpu_times);
    while (eina_iterator_next(it, &d))
      {
@@ -1631,6 +1636,11 @@ _evisum_config_changed_cb(void *data, int type 
EINA_UNUSED, void *event EINA_UNU
 
    eina_iterator_free(it);
 
+   elm_scroller_policy_set(pd->scroller, ELM_SCROLLER_POLICY_OFF,
+                           (ui->proc.show_scroller ?
+                            ELM_SCROLLER_POLICY_ON :
+                            ELM_SCROLLER_POLICY_OFF));
+
    return EINA_TRUE;
 }
 

-- 


Reply via email to