[Scummvm-git-logs] scummvm master -> 93c98b92e9352f176f868dd9c58dd65eda23e1ba
sev-
noreply at scummvm.org
Sun Dec 10 07:47:14 UTC 2023
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
93c98b92e9 GUI: Refactored HelpDialog to let easy extension
Commit: 93c98b92e9352f176f868dd9c58dd65eda23e1ba
https://github.com/scummvm/scummvm/commit/93c98b92e9352f176f868dd9c58dd65eda23e1ba
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-12-10T08:47:00+01:00
Commit Message:
GUI: Refactored HelpDialog to let easy extension
Changed paths:
gui/helpdialog.cpp
gui/helpdialog.h
diff --git a/gui/helpdialog.cpp b/gui/helpdialog.cpp
index 9d3ca50ad84..89689dca7a7 100644
--- a/gui/helpdialog.cpp
+++ b/gui/helpdialog.cpp
@@ -32,10 +32,12 @@ namespace GUI {
HelpDialog::HelpDialog()
: Dialog("HelpDialog") {
- TabWidget *tab = new TabWidget(this, "HelpDialog.TabWidget");
+ _tab = new TabWidget(this, "HelpDialog.TabWidget");
- tab->addTab(_("General"), "HelpDialog", false);
- Common::U32String helpText1 = _(
+static const char * const helpTabs[] = {
+_s("General"),
+"",
+_s(
"## Where to get the games\n"
"\n"
"Visit [our Wiki](https://wiki.scummvm.org/index.php?title=Where_to_get_the_games) for a list of games and where to purchase them.\n"
@@ -51,38 +53,43 @@ HelpDialog::HelpDialog()
"through affiliate referral links.\n"
"\n"
"Additionally, some games that are not available on ZOOM-Platform can be found on GOG.com.\n"
- );
+),
- new RichTextWidget(tab, "HelpDialog.TabWidget", helpText1);
+0,
+ };
+ addTabs(helpTabs);
// Now add backend-specific tabs if any
const char * const *backendTabs = g_system->buildHelpDialogData();
- if (backendTabs) {
- while (*backendTabs) {
- Common::U32String tabName(_(*backendTabs++));
- const char *imagePack = nullptr;
+ if (backendTabs)
+ addTabs(backendTabs);
- if (*backendTabs && **backendTabs)
- imagePack = *backendTabs;
+ _tab->setActiveTab(0);
- backendTabs++;
+ new ButtonWidget(this, "HelpDialog.Close", Common::U32String("Close"), Common::U32String(), kCloseCmd);
+}
- Common::U32String tabText(_(*backendTabs++));
+void HelpDialog::addTabs(const char * const *tabData) {
+ while (*tabData) {
+ Common::U32String tabName(_(*tabData++));
+ const char *imagePack = nullptr;
- tab->addTab(tabName, "HelpDialog", false);
+ if (*tabData && **tabData)
+ imagePack = *tabData;
- RichTextWidget *rt = new RichTextWidget(tab, "HelpDialog.TabWidget", tabText);
+ tabData++;
- if (imagePack)
- rt->setImageArchive(imagePack);
- }
- }
+ Common::U32String tabText(_(*tabData++));
- tab->setActiveTab(0);
+ _tab->addTab(tabName, "HelpDialog", false);
- new ButtonWidget(this, "HelpDialog.Close", Common::U32String("Close"), Common::U32String(), kCloseCmd);
+ RichTextWidget *rt = new RichTextWidget(_tab, "HelpDialog.TabWidget", tabText);
+
+ if (imagePack)
+ rt->setImageArchive(imagePack);
+ }
}
void HelpDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
diff --git a/gui/helpdialog.h b/gui/helpdialog.h
index cdf0786cfd5..59ed5208ffb 100644
--- a/gui/helpdialog.h
+++ b/gui/helpdialog.h
@@ -29,7 +29,7 @@
namespace GUI {
class CommandSender;
-class StaticTextWidget;
+class TabWidget;
/**
* Multitab help dialog
@@ -39,6 +39,10 @@ public:
HelpDialog();
void handleCommand(CommandSender *sender, uint32 cmd, uint32 data) override;
+
+private:
+ void addTabs(const char * const *tabs);
+ TabWidget *_tab;
};
More information about the Scummvm-git-logs
mailing list