spinner: Internal code clean up for spinner.

- Used macro for constant.
- Changed timer name to be more descriptive.
- Added descriptions about timers.
This commit is contained in:
Daniel Juyung Seo 2014-01-23 00:11:48 +09:00
parent 69144caceb
commit ac00267206
2 changed files with 17 additions and 12 deletions

View File

@ -17,6 +17,8 @@ EAPI Eo_Op ELM_OBJ_SPINNER_BASE_ID = EO_NOOP;
#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";
@ -114,11 +116,11 @@ apply:
}
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;
@ -153,8 +155,9 @@ _value_set(Evas_Object *obj,
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;
}
@ -266,8 +269,9 @@ _entry_activated_cb(void *data,
_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
@ -547,7 +551,7 @@ _elm_spinner_smart_on_focus(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
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);
@ -740,7 +744,7 @@ _elm_spinner_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
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)

View File

@ -25,12 +25,13 @@ struct _Elm_Spinner_Smart_Data
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;