mirror of
https://github.com/RetroDECK/ES-DE.git
synced 2024-11-25 15:45:38 +00:00
Improved the layout for the scraper and theme downloader to look more consistent across different display aspect ratios
This commit is contained in:
parent
2d151921db
commit
4217f910f6
|
@ -62,13 +62,13 @@ GuiScraperMulti::GuiScraperMulti(
|
||||||
|
|
||||||
if (mApproveResults && !Settings::getInstance()->getBool("ScraperSemiautomatic"))
|
if (mApproveResults && !Settings::getInstance()->getBool("ScraperSemiautomatic"))
|
||||||
mSearchComp =
|
mSearchComp =
|
||||||
std::make_shared<GuiScraperSearch>(GuiScraperSearch::NEVER_AUTO_ACCEPT, mTotalGames);
|
std::make_shared<GuiScraperSearch>(GuiScraperSearch::NEVER_AUTO_ACCEPT, mTotalGames, 7);
|
||||||
else if (mApproveResults && Settings::getInstance()->getBool("ScraperSemiautomatic"))
|
else if (mApproveResults && Settings::getInstance()->getBool("ScraperSemiautomatic"))
|
||||||
mSearchComp = std::make_shared<GuiScraperSearch>(GuiScraperSearch::ACCEPT_SINGLE_MATCHES,
|
mSearchComp = std::make_shared<GuiScraperSearch>(GuiScraperSearch::ACCEPT_SINGLE_MATCHES,
|
||||||
mTotalGames);
|
mTotalGames, 7);
|
||||||
else if (!mApproveResults)
|
else if (!mApproveResults)
|
||||||
mSearchComp = std::make_shared<GuiScraperSearch>(
|
mSearchComp = std::make_shared<GuiScraperSearch>(
|
||||||
GuiScraperSearch::ALWAYS_ACCEPT_FIRST_RESULT, mTotalGames);
|
GuiScraperSearch::ALWAYS_ACCEPT_FIRST_RESULT, mTotalGames, 7);
|
||||||
mSearchComp->setAcceptCallback(
|
mSearchComp->setAcceptCallback(
|
||||||
std::bind(&GuiScraperMulti::acceptResult, this, std::placeholders::_1));
|
std::bind(&GuiScraperMulti::acceptResult, this, std::placeholders::_1));
|
||||||
mSearchComp->setSkipCallback(std::bind(&GuiScraperMulti::skip, this));
|
mSearchComp->setSkipCallback(std::bind(&GuiScraperMulti::skip, this));
|
||||||
|
@ -162,7 +162,7 @@ GuiScraperMulti::GuiScraperMulti(
|
||||||
|
|
||||||
float height {(mTitle->getFont()->getLetterHeight() + titleHeight) +
|
float height {(mTitle->getFont()->getLetterHeight() + titleHeight) +
|
||||||
mSystem->getFont()->getLetterHeight() +
|
mSystem->getFont()->getLetterHeight() +
|
||||||
mSubtitle->getFont()->getHeight() * 1.75f + mButtonGrid->getSize().y +
|
mSubtitle->getFont()->getHeight() * 1.75f + (mButtonGrid->getSize().y * 1.1f) +
|
||||||
Font::get(FONT_SIZE_MEDIUM)->getHeight() * 7.0f};
|
Font::get(FONT_SIZE_MEDIUM)->getHeight() * 7.0f};
|
||||||
|
|
||||||
// TODO: Temporary hack, see below.
|
// TODO: Temporary hack, see below.
|
||||||
|
|
|
@ -34,10 +34,11 @@
|
||||||
#include "resources/Font.h"
|
#include "resources/Font.h"
|
||||||
#include "utils/StringUtil.h"
|
#include "utils/StringUtil.h"
|
||||||
|
|
||||||
GuiScraperSearch::GuiScraperSearch(SearchType type, unsigned int scrapeCount)
|
GuiScraperSearch::GuiScraperSearch(SearchType type, unsigned int scrapeCount, int rowCount)
|
||||||
: mRenderer {Renderer::getInstance()}
|
: mRenderer {Renderer::getInstance()}
|
||||||
, mGrid {glm::ivec2 {5, 3}}
|
, mGrid {glm::ivec2 {5, 3}}
|
||||||
, mSearchType {type}
|
, mSearchType {type}
|
||||||
|
, mRowCount {rowCount}
|
||||||
, mScrapeCount {scrapeCount}
|
, mScrapeCount {scrapeCount}
|
||||||
, mRefinedSearch {false}
|
, mRefinedSearch {false}
|
||||||
, mBlockAccept {false}
|
, mBlockAccept {false}
|
||||||
|
@ -176,7 +177,7 @@ GuiScraperSearch::~GuiScraperSearch()
|
||||||
|
|
||||||
void GuiScraperSearch::onSizeChanged()
|
void GuiScraperSearch::onSizeChanged()
|
||||||
{
|
{
|
||||||
mGrid.setSize(mSize);
|
mGrid.setSize(glm::vec2 {mSize.x, (mResultList->getRowHeight() * mRowCount) + 0.0f});
|
||||||
|
|
||||||
if (mSize.x == 0 || mSize.y == 0)
|
if (mSize.x == 0 || mSize.y == 0)
|
||||||
return;
|
return;
|
||||||
|
@ -652,7 +653,10 @@ void GuiScraperSearch::render(const glm::mat4& parentTrans)
|
||||||
glm::mat4 trans {parentTrans * getTransform()};
|
glm::mat4 trans {parentTrans * getTransform()};
|
||||||
|
|
||||||
renderChildren(trans);
|
renderChildren(trans);
|
||||||
mRenderer->drawRect(0.0f, 0.0f, mSize.x, mSize.y, mMenuColorPanelDimmed, mMenuColorPanelDimmed);
|
mRenderer->drawRect(0.0f, 0.0f, mSize.x,
|
||||||
|
(mResultList->getRowHeight() * mRowCount) +
|
||||||
|
mRenderer->getScreenHeightModifier(),
|
||||||
|
mMenuColorPanelDimmed, mMenuColorPanelDimmed);
|
||||||
|
|
||||||
// Slight adjustment upwards so the busy grid is not rendered precisely at the text edge.
|
// Slight adjustment upwards so the busy grid is not rendered precisely at the text edge.
|
||||||
trans = glm::translate(
|
trans = glm::translate(
|
||||||
|
|
|
@ -42,7 +42,7 @@ public:
|
||||||
NEVER_AUTO_ACCEPT // Manual mode.
|
NEVER_AUTO_ACCEPT // Manual mode.
|
||||||
};
|
};
|
||||||
|
|
||||||
GuiScraperSearch(SearchType searchType, unsigned int scrapeCount = 1);
|
GuiScraperSearch(SearchType searchType, unsigned int scrapeCount, int rowCount);
|
||||||
~GuiScraperSearch();
|
~GuiScraperSearch();
|
||||||
|
|
||||||
void search(ScraperSearchParams& params);
|
void search(ScraperSearchParams& params);
|
||||||
|
@ -164,6 +164,7 @@ private:
|
||||||
std::function<void()> mSkipCallback;
|
std::function<void()> mSkipCallback;
|
||||||
std::function<void()> mCancelCallback;
|
std::function<void()> mCancelCallback;
|
||||||
std::function<void()> mRefineCallback;
|
std::function<void()> mRefineCallback;
|
||||||
|
int mRowCount;
|
||||||
unsigned int mScrapeCount;
|
unsigned int mScrapeCount;
|
||||||
bool mRefinedSearch;
|
bool mRefinedSearch;
|
||||||
bool mBlockAccept;
|
bool mBlockAccept;
|
||||||
|
|
|
@ -60,7 +60,7 @@ GuiScraperSingle::GuiScraperSingle(ScraperSearchParams& params,
|
||||||
// Row 3 is a spacer.
|
// Row 3 is a spacer.
|
||||||
|
|
||||||
// GuiScraperSearch.
|
// GuiScraperSearch.
|
||||||
mSearch = std::make_shared<GuiScraperSearch>(GuiScraperSearch::NEVER_AUTO_ACCEPT, 1);
|
mSearch = std::make_shared<GuiScraperSearch>(GuiScraperSearch::NEVER_AUTO_ACCEPT, 1, 8);
|
||||||
mGrid.setEntry(mSearch, glm::ivec2 {0, 4}, true, true, glm::ivec2 {2, 1});
|
mGrid.setEntry(mSearch, glm::ivec2 {0, 4}, true, true, glm::ivec2 {2, 1});
|
||||||
|
|
||||||
mResultList = mSearch->getResultList();
|
mResultList = mSearch->getResultList();
|
||||||
|
|
|
@ -131,11 +131,9 @@ GuiThemeDownloader::GuiThemeDownloader(std::function<void()> updateCallback)
|
||||||
// Limit the width of the GUI on ultrawide monitors. The 1.778 aspect ratio value is
|
// Limit the width of the GUI on ultrawide monitors. The 1.778 aspect ratio value is
|
||||||
// the 16:9 reference.
|
// the 16:9 reference.
|
||||||
const float aspectValue {1.778f / Renderer::getScreenAspectRatio()};
|
const float aspectValue {1.778f / Renderer::getScreenAspectRatio()};
|
||||||
const float width {glm::clamp(0.95f * aspectValue, 0.65f, 0.98f) * mRenderer->getScreenWidth()};
|
const float width {glm::clamp(0.95f * aspectValue, 0.45f, 0.98f) * mRenderer->getScreenWidth()};
|
||||||
setSize(width,
|
setSize(width,
|
||||||
mTitle->getSize().y +
|
mTitle->getSize().y + (mList->getRowHeight() * 9.0f) + mButtons->getSize().y * 1.1f);
|
||||||
(FONT_SIZE_MEDIUM * 1.5f * (mRenderer->getIsVerticalOrientation() ? 10.0f : 9.0f)) +
|
|
||||||
mButtons->getSize().y);
|
|
||||||
|
|
||||||
setPosition((mRenderer->getScreenWidth() - mSize.x) / 2.0f,
|
setPosition((mRenderer->getScreenWidth() - mSize.x) / 2.0f,
|
||||||
(mRenderer->getScreenHeight() - mSize.y) / 2.0f);
|
(mRenderer->getScreenHeight() - mSize.y) / 2.0f);
|
||||||
|
@ -821,8 +819,7 @@ void GuiThemeDownloader::populateGUI()
|
||||||
}
|
}
|
||||||
|
|
||||||
mVariantsLabel->setText("VARIANTS:");
|
mVariantsLabel->setText("VARIANTS:");
|
||||||
mColorSchemesLabel->setText(mRenderer->getIsVerticalOrientation() ? "COL. SCHEMES:" :
|
mColorSchemesLabel->setText("COLOR SCHEMES:");
|
||||||
"COLOR SCHEMES:");
|
|
||||||
mAspectRatiosLabel->setText("ASPECT RATIOS:");
|
mAspectRatiosLabel->setText("ASPECT RATIOS:");
|
||||||
|
|
||||||
updateInfoPane();
|
updateInfoPane();
|
||||||
|
@ -1069,22 +1066,20 @@ void GuiThemeDownloader::onSizeChanged()
|
||||||
4.0f);
|
4.0f);
|
||||||
mGrid.setRowHeightPerc(1, (mTitle->getFont()->getLetterHeight() + screenSize * 0.2f) / mSize.y /
|
mGrid.setRowHeightPerc(1, (mTitle->getFont()->getLetterHeight() + screenSize * 0.2f) / mSize.y /
|
||||||
4.0f);
|
4.0f);
|
||||||
mGrid.setRowHeightPerc(3, mButtons->getSize().y / mSize.y);
|
mGrid.setRowHeightPerc(2, (mList->getRowHeight() * 9.0f) / mSize.y);
|
||||||
|
|
||||||
mCenterGrid->setRowHeightPerc(
|
mCenterGrid->setRowHeightPerc(
|
||||||
0, (mVariantsLabel->getFont()->getLetterHeight() + screenSize * 0.08f) / mSize.y / 2.0f);
|
0, (mVariantsLabel->getFont()->getLetterHeight() + screenSize * 0.115f) / mSize.y / 2.0f);
|
||||||
mCenterGrid->setRowHeightPerc(
|
mCenterGrid->setRowHeightPerc(
|
||||||
1,
|
1,
|
||||||
(mColorSchemesLabel->getFont()->getLetterHeight() + screenSize * 0.06f) / mSize.y / 2.0f);
|
(mColorSchemesLabel->getFont()->getLetterHeight() + screenSize * 0.09f) / mSize.y / 2.0f);
|
||||||
mCenterGrid->setRowHeightPerc(
|
mCenterGrid->setRowHeightPerc(
|
||||||
2, (mDownloadStatus->getFont()->getLetterHeight() + screenSize * 0.08f) / mSize.y / 2.0f);
|
2, (mDownloadStatus->getFont()->getLetterHeight() + screenSize * 0.115f) / mSize.y / 2.0f);
|
||||||
mCenterGrid->setRowHeightPerc(3, 0.5f);
|
mCenterGrid->setRowHeightPerc(3, 0.7f);
|
||||||
mCenterGrid->setRowHeightPerc(4, (mAuthor->getFont()->getLetterHeight() + screenSize * 0.06f) /
|
|
||||||
mSize.y / 2.0f);
|
|
||||||
|
|
||||||
mGrid.setColWidthPerc(1, 0.04f);
|
mGrid.setColWidthPerc(1, 0.04f);
|
||||||
mCenterGrid->setColWidthPerc(0, 0.01f);
|
mCenterGrid->setColWidthPerc(0, 0.01f);
|
||||||
mCenterGrid->setColWidthPerc(1, 0.18f);
|
mCenterGrid->setColWidthPerc(1, (mRenderer->getScreenAspectRatio() < 1.6f ? 0.21f : 0.18f));
|
||||||
mCenterGrid->setColWidthPerc(2, 0.05f);
|
mCenterGrid->setColWidthPerc(2, 0.05f);
|
||||||
mCenterGrid->setColWidthPerc(3, 0.18f);
|
mCenterGrid->setColWidthPerc(3, 0.18f);
|
||||||
mCenterGrid->setColWidthPerc(4, 0.04f);
|
mCenterGrid->setColWidthPerc(4, 0.04f);
|
||||||
|
@ -1092,7 +1087,9 @@ void GuiThemeDownloader::onSizeChanged()
|
||||||
mCenterGrid->setColWidthPerc(7, 0.04f);
|
mCenterGrid->setColWidthPerc(7, 0.04f);
|
||||||
|
|
||||||
mGrid.setSize(mSize);
|
mGrid.setSize(mSize);
|
||||||
mCenterGrid->setSize(glm::vec2 {mSize.x, mSize.y});
|
|
||||||
|
mCenterGrid->setSize(glm::vec2 {std::round(mSize.x), (mList->getRowHeight() * 9.0f) +
|
||||||
|
mRenderer->getScreenHeightModifier()});
|
||||||
mCenterGrid->setPosition(glm::vec3 {0.0f, mGrid.getRowHeight(0) + mGrid.getRowHeight(1), 0.0f});
|
mCenterGrid->setPosition(glm::vec3 {0.0f, mGrid.getRowHeight(0) + mGrid.getRowHeight(1), 0.0f});
|
||||||
mBackground.fitTo(mSize);
|
mBackground.fitTo(mSize);
|
||||||
mScreenshot->setMaxSize(mCenterGrid->getColWidth(1) + mCenterGrid->getColWidth(2) +
|
mScreenshot->setMaxSize(mCenterGrid->getColWidth(1) + mCenterGrid->getColWidth(2) +
|
||||||
|
@ -1103,9 +1100,7 @@ void GuiThemeDownloader::onSizeChanged()
|
||||||
mGrayRectangleCoords.emplace_back(0.0f);
|
mGrayRectangleCoords.emplace_back(0.0f);
|
||||||
mGrayRectangleCoords.emplace_back(mCenterGrid->getPosition().y);
|
mGrayRectangleCoords.emplace_back(mCenterGrid->getPosition().y);
|
||||||
mGrayRectangleCoords.emplace_back(mSize.x);
|
mGrayRectangleCoords.emplace_back(mSize.x);
|
||||||
mGrayRectangleCoords.emplace_back(mCenterGrid->getRowHeight(0) + mCenterGrid->getRowHeight(1) +
|
mGrayRectangleCoords.emplace_back(mList->getRowHeight() * 9.0f);
|
||||||
mCenterGrid->getRowHeight(2) + mCenterGrid->getRowHeight(3) +
|
|
||||||
mCenterGrid->getRowHeight(4));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GuiThemeDownloader::input(InputConfig* config, Input input)
|
bool GuiThemeDownloader::input(InputConfig* config, Input input)
|
||||||
|
|
Loading…
Reference in a new issue