MCPcopy Create free account
hub / github.com/Universal-Team/Universal-Updater / QueueMenuHandle

Method QueueMenuHandle

source/menu/queueMenu.cpp:263–339  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

261}
262
263void StoreUtils::QueueMenuHandle(int &queueIndex, int &storeMode) {
264 if (!queueEntries.empty()) {
265 if ((1 + queueMenuIdx) > (int)queueEntries.size() - 1) queueMenuIdx = std::max<int>((int)(queueEntries.size() - 1) - 1, 0); // Ensure this really doesn't go below 0.
266 }
267
268 if (hDown & KEY_TOUCH) {
269 /* Current Queue Cancel. */
270 if (QueueSystem::RequestNeeded == NO_REQUEST && touching(touch, QueueBoxes[2])) { // Needs to be above the 0 one, otherwise the callback won't be accepted.
271 QueueSystem::CancelCallback = true;
272
273 } else if (touching(touch, QueueBoxes[0])) {
274 if (QueueSystem::RequestNeeded != NO_REQUEST) { // -1 means no request.
275 switch(QueueSystem::RequestNeeded) {
276 case RMDIR_REQUEST: // Remove Directory message.
277 QueueSystem::RequestAnswer = Msg::promptMsg(QueueSystem::RequestMsg);
278
279 QueueSystem::Wait = false;
280 QueueSystem::Resume();
281 break;
282
283 case PROMPT_REQUEST: // Skip prompt message.
284 QueueSystem::RequestAnswer = ScriptUtils::prompt(QueueSystem::RequestMsg, QueueSystem::RequestMsgName);
285
286 QueueSystem::Wait = false;
287 QueueSystem::Resume();
288 break;
289 }
290
291 } else {
292 ShowQueueProgress = !ShowQueueProgress; // In case no request expected, switch from progress to total progress mode etc.
293 }
294
295 /* Remove from Queue. */
296 } else if (touching(touch, QueueBoxes[3])) { // Remove Queue entries.
297 if (queueEntries.size() > 1) queueEntries.erase(queueEntries.begin() + 1 + queueMenuIdx);
298 }
299 }
300
301 if (hDown & KEY_DOWN) {
302 if (!queueEntries.empty()) {
303 if ((1 + queueMenuIdx) < (int)queueEntries.size() - 1) queueMenuIdx++;
304 }
305 }
306
307 if (hDown & KEY_UP) {
308 if (queueMenuIdx > 0) queueMenuIdx--;
309 }
310
311 if(hDown & KEY_A) {
312 if (QueueSystem::RequestNeeded != NO_REQUEST) { // -1 means no request.
313 switch(QueueSystem::RequestNeeded) {
314 case RMDIR_REQUEST: // Remove Directory message.
315 QueueSystem::RequestAnswer = Msg::promptMsg(QueueSystem::RequestMsg);
316
317 QueueSystem::Wait = false;
318 QueueSystem::Resume();
319 break;
320

Callers

nothing calls this directly

Calls 5

touchingFunction · 0.85
sizeMethod · 0.80
eraseMethod · 0.80
beginMethod · 0.80
emptyMethod · 0.45

Tested by

no test coverage detected