forked from enlightenment/enlightenment
e_client_volume: check volume setted after a slider drag
This commit is contained in:
parent
fba185798c
commit
cb6ea9f747
|
@ -11,6 +11,7 @@ static void _e_client_volume_event_simple_free(void *d, E_Event_Client *ev);
|
|||
static void _e_client_volume_event_simple(E_Client *ec, int type);
|
||||
static void _e_client_volume_object_mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
|
||||
static void _e_client_volume_object_volume_changed(void *data, Evas_Object *obj, void *event_info);
|
||||
static void _e_client_volume_object_volume_drag_stop(void *data, Evas_Object *obj, void *event_info);
|
||||
static Eina_Bool _e_client_volume_object_changed(void *data, int type, void *event);
|
||||
static void _e_client_volume_object_del_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
|
||||
|
||||
|
@ -77,6 +78,16 @@ _e_client_volume_object_volume_changed(void *data, Evas_Object *obj, void *event
|
|||
e_client_volume_set(ec, elm_slider_value_get(obj));
|
||||
}
|
||||
|
||||
static void
|
||||
_e_client_volume_object_volume_drag_stop(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||
{
|
||||
E_Client *ec;
|
||||
|
||||
ec = data;
|
||||
|
||||
e_client_volume_set(ec, elm_slider_value_get(obj));
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
_e_client_volume_object_changed(void *data, int type EINA_UNUSED, void *event)
|
||||
{
|
||||
|
@ -353,6 +364,7 @@ e_client_volume_set(E_Client *ec, int volume)
|
|||
e_client_volume_sink_set(sink, ec->volume, ec->mute);
|
||||
}
|
||||
|
||||
_e_client_volume_update(ec);
|
||||
_e_client_volume_event_simple(ec, E_EVENT_CLIENT_VOLUME);
|
||||
}
|
||||
|
||||
|
@ -423,6 +435,9 @@ e_client_volume_object_add(E_Client *ec, Evas *evas)
|
|||
evas_object_smart_callback_add(o, "changed",
|
||||
_e_client_volume_object_volume_changed,
|
||||
ec);
|
||||
evas_object_smart_callback_add(o, "slider,drag,stop",
|
||||
_e_client_volume_object_volume_drag_stop,
|
||||
ec);
|
||||
elm_slider_value_set(o, ec->volume);
|
||||
edje_object_part_swallow(bx, "e.swallow.volume", o);
|
||||
evas_object_show(o);
|
||||
|
|
|
@ -1049,6 +1049,17 @@ _bd_hook_volume_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUS
|
|||
e_client_volume_set(ec, elm_slider_value_get(obj));
|
||||
}
|
||||
|
||||
static void
|
||||
_bd_hook_volume_drag_stop(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||
{
|
||||
E_Client *ec;
|
||||
|
||||
ec = data;
|
||||
|
||||
elm_slider_value_set(obj, ec->volume);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
_bd_hook_mute_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||
{
|
||||
|
@ -1074,6 +1085,24 @@ _bd_hook_sink_volume_changed(void *data, Evas_Object *obj, void *event_info EINA
|
|||
elm_check_state_get(check));
|
||||
}
|
||||
|
||||
static void
|
||||
_bd_hook_sink_volume_drag_stop(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||
{
|
||||
E_Client_Volume_Sink *sink;
|
||||
Evas_Object *check;
|
||||
Eina_Bool mute;
|
||||
int vol;
|
||||
|
||||
sink = data;
|
||||
|
||||
check = evas_object_data_get(obj, "e_sink_check");
|
||||
|
||||
e_client_volume_sink_get(sink, &vol, &mute);
|
||||
elm_slider_value_set(obj, vol);
|
||||
elm_check_state_set(check, mute);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
_bd_hook_sink_mute_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||
{
|
||||
|
@ -1187,6 +1216,8 @@ _e_client_mixer_sink_append(E_Client_Volume_Sink *sink, Client_Mixer *cm)
|
|||
elm_slider_value_set(slider, volume);
|
||||
evas_object_smart_callback_add(slider, "changed",
|
||||
_bd_hook_sink_volume_changed, sink);
|
||||
evas_object_smart_callback_add(slider, "slider,drag,stop",
|
||||
_bd_hook_sink_volume_drag_stop, sink);
|
||||
elm_box_pack_end(cm->bx, slider);
|
||||
evas_object_show(slider);
|
||||
|
||||
|
@ -1379,6 +1410,8 @@ _bd_hook_cb(void *data, E_Menu *m EINA_UNUSED, E_Menu_Item *it EINA_UNUSED)
|
|||
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_slider_value_set(o, ec->volume);
|
||||
evas_object_smart_callback_add(o, "changed", _bd_hook_volume_changed, ec);
|
||||
evas_object_smart_callback_add(o, "slider,drag,stop",
|
||||
_bd_hook_volume_drag_stop, ec);
|
||||
elm_box_pack_end(bx, o);
|
||||
evas_object_show(o);
|
||||
cm->volume = o;
|
||||
|
|
Loading…
Reference in New Issue