_elm_theme_object_set(obj, wd->slider, "slider", "horizontal", elm_widget_style_get(obj));
else
_elm_theme_object_set(obj, wd->slider, "slider", "vertical", elm_widget_style_get(obj));
+ if (elm_widget_disabled_get(obj))
+ edje_object_signal_emit(wd->slider, "elm,state,disabled", "elm");
+ else
+ edje_object_signal_emit(wd->slider, "elm,state,enabled", "elm");
if (wd->icon)
{
edje_object_part_swallow(wd->slider, "elm.swallow.content", wd->icon);
static void
_drag(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__)
{
+ Widget_Data *wd = elm_widget_data_get((Evas_Object*)data);
+ if (elm_widget_disabled_get(data)) return;
_val_fetch(data);
_units_set(data);
_indicator_set(data);
+ edje_object_signal_emit(wd->slider, "elm,state,drag", "elm");
+ edje_object_message_signal_process(wd->slider);
}
static void
_drag_start(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__)
{
+ Widget_Data *wd = elm_widget_data_get((Evas_Object*)data);
+ if (elm_widget_disabled_get(data)) return;
_val_fetch(data);
evas_object_smart_callback_call(data, SIG_DRAG_START, NULL);
_units_set(data);
_indicator_set(data);
elm_widget_scroll_freeze_push(data);
+ edje_object_signal_emit(wd->slider, "elm,state,drag", "elm");
+ edje_object_message_signal_process(wd->slider);
}
static void
_drag_stop(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__)
{
+ if (elm_widget_disabled_get(data)) return;
_val_fetch(data);
evas_object_smart_callback_call(data, SIG_DRAG_STOP, NULL);
_units_set(data);
static void
_drag_step(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__)
{
+ if (elm_widget_disabled_get(data)) return;
_val_fetch(data);
_units_set(data);
_indicator_set(data);
{
double step;
Widget_Data *wd;
+ if (elm_widget_disabled_get(data)) return;
wd = elm_widget_data_get(data);
step = 0.05;
{
double step;
Widget_Data *wd;
+ if (elm_widget_disabled_get(data)) return;
wd = elm_widget_data_get(data);
step = -0.05;
Evas_Event_Mouse_Down *ev = event_info;
Evas_Coord x, y, w, h;
double button_x = 0.0, button_y = 0.0;
+ if (elm_widget_disabled_get(data)) return;
wd->spacer_down = EINA_TRUE;
wd->val2 = wd->val;
evas_object_geometry_get(wd->spacer, &x, &y, &w, &h);
wd->downx = ev->canvas.x - x;
wd->downy = ev->canvas.y - y;
+ edje_object_part_drag_value_get(wd->slider, "elm.dragable.slider", &button_x, &button_y);
if (wd->horizontal)
{
button_x = ((double)ev->canvas.x - (double)x) / (double)w;
_units_set(data);
_indicator_set(data);
edje_object_signal_emit(wd->slider, "elm,state,indicator,show", "elm");
+ edje_object_signal_emit(wd->slider, "elm,state,drag", "elm");
+ edje_object_message_signal_process(wd->slider);
}
static void
Evas_Event_Mouse_Move *ev = event_info;
Evas_Coord x, y, w, h;
double button_x = 0.0, button_y = 0.0;
+ if (elm_widget_disabled_get(data)) return;
if (wd->spacer_down)
{
if (!wd->frozen)
{
elm_widget_scroll_freeze_push(data);
- wd->frozen = 1;
+ wd->frozen = EINA_TRUE;
}
ev->event_flags &= ~EVAS_EVENT_FLAG_ON_HOLD;
}
-
+
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
{
if (wd->spacer_down) wd->spacer_down = EINA_FALSE;
if (wd->frozen)
{
elm_widget_scroll_freeze_pop(data);
- wd->frozen = 0;
+ wd->frozen = EINA_FALSE;
}
edje_object_signal_emit(wd->slider, "elm,state,indicator,hide", "elm");
elm_slider_value_set(data, wd->val2);
_val_fetch(data);
_units_set(data);
_indicator_set(data);
+ edje_object_signal_emit(wd->slider, "elm,state,drag", "elm");
+ edje_object_message_signal_process(wd->slider);
}
}
_spacer_up_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Widget_Data *wd = elm_widget_data_get(data);
-
+ if (elm_widget_disabled_get(data)) return;
if (!wd->spacer_down) return;
- if (wd->spacer_down) wd->spacer_down = EINA_FALSE;
+
+ wd->spacer_down = EINA_FALSE;
_val_fetch(data);
evas_object_smart_callback_call(data, SIG_DRAG_STOP, NULL);
_units_set(data);
if (wd->frozen)
{
elm_widget_scroll_freeze_pop(data);
- wd->frozen = 0;
+ wd->frozen = EINA_FALSE;
}
edje_object_signal_emit(wd->slider, "elm,state,indicator,hide", "elm");
}
wd->val = val;
if (wd->val < wd->val_min) wd->val = wd->val_min;
if (wd->val > wd->val_max) wd->val = wd->val_max;
+ edje_object_signal_emit(wd->slider, "elm,state,drag", "elm");
_val_set(obj);
_units_set(obj);
_indicator_set(obj);