From 30e58d98485aa29928512e200da6dd67d7de0231 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Mon, 3 Mar 2014 12:56:01 +0100 Subject: [PATCH] More work on smoother keyboard focus --- UI/GameSettingsScreen.cpp | 6 ++++-- UI/MainScreen.cpp | 4 ++++ UI/MiscScreens.cpp | 8 ++++++-- native | 2 +- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/UI/GameSettingsScreen.cpp b/UI/GameSettingsScreen.cpp index 6b60b1d757..5f12d78a20 100644 --- a/UI/GameSettingsScreen.cpp +++ b/UI/GameSettingsScreen.cpp @@ -94,6 +94,7 @@ void GameSettingsScreen::CreateViews() { TabHolder *tabHolder = new TabHolder(ORIENT_VERTICAL, 200, new AnchorLayoutParams(10, 0, 10, 0, false)); root_->Add(tabHolder); + root_->SetDefaultFocusView(tabHolder); // TODO: These currently point to global settings, not game specific ones. @@ -106,7 +107,8 @@ void GameSettingsScreen::CreateViews() { graphicsSettings->Add(new ItemHeader(gs->T("Rendering Mode"))); static const char *renderingMode[] = { "Non-Buffered Rendering", "Buffered Rendering", "Read Framebuffers To Memory (CPU)", "Read Framebuffers To Memory (GPU)"}; - graphicsSettings->Add(new PopupMultiChoice(&g_Config.iRenderingMode, gs->T("Mode"), renderingMode, 0, ARRAY_SIZE(renderingMode), gs, screenManager()))->OnChoice.Handle(this, &GameSettingsScreen::OnRenderingMode); + PopupMultiChoice *rm = graphicsSettings->Add(new PopupMultiChoice(&g_Config.iRenderingMode, gs->T("Mode"), renderingMode, 0, ARRAY_SIZE(renderingMode), gs, screenManager())); + rm->OnChoice.Handle(this, &GameSettingsScreen::OnRenderingMode); graphicsSettings->Add(new ItemHeader(gs->T("Frame Rate Control"))); @@ -223,7 +225,7 @@ void GameSettingsScreen::CreateViews() { dump->SetEnabled(false); // We normally use software rendering to debug so put it in debugging. - CheckBox *softwareGPU = graphicsSettings->Add(new CheckBox(&g_Config.bSoftwareRendering, gs->T("Software Rendering", "Software Rendering (experimental)"))); + CheckBox *softwareGPU = graphicsSettings->Add(new CheckBox(&g_Config.bSoftwareRendering, gs->T("Software Rendering", "Software Rendering (experimental)"))); if (PSP_IsInited()) softwareGPU->SetEnabled(false); diff --git a/UI/MainScreen.cpp b/UI/MainScreen.cpp index cb4631e082..ebf587ec24 100644 --- a/UI/MainScreen.cpp +++ b/UI/MainScreen.cpp @@ -692,6 +692,7 @@ void MainScreen::CreateViews() { TabHolder *leftColumn = new TabHolder(ORIENT_HORIZONTAL, 64); tabHolder_ = leftColumn; + leftColumn->SetClip(true); ScrollView *scrollRecentGames = new ScrollView(ORIENT_VERTICAL, new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT)); @@ -778,6 +779,7 @@ void MainScreen::CreateViews() { gold->OnClick.Handle(this, &MainScreen::OnSupport); gold->SetIcon(I_ICONGOLD); #endif + rightColumnItems->Add(new Spacer(25.0)); rightColumnItems->Add(new Choice(m->T("Exit")))->OnClick.Handle(this, &MainScreen::OnExit); if (vertical) { @@ -794,6 +796,8 @@ void MainScreen::CreateViews() { root_->Add(rightColumn); } + root_->SetDefaultFocusView(tabHolder_); + I18NCategory *u = GetI18NCategory("Upgrade"); upgradeBar_ = 0; diff --git a/UI/MiscScreens.cpp b/UI/MiscScreens.cpp index c6f24d26e0..385c78fd4c 100644 --- a/UI/MiscScreens.cpp +++ b/UI/MiscScreens.cpp @@ -218,7 +218,9 @@ void PromptScreen::CreateViews() { ViewGroup *rightColumnItems = new LinearLayout(ORIENT_VERTICAL, new LinearLayoutParams(300, FILL_PARENT, actionMenuMargins)); root_->Add(rightColumnItems); - rightColumnItems->Add(new Choice(yesButtonText_))->OnClick.Handle(this, &PromptScreen::OnYes); + Choice *yesButton = rightColumnItems->Add(new Choice(yesButtonText_)); + yesButton->OnClick.Handle(this, &PromptScreen::OnYes); + root_->SetDefaultFocusView(yesButton); if (noButtonText_ != "") rightColumnItems->Add(new Choice(noButtonText_))->OnClick.Handle(this, &PromptScreen::OnNo); } @@ -428,7 +430,9 @@ void CreditsScreen::CreateViews() { I18NCategory *c = GetI18NCategory("PSPCredits"); root_ = new AnchorLayout(new LayoutParams(FILL_PARENT, FILL_PARENT)); - root_->Add(new Button(d->T("Back"), new AnchorLayoutParams(260, 64, NONE, NONE, 10, 10, false)))->OnClick.Handle(this, &CreditsScreen::OnOK); + Button *back = root_->Add(new Button(d->T("Back"), new AnchorLayoutParams(260, 64, NONE, NONE, 10, 10, false))); + back->OnClick.Handle(this, &CreditsScreen::OnOK); + root_->SetDefaultFocusView(back); #ifndef GOLD root_->Add(new Button(c->T("Buy Gold"), new AnchorLayoutParams(260, 64, 10, NONE, NONE, 10, false)))->OnClick.Handle(this, &CreditsScreen::OnSupport); #endif diff --git a/native b/native index 27bb0b01d3..3d906a1471 160000 --- a/native +++ b/native @@ -1 +1 @@ -Subproject commit 27bb0b01d39d733c25da390b6d756734c6d80c90 +Subproject commit 3d906a1471b97a49fc8c61450d469a539d1d835a