diff --git a/UI/GameSettingsScreen.cpp b/UI/GameSettingsScreen.cpp index 7fc46e9e4d..08dea7a9ac 100644 --- a/UI/GameSettingsScreen.cpp +++ b/UI/GameSettingsScreen.cpp @@ -299,7 +299,13 @@ void GameSettingsScreen::CreateGraphicsSettings(UI::ViewGroup *graphicsSettings) static const char *internalResolutions[] = { "Auto (1:1)", "1x PSP", "2x PSP", "3x PSP", "4x PSP", "5x PSP", "6x PSP", "7x PSP", "8x PSP", "9x PSP", "10x PSP" }; resolutionChoice_ = graphicsSettings->Add(new PopupMultiChoice(&g_Config.iInternalResolution, gr->T("Rendering Resolution"), internalResolutions, 0, ARRAY_SIZE(internalResolutions), I18NCat::GRAPHICS, screenManager())); - resolutionChoice_->OnChoice.Handle(this, &GameSettingsScreen::OnResolutionChange); + resolutionChoice_->OnChoice.Add([](UI::EventParams &e) { + if (g_Config.iAndroidHwScale == 1) { + System_RecreateActivity(); + } + Reporting::UpdateConfig(); + System_PostUIMessage(UIMessage::GPU_RENDER_RESIZED); + }); resolutionChoice_->SetEnabledFunc([] { return !g_Config.bSoftwareRendering && !g_Config.bSkipBufferEffects; }); @@ -784,8 +790,12 @@ void GameSettingsScreen::CreateControlsSettings(UI::ViewGroup *controlsSettings) int deviceType = System_GetPropertyInt(SYSPROP_DEVICE_TYPE); controlsSettings->Add(new ItemHeader(ms->T("Controls"))); - controlsSettings->Add(new Choice(co->T("Control Mapping")))->OnClick.Handle(this, &GameSettingsScreen::OnControlMapping); - controlsSettings->Add(new Choice(co->T("Calibrate Analog Stick")))->OnClick.Handle(this, &GameSettingsScreen::OnCalibrateAnalogs); + controlsSettings->Add(new Choice(co->T("Control Mapping")))->OnClick.Add([this](UI::EventParams &e) { + screenManager()->push(new ControlMappingScreen(gamePath_)); + }); + controlsSettings->Add(new Choice(co->T("Calibrate Analog Stick")))->OnClick.Add([this](UI::EventParams &e) { + screenManager()->push(new AnalogSetupScreen(gamePath_)); + }); controlsSettings->Add(new PopupSliderChoiceFloat(&g_Config.fAnalogTriggerThreshold, 0.02f, 0.98f, 0.75f, co->T("Analog trigger threshold"), screenManager())); #if defined(USING_WIN_UI) || (PPSSPP_PLATFORM(LINUX) && !PPSSPP_PLATFORM(ANDROID)) @@ -804,7 +814,9 @@ void GameSettingsScreen::CreateControlsSettings(UI::ViewGroup *controlsSettings) } return ""; })); - customizeTilt->OnClick.Handle(this, &GameSettingsScreen::OnTiltCustomize); + customizeTilt->OnClick.Add([this](UI::EventParams &e) { + screenManager()->push(new TouchControlLayoutScreen(gamePath_)); + }); } else if (System_GetPropertyInt(SYSPROP_DEVICE_TYPE) == DEVICE_TYPE_VR) { // TODO: This seems like a regression controlsSettings->Add(new CheckBox(&g_Config.bHapticFeedback, co->T("HapticFeedback", "Haptic Feedback (vibration)"))); } @@ -814,7 +826,9 @@ void GameSettingsScreen::CreateControlsSettings(UI::ViewGroup *controlsSettings) controlsSettings->Add(new ItemHeader(co->T("OnScreen", "On-Screen Touch Controls"))); controlsSettings->Add(new CheckBox(&g_Config.bShowTouchControls, co->T("OnScreen", "On-Screen Touch Controls"))); layoutEditorChoice_ = controlsSettings->Add(new Choice(co->T("Customize Touch Controls"))); - layoutEditorChoice_->OnClick.Handle(this, &GameSettingsScreen::OnTouchControlLayout); + layoutEditorChoice_->OnClick.Add([this](UI::EventParams &e) { + screenManager()->push(new TouchControlLayoutScreen(gamePath_)); + }); layoutEditorChoice_->SetEnabledPtr(&g_Config.bShowTouchControls); Choice *gesture = controlsSettings->Add(new Choice(co->T("Gesture mapping"))); @@ -1601,14 +1615,6 @@ void GameSettingsScreen::OnFullscreenMultiChange(UI::EventParams &e) { System_ToggleFullscreenState(g_Config.UseFullScreen() ? "1" : "0"); } -void GameSettingsScreen::OnResolutionChange(UI::EventParams &e) { - if (g_Config.iAndroidHwScale == 1) { - System_RecreateActivity(); - } - Reporting::UpdateConfig(); - System_PostUIMessage(UIMessage::GPU_RENDER_RESIZED); -} - void GameSettingsScreen::onFinish(DialogResult result) { Reporting::Enable(enableReports_, "report.ppsspp.org"); Reporting::UpdateConfig(); @@ -1806,22 +1812,6 @@ void GameSettingsScreen::OnTextureShaderChange(UI::EventParams &e) { g_Config.bTexHardwareScaling = g_Config.sTextureShaderName != "Off"; } -void GameSettingsScreen::OnControlMapping(UI::EventParams &e) { - screenManager()->push(new ControlMappingScreen(gamePath_)); -} - -void GameSettingsScreen::OnCalibrateAnalogs(UI::EventParams &e) { - screenManager()->push(new AnalogSetupScreen(gamePath_)); -} - -void GameSettingsScreen::OnTouchControlLayout(UI::EventParams &e) { - screenManager()->push(new TouchControlLayoutScreen(gamePath_)); -} - -void GameSettingsScreen::OnTiltCustomize(UI::EventParams &e) { - screenManager()->push(new TiltAnalogSettingsScreen(gamePath_)); -}; - void GameSettingsScreen::CallbackRestoreDefaults(bool yes) { if (yes) { g_Config.RestoreDefaults(RestoreSettingsBits::SETTINGS); diff --git a/UI/GameSettingsScreen.h b/UI/GameSettingsScreen.h index cc914e828f..8cec893d88 100644 --- a/UI/GameSettingsScreen.h +++ b/UI/GameSettingsScreen.h @@ -74,12 +74,6 @@ private: std::string memstickDisplay_; - // Event handlers - void OnControlMapping(UI::EventParams &e); - void OnCalibrateAnalogs(UI::EventParams &e); - void OnTouchControlLayout(UI::EventParams &e); - void OnTiltCustomize(UI::EventParams &e); - // Global settings handlers void OnAutoFrameskip(UI::EventParams &e); void OnTextureShader(UI::EventParams &e); @@ -92,7 +86,6 @@ private: void OnChangeBackground(UI::EventParams &e); void OnFullscreenChange(UI::EventParams &e); void OnFullscreenMultiChange(UI::EventParams &e); - void OnResolutionChange(UI::EventParams &e); void OnRestoreDefaultSettings(UI::EventParams &e); void OnRenderingBackend(UI::EventParams &e); void OnRenderingDevice(UI::EventParams &e);