From be621542a7330c43c6d586286c4ef7411f83b6ea Mon Sep 17 00:00:00 2001 From: Ira Rice Date: Fri, 21 Nov 2008 03:38:52 +0000 Subject: Added the setup button to show when the client is loaded, since all of the settings in it can be changed on client startup and aren't game specific. --- src/main.cpp | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp index bebf4591..b1bfa4c1 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -59,6 +59,7 @@ #include "gui/ok_dialog.h" #include "gui/progressbar.h" #include "gui/register.h" +#include "gui/setup.h" #include "gui/textfield.h" #include "gui/updatewindow.h" @@ -94,6 +95,16 @@ #include #endif +namespace { + struct SetupListener : public gcn::ActionListener + { + /** + * Called when receiving actions from widget. + */ + void action(const gcn::ActionEvent &event); + } listener; +} + // Account infos char n_server, n_character; @@ -120,6 +131,8 @@ LockedArray charInfo(MAX_SLOT + 1); Colour *textColour; +extern Window *setupWindow; + // This anonymous namespace hides whatever is inside from other modules. namespace { @@ -417,6 +430,7 @@ void exit_engine() delete gui; delete graphics; + delete setupWindow; // Shutdown libxml xmlCleanupParser(); @@ -699,6 +713,7 @@ int main(int argc, char *argv[]) Game *game = NULL; Window *currentDialog = NULL; Image *login_wallpaper = NULL; + setupWindow = new Setup(); gcn::Container *top = static_cast(gui->getTop()); #ifdef PACKAGE_VERSION @@ -711,6 +726,9 @@ int main(int argc, char *argv[]) top->add(progressLabel, 15 + progressBar->getWidth(), progressBar->getY() + 4); progressBar->setVisible(false); + gcn::Button *setup = new Button("Setup", "Setup", &listener); + setup->setPosition(top->getWidth() - setup->getWidth() - 3, 3); + top->add(setup); sound.playMusic("Magick - Real.ogg"); @@ -1018,3 +1036,22 @@ int main(int argc, char *argv[]) PHYSFS_deinit(); return 0; } + +void SetupListener::action(const gcn::ActionEvent &event) +{ + Window *window = NULL; + + if (event.getId() == "Setup") + { + window = setupWindow; + } + + if (window) + { + window->setVisible(!window->isVisible()); + if (window->isVisible()) + { + window->requestMoveToTop(); + } + } +} -- cgit v1.2.3-60-g2f50