void OnAlarmRemovedEvent(utils::Event *e);
void OnAlarmEditedEvent(utils::Event *e);
void OnDeleteItemClicked();
+ void UpdateBackgroundLabel();
std::map<int, std::reference_wrapper<model::Alarm>> alarms_;
};
} /* presenters */
void SetButtonClickedCallback(ButtonClickedCallback func);
void SetDeleteItemClickedCallback(ButtonClickedCallback func) { onDeleteClicked_ = func;}
Evas_Object *GetEvasObject();
+
+ void ShowNoAlarmsBackgroundLabel();
+ void HideNoAlarmsBackgroundLabel();
private:
static Elm_Genlist_Item_Class alarm_itc;
static Evas_Object *ContentGet(void *data, Evas_Object *obj, const char *part);
Evas_Object *genlist_;
Evas_Object *content_;
Evas_Object *popup_;
+ Evas_Object *label_;
SelectCallback onSelected_;
ToggleCallback onToggled_;
ButtonClickedCallback onClicked_;
}
}
}
+ group { name: "alarm.label";
+ styles {
+ style {
+ name: "label_style";
+ base: "font=Tizen:style=Regular color=#808080aa font_size=40 align=center";
+ }
+ }
+ parts {
+ rect { "bg";
+ desc { "default";
+ color: 255 255 255 255;
+ }
+ }
+ textblock{ "text"; scale;
+ desc { "default";
+ text {
+ style: "label_style";
+ min: 1.0 1.0;
+ ellipsis: -1;
+ }
+ }
+ }
+ }
+ }
}
a.get().IsActivated());
alarms_.insert(std::map<int, std::reference_wrapper<Alarm>>::value_type (id, std::reference_wrapper<Alarm>(a)));
}
+
+ UpdateBackgroundLabel();
}
void AlarmPresenter::OnItemSelected(int idx)
alarm.Activate();
}
+ view->ItemUpdate(idx, alarm.GetTime(), alarm.GetName().c_str(),
+ alarm.GetWeekFlags(), alarm.IsActivated());
AlarmProvider::Sync();
}
ev->GetAlarm().GetWeekFlags(),
ev->GetAlarm().IsActivated());
alarms_.insert(std::map<int, std::reference_wrapper<Alarm>>::value_type (id, std::reference_wrapper<Alarm>(ev->GetAlarm())));
+
+ UpdateBackgroundLabel();
}
void AlarmPresenter::OnDeleteItemClicked()
break;
}
}
+ UpdateBackgroundLabel();
+}
+
+void AlarmPresenter::UpdateBackgroundLabel()
+{
+ if (alarms_.size() == 0)
+ view->ShowNoAlarmsBackgroundLabel();
+ else
+ view->HideNoAlarmsBackgroundLabel();
}
void AlarmPresenter::OnAlarmEditedEvent(utils::Event *e)
elm_object_content_set(popup_, list);
evas_object_show(popup_);
}
+
+void AlarmView::ShowNoAlarmsBackgroundLabel()
+{
+ if (!label_) {
+ label_ = elm_layout_add(content_);
+ if (!elm_layout_file_set(label_, utils::Utils::GetAppResourcePath(Utils::APP_DIR_RESOURCE, "edje/alarm.edj"), "alarm.label"))
+ abort();
+ elm_object_part_text_set(label_, "text",
+ "No alarms<br><br>After you create alarms, they will<br>be shown here.");
+ evas_object_size_hint_expand_set(label_, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(label_, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(label_);
+
+ // unload genlist
+ elm_object_content_unset(content_);
+ evas_object_hide(genlist_);
+
+ // load label into layout content
+ elm_object_content_set(content_, label_);
+ }
+}
+
+void AlarmView::HideNoAlarmsBackgroundLabel()
+{
+ if (label_) {
+ evas_object_del(label_);
+ // load genlist into layout content
+ elm_object_content_set(content_, genlist_);
+ evas_object_show(genlist_);
+ label_ = nullptr;
+ }
+}