diff options
-rw-r--r-- | src/gui/setup.cpp | 7 | ||||
-rw-r--r-- | src/gui/widgets/desktop.cpp | 8 | ||||
-rw-r--r-- | src/gui/widgets/desktop.h | 6 | ||||
-rw-r--r-- | src/main.cpp | 50 | ||||
-rw-r--r-- | src/main.h | 6 |
5 files changed, 46 insertions, 31 deletions
diff --git a/src/gui/setup.cpp b/src/gui/setup.cpp index 50068c6e..b2474ead 100644 --- a/src/gui/setup.cpp +++ b/src/gui/setup.cpp @@ -21,6 +21,8 @@ #include "setup.h" +#include "main.h" + #include "gui/setup_audio.h" #include "gui/setup_colors.h" #include "gui/setup_joystick.h" @@ -29,6 +31,7 @@ #include "gui/setup_video.h" #include "gui/widgets/button.h" +#include "gui/widgets/label.h" #include "gui/widgets/tabbedarea.h" #include "utils/dtor.h" @@ -101,6 +104,10 @@ Setup::Setup(): add(panel); + Label *version = new Label(Main::version); + version->setPosition(5, height - version->getHeight() - 5); + add(version); + center(); setInGame(false); diff --git a/src/gui/widgets/desktop.cpp b/src/gui/widgets/desktop.cpp index fc66ed93..4b806095 100644 --- a/src/gui/widgets/desktop.cpp +++ b/src/gui/widgets/desktop.cpp @@ -22,6 +22,7 @@ #include "gui/widgets/desktop.h" #include "gui/palette.h" +#include "gui/widgets/label.h" #include "resources/image.h" #include "resources/resourcemanager.h" @@ -29,6 +30,7 @@ #include "graphics.h" #include "log.h" +#include "main.h" Desktop::Desktop() : mWallpaper(0) @@ -36,12 +38,16 @@ Desktop::Desktop() addWidgetListener(this); Wallpaper::loadWallpapers(); + + versionLabel = new Label(Main::version); + add(versionLabel, 25, 2); } Desktop::~Desktop() { if (mWallpaper) mWallpaper->decRef(); + delete versionLabel; } void Desktop::reloadWallpaper() @@ -73,6 +79,8 @@ void Desktop::draw(gcn::Graphics *graphics) (getWidth() - mWallpaper->getWidth()) / 2, (getHeight() - mWallpaper->getHeight()) / 2); } + + drawChildren(graphics); } void Desktop::setBestFittingWallpaper() diff --git a/src/gui/widgets/desktop.h b/src/gui/widgets/desktop.h index ed68145a..7eabde54 100644 --- a/src/gui/widgets/desktop.h +++ b/src/gui/widgets/desktop.h @@ -22,10 +22,11 @@ #ifndef DESKTOP_H #define DESKTOP_H -#include <guichan/widget.hpp> +#include <guichan/widgets/container.hpp> #include <guichan/widgetlistener.hpp> class Image; +class Label; /** * Desktop widget, for drawing a background image and color. @@ -38,7 +39,7 @@ class Image; * * \ingroup GUI */ -class Desktop : public gcn::Widget, gcn::WidgetListener +class Desktop : public gcn::Container, gcn::WidgetListener { public: Desktop(); @@ -57,6 +58,7 @@ class Desktop : public gcn::Widget, gcn::WidgetListener void setBestFittingWallpaper(); Image *mWallpaper; + Label *versionLabel; }; #endif // DESKTOP_H diff --git a/src/main.cpp b/src/main.cpp index d10403b5..a42e8b82 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -164,6 +164,20 @@ Graphics *graphics; unsigned char state; std::string errorMessage; +namespace Main { +#ifdef PACKAGE_VERSION +#ifdef TMWSERV_SUPPORT +const std::string version = strprintf("v%s (tmwserv)", PACKAGE_VERSION); +#else +const std::string version = strprintf("v%s (eAthena)", PACKAGE_VERSION); +#endif +#else +const std::string version = _("Unknown Version"); +#endif +} + +Desktop *desktop; + Sound sound; Music *bgm; @@ -580,10 +594,10 @@ static void printHelp() static void printVersion() { #ifdef PACKAGE_VERSION - std::cout << _("The Mana World version ") << PACKAGE_VERSION << std::endl; + std::cout << _("The Mana World version ") << Main::version << std::endl; #else - std::cout << _("The Mana World version ") << - _("(local build?, PACKAGE_VERSION is not defined)") << std::endl; + std::cout << _("The Mana World version ") << Main::version << + _("(local build?)") << std::endl; #endif } @@ -896,17 +910,7 @@ int main(int argc, char *argv[]) logger->setLogFile(homeDir + std::string("/tmw.log")); // Log the tmw version - logger->log("The Mana World %s (%s)", -#ifdef PACKAGE_VERSION - "v" PACKAGE_VERSION, -#else - "- version not defined", -#endif -#ifdef TMWSERV_SUPPORT - "tmwserv"); -#else - "eAthena"); -#endif + logger->log("The Mana World %s", Main::version.c_str()); initConfiguration(options); logger->setLogToStandardOut(config.getValue("logToStandardOut", 0)); @@ -924,16 +928,8 @@ int main(int argc, char *argv[]) setupWindow = new Setup; gcn::Container *top = static_cast<gcn::Container*>(gui->getTop()); - Desktop *desktop = new Desktop; + desktop = new Desktop; top->add(desktop); -#ifdef PACKAGE_VERSION -#ifdef TMWSERV_SUPPORT - gcn::Label *versionLabel = new Label(strprintf("%s (tmwserv)", PACKAGE_VERSION)); -#else - gcn::Label *versionLabel = new Label(strprintf("%s (eAthena)", PACKAGE_VERSION)); -#endif - top->add(versionLabel, 25, 2); -#endif ProgressBar *progressBar = new ProgressBar(0.0f, 100, 20, 168, 116, 31); gcn::Label *progressLabel = new Label; top->add(progressBar, 5, top->getHeight() - 5 - progressBar->getHeight()); @@ -1477,10 +1473,6 @@ int main(int argc, char *argv[]) case STATE_GAME: sound.fadeOutMusic(1000); -#ifdef PACKAGE_VERSION - delete versionLabel; - versionLabel = NULL; -#endif delete progressBar; delete progressLabel; delete setupButton; @@ -1571,8 +1563,8 @@ int main(int argc, char *argv[]) } delete guiPalette; - - //delete Net::getGeneralHandler(); + top->remove(desktop); + delete desktop; logger->log("Quitting"); exitEngine(); @@ -128,4 +128,10 @@ extern char n_server, n_character; extern unsigned char state; extern std::string errorMessage; +namespace Main { + +extern const std::string version; + +} + #endif |