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"
#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

View File

@ -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);

View File

@ -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;

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_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;
}