void Screen::wheelEvent(QWheelEvent* evt) { do_zoom(evt->delta()); evt->accept(); }
static bool do_main_menu (void) { int selection = 0; MENUITEM_STRINGLIST (menu, "Rockbox Goban", NULL, "New", "Save", "Save As", "Game Info", "Playback Control", "Zoom Level", "Options", "Context Menu", "Quit"); /* for "New" in menu */ int new_handi = 0, new_bs = MAX_BOARD_SIZE, new_komi = 15; char new_save_file[SAVE_FILE_LENGTH]; bool done = false; while (!done) { selection = rb->do_menu (&menu, &selection, NULL, false); switch (selection) { case MAIN_NEW: rb->set_int ("board size", "lines", UNIT_INT, &new_bs, NULL, 1, MIN_BOARD_SIZE, MAX_BOARD_SIZE, NULL); rb->set_int ("handicap", "stones", UNIT_INT, &new_handi, NULL, 1, 0, 9, NULL); if (new_handi > 0) { new_komi = 1; } else { new_komi = 13; } rb->set_int ("komi", "moku", UNIT_INT, &new_komi, NULL, 1, -300, 300, &komi_formatter); setup_game (new_bs, new_bs, new_handi, new_komi); draw_screen_display (); done = true; break; case MAIN_SAVE: if (!save_game (save_file)) { rb->splash (2 * HZ, "Save Failed!"); } else { rb->splash (2 * HZ / 3, "Saved"); } done = true; draw_screen_display (); break; case MAIN_SAVE_AS: rb->strcpy (new_save_file, save_file); if (!rb->kbd_input (new_save_file, SAVE_FILE_LENGTH)) { break; } if (!save_game (new_save_file)) { rb->splash (2 * HZ, "Save Failed!"); } else { rb->strcpy (save_file, new_save_file); rb->splash (2 * HZ / 3, "Saved"); } done = true; draw_screen_display (); break; case MAIN_GAME_INFO: do_gameinfo_menu (); break; case MAIN_PLAYBACK: if (!audio_stolen_sgf ()) { playback_control (NULL); } else { rb->splash (1 * HZ, "Audio has been disabled!"); } break; case MAIN_ZOOM: if (do_zoom ()) { return true; } done = true; draw_screen_display (); break; case MAIN_OPTIONS: do_options_menu(); break; case MAIN_CONTEXT: do_context_menu (); done = true; break; case MAIN_QUIT: case MENU_ATTACHED_USB: return true; case GO_TO_ROOT: case GO_TO_PREVIOUS: default: done = true; break; }; } return false; }