Author: mordante
Date: Sun Mar 13 11:18:51 2011
New Revision: 48882
URL: http://svn.gna.org/viewcvs/wesnoth?rev=48882&view=rev
Log:
Polished taddon_description.
- Use the register_xxx functions.
- Updated comment and wiki comment.
- Minor code polishing.
Modified:
trunk/src/addon/manager.cpp
trunk/src/gui/dialogs/addon/description.cpp
trunk/src/gui/dialogs/addon/description.hpp
Modified: trunk/src/addon/manager.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/addon/manager.cpp?rev=48882&r1=48881&r2=48882&view=diff
==============================================================================
--- trunk/src/addon/manager.cpp (original)
+++ trunk/src/addon/manager.cpp Sun Mar 13 11:18:51 2011
@@ -348,8 +348,9 @@
size_t const uchoice =
static_cast<size_t>(menu_selection);
if(uchoice < infov_.size()) {
- gui2::taddon_description ddlg(infov_[uchoice]);
- ddlg.show(disp_.video());
+ gui2::taddon_description::display(
+ infov_[uchoice]
+ , disp_.video());
}
return gui::CONTINUE_DIALOG;
Modified: trunk/src/gui/dialogs/addon/description.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/gui/dialogs/addon/description.cpp?rev=48882&r1=48881&r2=48882&view=diff
==============================================================================
--- trunk/src/gui/dialogs/addon/description.cpp (original)
+++ trunk/src/gui/dialogs/addon/description.cpp Sun Mar 13 11:18:51 2011
@@ -19,7 +19,6 @@
#include "foreach.hpp"
#include "gui/widgets/settings.hpp"
-#include "gui/widgets/window.hpp"
#include "language.hpp"
namespace {
@@ -63,48 +62,48 @@
* Label for displaying the add-on package size. $
*
* description & & control & m &
- * Text label for displaying the add-on's description. $
+ * Text label for displaying the add-on's description. The control can
+ * be given a text, this text is shown when the addon has no
+ * description. If the addon has a description this field shows the
+ * description of the addon. $
*
* translations & & control & m &
- * Label for displaying a list of translations provided by the add-on.
$
+ * Label for displaying a list of translations provided by the add-on.
+ * Like the ''description'' it can also show a default text if no
+ * translations are available. $
*
* @end{table}
*/
REGISTER_DIALOG(addon_description)
-void taddon_description::pre_show(CVideo& /*video*/, twindow& window)
+taddon_description::taddon_description(const addon_info& addon)
{
- find_widget<tcontrol>(&window, "image", false).set_label(ainfo_.icon);
- find_widget<tcontrol>(&window, "title", false).set_label(ainfo_.name);
- find_widget<tcontrol>(&window, "version",
false).set_label(ainfo_.version);
- find_widget<tcontrol>(&window, "author",
false).set_label(ainfo_.author);
- find_widget<tcontrol>(&window, "size", false).set_label(ainfo_.sizestr);
-
- // Validate widget presence in either path
- tcontrol& ctl_description = find_widget<tcontrol>(&window,
"description", false);
- if(ainfo_.description.empty() == false) {
- ctl_description.set_label(ainfo_.description);
+ register_label2("image", true, addon.icon);
+ register_label2("title", true, addon.name);
+ register_label2("version", true, addon.version);
+ register_label2("author", true, addon.author);
+ register_label2("size", true, addon.sizestr);
+ if(!addon.description.empty()) {
+ register_label2("description", true, addon.description);
}
std::string languages;
- foreach(const std::string& lc, ainfo_.translations) {
+ foreach(const std::string& lc, addon.translations) {
const std::string& langlabel = langcode_to_string(lc);
- if(langlabel.empty() == false) {
- if(languages.empty() == false) {
+ if(!langlabel.empty()) {
+ if(!languages.empty()) {
languages += ", ";
}
languages += langlabel;
}
}
- // Validate widget presence in either path
- tcontrol& ctl_languages = find_widget<tcontrol>(&window,
"translations", false);
- if(languages.empty() == false) {
- ctl_languages.set_label(languages);
+ if(!languages.empty()) {
+ register_label2("translations", true, languages);
}
}
-}
+} // namespace gui2
Modified: trunk/src/gui/dialogs/addon/description.hpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/gui/dialogs/addon/description.hpp?rev=48882&r1=48881&r2=48882&view=diff
==============================================================================
--- trunk/src/gui/dialogs/addon/description.hpp (original)
+++ trunk/src/gui/dialogs/addon/description.hpp Sun Mar 13 11:18:51 2011
@@ -47,17 +47,24 @@
class taddon_description : public tdialog
{
public:
- taddon_description(const addon_info& ainfo)
- : ainfo_(ainfo) {}
+
+ /**
+ * Constructor.
+ *
+ * @param addon The information about the addon to show.
+ */
+ explicit taddon_description(const addon_info& addon);
+
+ /** The display function see @ref tdialog for more information. */
+ static void display(const addon_info& addon, CVideo& video)
+ {
+ taddon_description(addon).show(video);
+ }
+
+private:
/** Inherited from tdialog, implemented by REGISTER_DIALOG. */
virtual const std::string& window_id() const;
-
- /** Inherited from tdialog. */
- void pre_show(CVideo& video, twindow& window);
-
-private:
- addon_info ainfo_;
};
}
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits