proc_view: show or not show scroller.

I like it off, someone won't, sooooo...
This commit is contained in:
Alastair Poole 2021-01-20 08:49:00 +00:00
parent 3ac6591638
commit 4e468ff0f2
4 changed files with 52 additions and 5 deletions

View File

@ -3,7 +3,7 @@
#include "ui/ui.h" #include "ui/ui.h"
#define CONFIG_VERSION 0x000c #define CONFIG_VERSION 0x000d
typedef struct _Evisum_Config typedef struct _Evisum_Config
{ {
@ -25,6 +25,8 @@ typedef struct _Evisum_Config
int sort_type; int sort_type;
Eina_Bool sort_reverse; Eina_Bool sort_reverse;
int poll_delay; int poll_delay;
int show_scroller;
} proc; } proc;
struct struct

View File

@ -29,8 +29,10 @@ evisum_ui_config_save(Ui *ui)
if (ui->proc.win) if (ui->proc.win)
{ {
if (_evisum_config->proc.poll_delay != ui->proc.poll_delay || if ((_evisum_config->proc.poll_delay != ui->proc.poll_delay) ||
_evisum_config->proc.show_kthreads != ui->proc.show_kthreads) (_evisum_config->proc.show_kthreads != ui->proc.show_kthreads) ||
(_evisum_config->proc.show_scroller != ui->proc.show_scroller)
)
{ {
notify = EINA_TRUE; 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.poll_delay = ui->proc.poll_delay;
_evisum_config->proc.show_kthreads = ui->proc.show_kthreads; _evisum_config->proc.show_kthreads = ui->proc.show_kthreads;
_evisum_config->proc.show_user = ui->proc.show_user; _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); 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; ui->proc.show_kthreads = _evisum_config->proc.show_kthreads;
proc_info_kthreads_show_set(ui->proc.show_kthreads); proc_info_kthreads_show_set(ui->proc.show_kthreads);
ui->proc.show_user = _evisum_config->proc.show_user; 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.width = _evisum_config->proc.width;
ui->proc.height = _evisum_config->proc.height; 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); 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 static void
_main_menu_show_user_changed_cb(void *data EINA_UNUSED, Evas_Object *obj, _main_menu_show_user_changed_cb(void *data EINA_UNUSED, Evas_Object *obj,
void *event_info EINA_UNUSED) 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); ui->proc.show_user = elm_check_state_get(obj);
evisum_ui_config_save(ui); evisum_ui_config_save(ui);
} }
typedef struct typedef struct
{ {
Ecore_Timer *timer; Ecore_Timer *timer;
@ -475,6 +490,24 @@ evisum_ui_main_menu_create(Ui *ui, Evas_Object *parent, Evas_Object *obj)
_main_menu_show_user_changed_cb, ui); _main_menu_show_user_changed_cb, ui);
elm_box_pack_end(bx2, chk); 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_object_content_set(fr, bx2);
elm_box_pack_end(bx, fr); elm_box_pack_end(bx, fr);

View File

@ -35,6 +35,8 @@ typedef struct Ui
Eina_Bool show_self; Eina_Bool show_self;
Eina_Bool show_kthreads; Eina_Bool show_kthreads;
Eina_Bool show_user; Eina_Bool show_user;
Eina_Bool show_scroller;
} proc; } proc;
Evas_Object *win_about; Evas_Object *win_about;

View File

@ -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_scroller_gravity_set(pd->scroller, 0.0, 1.0);
elm_object_focus_allow_set(glist, 1); elm_object_focus_allow_set(glist, 1);
elm_scroller_policy_set(pd->scroller, ELM_SCROLLER_POLICY_OFF, 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); elm_genlist_multi_select_set(glist, EINA_FALSE);
evas_object_size_hint_weight_set(glist, EXPAND, EXPAND); evas_object_size_hint_weight_set(glist, EXPAND, EXPAND);
evas_object_size_hint_align_set(glist, FILL, FILL); 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) _evisum_config_changed_cb(void *data, int type EINA_UNUSED, void *event EINA_UNUSED)
{ {
Eina_Iterator *it; Eina_Iterator *it;
Ui *ui;
Ui_Data *pd = data; Ui_Data *pd = data;
void *d = NULL; void *d = NULL;
ui = pd->ui;
it = eina_hash_iterator_data_new(pd->cpu_times); it = eina_hash_iterator_data_new(pd->cpu_times);
while (eina_iterator_next(it, &d)) 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); 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; return EINA_TRUE;
} }