Evas_Object *conformant = NULL;
view::CounterView *counter_ = NULL;
- Ecore_Timer *timer_ = NULL;
- bool isLongpressed_ = false;
-
enum class ButtonArrowDirection {
ARROW_UP,
ARROW_DOWN,
static void ResumeButtonClicked(void *data, Evas_Object *obj, void *event_info);
static void ResetButtonClicked(void *data, Evas_Object *obj, void *event_info);
- static void ButtonPressedCb(void *data, Evas_Object *obj, void *event_info);
- static void ButtonUnpressedCb(void *data, Evas_Object *obj, void *event_info);
+ static void ButtonClickedCb(void *data, Evas_Object *obj, void *event_info);
static void EntryFocusedCb(void *data, Evas_Object *obj, void *event_info);
static void EntryUnfocusedCb(void *data, Evas_Object *obj, void *event_info);
static void EntryChangedCb(void *data, Evas_Object *obj, void *event_info);
{
TimerView *object = static_cast<TimerView *>(data);
- DBG("");
-
elm_object_signal_emit(object->layout_, "keypad.visible", "timer");
}
{
TimerView *object = static_cast<TimerView *>(data);
- DBG("");
-
elm_object_signal_emit(object->layout_, "keypad.hidden", "timer");
object->UnfocusEntries();
}
UpdateView();
}
-Eina_Bool TimerView::TimerCb(void *data)
-{
- Evas_Object *button = (Evas_Object *)data;
-
- TimerView *object = static_cast<TimerView *>(evas_object_data_get(button, "object"));
-
- double current_interval = ecore_timer_interval_get(object->timer_);
- if (current_interval > 0.1)
- ecore_timer_interval_set(object->timer_, 0.1);
-
- object->UnfocusEntries();
-
- char *part = (char *)evas_object_data_get(button, "btn.type");
- object->UpdateSetTime(part);
-
- object->isLongpressed_ = true;
-
- return EINA_TRUE;
-}
-
-void TimerView::ButtonPressedCb(void *data, Evas_Object *obj, void *event_info)
-{
- TimerView *object = static_cast<TimerView *>(data);
-
- if (object->timer_)
- ecore_timer_del(object->timer_);
-
- object->isLongpressed_ = false;
-
- object->timer_ = ecore_timer_add(0.75, TimerCb, obj);
-}
-
-void TimerView::ButtonUnpressedCb(void *data, Evas_Object *obj, void *event_info)
+void TimerView::ButtonClickedCb(void *data, Evas_Object *obj, void *event_info)
{
TimerView *object = static_cast<TimerView *>(data);
- ecore_timer_del(object->timer_);
- object->timer_ = nullptr;
+ object->UnfocusEntries();
char *part = (char *)evas_object_data_get(obj, "btn.type");
-
- if (!object->isLongpressed_)
- object->UpdateSetTime(part);
+ object->UpdateSetTime(part);
}
void TimerView::DisplayTime(int hour, int min, int sec)
elm_object_part_content_set(layout_, part, button);
- evas_object_data_set(button, "object", this);
evas_object_data_set(button, "btn.type", part);
- evas_object_smart_callback_add(button, "pressed", ButtonPressedCb, this);
- evas_object_smart_callback_add(button, "unpressed", ButtonUnpressedCb, this);
+ evas_object_smart_callback_add(button, "clicked", ButtonClickedCb, this);
+ evas_object_smart_callback_add(button, "repeated", ButtonClickedCb, this);
+
+ elm_button_autorepeat_gap_timeout_set(button, 0.1);
+ elm_button_autorepeat_initial_timeout_set(button, 0.7);
+ elm_button_autorepeat_set(button, EINA_TRUE);
if (!elm_object_style_set(button, "arrow"))
ERR("Button style setting failed");