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 *layout = NULL;
|
||||
|
||||
static Eina_Bool overlays_locked = EINA_FALSE;
|
||||
static Evas_Object *queue_list = NULL;
|
||||
static Evas_Object *controls = NULL;
|
||||
static Ecore_Timer *queue_list_hide_timer = NULL;
|
||||
|
@ -65,6 +66,15 @@ queue_list_hide(void *d EINA_UNUSED)
|
|||
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
|
||||
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;
|
||||
}
|
||||
|
||||
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
|
||||
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);
|
||||
if (queue_list_state && (!queue_list_hiding)) return;
|
||||
queue_list_hiding = EINA_FALSE;
|
||||
evas_object_show(queue_list);
|
||||
queue_list_state = EINA_TRUE;
|
||||
elm_object_signal_emit(layout, "empc,playlist,show", "empc");
|
||||
queue_list_show();
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
if (overlays_locked) return;
|
||||
if (!queue_list_hide_timer)
|
||||
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);
|
||||
if (controls_state && (!controls_hiding)) return;
|
||||
controls_hiding = EINA_FALSE;
|
||||
evas_object_show(controls);
|
||||
controls_state = EINA_TRUE;
|
||||
elm_object_signal_emit(layout, "empc,controls,show", "empc");
|
||||
controls_show();
|
||||
}
|
||||
|
||||
static void
|
||||
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)
|
||||
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
|
||||
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();
|
||||
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
|
||||
|
@ -577,7 +610,16 @@ main(int argc, char *argv[])
|
|||
win = elm_win_add(NULL, "empc", ELM_WIN_BASIC);
|
||||
elm_win_title_set(win, "empc");
|
||||
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);
|
||||
|
||||
layout = elm_layout_add(win);
|
||||
|
|
Loading…
Reference in New Issue