Now the repeat icon appears if any of week flags are set.
Change-Id: I2cbe1097433501ec5aa02336839d3a8186d2dda6
*/
bool IsOn(WeekDay day);
+
+ /**
+ * @brief Check if flag is set for any of given day flag.
+ * @param[in] day to check.
+ * @return true, if week flag is set for particular day, false
+ * otherwise.
+ */
+ bool OnAny(WeekDay day);
+
/**
* @brief Check if week flags is empty
* @return true if week flags empty.
*/
inline bool operator==(const WeekFlags &a) const { return a.raw_flags == raw_flags; }
private:
- int raw_flags;
+ unsigned int raw_flags;
};
} /* model */
text.style: "font4_dim";
}
}
+ group { "repeat"; scale;
+ source: "repeat-icon";
+ desc { "default";
+ fixed: 1 1;
+ min: 38 38;
+ max: 38 38;
+ align: 0.0 0.0;
+ rel1.to: "spacer.name.week";
+ rel2.to: "spacer.name.week";
+ }
+ desc { "hidden";
+ inherit: "default";
+ fixed: 1 1;
+ min: 0 0;
+ max: 0 0;
+ visible: 0;
+ }
+ }
textblock { "name"; scale;
desc { "default";
fixed: 1 1;
min: 268 43;
max: 268 43;
align: 0.0 0.0;
- rel1.to: "spacer.name.week";
+ rel1 { relative: 1.0 0.0; to: "repeat"; }
rel2.to: "spacer.name.week";
text.style: "font3_normal";
}
target: "name";
target: "weekflags";
target: "time";
+ after: "enable,repeat";
}
program { "disabled";
signal: "alarm,state,disabled";
target: "name";
target: "weekflags";
target: "time";
+ after: "disable,repeat";
+ }
+ program { "show,repeat,icon";
+ signal: "show,repeat,icon";
+ source: "clock";
+ action: STATE_SET "default" 0.0;
+ target: "repeat";
+ }
+ program { "hide,repeat,icon";
+ signal: "hide,repeat,icon";
+ source: "clock";
+ action: STATE_SET "hidden" 0.0;
+ target: "repeat";
+ }
+ program { "disable,repeat";
+ action: SIGNAL_EMIT "state,disabled" "";
+ target: "repeat";
+ }
+ program { "enable,repeat";
+ action: SIGNAL_EMIT "state,enabled" "";
+ target: "repeat";
+ }
+ }
+ group { name: "repeat-icon";
+ images {
+ image : "clock_ic_repeat.png" COMP;
+ }
+ parts {
+ image { "repeat"; scale;
+ desc { "default";
+ min: 38 38;
+ max: 38 38;
+ color: 0 0 0 179;
+ image.normal: "clock_ic_repeat.png";
+ }
+ desc { "disabled";
+ inherit: "default";
+ color: 0 0 0 40;
+ }
+ }
+ }
+ program { "enable";
+ signal: "state,enabled";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "repeat";
+ }
+ program { "disable";
+ signal: "state,disabled";
+ source: "*";
+ action: STATE_SET "disabled" 0.0;
+ target: "repeat";
}
}
group { name: "elm/genlist/item/select_all/default";
};
void WeekFlags::AddDay(WeekDay day) {
- raw_flags |= static_cast<int>(day);
+ raw_flags |= static_cast<unsigned int>(day);
};
void WeekFlags::RemoveDay(WeekDay day) {
- raw_flags &= ~static_cast<int>(day);
+ raw_flags &= ~static_cast<unsigned int>(day);
};
bool WeekFlags::IsOn(WeekDay day) {
- return (raw_flags & static_cast<int>(day)) == static_cast<int>(day);
+ return (raw_flags & static_cast<unsigned int>(day)) == static_cast<unsigned int>(day);
+};
+
+bool WeekFlags::OnAny(WeekDay day) {
+ return (raw_flags & static_cast<unsigned int>(day)) > 0;
};
WeekFlags::WeekFlags(WeekDay mask)
{
- raw_flags = static_cast<int>(mask);
+ raw_flags = static_cast<unsigned int>(mask);
}
void WeekFlags::Serialize(utils::IWriter &w) const
id->instance->OnItemToggled((uintptr_t)id->it);
}
+void SetItemRepeatIconVisibility(Elm_Object_Item *it, bool visible)
+{
+ if (visible) {
+ elm_object_item_signal_emit(it, "show,repeat,icon", "clock");
+ } else {
+ elm_object_item_signal_emit(it, "hide,repeat,icon", "clock");
+ }
+}
+
void AlarmView::ItemRealized(void *data, Evas_Object *obj, void *info)
{
Elm_Object_Item *it = static_cast<Elm_Object_Item*>(info);
elm_object_item_signal_emit(id->it, "alarm,state,enabled", "clock");
else
elm_object_item_signal_emit(id->it, "alarm,state,disabled", "clock");
+
+ SetItemRepeatIconVisibility(it, (id->flags.OnAny(WeekDay::ALL_WEEK)));
}
void AlarmView::ItemSelected(void *data, Evas_Object *obj, void *info)
data->active = active;
data->time = time;
+ SetItemRepeatIconVisibility(it, (data->flags.OnAny(WeekDay::ALL_WEEK)));
elm_genlist_item_update(it);
}