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

Reply via email to