From 73990bcc32bfe93692915149e0489b6f22ed7916 Mon Sep 17 00:00:00 2001 From: Henrik Rydgard Date: Fri, 16 Aug 2013 12:52:16 +0200 Subject: [PATCH] UI updates Touch&hold now goes to game menu and single click goes directly to the game, so I removed bDirectLoad. There's now a linear game list view for the game browser. Assorted fixes. --- Core/Config.cpp | 2 - Core/Config.h | 1 - UI/GameInfoCache.cpp | 4 + UI/GameScreen.cpp | 6 +- UI/GameSettingsScreen.cpp | 8 +- UI/MainScreen.cpp | 174 ++++++++++++++++++++++++++++---------- UI/MainScreen.h | 3 +- UI/MiscScreens.cpp | 2 +- UI/PluginScreen.cpp | 6 +- native | 2 +- 10 files changed, 147 insertions(+), 61 deletions(-) diff --git a/Core/Config.cpp b/Core/Config.cpp index efe3c1ca45..15b2b37558 100644 --- a/Core/Config.cpp +++ b/Core/Config.cpp @@ -54,7 +54,6 @@ void Config::Load(const char *iniFileName) general->Get("AutoLoadLast", &bAutoLoadLast, false); general->Get("AutoRun", &bAutoRun, true); general->Get("Browse", &bBrowse, false); - general->Get("DirectLoad", &bDirectLoad, false); general->Get("ConfirmOnQuit", &bConfirmOnQuit, false); general->Get("IgnoreBadMemAccess", &bIgnoreBadMemAccess, true); general->Get("CurrentDirectory", ¤tDirectory, ""); @@ -213,7 +212,6 @@ void Config::Save() general->Set("AutoLoadLast", bAutoLoadLast); general->Set("AutoRun", bAutoRun); general->Set("Browse", bBrowse); - general->Set("DirectLoad", bDirectLoad); general->Set("ConfirmOnQuit", bConfirmOnQuit); general->Set("IgnoreBadMemAccess", bIgnoreBadMemAccess); general->Set("CurrentDirectory", currentDirectory); diff --git a/Core/Config.h b/Core/Config.h index 094e08dc4c..bf8d893670 100644 --- a/Core/Config.h +++ b/Core/Config.h @@ -50,7 +50,6 @@ public: int iNumWorkerThreads; bool bScreenshotsAsPNG; bool bEnableLogging; - bool bDirectLoad; // Core bool bIgnoreBadMemAccess; diff --git a/UI/GameInfoCache.cpp b/UI/GameInfoCache.cpp index 4dc2310b2d..c12a63d7a1 100644 --- a/UI/GameInfoCache.cpp +++ b/UI/GameInfoCache.cpp @@ -274,6 +274,9 @@ public: info_->id_version = info_->paramSFO.GetValueString("DISC_ID") + "_" + info_->paramSFO.GetValueString("DISC_VERSION"); info_->paramSFOLoaded = true; + } else { + // Fall back to the filename for title if ISO is broken + info_->title = gamePath_; } ReadFileToString(&umd, "/PSP_GAME/ICON0.PNG", &info_->iconTextureData, &info_->lock); @@ -283,6 +286,7 @@ public: ReadFileToString(&umd, "/PSP_GAME/PIC1.PNG", &info_->pic1TextureData, &info_->lock); break; } + default: ; } diff --git a/UI/GameScreen.cpp b/UI/GameScreen.cpp index 32427663d8..c2f6b0cbd9 100644 --- a/UI/GameScreen.cpp +++ b/UI/GameScreen.cpp @@ -51,9 +51,9 @@ void GameScreen::CreateViews() { leftColumn->Add(new Choice(g->T("Back"), "", false, new AnchorLayoutParams(150, WRAP_CONTENT, 10, NONE, NONE, 10)))->OnClick.Handle(this, &GameScreen::OnSwitchBack); if (info) { texvGameIcon_ = leftColumn->Add(new TextureView(0, IS_DEFAULT, new AnchorLayoutParams(144 * 2, 80 * 2, 10, 10, NONE, NONE))); - tvTitle_ = leftColumn->Add(new TextView(0, info->title, ALIGN_LEFT, 1.0f, new AnchorLayoutParams(10, 200, NONE, NONE))); - tvGameSize_ = leftColumn->Add(new TextView(0, "...", ALIGN_LEFT, 1.0f, new AnchorLayoutParams(10, 250, NONE, NONE))); - tvSaveDataSize_ = leftColumn->Add(new TextView(0, "...", ALIGN_LEFT, 1.0f, new AnchorLayoutParams(10, 290, NONE, NONE))); + tvTitle_ = leftColumn->Add(new TextView(info->title, ALIGN_LEFT, 1.0f, new AnchorLayoutParams(10, 200, NONE, NONE))); + tvGameSize_ = leftColumn->Add(new TextView("...", ALIGN_LEFT, 1.0f, new AnchorLayoutParams(10, 250, NONE, NONE))); + tvSaveDataSize_ = leftColumn->Add(new TextView("...", ALIGN_LEFT, 1.0f, new AnchorLayoutParams(10, 290, NONE, NONE))); } ViewGroup *rightColumn = new ScrollView(ORIENT_VERTICAL, new LinearLayoutParams(300, FILL_PARENT, actionMenuMargins)); diff --git a/UI/GameSettingsScreen.cpp b/UI/GameSettingsScreen.cpp index fd5327006e..67ea47902c 100644 --- a/UI/GameSettingsScreen.cpp +++ b/UI/GameSettingsScreen.cpp @@ -231,9 +231,6 @@ void GameSettingsScreen::CreateViews() { graphicsSettings->Add(new CheckBox(&g_Config.bShowDebugStats, gs->T("Show Debug Statistics"))); graphicsSettings->Add(new CheckBox(&cap60FPS_, gs->T("Force 60 FPS or less (helps GoW)"))); - graphicsSettings->Add(new ItemHeader(gs->T("Anisotropic Filtering"))); - static const char *anisoLevels[] = { "Off", "2x", "4x", "8x", "16x" }; - graphicsSettings->Add(new PopupMultiChoice(&g_Config.iAnisotropyLevel, gs->T("Anisotropic Filtering"), anisoLevels, 0, 5, gs, screenManager())); graphicsSettings->Add(new ItemHeader(gs->T("Texture Scaling"))); #ifndef USING_GLES2 static const char *texScaleLevels[] = {"Off", "2x", "3x","4x", "5x"}; @@ -246,8 +243,10 @@ void GameSettingsScreen::CreateViews() { graphicsSettings->Add(new PopupMultiChoice(&g_Config.iTexScalingType, gs->T("Upscale Type"), texScaleAlgos, 0, 4, gs, screenManager())); graphicsSettings->Add(new CheckBox(&g_Config.bTexDeposterize, gs->T("Deposterize"))); graphicsSettings->Add(new ItemHeader(gs->T("Texture Filtering"))); + static const char *anisoLevels[] = { "Off", "2x", "4x", "8x", "16x" }; + graphicsSettings->Add(new PopupMultiChoice(&g_Config.iAnisotropyLevel, gs->T("Anisotropic Filtering"), anisoLevels, 0, 5, gs, screenManager())); static const char *texFilters[] = { "Auto", "Nearest", "Linear", "Linear on FMV", }; - graphicsSettings->Add(new PopupMultiChoice(&g_Config.iTexFiltering, gs->T("Upscale Type"), texFilters, 1, 4, gs, screenManager())); + graphicsSettings->Add(new PopupMultiChoice(&g_Config.iTexFiltering, gs->T("Texture Filter"), texFilters, 1, 4, gs, screenManager())); // Audio ViewGroup *audioSettingsScroll = new ScrollView(ORIENT_VERTICAL, new LinearLayoutParams(FILL_PARENT, FILL_PARENT)); @@ -363,7 +362,6 @@ void GlobalSettingsScreen::CreateViews() { list->Add(new CheckBox(&enableReports_, gs->T("Enable Compatibility Server Reports"))); list->Add(new CheckBox(&g_Config.bEnableCheats, gs->T("Enable Cheats"))); list->Add(new CheckBox(&g_Config.bScreenshotsAsPNG, gs->T("Screenshots as PNG"))); - list->Add(new CheckBox(&g_Config.bDirectLoad, gs->T("Enable Direct Load"))); list->Add(new Choice(gs->T("System Language")))->OnClick.Handle(this, &GlobalSettingsScreen::OnLanguage); list->Add(new Choice(gs->T("Developer Tools")))->OnClick.Handle(this, &GlobalSettingsScreen::OnDeveloperTools); list->Add(new Choice(g->T("Back")))->OnClick.Handle(this, &GlobalSettingsScreen::OnBack); diff --git a/UI/MainScreen.cpp b/UI/MainScreen.cpp index 7bc34cfd7c..a1e843a8e9 100644 --- a/UI/MainScreen.cpp +++ b/UI/MainScreen.cpp @@ -46,14 +46,20 @@ namespace MainWindow { class GameButton : public UI::Clickable { public: - GameButton(const std::string &gamePath, UI::LayoutParams *layoutParams = 0) - : UI::Clickable(layoutParams), gamePath_(gamePath), holdFrameCount_(0) {} + GameButton(const std::string &gamePath, bool gridStyle, UI::LayoutParams *layoutParams = 0) + : UI::Clickable(layoutParams), gridStyle_(gridStyle), gamePath_(gamePath), holdFrameCount_(0) {} virtual void Draw(UIContext &dc); virtual void GetContentDimensions(const UIContext &dc, float &w, float &h) const { - w = 144; - h = 80; + if (gridStyle_) { + w = 144; + h = 80; + } else { + w = 500; + h = 50; + } } + const std::string &GamePath() const { return gamePath_; } virtual void Touch(const TouchInput &input) { UI::Clickable::Touch(input); @@ -68,9 +74,11 @@ public: holdFrameCount_ = 0; // Hold button for 1.5 seconds to launch the game directly if (holdFrameCount_ > 90) { + holdFrameCount_ = 0; UI::EventParams e; e.v = this; e.s = gamePath_; + down_ = false; OnHoldClick.Trigger(e); } } @@ -78,8 +86,9 @@ public: UI::Event OnHoldClick; private: + bool gridStyle_; std::string gamePath_; - + int holdFrameCount_; }; @@ -90,15 +99,24 @@ void GameButton::Draw(UIContext &dc) { if (ginfo->iconTexture) { texture = ginfo->iconTexture; - } else { - return; } int x = bounds_.x; int y = bounds_.y; - int w = bounds_.w; + int w = 144; int h = bounds_.h; + UI::Style style = dc.theme->itemStyle; + + if (!gridStyle_ || !texture) { + // w = 144 * 80 / 50; + h = 50; + if (HasFocus()) + style = down_ ? dc.theme->itemDownStyle : dc.theme->itemFocusedStyle; + + dc.FillRect(style.background, bounds_); + } + if (texture) { color = whiteAlpha(ease((time_now_d() - ginfo->timeIconWasLoaded) * 2)); shadowColor = blackAlpha(ease((time_now_d() - ginfo->timeIconWasLoaded) * 2)); @@ -144,8 +162,15 @@ void GameButton::Draw(UIContext &dc) { dc.Draw()->DrawTexRect(x, y, x+w, y+h, 0, 0, 1, 1, color); dc.Draw()->Flush(); dc.RebindTexture(); + } + + if (!gridStyle_) { + dc.Draw()->DrawText(0, ginfo->title.c_str(), bounds_.x + 150, bounds_.centerY(), style.fgColor, ALIGN_VCENTER); } else { - dc.FillRect(dc.theme->buttonStyle.background, bounds_); + dc.PushScissor(bounds_); + if (!texture) + dc.Draw()->DrawText(0, ginfo->title.c_str(), bounds_.x + 4, bounds_.centerY(), style.fgColor, ALIGN_VCENTER); + dc.PopScissor(); } } @@ -168,6 +193,16 @@ public: else return ""; } + std::string GetFriendlyPath() { + std::string str = GetPath(); +#ifdef ANDROID + if (!memcmp(str.c_str(), g_Config.memCardDirectory.c_str(), g_Config.memCardDirectory.size())) + { + str = str.substr(g_Config.memCardDirectory.size()); + } +#endif + return str; + } std::string path_; }; @@ -236,40 +271,80 @@ void PathBrowser::Navigate(const std::string &path) { } } -class GameBrowser : public UI::GridLayout { +class GameBrowser : public UI::LinearLayout { public: - GameBrowser(std::string path, bool allowBrowsing, UI::LayoutParams *layoutParams = 0); + GameBrowser(std::string path, bool allowBrowsing, std::string lastText, std::string lastLink, UI::LayoutParams *layoutParams = 0); UI::Event OnChoice; UI::Event OnHoldChoice; - virtual void Update(const InputState &input_state) { - UI::GridLayout::Update(input_state); - } - private: void Refresh(); UI::EventReturn GameButtonClick(UI::EventParams &e); UI::EventReturn GameButtonHoldClick(UI::EventParams &e); UI::EventReturn NavigateClick(UI::EventParams &e); + UI::EventReturn LayoutChange(UI::EventParams &e); + UI::EventReturn LastClick(UI::EventParams &e); + UI::EventReturn HomeClick(UI::EventParams &e); + UI::ViewGroup *gameList_; PathBrowser path_; bool allowBrowsing_; + bool gridStyle_; + std::string lastText_; + std::string lastLink_; }; -GameBrowser::GameBrowser(std::string path, bool allowBrowsing, UI::LayoutParams *layoutParams) - : UI::GridLayout(UI::GridLayoutSettings(150, 85), layoutParams), path_(path), allowBrowsing_(allowBrowsing) { +GameBrowser::GameBrowser(std::string path, bool allowBrowsing, std::string lastText, std::string lastLink, UI::LayoutParams *layoutParams) + : LinearLayout(UI::ORIENT_VERTICAL, layoutParams), path_(path), allowBrowsing_(allowBrowsing), gameList_(0), lastText_(lastText), lastLink_(lastLink) { + using namespace UI; + gridStyle_ = true; Refresh(); +} +UI::EventReturn GameBrowser::LayoutChange(UI::EventParams &e) { + gridStyle_ = e.a == 0 ? true : false; + Refresh(); + return UI::EVENT_DONE; +} + +UI::EventReturn GameBrowser::LastClick(UI::EventParams &e) { + LaunchBrowser(lastLink_.c_str()); + return UI::EVENT_DONE; +} + +UI::EventReturn GameBrowser::HomeClick(UI::EventParams &e) { + path_.SetPath(g_Config.memCardDirectory); + return UI::EVENT_DONE; } void GameBrowser::Refresh() { - // Kill all the buttons - for (size_t i = 0; i < views_.size(); i++) { - delete views_[i]; + using namespace UI; + + // Kill all the contents + Clear(); + + if (allowBrowsing_) { + LinearLayout *topBar = new LinearLayout(ORIENT_HORIZONTAL, new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT)); +#ifdef ANDROID + topBar->Add(new TextView(path_.GetFriendlyPath().c_str(), ALIGN_VCENTER, 1.0f, new LinearLayoutParams(WRAP_CONTENT, FILL_PARENT, 1.0f))); + topBar->Add(new Choice("Home"))->OnClick.Handle(this, &GameBrowser::HomeClick); +#endif + ChoiceStrip *layoutChoice = topBar->Add(new ChoiceStrip(ORIENT_HORIZONTAL)); + layoutChoice->AddChoice("Grid"); + layoutChoice->AddChoice("Linear"); + layoutChoice->SetSelection(gridStyle_ ? 0 : 1); + layoutChoice->OnChoice.Handle(this, &GameBrowser::LayoutChange); + Add(topBar); } - views_.clear(); + + if (gridStyle_) { + gameList_ = new UI::GridLayout(UI::GridLayoutSettings(150, 85), new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT)); + } else { + gameList_ = new UI::LinearLayout(UI::ORIENT_VERTICAL, new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT)); + } + Add(gameList_); // Find games in the current directory and create new ones. std::vector dirButtons; @@ -277,7 +352,7 @@ void GameBrowser::Refresh() { if (path_.GetPath() == "!RECENT") { for (size_t i = 0; i < g_Config.recentIsos.size(); i++) { - gameButtons.push_back(new GameButton(g_Config.recentIsos[i])); + gameButtons.push_back(new GameButton(g_Config.recentIsos[i], gridStyle_)); } } else { std::vector fileInfo; @@ -288,24 +363,29 @@ void GameBrowser::Refresh() { if (allowBrowsing_) dirButtons.push_back(new UI::Button(fileInfo[i].name.c_str(), new UI::LinearLayoutParams(UI::FILL_PARENT, UI::FILL_PARENT))); } else { - gameButtons.push_back(new GameButton(fileInfo[i].fullName)); + gameButtons.push_back(new GameButton(fileInfo[i].fullName, gridStyle_, new UI::LinearLayoutParams(gridStyle_ == true ? UI::WRAP_CONTENT : UI::FILL_PARENT, UI::WRAP_CONTENT))); } } } if (allowBrowsing_) - Add(new UI::Button("..", new UI::LinearLayoutParams(UI::FILL_PARENT, UI::FILL_PARENT)))-> + gameList_->Add(new UI::Button("..", new UI::LinearLayoutParams(UI::FILL_PARENT, UI::FILL_PARENT)))-> OnClick.Handle(this, &GameBrowser::NavigateClick); for (size_t i = 0; i < dirButtons.size(); i++) { - Add(dirButtons[i])->OnClick.Handle(this, &GameBrowser::NavigateClick); + gameList_->Add(dirButtons[i])->OnClick.Handle(this, &GameBrowser::NavigateClick); } for (size_t i = 0; i < gameButtons.size(); i++) { - GameButton *b = Add(gameButtons[i]); + GameButton *b = gameList_->Add(gameButtons[i]); b->OnClick.Handle(this, &GameBrowser::GameButtonClick); b->OnHoldClick.Handle(this, &GameBrowser::GameButtonHoldClick); } + + if (!lastText_.empty()) { + Add(new Spacer()); + Add(new Choice(lastText_))->OnClick.Handle(this, &GameBrowser::LastClick); + } } UI::EventReturn GameBrowser::GameButtonClick(UI::EventParams &e) { @@ -335,7 +415,6 @@ UI::EventReturn GameBrowser::NavigateClick(UI::EventParams &e) { return UI::EVENT_DONE; } - void MainScreen::CreateViews() { // Information in the top left. // Back button to the bottom left. @@ -355,9 +434,15 @@ void MainScreen::CreateViews() { ScrollView *scrollAllGames = new ScrollView(ORIENT_VERTICAL, new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT)); ScrollView *scrollHomebrew = new ScrollView(ORIENT_VERTICAL, new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT)); - GameBrowser *tabRecentGames = new GameBrowser("!RECENT", false, new LinearLayoutParams(FILL_PARENT, FILL_PARENT)); - GameBrowser *tabAllGames = new GameBrowser(g_Config.currentDirectory, true, new LinearLayoutParams(FILL_PARENT, FILL_PARENT)); - GameBrowser *tabHomebrew = new GameBrowser(g_Config.memCardDirectory + "PSP/GAME/", false, new LinearLayoutParams(FILL_PARENT, FILL_PARENT)); + GameBrowser *tabRecentGames = new GameBrowser( + "!RECENT", false, m->T("How to get games"), "http://www.ppsspp.org/faq.html", + new LinearLayoutParams(FILL_PARENT, FILL_PARENT)); + GameBrowser *tabAllGames = new GameBrowser(g_Config.currentDirectory, true, + m->T("How to get games"), "http://www.ppsspp.org/faq.html", + new LinearLayoutParams(FILL_PARENT, FILL_PARENT)); + GameBrowser *tabHomebrew = new GameBrowser(g_Config.memCardDirectory + "PSP/GAME/", false, + m->T("Download demos (non-affiliated site)"), "http://www.pspdemocenter.com/", + new LinearLayoutParams(FILL_PARENT, FILL_PARENT)); scrollRecentGames->Add(tabRecentGames); scrollAllGames->Add(tabAllGames); @@ -367,12 +452,12 @@ void MainScreen::CreateViews() { leftColumn->AddTab(m->T("Games"), scrollAllGames); leftColumn->AddTab(m->T("Homebrew & Demos"), scrollHomebrew); - tabRecentGames->OnChoice.Handle(this, &MainScreen::OnGameSelected); - tabAllGames->OnChoice.Handle(this, &MainScreen::OnGameSelected); - tabHomebrew->OnChoice.Handle(this, &MainScreen::OnGameSelected); - tabRecentGames->OnHoldChoice.Handle(this, &MainScreen::OnGameHoldSelected); - tabAllGames->OnHoldChoice.Handle(this, &MainScreen::OnGameHoldSelected); - tabHomebrew->OnHoldChoice.Handle(this, &MainScreen::OnGameHoldSelected); + tabRecentGames->OnChoice.Handle(this, &MainScreen::OnGameSelectedInstant); + tabAllGames->OnChoice.Handle(this, &MainScreen::OnGameSelectedInstant); + tabHomebrew->OnChoice.Handle(this, &MainScreen::OnGameSelectedInstant); + tabRecentGames->OnHoldChoice.Handle(this, &MainScreen::OnGameSelected); + tabAllGames->OnHoldChoice.Handle(this, &MainScreen::OnGameSelected); + tabHomebrew->OnHoldChoice.Handle(this, &MainScreen::OnGameSelected); /* if (info) { @@ -392,6 +477,7 @@ void MainScreen::CreateViews() { #ifdef _WIN32 rightColumnItems->Add(new Choice(m->T("Load","Load...")))->OnClick.Handle(this, &MainScreen::OnLoadFile); #endif + rightColumnItems->Add(new Choice(m->T("Game Settings")))->OnClick.Handle(this, &MainScreen::OnGameSettings); rightColumnItems->Add(new Choice(m->T("Settings")))->OnClick.Handle(this, &MainScreen::OnSettings); rightColumnItems->Add(new Choice(m->T("Exit")))->OnClick.Handle(this, &MainScreen::OnExit); rightColumnItems->Add(new Choice(m->T("Credits")))->OnClick.Handle(this, &MainScreen::OnCredits); @@ -417,22 +503,22 @@ UI::EventReturn MainScreen::OnLoadFile(UI::EventParams &e) { } UI::EventReturn MainScreen::OnGameSelected(UI::EventParams &e) { - if(g_Config.bDirectLoad) { - // Go directly into the game. - screenManager()->switchScreen(new EmuScreen(e.s)); - } else { - // Goto Game Menu. - screenManager()->push(new GameScreen(e.s)); - } + screenManager()->push(new GameScreen(e.s)); return UI::EVENT_DONE; } -UI::EventReturn MainScreen::OnGameHoldSelected(UI::EventParams &e) { +UI::EventReturn MainScreen::OnGameSelectedInstant(UI::EventParams &e) { // Go directly into the game. screenManager()->switchScreen(new EmuScreen(e.s)); return UI::EVENT_DONE; } +UI::EventReturn MainScreen::OnGameSettings(UI::EventParams &e) { + // screenManager()->push(new SettingsScreen()); + screenManager()->push(new GameSettingsScreen("","")); + return UI::EVENT_DONE; +} + UI::EventReturn MainScreen::OnSettings(UI::EventParams &e) { // screenManager()->push(new SettingsScreen()); screenManager()->push(new GlobalSettingsScreen()); diff --git a/UI/MainScreen.h b/UI/MainScreen.h index dca0af119e..e15efa8575 100644 --- a/UI/MainScreen.h +++ b/UI/MainScreen.h @@ -37,10 +37,11 @@ protected: private: UI::EventReturn OnGameSelected(UI::EventParams &e); - UI::EventReturn OnGameHoldSelected(UI::EventParams &e); + UI::EventReturn OnGameSelectedInstant(UI::EventParams &e); // Event handlers UI::EventReturn OnLoadFile(UI::EventParams &e); UI::EventReturn OnSettings(UI::EventParams &e); + UI::EventReturn OnGameSettings(UI::EventParams &e); UI::EventReturn OnCredits(UI::EventParams &e); UI::EventReturn OnSupport(UI::EventParams &e); UI::EventReturn OnExit(UI::EventParams &e); diff --git a/UI/MiscScreens.cpp b/UI/MiscScreens.cpp index 38531d9392..e5cc4876f9 100644 --- a/UI/MiscScreens.cpp +++ b/UI/MiscScreens.cpp @@ -60,7 +60,7 @@ void PromptScreen::CreateViews() { ViewGroup *leftColumn = new AnchorLayout(new LinearLayoutParams(1.0f)); root_->Add(leftColumn); - leftColumn->Add(new TextView(0, message_, ALIGN_LEFT, 1.0f, new AnchorLayoutParams(10, 10, NONE, NONE))); + leftColumn->Add(new TextView(message_, ALIGN_LEFT, 1.0f, new AnchorLayoutParams(10, 10, NONE, NONE))); ViewGroup *rightColumnItems = new LinearLayout(ORIENT_VERTICAL, new LinearLayoutParams(300, FILL_PARENT, actionMenuMargins)); root_->Add(rightColumnItems); diff --git a/UI/PluginScreen.cpp b/UI/PluginScreen.cpp index 72466a1cf1..ae0aafd648 100644 --- a/UI/PluginScreen.cpp +++ b/UI/PluginScreen.cpp @@ -48,14 +48,14 @@ void PluginScreen::CreateViews() { Margins textMargins(20,17); Margins buttonMargins(10,10); - root_->Add(new TextView(UBUNTU24, p->T("Atrac3+ Audio Support"), ALIGN_HCENTER, 1.5f, new LinearLayoutParams(textMargins))); + root_->Add(new TextView(p->T("Atrac3+ Audio Support"), ALIGN_HCENTER, 1.5f, new LinearLayoutParams(textMargins))); ViewGroup *scroll = new ScrollView(ORIENT_VERTICAL, new LinearLayoutParams(1.0)); LinearLayout *scrollContents = new LinearLayout(ORIENT_VERTICAL); root_->Add(scroll); scroll->Add(scrollContents); - tvDescription_ = scrollContents->Add(new TextView(0, "Looking for download...", ALIGN_LEFT, 1.0f, new LinearLayoutParams(textMargins))); + tvDescription_ = scrollContents->Add(new TextView("Looking for download...", ALIGN_LEFT, 1.0f, new LinearLayoutParams(textMargins))); const char *legalityNotice = p->T("Origins are dubious", "* Mai's Atrac3+ decoder is currently required\n" @@ -63,7 +63,7 @@ void PluginScreen::CreateViews() { "Please note that the origins of this code are dubious.\n" "Choose More Information for more information."); - scrollContents->Add(new TextView(0, legalityNotice, ALIGN_LEFT, 0.65f, new LinearLayoutParams(textMargins) )); + scrollContents->Add(new TextView(legalityNotice, ALIGN_LEFT, 0.65f, new LinearLayoutParams(textMargins) )); progress_ = root_->Add(new ProgressBar()); progress_->SetVisibility(V_GONE); diff --git a/native b/native index 1353a9d73d..c3ea52bad5 160000 --- a/native +++ b/native @@ -1 +1 @@ -Subproject commit 1353a9d73d1cdc0935b87f3e1d37edf516cf936a +Subproject commit c3ea52bad545439454ca60612efd56071e0b94d9