summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
authorDavid Athay <ko2fan@gmail.com>2008-05-09 15:23:32 +0000
committerDavid Athay <ko2fan@gmail.com>2008-05-09 15:23:32 +0000
commitb57ab24cdaa596bf91604279c97fbfdeff1dc93b (patch)
treeaf0c7bb16c60cc9055b45b6929483c05de8facac /src/gui
parent96c635e12b1834493abfbe4685cfc1d6a3eaddc4 (diff)
downloadmana-client-b57ab24cdaa596bf91604279c97fbfdeff1dc93b.tar.gz
mana-client-b57ab24cdaa596bf91604279c97fbfdeff1dc93b.tar.bz2
mana-client-b57ab24cdaa596bf91604279c97fbfdeff1dc93b.tar.xz
mana-client-b57ab24cdaa596bf91604279c97fbfdeff1dc93b.zip
Changed the tabbedarea to be transparant as before. Changed setup
window and skills dialog to use the new tabbed area. Removed tabbed container as it is no longer used. Fixed a crash with the chat window.
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/chat.cpp9
-rw-r--r--src/gui/setup.cpp14
-rw-r--r--src/gui/setup_audio.cpp1
-rw-r--r--src/gui/setup_joystick.cpp2
-rw-r--r--src/gui/setup_keyboard.cpp1
-rw-r--r--src/gui/setup_video.cpp1
-rw-r--r--src/gui/skill.cpp13
-rw-r--r--src/gui/tabbedcontainer.cpp126
-rw-r--r--src/gui/tabbedcontainer.h67
-rw-r--r--src/gui/widgets/tabbedarea.cpp2
-rw-r--r--src/gui/widgets/tabbedarea.h1
11 files changed, 28 insertions, 209 deletions
diff --git a/src/gui/chat.cpp b/src/gui/chat.cpp
index 3d63491c..fec2394b 100644
--- a/src/gui/chat.cpp
+++ b/src/gui/chat.cpp
@@ -152,7 +152,7 @@ ChatWindow::chatLog(std::string line, int own, const std::string &channelName)
break;
case BY_PLAYER:
tmp.nick += ": ";
- lineColor = "##5"; // Equiv. to BrowserBox::YELLOW
+ lineColor = "##3"; // Equiv. to BrowserBox::BLUE
break;
case BY_OTHER:
tmp.nick += ": ";
@@ -506,10 +506,17 @@ ChatWindow::createNewChannelTab(const std::string &channelName)
BrowserBox *textOutput = new BrowserBox(BrowserBox::AUTO_WRAP);
textOutput->setOpaque(false);
textOutput->disableLinksAndUserColors();
+ textOutput->setMaxRow((int) config.getValue("ChatLogLength", 0));
ScrollArea *scrollArea = new ScrollArea(textOutput);
scrollArea->setPosition(scrollArea->getFrameSize(), scrollArea->getFrameSize());
scrollArea->setScrollPolicy(gcn::ScrollArea::SHOW_NEVER, gcn::ScrollArea::SHOW_ALWAYS);
scrollArea->setOpaque(false);
+ scrollArea->setWidth(getChildrenArea().width - 2 * scrollArea->getFrameSize());
+ scrollArea->setHeight(getChildrenArea().height - 2 * scrollArea->getFrameSize() -
+ mChatInput->getHeight() - 5);
+ scrollArea->logic();
+ textOutput->setWidth(scrollArea->getChildrenArea().width);
+ textOutput->setHeight(scrollArea->getChildrenArea().height);
// Add channel to the tabbed area
mChatTabs->addTab(channelName, scrollArea);
diff --git a/src/gui/setup.cpp b/src/gui/setup.cpp
index b69cb9f1..d1f8a38a 100644
--- a/src/gui/setup.cpp
+++ b/src/gui/setup.cpp
@@ -30,7 +30,8 @@
#include "setup_joystick.h"
#include "setup_video.h"
#include "setup_keyboard.h"
-#include "tabbedcontainer.h"
+
+#include "widgets/tabbedarea.h"
#include "../utils/dtor.h"
#include "../utils/gettext.h"
@@ -63,26 +64,25 @@ Setup::Setup():
add(btn);
}
- TabbedContainer *panel = new TabbedContainer();
+ TabbedArea *panel = new TabbedArea();
panel->setDimension(gcn::Rectangle(5, 5, 250, 205));
- panel->setOpaque(false);
SetupTab *tab;
tab = new Setup_Video();
- panel->addTab(tab, _("Video"));
+ panel->addTab(_("Video"), tab);
mTabs.push_back(tab);
tab = new Setup_Audio();
- panel->addTab(tab, _("Audio"));
+ panel->addTab(_("Audio"), tab);
mTabs.push_back(tab);
tab = new Setup_Joystick();
- panel->addTab(tab, _("Joystick"));
+ panel->addTab(_("Joystick"), tab);
mTabs.push_back(tab);
tab = new Setup_Keyboard();
- panel->addTab(tab, "Keyboard");
+ panel->addTab(_("Keyboard"), tab);
mTabs.push_back(tab);
add(panel);
diff --git a/src/gui/setup_audio.cpp b/src/gui/setup_audio.cpp
index a02b3c20..1ed4fc94 100644
--- a/src/gui/setup_audio.cpp
+++ b/src/gui/setup_audio.cpp
@@ -44,6 +44,7 @@ Setup_Audio::Setup_Audio():
mMusicSlider(new Slider(0, 128))
{
setOpaque(false);
+ setDimension(gcn::Rectangle(0, 0, 250, 200));
gcn::Label *sfxLabel = new gcn::Label(_("Sfx volume"));
gcn::Label *musicLabel = new gcn::Label(_("Music volume"));
diff --git a/src/gui/setup_joystick.cpp b/src/gui/setup_joystick.cpp
index dfa446ab..57adef28 100644
--- a/src/gui/setup_joystick.cpp
+++ b/src/gui/setup_joystick.cpp
@@ -40,6 +40,8 @@ Setup_Joystick::Setup_Joystick():
mJoystickEnabled(new CheckBox(_("Enable joystick")))
{
setOpaque(false);
+ setDimension(gcn::Rectangle(0, 0, 250, 200));
+
mJoystickEnabled->setPosition(10, 10);
mCalibrateLabel->setPosition(10, 25);
mCalibrateButton->setPosition(10, 30 + mCalibrateLabel->getHeight());
diff --git a/src/gui/setup_keyboard.cpp b/src/gui/setup_keyboard.cpp
index e88080b5..2b785dd5 100644
--- a/src/gui/setup_keyboard.cpp
+++ b/src/gui/setup_keyboard.cpp
@@ -75,6 +75,7 @@ Setup_Keyboard::Setup_Keyboard():
{
keyboard.setSetupKeyboard(this);
setOpaque(false);
+ setDimension(gcn::Rectangle(0, 0, 250, 200));
refreshKeys();
diff --git a/src/gui/setup_video.cpp b/src/gui/setup_video.cpp
index fcdb6c51..eb3c3df2 100644
--- a/src/gui/setup_video.cpp
+++ b/src/gui/setup_video.cpp
@@ -128,6 +128,7 @@ Setup_Video::Setup_Video():
mOverlayDetailField(new gcn::Label(""))
{
setOpaque(false);
+ setDimension(gcn::Rectangle(0, 0, 250, 200));
ScrollArea *scrollArea = new ScrollArea(mModeList);
gcn::Label *alphaLabel = new gcn::Label(_("Gui opacity"));
diff --git a/src/gui/skill.cpp b/src/gui/skill.cpp
index 58ec8043..0a3c244a 100644
--- a/src/gui/skill.cpp
+++ b/src/gui/skill.cpp
@@ -33,7 +33,8 @@
#include "scrollarea.h"
#include "windowcontainer.h"
#include "progressbar.h"
-#include "tabbedcontainer.h"
+
+#include "widgets/tabbedarea.h"
#include "../localplayer.h"
@@ -47,23 +48,22 @@ SkillDialog::SkillDialog():
setCloseButton(true);
setDefaultSize(windowContainer->getWidth() - 255, 25, 230, 425);
- TabbedContainer *panel = new TabbedContainer();
+ TabbedArea *panel = new TabbedArea();
panel->setDimension(gcn::Rectangle(5, 5, 225, 420));
- panel->setOpaque(false);
Skill_Tab* tab;
// Add each type of skill tab to the panel
tab = new Skill_Tab("Weapon");
- panel->addTab(tab, _("Weapons"));
+ panel->addTab(_("Weapons"), tab);
mTabs.push_back(tab);
tab = new Skill_Tab("Magic");
- panel->addTab(tab, _("Magic"));
+ panel->addTab(_("Magic"), tab);
mTabs.push_back(tab);
tab = new Skill_Tab("Craft");
- panel->addTab(tab, _("Crafts"));
+ panel->addTab(_("Crafts"), tab);
mTabs.push_back(tab);
add(panel);
@@ -105,6 +105,7 @@ void SkillDialog::update()
Skill_Tab::Skill_Tab(std::string type): type(type)
{
setOpaque(false);
+ setDimension(gcn::Rectangle(0, 0, 225, 420));
int skillNum = getSkillNum();
mSkillNameLabels.resize(skillNum);
diff --git a/src/gui/tabbedcontainer.cpp b/src/gui/tabbedcontainer.cpp
deleted file mode 100644
index d6267e65..00000000
--- a/src/gui/tabbedcontainer.cpp
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * The Mana World
- * Copyright 2004 The Mana World Development Team
- *
- * This file is part of The Mana World.
- *
- * The Mana World is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * any later version.
- *
- * The Mana World is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with The Mana World; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * $Id$
- */
-
-#include <algorithm>
-
-#include "tabbedcontainer.h"
-
-#include "button.h"
-
-#include "../utils/tostring.h"
-#include "../utils/dtor.h"
-
-#define TABWIDTH 60
-#define TABHEIGHT 20
-
-TabbedContainer::TabbedContainer():
- mActiveContent(0)
-{
-}
-
-TabbedContainer::~TabbedContainer()
-{
- for_each(mTabs.begin(), mTabs.end(), make_dtor(mTabs));
-
- mTabs.clear();
- mContents.clear();
-}
-
-void TabbedContainer::addTab(gcn::Widget *widget, const std::string &caption)
-{
- int tabNumber = mTabs.size();
-
- Button *tab = new Button(caption, toString(tabNumber), this);
-
- tab->setSize(TABWIDTH, TABHEIGHT);
- add(tab, TABWIDTH * tabNumber, 0);
-
- mTabs[caption] = tab;
-
- mContents.push_back(widget);
- widget->setPosition(0, TABHEIGHT);
-
- // If this is the first tab in this container, make it visible
- if (!mActiveContent) {
- mActiveContent = widget;
- add(mActiveContent);
- tab->setLogged(true);
- }
-
- mWidgets[widget] = caption;
-}
-
-void TabbedContainer::removeTab(const std::string &caption)
-{
- gcn::ActionEvent actionEvent(this, "0");
- action(actionEvent);
- remove(mTabs[caption]);
- mTabs.erase(caption);
-}
-
-void TabbedContainer::logic()
-{
- if (mActiveContent) {
- mActiveContent->setSize(
- getWidth() - 2 * mActiveContent->getFrameSize(),
- getHeight() - TABHEIGHT - 2 * mActiveContent->getFrameSize());
- }
-
- Container::logic();
-}
-
-void TabbedContainer::action(const gcn::ActionEvent &event)
-{
- int tabNo;
- std::stringstream ss(event.getId());
- ss >> tabNo;
-
- gcn::Widget *newContent = mContents[tabNo];
-
- if (newContent) {
- if (mActiveContent) {
- // Unhighlight old tab
- ((Button*)mTabs[mWidgets[mActiveContent]])->setLogged(false);
- remove(mActiveContent);
- }
- mActiveContent = newContent;
- // Highlight new tab
- ((Button*)mTabs[mWidgets[mActiveContent]])->setLogged(true);
- add(newContent);
- }
-}
-
-void TabbedContainer::setOpaque(bool opaque)
-{
- Container::setOpaque(opaque);
-}
-
-short TabbedContainer::getNumberOfTabs()
-{
- return mTabs.size();
-}
-
-std::string TabbedContainer::getActiveWidget()
-{
- return mWidgets[mActiveContent];
-}
diff --git a/src/gui/tabbedcontainer.h b/src/gui/tabbedcontainer.h
deleted file mode 100644
index 7f8deef9..00000000
--- a/src/gui/tabbedcontainer.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * The Mana World
- * Copyright 2004 The Mana World Development Team
- *
- * This file is part of The Mana World.
- *
- * The Mana World is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * any later version.
- *
- * The Mana World is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with The Mana World; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * $Id$
- */
-
-#ifndef _TMW_TABPANE_H
-#define _TMW_TABPANE_H
-
-#include <iosfwd>
-#include <vector>
-#include <map>
-
-#include <guichan/actionlistener.hpp>
-
-#include <guichan/widgets/container.hpp>
-
-#include "../guichanfwd.h"
-
-class TabbedContainer : public gcn::Container, public gcn::ActionListener
-{
- public:
- TabbedContainer();
- ~TabbedContainer();
-
- void addTab(gcn::Widget *widget, const std::string &caption);
-
- void removeTab(const std::string &caption);
-
- void logic();
-
- void action(const gcn::ActionEvent &event);
-
- void setOpaque(bool opaque);
-
- short getNumberOfTabs();
-
- std::string getActiveWidget();
-
- private:
- typedef std::vector<gcn::Widget*> Widgets;
- typedef Widgets::iterator WidgetIterator;
- std::map<std::string, gcn::Widget*> mTabs; // tabs mapped to their channel name
- Widgets mContents; // The contents of the tabs
-
- std::map<gcn::Widget*, std::string> mWidgets;
- gcn::Widget *mActiveContent;
-};
-
-#endif
diff --git a/src/gui/widgets/tabbedarea.cpp b/src/gui/widgets/tabbedarea.cpp
index a36688e2..7821190b 100644
--- a/src/gui/widgets/tabbedarea.cpp
+++ b/src/gui/widgets/tabbedarea.cpp
@@ -57,7 +57,7 @@ void TabbedArea::draw(gcn::Graphics *graphics)
return;
}
- gcn::TabbedArea::draw(graphics);
+ drawChildren(graphics);
}
gcn::Widget* TabbedArea::getWidget(const std::string &name)
diff --git a/src/gui/widgets/tabbedarea.h b/src/gui/widgets/tabbedarea.h
index 0c5d18f7..bc623427 100644
--- a/src/gui/widgets/tabbedarea.h
+++ b/src/gui/widgets/tabbedarea.h
@@ -65,7 +65,6 @@ class TabbedArea : public gcn::TabbedArea
* Overload the remove tab function as its broken in guichan 0.8
*/
void removeTab(gcn::Tab *tab);
-
};
#endif