/elec/propeller-clock

To get this branch, use:
bzr branch http://bzr.ed.am/elec/propeller-clock

« back to all changes in this revision

Viewing changes to src/modes/settings_major_mode.cc

  • Committer: Tim Marston
  • Date: 2012-05-18 14:40:04 UTC
  • Revision ID: tim@ed.am-20120518144004-uuz2zrjmyr78wqd5
updated emacs compile command and readjusted clock shift

Show diffs side-by-side

added added

removed removed

33
33
#define DATE_SET_IDX 2
34
34
 
35
35
 
36
 
SettingsMajorMode::SettingsMajorMode( Button &button )
37
 
        :
38
 
        _button( button )
39
 
{
40
 
}
41
 
 
42
 
 
43
36
void SettingsMajorMode::draw( int segment )
44
37
{
45
 
        // check button state for unpress
46
 
        if( _press_state == 1 && !_button.get_state() )
47
 
                _press_state = 2;
 
38
        Text::draw( 0, segment );
48
39
}
49
40
 
50
41
 
51
42
void SettingsMajorMode::draw_reset()
52
43
{
53
 
        // do a short button press?
54
 
        if( _press_state == 2 ) {
55
 
                _press_state = 0;
56
 
                switch( _item )
57
 
                {
58
 
                case TIME_SET_IDX:
59
 
                        switch( _part ) {
60
 
                        case 0: Time::inc_hours(); break;
61
 
                        case 1: Time::inc_minutes(); break;
62
 
                        case 2: Time::reset_seconds(); break;
63
 
                        }
64
 
                        break;
65
 
                case DATE_SET_IDX:
66
 
                        switch( _part ) {
67
 
                        case 0: Time::inc_year(); break;
68
 
                        case 1: Time::inc_month(); break;
69
 
                        case 2: Time::inc_day(); break;
70
 
                        }
71
 
                        break;
72
 
                case FONT_SET_IDX:
73
 
                        TextRenderer::inc_font();
74
 
                        break;
75
 
                }
76
 
        }
77
 
 
78
44
        bool flash = ( ::millis() % 1000 ) > 600;
79
45
        PString str0( Text::_messages[ 0 ], MESSAGE_LEN * 2 );
 
46
        str0.begin();
80
47
 
81
48
        switch( _item ) {
82
49
        case TIME_SET_IDX:
127
94
                break;
128
95
        }
129
96
 
130
 
        Text::set_message_text( 0, str0 );
 
97
        Text::set_message( 0, str0 );
131
98
}
132
99
 
133
100
 
134
101
void SettingsMajorMode::activate()
135
102
{
136
103
        _item = _part = 0;
137
 
        _press_state = 0;
138
104
 
139
105
        reset_messages();
140
106
}
142
108
 
143
109
void SettingsMajorMode::deactivate()
144
110
{
145
 
        // save time
146
 
        Time::save_time();
147
111
}
148
112
 
149
113
 
150
114
void SettingsMajorMode::press()
151
115
{
152
 
        _press_state = 1;
 
116
        switch( _item )
 
117
        {
 
118
        case TIME_SET_IDX:
 
119
                switch( _part ) {
 
120
                case 0: Time::inc_hours(); break;
 
121
                case 1: Time::inc_minutes(); break;
 
122
                case 2: Time::reset_seconds(); break;
 
123
                }
 
124
                break;
 
125
        case DATE_SET_IDX:
 
126
                switch( _part ) {
 
127
                case 0: Time::inc_year(); break;
 
128
                case 1: Time::inc_month(); break;
 
129
                case 2: Time::inc_day(); break;
 
130
                }
 
131
                break;
 
132
        case FONT_SET_IDX:
 
133
                TextRenderer::inc_font();
 
134
                break;
 
135
        }
153
136
}
154
137
 
155
138
 
156
139
void SettingsMajorMode::long_press()
157
140
{
158
 
        _press_state = 0;
159
 
 
160
141
        // how many parts does this item have?
161
142
        int max = 1;
162
143
        switch( _item ) {
177
158
 
178
159
void SettingsMajorMode::reset_messages()
179
160
{
180
 
        Text::reset();
181
 
        Text::set_up_message( 0, Text::MODE_TOP | Text::MODE_ALL );
 
161
        Text::reset_message( 0, Text::MODE_TOP | Text::MODE_ALL );
182
162
}