private:
Evas_Object *layout_ = NULL;
Evas_Object *selector_ = NULL;
+ Evas_Object *conformant = NULL;
view::CounterView *counter_ = NULL;
struct Time {
static void EntryChangedCb(void *data, Evas_Object *obj, void *event_info);
static void EntryEditDoneCb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+ static void VirtualKeypadVisibleCb(void *data, Evas_Object *obj, void *event_info);
+ static void VirtualKeypadHiddenCb(void *data, Evas_Object *obj, void *event_info);
+
static void AlarmDismiss(void *data, Evas_Object *obj, const char *emission, const char *source);
};
}
rel1 { relative: 1.0 0.0; to_x: "pd.left"; }
rel2 { relative: 0.0 0.0; to_x: "pd.right"; to_y: "pd.btn.bg"; }
}
+ desc { "moved";
+ inherit: "default";
+ rel1 { relative: 1.0 1.0; to_x: "pd.left"; to_y: "pd.top"; }
+ }
+ }
+ spacer { "pd.top"; scale;
+ desc { "default";
+ min: 0 42+80;
+ max: -1 42+80;
+ fixed: 0 1;
+ align: 0.5 0.0;
+ }
}
spacer { "pd.content.top"; scale;
desc { "default";
set_state(PART:"sw.btn.cancel", "visible", 0.0);
}
}
+ program {
+ signal: "keypad.visible";
+ source: "timer";
+ action: STATE_SET "moved";
+ target: "sw.content";
+ }
+ program {
+ signal: "keypad.hidden";
+ source: "timer";
+ action: STATE_SET "default";
+ target: "sw.content";
+ }
}
}
CreateMenuButtons();
counter_ = new CounterView(*this, CounterType::COUNTER_TYPE_TIMER);
+ conformant = static_cast<MainView &>(main).GetConformant();
+
+ evas_object_smart_callback_add(conformant, "virtualkeypad,state,on", VirtualKeypadVisibleCb, this);
+ evas_object_smart_callback_add(conformant, "virtualkeypad,state,off", VirtualKeypadHiddenCb, this);
+
CreateSelector();
ShowStartupMenu();
TimerView::~TimerView()
{
+ evas_object_smart_callback_del(conformant, "virtualkeypad,state,on", VirtualKeypadVisibleCb);
+ evas_object_smart_callback_del(conformant, "virtualkeypad,state,off", VirtualKeypadHiddenCb);
+
if (selector_)
evas_object_del(selector_);
if (layout_)
return utils::Utils::GetAppResourcePath(utils::Utils::APP_DIR_RESOURCE, EDJE_FILE);
}
+
+void TimerView::VirtualKeypadVisibleCb(void *data, Evas_Object *obj, void *event_info)
+{
+ TimerView *object = static_cast<TimerView *>(data);
+
+ DBG("");
+
+ elm_object_signal_emit(object->layout_, "keypad.visible", "timer");
+}
+
+void TimerView::VirtualKeypadHiddenCb(void *data, Evas_Object *obj, void *event_info)
+{
+ TimerView *object = static_cast<TimerView *>(data);
+
+ DBG("");
+
+ elm_object_signal_emit(object->layout_, "keypad.hidden", "timer");
+ object->UnfocusEntries();
+}
+
void TimerView::AlarmDismiss(void *data, Evas_Object *obj, const char *emission, const char *source)
{
TimerView *object = static_cast<TimerView *>(data);
void TimerView::UnfocusEntries()
{
- Evas_Object *entry = elm_object_part_content_get(selector_, "sw.entry.hour");
- if (!entry) {
- ERR("!entry");
- return;
- }
-
- elm_object_focus_set(entry, EINA_FALSE);
-
- entry = elm_object_part_content_get(selector_, "sw.entry.minute");
- if (!entry) {
- ERR("!entry");
- return;
- }
-
- elm_object_focus_set(entry, EINA_FALSE);
-
- entry = elm_object_part_content_get(selector_, "sw.entry.second");
- if (!entry) {
- ERR("!entry");
- return;
- }
-
- elm_object_focus_set(entry, EINA_FALSE);
+ elm_object_focus_set(layout_, EINA_FALSE);
}
void TimerView::ShowSelector()
void TimerView::ShowCounter()
{
- Evas_Object *content = elm_object_part_content_unset(layout_, "sw.content");
+ Evas_Object *content = elm_object_part_content_get(layout_, "sw.content");
if (counter_->GetEvasObject() && content != counter_->GetEvasObject()) {
elm_object_part_content_unset(layout_, "sw.content");
evas_object_hide(content);
object->set_time_.Sec = 0;
object->UpdateView();
+ object->UnfocusEntries();
}
void TimerView::RegisterSignal(std::function<void(void)>func, TimerSignal type)