summaryrefslogtreecommitdiff
path: root/src/client.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2011-09-15 00:50:47 +0300
committerAndrei Karas <akaras@inbox.ru>2011-09-15 00:50:47 +0300
commit255b1c29f47ef3b1e7a9b058c56ef72bfa10c5e3 (patch)
tree1849456d254f60d20b60e54e51df4f354106aa1a /src/client.cpp
parentb6dae23ca33ee0032260080819a59ec6363f72f6 (diff)
downloadmanaplus-255b1c29f47ef3b1e7a9b058c56ef72bfa10c5e3.tar.gz
manaplus-255b1c29f47ef3b1e7a9b058c56ef72bfa10c5e3.tar.bz2
manaplus-255b1c29f47ef3b1e7a9b058c56ef72bfa10c5e3.tar.xz
manaplus-255b1c29f47ef3b1e7a9b058c56ef72bfa10c5e3.zip
Add buttons Themes, Video, Perfomance in select server screen.
Diffstat (limited to 'src/client.cpp')
-rw-r--r--src/client.cpp64
1 files changed, 56 insertions, 8 deletions
diff --git a/src/client.cpp b/src/client.cpp
index 47d0e9a21..608bb5c8b 100644
--- a/src/client.cpp
+++ b/src/client.cpp
@@ -247,6 +247,9 @@ Client::Client(const Options &options):
mQuitDialog(0),
mDesktop(0),
mSetupButton(0),
+ mVideoButton(0),
+ mThemesButton(0),
+ mPerfomanceButton(0),
mState(STATE_CHOOSE_SERVER),
mOldState(STATE_START),
mIcon(0),
@@ -828,11 +831,28 @@ int Client::exec()
mDesktop = new Desktop;
top->add(mDesktop);
+ int x = top->getWidth();
mSetupButton = new Button(_("Setup"), "Setup", this);
- mSetupButton->setPosition(top->getWidth()
- - mSetupButton->getWidth() - 3, 3);
+ x -= mSetupButton->getWidth() + 3;
+ mSetupButton->setPosition(x, 3);
top->add(mSetupButton);
+ mPerfomanceButton = new Button(
+ _("Perfomance"), "Perfomance", this);
+ x -= mPerfomanceButton->getWidth() + 6;
+ mPerfomanceButton->setPosition(x, 3);
+ top->add(mPerfomanceButton);
+
+ mVideoButton = new Button(_("Video"), "Video", this);
+ x -= mVideoButton->getWidth() + 6;
+ mVideoButton->setPosition(x, 3);
+ top->add(mVideoButton);
+
+ mThemesButton = new Button(_("Themes"), "Themes", this);
+ x -= mThemesButton->getWidth() + 6;
+ mThemesButton->setPosition(x, 3);
+ top->add(mThemesButton);
+
int screenWidth = config.getIntValue("screenwidth");
int screenHeight = config.getIntValue("screenheight");
@@ -1138,6 +1158,12 @@ int Client::exec()
delete mSetupButton;
mSetupButton = 0;
+ delete mVideoButton;
+ mVideoButton = 0;
+ delete mThemesButton;
+ mThemesButton = 0;
+ delete mPerfomanceButton;
+ mPerfomanceButton = 0;
delete mDesktop;
mDesktop = 0;
@@ -1329,16 +1355,38 @@ void Client::optionChanged(const std::string &name)
void Client::action(const gcn::ActionEvent &event)
{
- Window *window = 0;
+ bool show(false);
+ std::string tab = "";
if (event.getId() == "Setup")
- window = setupWindow;
+ {
+ show = true;
+ }
+ else if (event.getId() == "Video")
+ {
+ show = true;
+ tab = "Video";
+ }
+ else if (event.getId() == "Themes")
+ {
+ show = true;
+ tab = "Theme";
+ }
+ else if (event.getId() == "Perfomance")
+ {
+ show = true;
+ tab = "Perfomance";
+ }
- if (window)
+ if (setupWindow)
{
- window->setVisible(!window->isVisible());
- if (window->isVisible())
- window->requestMoveToTop();
+ setupWindow->setVisible(!setupWindow->isVisible());
+ if (setupWindow->isVisible())
+ {
+ if (!tab.empty())
+ setupWindow->activateTab(tab);
+ setupWindow->requestMoveToTop();
+ }
}
}