[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