diff options
Diffstat (limited to 'apps/gui/quickscreen.c')
-rw-r--r-- | apps/gui/quickscreen.c | 70 |
1 files changed, 18 insertions, 52 deletions
diff --git a/apps/gui/quickscreen.c b/apps/gui/quickscreen.c index e998ee61ad..9465a2e5af 100644 --- a/apps/gui/quickscreen.c +++ b/apps/gui/quickscreen.c | |||
@@ -29,6 +29,7 @@ | |||
29 | #include "kernel.h" | 29 | #include "kernel.h" |
30 | #include "misc.h" | 30 | #include "misc.h" |
31 | #include "statusbar.h" | 31 | #include "statusbar.h" |
32 | #include "action.h" | ||
32 | 33 | ||
33 | void gui_quickscreen_init(struct gui_quickscreen * qs, | 34 | void gui_quickscreen_init(struct gui_quickscreen * qs, |
34 | struct option_select *left_option, | 35 | struct option_select *left_option, |
@@ -128,59 +129,28 @@ bool gui_quickscreen_do_button(struct gui_quickscreen * qs, int button) | |||
128 | 129 | ||
129 | switch(button) | 130 | switch(button) |
130 | { | 131 | { |
131 | case QUICKSCREEN_LEFT : | 132 | case ACTION_QS_LEFT: |
132 | case QUICKSCREEN_LEFT | BUTTON_REPEAT : | ||
133 | #ifdef QUICKSCREEN_RC_LEFT | ||
134 | case QUICKSCREEN_RC_LEFT : | ||
135 | case QUICKSCREEN_RC_LEFT | BUTTON_REPEAT : | ||
136 | #endif | ||
137 | option_select_next(qs->left_option); | 133 | option_select_next(qs->left_option); |
138 | return(true); | 134 | return(true); |
139 | 135 | ||
140 | case QUICKSCREEN_BOTTOM : | 136 | case ACTION_QS_DOWN: |
141 | case QUICKSCREEN_BOTTOM | BUTTON_REPEAT : | ||
142 | #ifdef QUICKSCREEN_RC_BOTTOM | ||
143 | case QUICKSCREEN_RC_BOTTOM : | ||
144 | case QUICKSCREEN_RC_BOTTOM | BUTTON_REPEAT : | ||
145 | #endif | ||
146 | option_select_next(qs->bottom_option); | 137 | option_select_next(qs->bottom_option); |
147 | return(true); | 138 | return(true); |
148 | 139 | ||
149 | case QUICKSCREEN_RIGHT : | 140 | case ACTION_QS_RIGHT: |
150 | case QUICKSCREEN_RIGHT | BUTTON_REPEAT : | ||
151 | #ifdef QUICKSCREEN_RC_RIGHT | ||
152 | case QUICKSCREEN_RC_RIGHT : | ||
153 | case QUICKSCREEN_RC_RIGHT | BUTTON_REPEAT : | ||
154 | #endif | ||
155 | option_select_next(qs->right_option); | 141 | option_select_next(qs->right_option); |
156 | return(true); | 142 | return(true); |
157 | 143 | ||
158 | #ifdef QUICKSCREEN_BOTTOM_INV | 144 | case ACTION_QS_DOWNINV: |
159 | case QUICKSCREEN_BOTTOM_INV : | ||
160 | case QUICKSCREEN_BOTTOM_INV | BUTTON_REPEAT : | ||
161 | #endif | ||
162 | #ifdef QUICKSCREEN_RC_BOTTOM_INV | ||
163 | case QUICKSCREEN_RC_BOTTOM_INV : | ||
164 | case QUICKSCREEN_RC_BOTTOM_INV | BUTTON_REPEAT : | ||
165 | #endif | ||
166 | #if defined(QUICKSCREEN_RC_BOTTOM_INV) || defined(QUICKSCREEN_BOTTOM_INV) | ||
167 | option_select_prev(qs->bottom_option); | 145 | option_select_prev(qs->bottom_option); |
168 | return(true); | 146 | return(true); |
169 | #endif | ||
170 | } | 147 | } |
171 | return(false); | 148 | return(false); |
172 | } | 149 | } |
173 | #ifdef BUTTON_REMOTE | ||
174 | #define uncombine_button(key_read, combined_button) \ | ||
175 | key_read & ~(combined_button & ~BUTTON_REMOTE) | ||
176 | #else | ||
177 | #define uncombine_button(key_read, combined_button) \ | ||
178 | key_read & ~combined_button | ||
179 | #endif | ||
180 | 150 | ||
181 | bool gui_syncquickscreen_run(struct gui_quickscreen * qs, int button_enter) | 151 | bool gui_syncquickscreen_run(struct gui_quickscreen * qs, int button_enter) |
182 | { | 152 | { |
183 | int raw_key, button; | 153 | int button; |
184 | /* To quit we need either : | 154 | /* To quit we need either : |
185 | * - a second press on the button that made us enter | 155 | * - a second press on the button that made us enter |
186 | * - an action taken while pressing the enter button, | 156 | * - an action taken while pressing the enter button, |
@@ -188,9 +158,9 @@ bool gui_syncquickscreen_run(struct gui_quickscreen * qs, int button_enter) | |||
188 | bool can_quit=false; | 158 | bool can_quit=false; |
189 | gui_syncquickscreen_draw(qs); | 159 | gui_syncquickscreen_draw(qs); |
190 | gui_syncstatusbar_draw(&statusbars, true); | 160 | gui_syncstatusbar_draw(&statusbars, true); |
161 | action_signalscreenchange(); | ||
191 | while (true) { | 162 | while (true) { |
192 | raw_key = button_get(true); | 163 | button = get_action(CONTEXT_QUICKSCREEN,TIMEOUT_BLOCK); |
193 | button=uncombine_button(raw_key, button_enter); | ||
194 | if(default_event_handler(button) == SYS_USB_CONNECTED) | 164 | if(default_event_handler(button) == SYS_USB_CONNECTED) |
195 | return(true); | 165 | return(true); |
196 | if(gui_quickscreen_do_button(qs, button)) | 166 | if(gui_quickscreen_do_button(qs, button)) |
@@ -200,23 +170,19 @@ bool gui_syncquickscreen_run(struct gui_quickscreen * qs, int button_enter) | |||
200 | qs->callback(qs); | 170 | qs->callback(qs); |
201 | gui_syncquickscreen_draw(qs); | 171 | gui_syncquickscreen_draw(qs); |
202 | } | 172 | } |
203 | else if(raw_key==button_enter) | 173 | else if(button==button_enter) |
204 | can_quit=true; | 174 | can_quit=true; |
205 | if(raw_key==(button_enter | BUTTON_REL) && can_quit) | 175 | |
206 | return(false); | 176 | if((button == button_enter) && can_quit) |
207 | #ifdef QUICKSCREEN_QUIT | 177 | break; |
208 | if(raw_key==QUICKSCREEN_QUIT | 178 | |
209 | #ifdef QUICKSCREEN_QUIT2 | 179 | if(button==ACTION_STD_CANCEL) |
210 | || raw_key==QUICKSCREEN_QUIT2 | 180 | break; |
211 | #endif | 181 | |
212 | #if QUICKSCREEN_RC_QUIT | ||
213 | || raw_key==QUICKSCREEN_RC_QUIT | ||
214 | #endif | ||
215 | ) | ||
216 | return(false); | ||
217 | #endif /* QUICKSCREEN_QUIT */ | ||
218 | gui_syncstatusbar_draw(&statusbars, false); | 182 | gui_syncstatusbar_draw(&statusbars, false); |
219 | } | 183 | } |
184 | action_signalscreenchange(); | ||
185 | return false; | ||
220 | } | 186 | } |
221 | 187 | ||
222 | #endif /* HAVE_QUICKSCREEN */ | 188 | #endif /* HAVE_QUICKSCREEN */ |