/** * @brief Opens the info window. * @param wid Unused. * @param str Unused. */ static void menu_small_info( unsigned int wid, char *str ) { (void) str; (void) wid; menu_info( INFO_MAIN ); }
void change_menu_section() { if(menu_section == MENU_SECTION_MAIN) { menu_main(); } #ifndef LIGHT else if(menu_section == MENU_SECTION_MUSIC) { menu_music(); if(music_prx_load) { all_done = 1; menu_main_done = 1; } } #endif #ifndef GAME else if(menu_section == MENU_SECTION_TM) { menu_tm(); } #endif else if(menu_section == MENU_SECTION_INFO) { menu_info(); } else if(menu_section == MENU_SECTION_CFG) { menu_cfg(); } }
/** * @brief Opens the info menu window. * * Possible window targets are: <br /> * - "main" : Main window.<br /> * - "ship" : Ship info window.<br /> * - "weapons" : Weapon configuration window.<br /> * - "cargo" : Cargo view window.<br /> * - "missions" : Mission view window.<br /> * - "standings" : Standings view window.<br /> * * @usage gui.menuInfo( "ship" ) -- Opens ship tab * * @luaparam window Optional window parameter indicating the tab to open at. * @luafunc menuInfo( window ) */ static int guiL_menuInfo( lua_State *L ) { const char *str; int window; if (menu_open) return 0; if (lua_gettop(L) > 0) str = luaL_checkstring(L,1); else { /* No parameter. */ menu_info( INFO_MAIN ); return 0; } /* Parse string. */ if (strcasecmp( str, "main" )==0) window = INFO_MAIN; else if (strcasecmp( str, "ship" )==0) window = INFO_SHIP; else if (strcasecmp( str, "weapons" )==0) window = INFO_WEAPONS; else if (strcasecmp( str, "cargo" )==0) window = INFO_CARGO; else if (strcasecmp( str, "missions" )==0) window = INFO_MISSIONS; else if (strcasecmp( str, "standings" )==0) window = INFO_STANDINGS; else { NLUA_ERROR(L,"Invalid window info name '%s'.", str); return 0; } /* Open window. */ menu_info( window ); return 0; }
/** * @brief Runs the input command. * * @param keynum The index of the keybind. * @param value The value of the keypress (defined above). * @param kabs The absolute value. */ static void input_key( int keynum, double value, double kabs, int repeat ) { unsigned int t; HookParam hparam[3]; /* Repetition stuff. */ if (conf.repeat_delay != 0) { if ((value == KEY_PRESS) && !repeat) { repeat_key = keynum; repeat_keyTimer = SDL_GetTicks(); repeat_keyCounter = 0; } else if (value == KEY_RELEASE) { repeat_key = -1; repeat_keyTimer = 0; repeat_keyCounter = 0; } } /* * movement */ /* accelerating */ if (KEY("accel") && !repeat) { if (kabs >= 0.) { player_restoreControl( PINPUT_MOVEMENT, NULL ); player_accel(kabs); input_accelButton = 1; } else { /* prevent it from getting stuck */ if (value==KEY_PRESS) { player_restoreControl( PINPUT_MOVEMENT, NULL ); player_setFlag(PLAYER_ACCEL); player_accel(1.); input_accelButton = 1; } else if (value==KEY_RELEASE) { player_accelOver(); player_rmFlag(PLAYER_ACCEL); input_accelButton = 0; } /* double tap accel = afterburn! */ t = SDL_GetTicks(); if ((conf.afterburn_sens != 0) && (value==KEY_PRESS) && INGAME() && NOHYP() && NODEAD() && (t-input_accelLast <= conf.afterburn_sens)) pilot_afterburn( player.p ); else if (value==KEY_RELEASE) pilot_afterburnOver( player.p ); if (value==KEY_PRESS) input_accelLast = t; } /* turning left */ } else if (KEY("left") && !repeat) { if (kabs >= 0.) { player_restoreControl( PINPUT_MOVEMENT, NULL ); player_setFlag(PLAYER_TURN_LEFT); player_left = kabs; } else { /* set flags for facing correction */ if (value==KEY_PRESS) { player_restoreControl( PINPUT_MOVEMENT, NULL ); player_setFlag(PLAYER_TURN_LEFT); player_left = 1.; } else if (value==KEY_RELEASE) { player_rmFlag(PLAYER_TURN_LEFT); player_left = 0.; } } /* turning right */ } else if (KEY("right") && !repeat) { if (kabs >= 0.) { player_restoreControl( PINPUT_MOVEMENT, NULL ); player_setFlag(PLAYER_TURN_RIGHT); player_right = kabs; } else { /* set flags for facing correction */ if (value==KEY_PRESS) { player_restoreControl( PINPUT_MOVEMENT, NULL ); player_setFlag(PLAYER_TURN_RIGHT); player_right = 1.; } else if (value==KEY_RELEASE) { player_rmFlag(PLAYER_TURN_RIGHT); player_right = 0.; } } /* turn around to face vel */ } else if (KEY("reverse") && !repeat) { if (value==KEY_PRESS) { player_restoreControl( PINPUT_MOVEMENT, NULL ); player_setFlag(PLAYER_REVERSE); } else if ((value==KEY_RELEASE) && player_isFlag(PLAYER_REVERSE)) { player_rmFlag(PLAYER_REVERSE); if (!player_isFlag(PLAYER_ACCEL)) player_accelOver(); } /* * combat */ /* shooting primary weapon */ } else if (KEY("primary") && NODEAD() && !repeat) { if (value==KEY_PRESS) { player_setFlag(PLAYER_PRIMARY); } else if (value==KEY_RELEASE) player_rmFlag(PLAYER_PRIMARY); /* targeting */ } else if (INGAME() && NODEAD() && KEY("target_next")) { if (value==KEY_PRESS) player_targetNext(0); } else if (INGAME() && NODEAD() && KEY("target_prev")) { if (value==KEY_PRESS) player_targetPrev(0); } else if (INGAME() && NODEAD() && KEY("target_nearest")) { if (value==KEY_PRESS) player_targetNearest(); } else if (INGAME() && NODEAD() && KEY("target_nextHostile")) { if (value==KEY_PRESS) player_targetNext(1); } else if (INGAME() && NODEAD() && KEY("target_prevHostile")) { if (value==KEY_PRESS) player_targetPrev(1); } else if (INGAME() && NODEAD() && KEY("target_hostile")) { if (value==KEY_PRESS) player_targetHostile(); } else if (INGAME() && NODEAD() && KEY("target_clear")) { if (value==KEY_PRESS) player_targetClear(); /* face the target */ } else if (INGAME() && NODEAD() && KEY("face") && !repeat) { if (value==KEY_PRESS) { player_restoreControl( PINPUT_MOVEMENT, NULL ); player_setFlag(PLAYER_FACE); } else if ((value==KEY_RELEASE) && player_isFlag(PLAYER_FACE)) player_rmFlag(PLAYER_FACE); /* board them ships */ } else if (KEY("board") && INGAME() && NOHYP() && NODEAD() && !repeat) { if (value==KEY_PRESS) { player_restoreControl( 0, NULL ); player_board(); } /* * Escorts. */ } else if (INGAME() && NODEAD() && KEY("e_targetNext") && !repeat) { if (value==KEY_PRESS) player_targetEscort(0); } else if (INGAME() && NODEAD() && KEY("e_targetPrev") && !repeat) { if (value==KEY_PRESS) player_targetEscort(1); } else if (INGAME() && NODEAD() && KEY("e_attack") && !repeat) { if (value==KEY_PRESS) escorts_attack(player.p); } else if (INGAME() && NODEAD() && KEY("e_hold") && !repeat) { if (value==KEY_PRESS) escorts_hold(player.p); } else if (INGAME() && NODEAD() && KEY("e_return") && !repeat) { if (value==KEY_PRESS) escorts_return(player.p); } else if (INGAME() && NODEAD() && KEY("e_clear") && !repeat) { if (value==KEY_PRESS) escorts_clear(player.p); /* * secondary weapons */ /* shooting secondary weapon */ } else if (KEY("secondary") && NOHYP() && NODEAD() && !repeat) { if (value==KEY_PRESS) { player_setFlag(PLAYER_SECONDARY); } else if (value==KEY_RELEASE) player_rmFlag(PLAYER_SECONDARY); /* Weapon sets. */ } else if (KEY("weapset1")) { player_weapSetPress( 0, value, repeat ); } else if (KEY("weapset2")) { player_weapSetPress( 1, value, repeat ); } else if (KEY("weapset3")) { player_weapSetPress( 2, value, repeat ); } else if (KEY("weapset4")) { player_weapSetPress( 3, value, repeat ); } else if (KEY("weapset5")) { player_weapSetPress( 4, value, repeat ); } else if (KEY("weapset6")) { player_weapSetPress( 5, value, repeat ); } else if (KEY("weapset7")) { player_weapSetPress( 6, value, repeat ); } else if (KEY("weapset8")) { player_weapSetPress( 7, value, repeat ); } else if (KEY("weapset9")) { player_weapSetPress( 8, value, repeat ); } else if (KEY("weapset0")) { player_weapSetPress( 9, value, repeat ); /* * space */ } else if (KEY("autonav") && INGAME() && NOHYP() && NODEAD()) { if (value==KEY_PRESS) player_autonavStart(); /* target planet (cycles like target) */ } else if (KEY("target_planet") && INGAME() && NOHYP() && NOLAND() && NODEAD()) { if (value==KEY_PRESS) player_targetPlanet(); /* target nearest planet or attempt to land */ } else if (KEY("land") && INGAME() && NOHYP() && NOLAND() && NODEAD()) { if (value==KEY_PRESS) player_land(); } else if (KEY("thyperspace") && NOHYP() && NOLAND() && NODEAD()) { if (value==KEY_PRESS) player_targetHyperspace(); } else if (KEY("starmap") && NOHYP() && NODEAD() && !repeat) { if (value==KEY_PRESS) map_open(); } else if (KEY("jump") && INGAME() && !repeat) { if (value==KEY_PRESS) { player_restoreControl( 0, NULL ); player_jump(); } } else if (KEY("overlay") && NODEAD() && INGAME() && !repeat) { ovr_key( value ); } else if (KEY("mousefly") && NODEAD() && !repeat) { if (value==KEY_PRESS) player_toggleMouseFly(); } else if (KEY("autobrake") && NOHYP() && NOLAND() && NODEAD() && !repeat) { if (value==KEY_PRESS) { player_restoreControl( PINPUT_BRAKING, NULL ); player_brake(); } /* * Communication. */ } else if (KEY("log_up") && INGAME() && NODEAD()) { if (value==KEY_PRESS) { gui_messageScrollUp(5); } } else if (KEY("log_down") && INGAME() && NODEAD()) { if (value==KEY_PRESS) { gui_messageScrollDown(5); } } else if (KEY("hail") && INGAME() && NOHYP() && NODEAD() && !repeat) { if (value==KEY_PRESS) { player_hail(); } } else if (KEY("autohail") && INGAME() && NOHYP() && NODEAD() && !repeat) { if (value==KEY_PRESS) { player_autohail(); } /* * misc */ /* zooming in */ } else if (KEY("mapzoomin") && INGAME() && NODEAD()) { if (value==KEY_PRESS) gui_setRadarRel(-1); /* zooming out */ } else if (KEY("mapzoomout") && INGAME() && NODEAD()) { if (value==KEY_PRESS) gui_setRadarRel(1); /* take a screenshot */ } else if (KEY("screenshot")) { if (value==KEY_PRESS) player_screenshot(); #if SDL_VERSION_ATLEAST(2,0,0) /* toggle fullscreen */ } else if (KEY("togglefullscreen") && !repeat) { if (value==KEY_PRESS) naev_toggleFullscreen(); #endif /* SDL_VERSION_ATLEAST(2,0,0) */ /* pause the games */ } else if (KEY("pause") && !repeat) { if (value==KEY_PRESS) { if (!toolkit_isOpen()) { if (paused) unpause_game(); else pause_player(); } } /* toggle speed mode */ } else if (KEY("speed") && !repeat) { if ((value==KEY_PRESS) && (!player_isFlag( PLAYER_CINEMATICS_2X ))) { if (player_isFlag(PLAYER_DOUBLESPEED)) { if (!player_isFlag(PLAYER_AUTONAV)) pause_setSpeed(1.); player_rmFlag(PLAYER_DOUBLESPEED); } else { if (!player_isFlag(PLAYER_AUTONAV)) pause_setSpeed(2.); player_setFlag(PLAYER_DOUBLESPEED); } } /* opens a small menu */ } else if (KEY("menu") && NODEAD() && !repeat) { if (value==KEY_PRESS) menu_small(); /* shows pilot information */ } else if (KEY("info") && NOHYP() && NODEAD() && !repeat) { if (value==KEY_PRESS) menu_info( INFO_MAIN ); /* Opens the Lua console. */ } else if (KEY("console") && NODEAD() && !repeat) { if (value==KEY_PRESS) cli_open(); } /* Key press not used. */ else { return; } /* Run the hook. */ hparam[0].type = HOOK_PARAM_STRING; hparam[0].u.str = input_keybinds[keynum].name; hparam[1].type = HOOK_PARAM_BOOL; hparam[1].u.b = (value > 0.); hparam[2].type = HOOK_PARAM_SENTINEL; hooks_runParam( "input", hparam ); }
MenuPanel::MenuPanel(axWindow* parent, const axRect& rect): // Parent. axPanel(parent, rect) { std::string app_path(axApp::GetInstance()->GetAppDirectory()); //std::string app_path("C:/Users/Alexandre Arsenault/Desktop/axLib/axExamples/Demo/VisualStudio2013/axGL/"); axButtonInfo btn1_info; btn1_info.normal = axColor(0.8, 0.8, 0.8); btn1_info.hover = axColor(0.9, 0.9, 0.9); btn1_info.clicking = axColor(0.7, 0.7, 0.7); btn1_info.contour = axColor(0.0, 0.0, 0.0); btn1_info.selected = btn1_info.normal; axButtonEvents btn1_evts; btn1_evts.button_click = GetOnPopupMenu(); _btnPopMenu = new axButton(this, axRect(40, 40, 100, 20), btn1_evts, btn1_info, "", "Test1"); axPopupMenuInfo menu_info(axColor(1.0, 0.0, 0.0), axColor(0.2, 0.8, 0.8), axColor(0.2, 0.8, 0.8), axColor(0.2, 0.8, 0.8), axColor(0.2, 0.8, 0.8), axColor(0.0, 0.0, 0.0)); axPopupMenuEvents menu_evts; menu_evts.selection_change = GetOnPopupMenuChoice(); std::vector<std::string> menu_str = {"None", "Test1", "Test2", "Test3", "Test4"}; axPoint menu_pos = _btnPopMenu->GetAbsoluteRect().position; menu_pos.y += _btnPopMenu->GetSize().y; _popMenu = new axPopupMenu(this, axRect(menu_pos, axSize(100, 30)), menu_evts, menu_info, menu_str); _popMenu->Hide(); _popMenu->SetSelectedIndex(0); std::cout << "MenuPanel::_popMenu (id) = " << _popMenu->GetId() << std::endl; axDropMenuInfo drop_info; drop_info.normal = axColor(0.8, 0.8, 0.8); drop_info.hover = axColor(0.9, 0.9, 0.9); drop_info.clicking = axColor(0.7, 0.7, 0.7); drop_info.contour = axColor(0.0, 0.0, 0.0); drop_info.selected = drop_info.normal; axDropMenuEvents drop_evts; drop_evts.selection_change = GetOnDropMenuChoice(); _dropMenu = new axDropMenu(this, axRect(250, 40, 100, 20), drop_evts, drop_info, app_path + std::string("DropMenuArrow.png"), app_path + std::string("button.png"), axDROP_MENU_SINGLE_IMG); axButtonEvents btn2_evts; btn2_evts.button_click = GetOnTestBtnUnder(); axButton* btn2 = new axButton(this, axRect(_btnPopMenu->GetBottomLeftPosition() + axPoint(0, 10), axSize(70, 25)), btn2_evts, btn1_info, "", "BTN"); //-------------------------------------------------------------------------- axTextBoxEvents txtEvents; axTextBoxInfo txtInfo; txtInfo.normal = axColor(0.9, 0.9, 0.9); txtInfo.hover = axColor(0.9, 0.9, 0.9); txtInfo.selected = axColor(1.0, 1.0, 1.0); txtInfo.hightlight = axColor(0.4, 0.4, 0.6, 0.4); txtInfo.contour = axColor(0.0, 0.0, 0.0); txtInfo.cursor = axColor(1.0, 0.0, 0.0); txtInfo.selected_shadow = axColor(0.8, 0.8, 0.8, 0.3); _txtCtrl = new axTextBox(this, axRect(110, 225, 180, 25), txtEvents, txtInfo, "", "Alexandre", axTEXT_BOX_CONTOUR_HIGHLIGHT); //-------------------------------------------------------------------------- }