/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 18:29:50 UTC
  • Revision ID: tim@ed.am-20120518182950-t85bn9a21n72uzm8
text messages are now individually enabled and draw()n automatically

Show diffs side-by-side

added added

removed removed

40
40
}
41
41
 
42
42
 
43
 
void SettingsMajorMode::draw( int segment )
44
 
{
45
 
        // check button state for unpress
46
 
        if( _press_state == 1 && !_button.get_state() )
47
 
                _press_state = 2;
48
 
}
49
 
 
50
 
 
51
43
void SettingsMajorMode::draw_reset()
52
44
{
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
45
        bool flash = ( ::millis() % 1000 ) > 600;
79
46
        PString str0( Text::_messages[ 0 ], MESSAGE_LEN * 2 );
 
47
        str0.begin();
80
48
 
81
49
        switch( _item ) {
82
50
        case TIME_SET_IDX:
134
102
void SettingsMajorMode::activate()
135
103
{
136
104
        _item = _part = 0;
137
 
        _press_state = 0;
138
105
 
139
106
        reset_messages();
 
107
 
 
108
        _button.set_press_mode( false );
140
109
}
141
110
 
142
111
 
143
112
void SettingsMajorMode::deactivate()
144
113
{
 
114
        _button.set_press_mode( true );
 
115
 
145
116
        // save time
146
 
        Time::save_time();
 
117
 
147
118
}
148
119
 
149
120
 
150
121
void SettingsMajorMode::press()
151
122
{
152
 
        _press_state = 1;
 
123
        switch( _item )
 
124
        {
 
125
        case TIME_SET_IDX:
 
126
                switch( _part ) {
 
127
                case 0: Time::inc_hours(); break;
 
128
                case 1: Time::inc_minutes(); break;
 
129
                case 2: Time::reset_seconds(); break;
 
130
                }
 
131
                break;
 
132
        case DATE_SET_IDX:
 
133
                switch( _part ) {
 
134
                case 0: Time::inc_year(); break;
 
135
                case 1: Time::inc_month(); break;
 
136
                case 2: Time::inc_day(); break;
 
137
                }
 
138
                break;
 
139
        case FONT_SET_IDX:
 
140
                TextRenderer::inc_font();
 
141
                break;
 
142
        }
153
143
}
154
144
 
155
145
 
156
146
void SettingsMajorMode::long_press()
157
147
{
158
 
        _press_state = 0;
159
 
 
160
148
        // how many parts does this item have?
161
149
        int max = 1;
162
150
        switch( _item ) {
178
166
void SettingsMajorMode::reset_messages()
179
167
{
180
168
        Text::reset();
 
169
 
181
170
        Text::set_up_message( 0, Text::MODE_TOP | Text::MODE_ALL );
182
171
}