ctrl+q now required to quit, F1 toggles overlays
This commit is contained in:
parent
ddf6af2851
commit
48d33793a7
62
empc.c
62
empc.c
|
@ -26,6 +26,7 @@ static Evas_Object *win = NULL;
|
||||||
static Evas_Object *bg = NULL;
|
static Evas_Object *bg = NULL;
|
||||||
static Evas_Object *layout = NULL;
|
static Evas_Object *layout = NULL;
|
||||||
|
|
||||||
|
static Eina_Bool overlays_locked = EINA_FALSE;
|
||||||
static Evas_Object *queue_list = NULL;
|
static Evas_Object *queue_list = NULL;
|
||||||
static Evas_Object *controls = NULL;
|
static Evas_Object *controls = NULL;
|
||||||
static Ecore_Timer *queue_list_hide_timer = NULL;
|
static Ecore_Timer *queue_list_hide_timer = NULL;
|
||||||
|
@ -65,6 +66,15 @@ queue_list_hide(void *d EINA_UNUSED)
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
queue_list_show(void)
|
||||||
|
{
|
||||||
|
queue_list_hiding = EINA_FALSE;
|
||||||
|
evas_object_show(queue_list);
|
||||||
|
queue_list_state = EINA_TRUE;
|
||||||
|
elm_object_signal_emit(layout, "empc,playlist,show", "empc");
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
controls_hidden(void *d EINA_UNUSED, Evas_Object *o EINA_UNUSED, const char *sig EINA_UNUSED, const char *src EINA_UNUSED)
|
controls_hidden(void *d EINA_UNUSED, Evas_Object *o EINA_UNUSED, const char *sig EINA_UNUSED, const char *src EINA_UNUSED)
|
||||||
{
|
{
|
||||||
|
@ -80,6 +90,15 @@ controls_hide(void *d EINA_UNUSED)
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
controls_show(void)
|
||||||
|
{
|
||||||
|
controls_hiding = EINA_FALSE;
|
||||||
|
evas_object_show(controls);
|
||||||
|
controls_state = EINA_TRUE;
|
||||||
|
elm_object_signal_emit(layout, "empc,controls,show", "empc");
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
title_changed(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, const char *sig EINA_UNUSED, const char *src EINA_UNUSED)
|
title_changed(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, const char *sig EINA_UNUSED, const char *src EINA_UNUSED)
|
||||||
{
|
{
|
||||||
|
@ -511,15 +530,13 @@ queue_list_mouse_in(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, const
|
||||||
{
|
{
|
||||||
E_FREE_FUNC(queue_list_hide_timer, ecore_timer_del);
|
E_FREE_FUNC(queue_list_hide_timer, ecore_timer_del);
|
||||||
if (queue_list_state && (!queue_list_hiding)) return;
|
if (queue_list_state && (!queue_list_hiding)) return;
|
||||||
queue_list_hiding = EINA_FALSE;
|
queue_list_show();
|
||||||
evas_object_show(queue_list);
|
|
||||||
queue_list_state = EINA_TRUE;
|
|
||||||
elm_object_signal_emit(layout, "empc,playlist,show", "empc");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
queue_list_mouse_out(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, const char *sig EINA_UNUSED, const char *src EINA_UNUSED)
|
queue_list_mouse_out(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, const char *sig EINA_UNUSED, const char *src EINA_UNUSED)
|
||||||
{
|
{
|
||||||
|
if (overlays_locked) return;
|
||||||
if (!queue_list_hide_timer)
|
if (!queue_list_hide_timer)
|
||||||
queue_list_hide_timer = ecore_timer_add(HIDE_TIMEOUT, queue_list_hide, NULL);
|
queue_list_hide_timer = ecore_timer_add(HIDE_TIMEOUT, queue_list_hide, NULL);
|
||||||
}
|
}
|
||||||
|
@ -529,15 +546,13 @@ controls_mouse_in(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, const ch
|
||||||
{
|
{
|
||||||
E_FREE_FUNC(controls_hide_timer, ecore_timer_del);
|
E_FREE_FUNC(controls_hide_timer, ecore_timer_del);
|
||||||
if (controls_state && (!controls_hiding)) return;
|
if (controls_state && (!controls_hiding)) return;
|
||||||
controls_hiding = EINA_FALSE;
|
controls_show();
|
||||||
evas_object_show(controls);
|
|
||||||
controls_state = EINA_TRUE;
|
|
||||||
elm_object_signal_emit(layout, "empc,controls,show", "empc");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
controls_mouse_out(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, const char *sig EINA_UNUSED, const char *src EINA_UNUSED)
|
controls_mouse_out(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, const char *sig EINA_UNUSED, const char *src EINA_UNUSED)
|
||||||
{
|
{
|
||||||
|
if (overlays_locked) return;
|
||||||
if (!controls_hide_timer)
|
if (!controls_hide_timer)
|
||||||
controls_hide_timer = ecore_timer_add(HIDE_TIMEOUT, controls_hide, NULL);
|
controls_hide_timer = ecore_timer_add(HIDE_TIMEOUT, controls_hide, NULL);
|
||||||
}
|
}
|
||||||
|
@ -545,8 +560,26 @@ controls_mouse_out(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, const c
|
||||||
static void
|
static void
|
||||||
key_down(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, Evas_Event_Key_Down *ev)
|
key_down(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, Evas_Event_Key_Down *ev)
|
||||||
{
|
{
|
||||||
if (!strcmp(ev->keyname, "q"))
|
if ((!strcmp(ev->keyname, "q")) && evas_key_modifier_is_set(ev->modifiers, "Control"))
|
||||||
ecore_main_loop_quit();
|
ecore_main_loop_quit();
|
||||||
|
else if (!strcmp(ev->keyname, "F1"))
|
||||||
|
{
|
||||||
|
overlays_locked = !overlays_locked;
|
||||||
|
if (overlays_locked)
|
||||||
|
{
|
||||||
|
E_FREE_FUNC(queue_list_hide_timer, ecore_timer_del);
|
||||||
|
E_FREE_FUNC(controls_hide_timer, ecore_timer_del);
|
||||||
|
if (!controls_state)
|
||||||
|
controls_show();
|
||||||
|
if (!queue_list_state)
|
||||||
|
queue_list_show();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
controls_hide(NULL);
|
||||||
|
queue_list_hide(NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -577,7 +610,16 @@ main(int argc, char *argv[])
|
||||||
win = elm_win_add(NULL, "empc", ELM_WIN_BASIC);
|
win = elm_win_add(NULL, "empc", ELM_WIN_BASIC);
|
||||||
elm_win_title_set(win, "empc");
|
elm_win_title_set(win, "empc");
|
||||||
elm_win_autodel_set(win, 1);
|
elm_win_autodel_set(win, 1);
|
||||||
1 | evas_object_key_grab(win, "q", 0, 0, 1);
|
{
|
||||||
|
Evas_Modifier_Mask ctrl, shift, alt;
|
||||||
|
Evas *e = evas_object_evas_get(win);
|
||||||
|
|
||||||
|
ctrl = evas_key_modifier_mask_get(e, "Control");
|
||||||
|
shift = evas_key_modifier_mask_get(e, "Shift");
|
||||||
|
alt = evas_key_modifier_mask_get(e, "Alt");
|
||||||
|
1 | evas_object_key_grab(win, "q", 0, ctrl, 1);
|
||||||
|
1 | evas_object_key_grab(win, "F1", 0, 0, 1);
|
||||||
|
}
|
||||||
evas_object_event_callback_add(win, EVAS_CALLBACK_KEY_DOWN, (Evas_Object_Event_Cb)key_down, NULL);
|
evas_object_event_callback_add(win, EVAS_CALLBACK_KEY_DOWN, (Evas_Object_Event_Cb)key_down, NULL);
|
||||||
|
|
||||||
layout = elm_layout_add(win);
|
layout = elm_layout_add(win);
|
||||||
|
|
Loading…
Reference in New Issue