-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathset_alarm_controller.cpp
More file actions
78 lines (62 loc) · 1.91 KB
/
set_alarm_controller.cpp
File metadata and controls
78 lines (62 loc) · 1.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include "set_alarm_controller.h"
#include <icons/alarm-clock-24.h>
using namespace mono::ui;
using mono::geo::Rect;
using mono::geo::Point;
//hourSelect(Rect(35, 30, 50, 70), 0, 23),
//minSelect(Rect(90, 30, 50, 70), 0, 59),
SetAlarmController::SetAlarmController(const Rect &rct) : SceneController(rct),
hourSel(Rect(25, 35, 50, 70), 0, 23),
minSel(Rect(100, 35, 50, 70), 0, 59),
activeBtn(Rect(25,110,126,35)),
closeBtn(Rect(25,220-50, 126, 35), "Back"),
clockview(Point(176/2-24/2, 20), alarmClock24)
{
addView(hourSel);
addView(minSel);
addView(activeBtn);
addView(closeBtn);
addView(clockview);
setShowCallback<SetAlarmController>(this, &SetAlarmController::didShowScene);
setHideCallback<SetAlarmController>(this, &SetAlarmController::didHideScene);
closeBtn.setClickCallback<SetAlarmController>(this, &SetAlarmController::requestDismiss);
active = false;
activeBtn.setState(false);
}
void SetAlarmController::setAlarmActive(bool act)
{
active = act;
activeBtn.setState(act);
}
void SetAlarmController::setAlarmTime(DateTime time)
{
alarm = time;
if (DateTime::now() >= alarm)
alarm = alarm = alarm.addDays(1);
}
bool SetAlarmController::IsAlarmSet() const
{
return active;
}
DateTime SetAlarmController::alarmTime() const
{
return alarm;
}
void SetAlarmController::didShowScene(const mono::ui::SceneController &)
{
hourSel.setValue(alarm.Hours());
minSel.setValue(alarm.Minutes());
activeBtn.setState(active);
}
void SetAlarmController::didHideScene(const mono::ui::SceneController &)
{
DateTime now = DateTime::now();
alarm = DateTime(now.Year(), now.Month(), now.Days(), hourSel.Value(), minSel.Value(), 0);
if (DateTime::now() >= alarm)
alarm = alarm = alarm.addDays(1);
active = activeBtn.isActive();
}
void SetAlarmController::requestDismiss()
{
dismissHandler.call();
}