#define MY_CLASS_NAME "Elm_Spinner"
#define MY_CLASS_NAME_LEGACY "elm_spinner"
+#define ELM_SPINNER_DELAY_CHANGE_TIME 0.2
+
static const char SIG_CHANGED[] = "changed";
static const char SIG_DRAG_START[] = "spinner,drag,start";
static const char SIG_DRAG_STOP[] = "spinner,drag,stop";
}
static Eina_Bool
-_delay_change(void *data)
+_delay_change_timer_cb(void *data)
{
ELM_SPINNER_DATA_GET(data, sd);
- sd->delay_timer = NULL;
+ sd->delay_change_timer = NULL;
evas_object_smart_callback_call(data, SIG_DELAY_CHANGED, NULL);
return ECORE_CALLBACK_CANCEL;
sd->val = new_val;
evas_object_smart_callback_call(obj, SIG_CHANGED, NULL);
- ecore_timer_del(sd->delay_timer);
- sd->delay_timer = ecore_timer_add(0.2, _delay_change, obj);
+ ecore_timer_del(sd->delay_change_timer);
+ sd->delay_change_timer = ecore_timer_add(ELM_SPINNER_DELAY_CHANGE_TIME,
+ _delay_change_timer_cb, obj);
return EINA_TRUE;
}
_entry_value_apply(data);
evas_object_smart_callback_call(data, SIG_CHANGED, NULL);
- ecore_timer_del(sd->delay_timer);
- sd->delay_timer = ecore_timer_add(0.2, _delay_change, data);
+ ecore_timer_del(sd->delay_change_timer);
+ sd->delay_change_timer = ecore_timer_add(ELM_SPINNER_DELAY_CHANGE_TIME,
+ _delay_change_timer_cb, data);
}
static void
if (!elm_widget_focus_get(obj))
{
- ELM_SAFE_FREE(sd->delay_timer, ecore_timer_del);
+ ELM_SAFE_FREE(sd->delay_change_timer, ecore_timer_del);
ELM_SAFE_FREE(sd->spin_timer, ecore_timer_del);
_entry_value_apply(obj);
Elm_Spinner_Smart_Data *sd = _pd;
eina_stringshare_del(sd->label);
- ecore_timer_del(sd->delay_timer);
+ ecore_timer_del(sd->delay_change_timer);
ecore_timer_del(sd->spin_timer);
if (sd->special_values)
Evas_Object *ent;
const char *label;
double val, val_min, val_max, val_base;
- double step; // step for the value change. 1 by default.
- double drag_start_val; // spinner value on drag start.
- // this is reset to 0 when drag stops.
+ double step; /*<< step for the value change. 1 by default. */
+ double drag_start_val; /*<< spinner value on drag start.
+ this is reset to 0 when drag stops. */
double spin_speed, interval, first_interval;
int round;
- Ecore_Timer *delay_timer, *spin_timer;
+ Ecore_Timer *delay_change_timer; /*<< a timer for a delay,changed smart callback */
+ Ecore_Timer *spin_timer; /*<< a timer for a repeated spinner value change on mouse down */
Eina_List *special_values;
Eina_Bool entry_visible : 1;