/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:55:12 UTC
  • Revision ID: tim@ed.am-20120518145512-4dg4ble01d47a8z5
moved rount Time a bit, and passed _button to SettingsMajorMode so that it can
come in and out of send_interim mode

Show diffs side-by-side

added added

removed removed

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