mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-13 15:40:57 +00:00
GUI: Common reflowLayout() for LauncherDialog
This commit is contained in:
parent
77003872f7
commit
ed4807c116
@ -159,7 +159,8 @@ struct LauncherEntryComparator {
|
||||
#pragma mark -
|
||||
|
||||
LauncherDialog::LauncherDialog(const Common::String &dialogName)
|
||||
: Dialog(dialogName), _title(dialogName), _browser(nullptr), _loadDialog(nullptr)
|
||||
: Dialog(dialogName), _title(dialogName), _browser(nullptr),
|
||||
_loadDialog(nullptr), _searchClearButton(nullptr), _searchDesc(nullptr)
|
||||
#ifndef DISABLE_FANCY_THEMES
|
||||
, _logo(nullptr), _searchPic(nullptr)
|
||||
#endif // !DISABLE_FANCY_THEMES
|
||||
@ -278,6 +279,68 @@ void LauncherDialog::close() {
|
||||
}
|
||||
|
||||
void LauncherDialog::reflowLayout() {
|
||||
#ifndef DISABLE_FANCY_THEMES
|
||||
if (g_gui.xmlEval()->getVar("Globals.ShowLauncherLogo") == 1 && g_gui.theme()->supportsImages()) {
|
||||
StaticTextWidget *ver = (StaticTextWidget *)findWidget(String(_title + ".Version").c_str());
|
||||
if (ver) {
|
||||
ver->setAlign(g_gui.xmlEval()->getWidgetTextHAlign(_title + ".Version"));
|
||||
ver->setLabel(Common::U32String(gScummVMVersionDate));
|
||||
}
|
||||
|
||||
if (!_logo)
|
||||
_logo = new GraphicsWidget(this, _title + ".Logo");
|
||||
_logo->useThemeTransparency(true);
|
||||
_logo->setGfxFromTheme(ThemeEngine::kImageLogo);
|
||||
} else {
|
||||
StaticTextWidget *ver = (StaticTextWidget *)findWidget(String(_title + ".Version").c_str());
|
||||
if (ver) {
|
||||
ver->setAlign(g_gui.xmlEval()->getWidgetTextHAlign(_title + ".Version"));
|
||||
ver->setLabel(Common::U32String(gScummVMFullVersion));
|
||||
}
|
||||
|
||||
if (_logo) {
|
||||
removeWidget(_logo);
|
||||
_logo->setNext(nullptr);
|
||||
delete _logo;
|
||||
_logo = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
if (g_gui.xmlEval()->getVar("Globals.ShowSearchPic") == 1 && g_gui.theme()->supportsImages()) {
|
||||
if (!_searchPic)
|
||||
_searchPic = new GraphicsWidget(this, _title + ".SearchPic");
|
||||
_searchPic->setGfxFromTheme(ThemeEngine::kImageSearch);
|
||||
|
||||
if (_searchDesc) {
|
||||
removeWidget(_searchDesc);
|
||||
_searchDesc->setNext(nullptr);
|
||||
delete _searchDesc;
|
||||
_searchDesc = nullptr;
|
||||
}
|
||||
} else {
|
||||
if (!_searchDesc)
|
||||
_searchDesc = new StaticTextWidget(this, _title + ".SearchDesc", _("Search:"));
|
||||
|
||||
if (_searchPic) {
|
||||
removeWidget(_searchPic);
|
||||
_searchPic->setNext(nullptr);
|
||||
delete _searchPic;
|
||||
_searchPic = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
removeWidget(_searchClearButton);
|
||||
_searchClearButton->setNext(nullptr);
|
||||
delete _searchClearButton;
|
||||
_searchClearButton = addClearButton(this, _title + ".SearchClearButton", kSearchClearCmd);
|
||||
#endif
|
||||
#ifndef DISABLE_LAUNCHERDISPLAY_GRID
|
||||
addChooserButtons();
|
||||
#endif
|
||||
|
||||
_w = g_system->getOverlayWidth();
|
||||
_h = g_system->getOverlayHeight();
|
||||
|
||||
Dialog::reflowLayout();
|
||||
}
|
||||
|
||||
@ -302,8 +365,8 @@ void LauncherDialog::addChooserButtons() {
|
||||
delete _gridButton;
|
||||
}
|
||||
|
||||
_listButton = createSwitchButton(_title+".ListSwitch", Common::U32String("L"), _("List view"), ThemeEngine::kImageList, kListSwitchCmd);
|
||||
_gridButton = createSwitchButton(_title+".GridSwitch", Common::U32String("G"), _("Grid view"), ThemeEngine::kImageGrid, kGridSwitchCmd);
|
||||
_listButton = createSwitchButton(_title + ".ListSwitch", Common::U32String("L"), _("List view"), ThemeEngine::kImageList, kListSwitchCmd);
|
||||
_gridButton = createSwitchButton(_title + ".GridSwitch", Common::U32String("G"), _("Grid view"), ThemeEngine::kImageGrid, kGridSwitchCmd);
|
||||
}
|
||||
|
||||
ButtonWidget *LauncherDialog::createSwitchButton(const Common::String &name, const Common::U32String &desc, const Common::U32String &tooltip, const char *image, uint32 cmd) {
|
||||
@ -629,9 +692,8 @@ bool LauncherDialog::checkModifier(int checkedModifier) {
|
||||
|
||||
LauncherSimple::LauncherSimple(const U32String &title)
|
||||
: LauncherDialog(title),
|
||||
_list (nullptr), _searchWidget(nullptr), _addButton(nullptr),
|
||||
_startButton(nullptr), _loadButton(nullptr), _editButton(nullptr),
|
||||
_removeButton(nullptr), _searchDesc(nullptr), _searchClearButton(nullptr) {
|
||||
_list (nullptr), _addButton(nullptr), _startButton(nullptr),
|
||||
_loadButton(nullptr), _editButton(nullptr), _removeButton(nullptr) {
|
||||
|
||||
build();
|
||||
}
|
||||
@ -931,80 +993,13 @@ void LauncherSimple::updateButtons() {
|
||||
}
|
||||
}
|
||||
|
||||
void LauncherSimple::reflowLayout() {
|
||||
#ifndef DISABLE_FANCY_THEMES
|
||||
if (g_gui.xmlEval()->getVar("Globals.ShowLauncherLogo") == 1 && g_gui.theme()->supportsImages()) {
|
||||
StaticTextWidget *ver = (StaticTextWidget *)findWidget("Launcher.Version");
|
||||
if (ver) {
|
||||
ver->setAlign(g_gui.xmlEval()->getWidgetTextHAlign("Launcher.Version"));
|
||||
ver->setLabel(Common::U32String(gScummVMVersionDate));
|
||||
}
|
||||
|
||||
if (!_logo)
|
||||
_logo = new GraphicsWidget(this, "Launcher.Logo");
|
||||
_logo->useThemeTransparency(true);
|
||||
_logo->setGfxFromTheme(ThemeEngine::kImageLogo);
|
||||
} else {
|
||||
StaticTextWidget *ver = (StaticTextWidget *)findWidget("Launcher.Version");
|
||||
if (ver) {
|
||||
ver->setAlign(g_gui.xmlEval()->getWidgetTextHAlign("Launcher.Version"));
|
||||
ver->setLabel(Common::U32String(gScummVMFullVersion));
|
||||
}
|
||||
|
||||
if (_logo) {
|
||||
removeWidget(_logo);
|
||||
_logo->setNext(nullptr);
|
||||
delete _logo;
|
||||
_logo = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
if (g_gui.xmlEval()->getVar("Globals.ShowSearchPic") == 1 && g_gui.theme()->supportsImages()) {
|
||||
if (!_searchPic)
|
||||
_searchPic = new GraphicsWidget(this, "Launcher.SearchPic");
|
||||
_searchPic->setGfxFromTheme(ThemeEngine::kImageSearch);
|
||||
|
||||
if (_searchDesc) {
|
||||
removeWidget(_searchDesc);
|
||||
_searchDesc->setNext(nullptr);
|
||||
delete _searchDesc;
|
||||
_searchDesc = nullptr;
|
||||
}
|
||||
} else {
|
||||
if (!_searchDesc)
|
||||
_searchDesc = new StaticTextWidget(this, "Launcher.SearchDesc", _("Search:"));
|
||||
|
||||
if (_searchPic) {
|
||||
removeWidget(_searchPic);
|
||||
_searchPic->setNext(nullptr);
|
||||
delete _searchPic;
|
||||
_searchPic = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
removeWidget(_searchClearButton);
|
||||
_searchClearButton->setNext(nullptr);
|
||||
delete _searchClearButton;
|
||||
_searchClearButton = addClearButton(this, "Launcher.SearchClearButton", kSearchClearCmd);
|
||||
#endif
|
||||
#ifndef DISABLE_LAUNCHERDISPLAY_GRID
|
||||
addChooserButtons();
|
||||
#endif
|
||||
|
||||
_w = g_system->getOverlayWidth();
|
||||
_h = g_system->getOverlayHeight();
|
||||
|
||||
Dialog::reflowLayout();
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
|
||||
#ifndef DISABLE_LAUNCHERDISPLAY_GRID
|
||||
LauncherGrid::LauncherGrid(const U32String &title)
|
||||
: LauncherDialog(title),
|
||||
_grid (nullptr), _searchWidget(nullptr), _addButton(nullptr),
|
||||
_startButton(nullptr), _loadButton(nullptr), _editButton(nullptr),
|
||||
_removeButton(nullptr), _searchDesc(nullptr), _searchClearButton(nullptr) {
|
||||
_grid (nullptr), _addButton(nullptr), _startButton(nullptr),
|
||||
_loadButton(nullptr), _editButton(nullptr), _removeButton(nullptr) {
|
||||
|
||||
build();
|
||||
}
|
||||
@ -1085,71 +1080,6 @@ void LauncherGrid::handleCommand(CommandSender *sender, uint32 cmd, uint32 data)
|
||||
}
|
||||
}
|
||||
|
||||
void LauncherGrid::reflowLayout() {
|
||||
#ifndef DISABLE_FANCY_THEMES
|
||||
if (g_gui.xmlEval()->getVar("Globals.ShowLauncherLogo") == 1 && g_gui.theme()->supportsImages()) {
|
||||
StaticTextWidget *ver = (StaticTextWidget *)findWidget("LauncherGrid.Version");
|
||||
if (ver) {
|
||||
ver->setAlign(g_gui.xmlEval()->getWidgetTextHAlign("LauncherGrid.Version"));
|
||||
ver->setLabel(Common::U32String(gScummVMVersionDate));
|
||||
}
|
||||
|
||||
if (!_logo)
|
||||
_logo = new GraphicsWidget(this, "LauncherGrid.Logo");
|
||||
_logo->useThemeTransparency(true);
|
||||
_logo->setGfxFromTheme(ThemeEngine::kImageLogo);
|
||||
} else {
|
||||
StaticTextWidget *ver = (StaticTextWidget *)findWidget("LauncherGrid.Version");
|
||||
if (ver) {
|
||||
ver->setAlign(g_gui.xmlEval()->getWidgetTextHAlign("LauncherGrid.Version"));
|
||||
ver->setLabel(Common::U32String(gScummVMFullVersion));
|
||||
}
|
||||
|
||||
if (_logo) {
|
||||
removeWidget(_logo);
|
||||
_logo->setNext(nullptr);
|
||||
delete _logo;
|
||||
_logo = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
if (g_gui.xmlEval()->getVar("Globals.ShowSearchPic") == 1 && g_gui.theme()->supportsImages()) {
|
||||
if (!_searchPic)
|
||||
_searchPic = new GraphicsWidget(this, "LauncherGrid.SearchPic");
|
||||
_searchPic->setGfxFromTheme(ThemeEngine::kImageSearch);
|
||||
|
||||
if (_searchDesc) {
|
||||
removeWidget(_searchDesc);
|
||||
_searchDesc->setNext(nullptr);
|
||||
delete _searchDesc;
|
||||
_searchDesc = nullptr;
|
||||
}
|
||||
} else {
|
||||
if (!_searchDesc)
|
||||
_searchDesc = new StaticTextWidget(this, "LauncherGrid.SearchDesc", _("Search:"));
|
||||
|
||||
if (_searchPic) {
|
||||
removeWidget(_searchPic);
|
||||
_searchPic->setNext(nullptr);
|
||||
delete _searchPic;
|
||||
_searchPic = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
removeWidget(_searchClearButton);
|
||||
_searchClearButton->setNext(nullptr);
|
||||
delete _searchClearButton;
|
||||
_searchClearButton = addClearButton(this, "LauncherGrid.SearchClearButton", kSearchClearCmd);
|
||||
#endif
|
||||
|
||||
addChooserButtons();
|
||||
|
||||
_w = g_system->getOverlayWidth();
|
||||
_h = g_system->getOverlayHeight();
|
||||
|
||||
Dialog::reflowLayout();
|
||||
}
|
||||
|
||||
void LauncherGrid::updateListing() {
|
||||
// Retrieve a list of all games defined in the config file
|
||||
_domains.clear();
|
||||
|
@ -94,7 +94,10 @@ protected:
|
||||
StringArray _domains;
|
||||
BrowserDialog *_browser;
|
||||
SaveLoadChooser *_loadDialog;
|
||||
|
||||
StaticTextWidget *_searchDesc;
|
||||
ButtonWidget *_searchClearButton;
|
||||
String _search;
|
||||
EditTextWidget *_searchWidget;
|
||||
|
||||
#ifndef DISABLE_LAUNCHERDISPLAY_GRID
|
||||
ButtonWidget *_listButton;
|
||||
@ -172,8 +175,6 @@ public:
|
||||
void handleCommand(CommandSender *sender, uint32 cmd, uint32 data) override;
|
||||
void handleKeyDown(Common::KeyState state) override;
|
||||
|
||||
void reflowLayout() override;
|
||||
|
||||
#ifndef DISABLE_LAUNCHERDISPLAY_GRID
|
||||
LauncherDisplayType getType() const override { return kLauncherDisplayList; }
|
||||
#endif // !DISABLE_LAUNCHERDISPLAY_GRID
|
||||
@ -186,15 +187,11 @@ protected:
|
||||
void build() override;
|
||||
private:
|
||||
ListWidget *_list;
|
||||
EditTextWidget *_searchWidget;
|
||||
ButtonWidget *_addButton;
|
||||
Widget *_startButton;
|
||||
ButtonWidget *_loadButton;
|
||||
Widget *_editButton;
|
||||
Widget *_removeButton;
|
||||
StaticTextWidget *_searchDesc;
|
||||
ButtonWidget *_searchClearButton;
|
||||
String _search;
|
||||
};
|
||||
|
||||
#ifndef DISABLE_LAUNCHERDISPLAY_GRID
|
||||
@ -210,8 +207,6 @@ public:
|
||||
void handleCommand(CommandSender *sender, uint32 cmd, uint32 data) override;
|
||||
void handleKeyDown(Common::KeyState state) override;
|
||||
|
||||
void reflowLayout() override;
|
||||
|
||||
LauncherDisplayType getType() const override { return kLauncherDisplayGrid; }
|
||||
|
||||
protected:
|
||||
@ -222,15 +217,11 @@ protected:
|
||||
void build() override;
|
||||
private:
|
||||
GridWidget *_grid;
|
||||
EditTextWidget *_searchWidget;
|
||||
ButtonWidget *_addButton;
|
||||
Widget *_startButton;
|
||||
ButtonWidget *_loadButton;
|
||||
Widget *_editButton;
|
||||
Widget *_removeButton;
|
||||
StaticTextWidget *_searchDesc;
|
||||
ButtonWidget *_searchClearButton;
|
||||
String _search;
|
||||
};
|
||||
#endif // !DISABLE_LAUNCHERDISPLAY_GRID
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user