keydown: escape closes window.
Not perfect but good enough.
This commit is contained in:
parent
5b42efce5b
commit
bf3bd51be1
|
@ -12,6 +12,7 @@ typedef struct {
|
||||||
|
|
||||||
Ecore_Thread *thread;
|
Ecore_Thread *thread;
|
||||||
|
|
||||||
|
Evas_Object *win;
|
||||||
Evas_Object *bg;
|
Evas_Object *bg;
|
||||||
Evas_Object *obj;
|
Evas_Object *obj;
|
||||||
|
|
||||||
|
@ -416,6 +417,22 @@ _colors_fill(Evas_Object *colors)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
_win_key_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||||
|
{
|
||||||
|
Evas_Event_Key_Down *ev;
|
||||||
|
Animate *ad;
|
||||||
|
|
||||||
|
ad = data;
|
||||||
|
ev = event_info;
|
||||||
|
|
||||||
|
if (!ev || !ev->keyname)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!strcmp(ev->keyname, "Escape"))
|
||||||
|
evas_object_del(ad->ui->cpu.win);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Animate *
|
||||||
_graph(Ui *ui, Evas_Object *parent)
|
_graph(Ui *ui, Evas_Object *parent)
|
||||||
{
|
{
|
||||||
Evas_Object *tbl, *tbl2, *box, *obj, *ic, *lb, *rec;
|
Evas_Object *tbl, *tbl2, *box, *obj, *ic, *lb, *rec;
|
||||||
|
@ -424,8 +441,9 @@ _graph(Ui *ui, Evas_Object *parent)
|
||||||
char buf[128];
|
char buf[128];
|
||||||
|
|
||||||
Animate *ad = calloc(1, sizeof(Animate));
|
Animate *ad = calloc(1, sizeof(Animate));
|
||||||
if (!ad) return;
|
if (!ad) return NULL;
|
||||||
|
|
||||||
|
ad->win = ui->cpu.win;
|
||||||
ad->cpu_count = system_cpu_count_get();
|
ad->cpu_count = system_cpu_count_get();
|
||||||
if (!system_cpu_frequency_min_max_get(&ad->freq_min, &ad->freq_max))
|
if (!system_cpu_frequency_min_max_get(&ad->freq_min, &ad->freq_max))
|
||||||
ad->cpu_freq = EINA_TRUE;
|
ad->cpu_freq = EINA_TRUE;
|
||||||
|
@ -675,8 +693,6 @@ _graph(Ui *ui, Evas_Object *parent)
|
||||||
evas_object_size_hint_min_set
|
evas_object_size_hint_min_set
|
||||||
(obj, 100, (BAR_HEIGHT * ad->cpu_count) * elm_config_scale_get());
|
(obj, 100, (BAR_HEIGHT * ad->cpu_count) * elm_config_scale_get());
|
||||||
|
|
||||||
// since win is on auto-delete, just listen for when it is deleted,
|
|
||||||
// whatever the cause/reason
|
|
||||||
evas_object_event_callback_add(ui->cpu.win, EVAS_CALLBACK_DEL, _win_del_cb, ad);
|
evas_object_event_callback_add(ui->cpu.win, EVAS_CALLBACK_DEL, _win_del_cb, ad);
|
||||||
|
|
||||||
// run a feedback thread that sends feedback to the mainloop
|
// run a feedback thread that sends feedback to the mainloop
|
||||||
|
@ -685,6 +701,7 @@ _graph(Ui *ui, Evas_Object *parent)
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
ad, EINA_TRUE);
|
ad, EINA_TRUE);
|
||||||
|
return ad;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -698,6 +715,7 @@ _win_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||||
void
|
void
|
||||||
ui_win_cpu_add(Ui *ui, Evas_Object *parent)
|
ui_win_cpu_add(Ui *ui, Evas_Object *parent)
|
||||||
{
|
{
|
||||||
|
Animate *ad;
|
||||||
Evas_Object *win, *box, *scroller;
|
Evas_Object *win, *box, *scroller;
|
||||||
Evas_Coord x = 0, y = 0;
|
Evas_Coord x = 0, y = 0;
|
||||||
|
|
||||||
|
@ -730,8 +748,8 @@ ui_win_cpu_add(Ui *ui, Evas_Object *parent)
|
||||||
evas_object_size_hint_weight_set(box, EXPAND, EXPAND);
|
evas_object_size_hint_weight_set(box, EXPAND, EXPAND);
|
||||||
evas_object_show(box);
|
evas_object_show(box);
|
||||||
|
|
||||||
_graph(ui, box);
|
ad = _graph(ui, box);
|
||||||
|
evas_object_event_callback_add(scroller, EVAS_CALLBACK_KEY_DOWN, _win_key_down_cb, ad);
|
||||||
elm_object_content_set(scroller, box);
|
elm_object_content_set(scroller, box);
|
||||||
elm_object_content_set(win, scroller);
|
elm_object_content_set(win, scroller);
|
||||||
|
|
||||||
|
@ -751,7 +769,6 @@ ui_win_cpu_add(Ui *ui, Evas_Object *parent)
|
||||||
else
|
else
|
||||||
elm_win_center(win, 1, 1);
|
elm_win_center(win, 1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
evas_object_show(win);
|
evas_object_show(win);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -290,6 +290,22 @@ _disks_poll_update(Ui_Data *pd)
|
||||||
pd->skip_wait = 1;
|
pd->skip_wait = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_win_key_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||||
|
{
|
||||||
|
Evas_Event_Key_Down *ev;
|
||||||
|
Ui_Data *pd;
|
||||||
|
|
||||||
|
pd = data;
|
||||||
|
ev = event_info;
|
||||||
|
|
||||||
|
if (!ev || !ev->keyname)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!strcmp(ev->keyname, "Escape"))
|
||||||
|
evas_object_del(pd->ui->disk.win);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_win_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
_win_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||||
void *event_info EINA_UNUSED)
|
void *event_info EINA_UNUSED)
|
||||||
|
@ -668,6 +684,7 @@ ui_win_disk_add(Ui *ui, Evas_Object *parent)
|
||||||
|
|
||||||
evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _win_del_cb, pd);
|
evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _win_del_cb, pd);
|
||||||
evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE, _win_resize_cb, pd);
|
evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE, _win_resize_cb, pd);
|
||||||
|
evas_object_event_callback_add(tbl, EVAS_CALLBACK_KEY_DOWN, _win_key_down_cb, pd);
|
||||||
evas_object_show(win);
|
evas_object_show(win);
|
||||||
|
|
||||||
pd->thread = ecore_thread_feedback_run(_disks_poll,
|
pd->thread = ecore_thread_feedback_run(_disks_poll,
|
||||||
|
|
|
@ -348,6 +348,22 @@ _graph_guide(Evas_Object *parent, int r, int g, int b, int a)
|
||||||
return btn;
|
return btn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_win_key_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||||
|
{
|
||||||
|
Evas_Event_Key_Down *ev;
|
||||||
|
Ui_Data *pd;
|
||||||
|
|
||||||
|
pd = data;
|
||||||
|
ev = event_info;
|
||||||
|
|
||||||
|
if (!ev || !ev->keyname)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!strcmp(ev->keyname, "Escape"))
|
||||||
|
evas_object_del(pd->win);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_win_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj,
|
_win_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj,
|
||||||
void *event_info EINA_UNUSED)
|
void *event_info EINA_UNUSED)
|
||||||
|
@ -511,6 +527,7 @@ ui_win_memory_add(Ui *ui, Evas_Object *parent)
|
||||||
|
|
||||||
evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE, _win_resize_cb, pd);
|
evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE, _win_resize_cb, pd);
|
||||||
evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _win_del_cb, pd);
|
evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _win_del_cb, pd);
|
||||||
|
evas_object_event_callback_add(tbl, EVAS_CALLBACK_KEY_DOWN, _win_key_down_cb, pd);
|
||||||
evas_object_show(win);
|
evas_object_show(win);
|
||||||
|
|
||||||
pd->thread = ecore_thread_feedback_run(_mem_usage_main_cb,
|
pd->thread = ecore_thread_feedback_run(_mem_usage_main_cb,
|
||||||
|
|
|
@ -1451,7 +1451,10 @@ _win_key_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||||
if (!ev || !ev->keyname)
|
if (!ev || !ev->keyname)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_win_key_down_search(pd, ev);
|
if (!strcmp(ev->keyname, "Escape") && !pd->entry_visible)
|
||||||
|
evas_object_del(pd->win);
|
||||||
|
else
|
||||||
|
_win_key_down_search(pd, ev);
|
||||||
|
|
||||||
pd->skip_wait = 1;
|
pd->skip_wait = 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -200,6 +200,22 @@ _content_get(void *data, Evas_Object *obj, const char *part)
|
||||||
return bx;
|
return bx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_win_key_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||||
|
{
|
||||||
|
Evas_Event_Key_Down *ev;
|
||||||
|
Ui_Data *pd;
|
||||||
|
|
||||||
|
pd = data;
|
||||||
|
ev = event_info;
|
||||||
|
|
||||||
|
if (!ev || !ev->keyname)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!strcmp(ev->keyname, "Escape"))
|
||||||
|
evas_object_del(pd->ui->sensors.win);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_win_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
_win_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||||
void *event_info EINA_UNUSED)
|
void *event_info EINA_UNUSED)
|
||||||
|
@ -257,6 +273,7 @@ ui_win_sensors_add(Ui *ui, Evas_Object *parent)
|
||||||
evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE,
|
evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE,
|
||||||
_win_resize_cb, pd);
|
_win_resize_cb, pd);
|
||||||
evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _win_del_cb, pd);
|
evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _win_del_cb, pd);
|
||||||
|
evas_object_event_callback_add(win, EVAS_CALLBACK_KEY_DOWN, _win_key_down_cb, pd);
|
||||||
|
|
||||||
fr = elm_frame_add(win);
|
fr = elm_frame_add(win);
|
||||||
evas_object_size_hint_weight_set(fr, EXPAND, EXPAND);
|
evas_object_size_hint_weight_set(fr, EXPAND, EXPAND);
|
||||||
|
|
Loading…
Reference in New Issue