printf("Value delay changed %d\n", (int)efl_ui_range_value_get(ev->object));
}
+static void
+_spin_changed_cb(void *data EINA_UNUSED, const Efl_Event *ev)
+{
+ printf("Value changed %d\n", (int)efl_ui_range_value_get(ev->object));
+}
+
void
test_ui_spin_button(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
efl_ui_spin_button_circulate_set(efl_added, EINA_TRUE),
efl_ui_spin_button_editable_set(efl_added, EINA_TRUE),
efl_event_callback_add(efl_added, EFL_UI_SPIN_BUTTON_EVENT_DELAY_CHANGED,_spin_delay_changed_cb, NULL),
+ efl_event_callback_add(efl_added, EFL_UI_SPIN_EVENT_CHANGED, _spin_changed_cb, NULL),
efl_pack(bx, efl_added));
efl_add(EFL_UI_SPIN_BUTTON_CLASS, bx,
else if (new_val > pd->val_max)
new_val = pd->val_min;
}
+ else
+ {
+ new_val = MIN(pd->val_max, MAX(pd->val_min, new_val));
+ }
+
+ if (EINA_DBL_EQ(new_val, efl_ui_range_value_get(obj))) return EINA_TRUE;
efl_ui_range_value_set(obj, new_val);
ecore_timer_del(sd->delay_change_timer);
_entry_value_apply(Evas_Object *obj)
{
const char *str;
- double val, val_min, val_max;
+ double val;
char *end;
Efl_Ui_Spin_Button_Data *sd = efl_data_scope_get(obj, MY_CLASS);
- Efl_Ui_Spin_Data *pd = efl_data_scope_get(obj, EFL_UI_SPIN_CLASS);
-
if (!sd->entry_visible) return;
efl_event_callback_del(sd->ent, EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_CHANGED,
if (!str) return;
val = strtod(str, &end);
- if (((*end != '\0') && (!isspace(*end))) || (fabs(val - pd->val) < DBL_EPSILON)) return;
- efl_ui_range_limits_get(obj, &val_min, &val_max);
- val = MIN(val_max, MAX(val_min, val));
- efl_ui_range_value_set(obj, val);
-
- efl_event_callback_call(obj, EFL_UI_SPIN_EVENT_CHANGED, NULL);
- ecore_timer_del(sd->delay_change_timer);
- sd->delay_change_timer = ecore_timer_add(EFL_UI_SPIN_BUTTON_DELAY_CHANGE_TIME,
- _delay_change_timer_cb, obj);
+ _value_set(obj, val);
}
static void
int absolut_value = efl_ui_range_value_get(obj) + (inc ? pd->step : -pd->step);
- if (_value_set(obj, MIN(MAX(absolut_value, pd->val_min), pd->val_max)))
- _label_write(obj);
+ _value_set(obj, absolut_value);
}
static void
int_ret = efl_ui_focus_object_on_focus_update(efl_super(obj, MY_CLASS));
if (!int_ret) return EINA_FALSE;
- if (!efl_ui_focus_object_focus_get(obj))
- {
- ELM_SAFE_FREE(sd->delay_change_timer, ecore_timer_del);
- }
- else
+ if (efl_ui_focus_object_focus_get(obj))
{
if (sd->entry_reactivate)
{