summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjørn Lindeijer <bjorn@lindeijer.nl>2007-01-14 16:45:13 +0000
committerBjørn Lindeijer <bjorn@lindeijer.nl>2007-01-14 16:45:13 +0000
commitd1395845cdc678db2a71326f2e6f20253ed14cac (patch)
tree9a75fe0591fc7bd74f828aa048aa027f59a4ae66
parent6c3a2550813c14290307f2ad91e1d76eea3e6a02 (diff)
downloadmana-d1395845cdc678db2a71326f2e6f20253ed14cac.tar.gz
mana-d1395845cdc678db2a71326f2e6f20253ed14cac.tar.bz2
mana-d1395845cdc678db2a71326f2e6f20253ed14cac.tar.xz
mana-d1395845cdc678db2a71326f2e6f20253ed14cac.zip
Merged 0.0 changes from revision 2988 to 3035 to trunk.
-rw-r--r--ChangeLog86
-rw-r--r--src/game.cpp19
-rw-r--r--src/gui/browserbox.cpp15
-rw-r--r--src/gui/browserbox.h10
-rw-r--r--src/gui/buddywindow.cpp8
-rw-r--r--src/gui/buddywindow.h2
-rw-r--r--src/gui/button.cpp9
-rw-r--r--src/gui/button.h2
-rw-r--r--src/gui/buy.cpp16
-rw-r--r--src/gui/buy.h2
-rw-r--r--src/gui/buysell.cpp8
-rw-r--r--src/gui/buysell.h2
-rw-r--r--src/gui/char_select.cpp40
-rw-r--r--src/gui/char_select.h4
-rw-r--r--src/gui/chat.cpp15
-rw-r--r--src/gui/chat.h11
-rw-r--r--src/gui/chatinput.cpp2
-rw-r--r--src/gui/chatinput.h2
-rw-r--r--src/gui/confirm_dialog.cpp7
-rw-r--r--src/gui/confirm_dialog.h2
-rw-r--r--src/gui/connection.cpp8
-rw-r--r--src/gui/debugwindow.cpp16
-rw-r--r--src/gui/debugwindow.h2
-rw-r--r--src/gui/gccontainer.cpp6
-rw-r--r--src/gui/gccontainer.h9
-rw-r--r--src/gui/help.cpp4
-rw-r--r--src/gui/help.h2
-rw-r--r--src/gui/inttextbox.cpp7
-rw-r--r--src/gui/inttextbox.h3
-rw-r--r--src/gui/inventorywindow.cpp20
-rw-r--r--src/gui/inventorywindow.h6
-rw-r--r--src/gui/item_amount.cpp20
-rw-r--r--src/gui/item_amount.h2
-rw-r--r--src/gui/itemcontainer.cpp35
-rw-r--r--src/gui/itemcontainer.h2
-rw-r--r--src/gui/listbox.cpp33
-rw-r--r--src/gui/listbox.h6
-rw-r--r--src/gui/login.cpp16
-rw-r--r--src/gui/login.h4
-rw-r--r--src/gui/menuwindow.cpp14
-rw-r--r--src/gui/newskill.cpp24
-rw-r--r--src/gui/newskill.h2
-rw-r--r--src/gui/npc_text.cpp4
-rw-r--r--src/gui/npc_text.h2
-rw-r--r--src/gui/npclistdialog.cpp8
-rw-r--r--src/gui/npclistdialog.h2
-rw-r--r--src/gui/ok_dialog.cpp6
-rw-r--r--src/gui/ok_dialog.h2
-rw-r--r--src/gui/playerbox.cpp1
-rw-r--r--src/gui/register.cpp6
-rw-r--r--src/gui/register.h2
-rw-r--r--src/gui/sell.cpp18
-rw-r--r--src/gui/sell.h2
-rw-r--r--src/gui/serverdialog.cpp23
-rw-r--r--src/gui/serverdialog.h5
-rw-r--r--src/gui/setup.cpp8
-rw-r--r--src/gui/setup.h2
-rw-r--r--src/gui/setup_audio.cpp10
-rw-r--r--src/gui/setup_audio.h2
-rw-r--r--src/gui/setup_joystick.cpp5
-rw-r--r--src/gui/setup_joystick.h2
-rw-r--r--src/gui/setup_video.cpp49
-rw-r--r--src/gui/setup_video.h5
-rw-r--r--src/gui/shoplistbox.cpp6
-rw-r--r--src/gui/shoplistbox.h2
-rw-r--r--src/gui/skill.cpp10
-rw-r--r--src/gui/skill.h2
-rw-r--r--src/gui/status.cpp4
-rw-r--r--src/gui/status.h2
-rw-r--r--src/gui/tabbedcontainer.cpp4
-rw-r--r--src/gui/tabbedcontainer.h2
-rw-r--r--src/gui/trade.cpp10
-rw-r--r--src/gui/trade.h2
-rw-r--r--src/gui/updatewindow.cpp6
-rw-r--r--src/gui/updatewindow.h2
-rw-r--r--src/gui/viewport.cpp28
-rw-r--r--src/gui/viewport.h28
-rw-r--r--src/gui/window.cpp121
-rw-r--r--src/gui/window.h19
-rw-r--r--src/main.cpp10
-rw-r--r--src/net/playerhandler.cpp4
-rw-r--r--src/net/tradehandler.cpp4
-rw-r--r--tools/Purger.java159
83 files changed, 495 insertions, 597 deletions
diff --git a/ChangeLog b/ChangeLog
index 0cbbb214..d091a061 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,53 @@
+2007-01-14 Bjørn Lindeijer <bjorn@lindeijer.nl>
+
+ * src/game.cpp, src/main.cpp, src/gui/trade.cpp, src/gui/sell.cpp,
+ src/gui/connection.cpp, src/gui/buddywindow.cpp, src/gui/browserbox.h,
+ src/gui/char_server.cpp, src/gui/window.cpp, src/gui/login.cpp,
+ src/gui/inttextbox.h, src/gui/viewport.cpp, src/gui/button.h,
+ src/gui/shoplistbox.h, src/gui/skill.h, src/gui/item_amount.h,
+ src/gui/setup_audio.h, src/gui/newskill.cpp, src/gui/listbox.h,
+ src/gui/register.h, src/gui/setup.cpp, src/gui/npclistdialog.h,
+ src/gui/updatewindow.cpp, src/gui/button.cpp, src/gui/char_select.cpp,
+ src/gui/login.h, src/gui/setup_audio.cpp, src/gui/item_amount.cpp,
+ src/gui/setup_joystick.h, src/gui/chat.h, src/gui/npc_text.cpp,
+ src/gui/setup_video.cpp, src/gui/ok_dialog.cpp,
+ src/gui/inventorywindow.h, src/gui/gccontainer.cpp,
+ src/gui/newskill.h, src/gui/buy.h, src/gui/setup.h,
+ src/gui/itemcontainer.h, src/gui/confirm_dialog.cpp,
+ src/gui/debugwindow.cpp, src/gui/chat.cpp, src/gui/setup_joystick.cpp,
+ src/gui/updatewindow.h, src/gui/char_select.h, src/gui/buysell.h,
+ src/gui/tabbedcontainer.cpp, src/gui/inventorywindow.cpp,
+ src/gui/help.cpp, src/gui/status.h, src/gui/npc_text.h,
+ src/gui/setup_video.h, src/gui/menuwindow.cpp, src/gui/browserbox.cpp,
+ src/gui/ok_dialog.h, src/gui/buy.cpp, src/gui/itemcontainer.cpp,
+ src/gui/gccontainer.h, src/gui/buddywindow.h, src/gui/sell.h,
+ src/gui/trade.h, src/gui/inttextbox.cpp, src/gui/char_server.h,
+ src/gui/window.h, src/gui/shoplistbox.cpp, src/gui/skill.cpp,
+ src/gui/buysell.cpp, src/gui/confirm_dialog.h, src/gui/debugwindow.h,
+ src/gui/status.cpp, src/gui/listbox.cpp, src/gui/register.cpp,
+ src/gui/viewport.h, src/gui/tabbedcontainer.h,
+ src/gui/npclistdialog.cpp, src/gui/help.h, src/gui/chatinput.h,
+ src/gui/chatinput.cpp, src/net/tradehandler.cpp,
+ src/net/playerhandler.cpp: Upgraded to Guichan 0.6.0 (merge from
+ guichan-0.6.0 branch).
+
+2007-01-13 Bjørn Lindeijer <bjorn@lindeijer.nl>
+
+ * data/graphics/sprites/Makefile.am,
+ data/graphics/sprites/CMakeLists.txt: Updated with regard to renaming
+ of cotton equipment.
+
+2006-01-13 Eugenio Favalli <elvenprogrammer@gmail.com>
+
+ * src/gui/debugwindow.cpp, src/gui/viewport.h: Fixed mouse coordinates
+ display in debug window.
+
+2007-01-12 Bjørn Lindeijer <bjorn@lindeijer.nl>
+
+ * src/gui/viewport.cpp: Fixed initialization of mPlayerFollowMouse,
+ the lack of which sometimes caused the player to start walking when
+ clicking on the GUI.
+
2007-01-11 Björn Steinbrink <B.Steinbrink@gmx.de>
* data/graphics/images/ambient/CMakeLists.txt,
@@ -7,23 +57,43 @@
2007-01-11 Rogier Polak <rogier.l.a.polak@gmail.com>
* src/gui/char_select.cpp, src/net/accountserver/account.h,
- src/net/accountserver/account.cpp, src/player.cpp: Fixedd issues
+ src/net/accountserver/account.cpp, src/player.cpp: Fixed issues
with out of range hair style and color, as well as their ordering.
* data/graphics/gui/Makefile.am,
data/graphics/images/ambient/Makefile.am,
data/graphics/sprites/Makefile.am: Some corrections to installed
files.
+2007-01-09 Philipp Sehmisch <tmw@crushnet.org>
+
+ * data/graphics/icecave.png: Added new tiles and fixes by Nickman and
+ made some other cosmetical corrections.
+
2007-01-07 Bjørn Lindeijer <bjorn@lindeijer.nl>
+ * data/graphics/sprites/monster-mountsnake.xml,
+ data/graphics/sprites/monster-mountsnake.png, data/monsters.xml: Added
+ brown snake by Pauan.
* src/gui/status.h, src/gui/status.cpp, src/localplayer.h:
Synchronized player attributes with Attributes page on the wiki.
Removed job xp bar.
+2007-01-07 Philipp Sehmisch <tmw@crushnet.org>
+
+ * data/graphics/chest-cottonshirt-male.png,
+ data/graphics/chest-cottonshirt-male.xml,
+ data/graphics/chest-cottonshirt-female.png,
+ data/graphics/chest-cottonshirt-female.xml,
+ data/graphics/item001.png, data/equipment.xml: Added female
+ cottonshirt sprites.
+ * data/equipment.xml: Fixed some wrong armor values.
+
2007-01-05 Björn Steinbrink <B.Steinbrink@gmx.de>
* src/CMakeLists.txt, data/graphics/sprites/CMakeLists.txt: Fixed
installation when using CMake.
+ * src/CMakeLists.txt, data/graphics/images/ambient/Makefile.am,
+ data/graphics/sprites/CMakeLists.txt: Synchronized build files.
2007-01-05 Guillaume Melquiond <guillaume.melquiond@gmail.com>
@@ -36,6 +106,10 @@
* src/map.cpp, src/map.h: Declared some methods const.
+2007-01-04 Eugenio Favalli <elvenprogrammer@gmail.com>
+
+ * tools/Purger.java: Removed purger tool.
+
2007-01-03 Guillaume Melquiond <guillaume.melquiond@gmail.com>
* src/resources/mapreader.cpp: Fixed memory leak on error.
@@ -285,11 +359,11 @@
2006-12-09 Bjørn Lindeijer <bjorn@lindeijer.nl>
* src/sprite.h, src/gui/playerbox.h, src/gui/char_select.cpp,
- src/gui/playerbox.cpp, src/gui/passwordfield.h,src/gui/char_select.h,
- src/gui/textfield.h, src/main.cpp, src/being.cpp, src/player.h,
- src/floor_item.h, src/being.h: Use new animation system in character
- selection/creation. Shows equipment and allowed for some cleanup. Had
- a bit of help from the patch by VictorSan.
+ src/gui/playerbox.cpp, src/gui/passwordfield.h, src/gui/char_select.h,
+ src/main.cpp, src/being.cpp, src/player.h, src/floor_item.h,
+ src/being.h: Use new animation system in character selection/creation.
+ Shows equipment and allowed for some cleanup. Had a bit of help from
+ the patch by VictorSan.
2006-12-08 Bjørn Lindeijer <bjorn@lindeijer.nl>
diff --git a/src/game.cpp b/src/game.cpp
index 2af13146..40d78248 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -124,9 +124,11 @@ const int MAX_TIME = 10000;
* Listener used for exitting handling.
*/
namespace {
- struct ExitListener : public gcn::ActionListener {
- void action(const std::string &eventId, gcn::Widget *widget) {
- if (eventId == "yes") {
+ struct ExitListener : public gcn::ActionListener
+ {
+ void action(const gcn::ActionEvent &event)
+ {
+ if (event.getId() == "yes") {
done = true;
}
exitConfirm = NULL;
@@ -386,10 +388,6 @@ void Game::logic()
void Game::handleInput()
{
- // Get the state of the keyboard keys
- Uint8* keys;
- keys = SDL_GetKeyState(NULL);
-
if (joystick != NULL)
{
joystick->update();
@@ -455,7 +453,7 @@ void Game::handleInput()
// Close the config window, cancelling changes if opened
else if (setupWindow->isVisible())
{
- setupWindow->action("cancel", NULL);
+ setupWindow->action(gcn::ActionEvent(NULL, "cancel"));
}
// Else, open the chat edit box
else
@@ -633,7 +631,12 @@ void Game::handleInput()
current_npc == 0 &&
!chatWindow->isFocused())
{
+ // Get the state of the keyboard keys
+ Uint8* keys;
+ keys = SDL_GetKeyState(NULL);
+
Uint16 x = player_node->mX / 32, y = player_node->mY / 32;
+
unsigned char direction = 0;
// Translate pressed keys to movement and direction
diff --git a/src/gui/browserbox.cpp b/src/gui/browserbox.cpp
index 2aec84a5..65fdde64 100644
--- a/src/gui/browserbox.cpp
+++ b/src/gui/browserbox.cpp
@@ -98,7 +98,7 @@ void BrowserBox::disableLinksAndUserColors()
mUseLinksAndUserColors = false;
}
-void BrowserBox::addRow(const std::string& row)
+void BrowserBox::addRow(const std::string &row)
{
std::string tmp = row;
std::string newRow;
@@ -238,25 +238,28 @@ struct MouseOverLink
int mX, mY;
};
-void BrowserBox::mousePress(int mx, int my, int button)
+void
+BrowserBox::mousePressed(gcn::MouseEvent &event)
{
LinkIterator i = find_if(mLinks.begin(), mLinks.end(),
- MouseOverLink(mx, my));
+ MouseOverLink(event.getX(), event.getY()));
if (i != mLinks.end()) {
mLinkHandler->handleLink(i->link);
}
}
-void BrowserBox::mouseMotion(int mx, int my)
+void
+BrowserBox::mouseMoved(gcn::MouseEvent &event)
{
LinkIterator i = find_if(mLinks.begin(), mLinks.end(),
- MouseOverLink(mx, my));
+ MouseOverLink(event.getX(), event.getY()));
mSelectedLink = (i != mLinks.end()) ? (i - mLinks.begin()) : -1;
}
-void BrowserBox::draw(gcn::Graphics* graphics)
+void
+BrowserBox::draw(gcn::Graphics *graphics)
{
if (mOpaque)
{
diff --git a/src/gui/browserbox.h b/src/gui/browserbox.h
index a2c9dd9b..666a7754 100644
--- a/src/gui/browserbox.h
+++ b/src/gui/browserbox.h
@@ -61,7 +61,7 @@ class BrowserBox : public gcn::Widget, public gcn::MouseListener
/**
* Sets the handler for links.
*/
- void setLinkHandler(LinkHandler* linkHandler);
+ void setLinkHandler(LinkHandler *linkHandler);
/**
* Sets the BrowserBox opacity.
@@ -81,7 +81,7 @@ class BrowserBox : public gcn::Widget, public gcn::MouseListener
/**
* Adds a text row to the browser.
*/
- void addRow(const std::string& row);
+ void addRow(const std::string &row);
/**
* Remove all rows.
@@ -91,13 +91,13 @@ class BrowserBox : public gcn::Widget, public gcn::MouseListener
/**
* Handles mouse actions.
*/
- void mousePress(int mx, int my, int button);
- void mouseMotion(int mx, int my);
+ void mousePressed(gcn::MouseEvent &event);
+ void mouseMoved(gcn::MouseEvent &event);
/**
* Draws the browser box.
*/
- void draw(gcn::Graphics* graphics);
+ void draw(gcn::Graphics *graphics);
/**
* BrowserBox modes.
diff --git a/src/gui/buddywindow.cpp b/src/gui/buddywindow.cpp
index 145f0ad2..0ed383ce 100644
--- a/src/gui/buddywindow.cpp
+++ b/src/gui/buddywindow.cpp
@@ -61,9 +61,9 @@ BuddyWindow::BuddyWindow():
add(cancel);
}
-void BuddyWindow::action(const std::string &eventId, gcn::Widget *widget)
+void BuddyWindow::action(const gcn::ActionEvent &event)
{
- if (eventId == "Talk") {
+ if (event.getId() == "Talk") {
int selected = mListbox->getSelected();
if ( selected > -1 )
{
@@ -71,7 +71,7 @@ void BuddyWindow::action(const std::string &eventId, gcn::Widget *widget)
chatWindow->setInputText(who +": ");
}
}
- else if (eventId == "Remove") {
+ else if (event.getId() == "Remove") {
int selected = mListbox->getSelected();
if ( selected > -1 )
{
@@ -79,7 +79,7 @@ void BuddyWindow::action(const std::string &eventId, gcn::Widget *widget)
mBuddyList->removeBuddy(who);
}
}
- else if (eventId == "Cancel") {
+ else if (event.getId() == "Cancel") {
setVisible(false);
}
}
diff --git a/src/gui/buddywindow.h b/src/gui/buddywindow.h
index 8764d008..a3ca4de2 100644
--- a/src/gui/buddywindow.h
+++ b/src/gui/buddywindow.h
@@ -48,7 +48,7 @@ class BuddyWindow : public Window, public gcn::ActionListener
/**
* Performs action.
*/
- void action(const std::string& eventId, gcn::Widget* widget);
+ void action(const gcn::ActionEvent &event);
private:
BuddyList *mBuddyList;
diff --git a/src/gui/button.cpp b/src/gui/button.cpp
index 31f38593..0055c89a 100644
--- a/src/gui/button.cpp
+++ b/src/gui/button.cpp
@@ -37,7 +37,7 @@
ImageRect Button::button[4];
int Button::mInstances = 0;
-Button::Button(const std::string& caption, const std::string &eventId,
+Button::Button(const std::string& caption, const std::string &actionEventId,
gcn::ActionListener *listener):
gcn::Button(caption)
{
@@ -73,7 +73,7 @@ Button::Button(const std::string& caption, const std::string &eventId,
}
mInstances++;
- setEventId(eventId);
+ setActionEventId(actionEventId);
if (listener) {
addActionListener(listener);
}
@@ -92,7 +92,8 @@ Button::~Button()
}
}
-void Button::draw(gcn::Graphics* graphics)
+void
+Button::draw(gcn::Graphics *graphics)
{
int mode;
@@ -102,7 +103,7 @@ void Button::draw(gcn::Graphics* graphics)
else if (isPressed()) {
mode = 2;
}
- else if (hasMouse()) {
+ else if (mHasMouse) {
mode = 1;
}
else {
diff --git a/src/gui/button.h b/src/gui/button.h
index 36d8f7a1..1c2ec41b 100644
--- a/src/gui/button.h
+++ b/src/gui/button.h
@@ -40,7 +40,7 @@ class Button : public gcn::Button {
/**
* Constructor, sets the caption of the button to the given string.
*/
- Button(const std::string& caption, const std::string &eventId,
+ Button(const std::string& caption, const std::string &actionEventId,
gcn::ActionListener *listener);
/**
diff --git a/src/gui/buy.cpp b/src/gui/buy.cpp
index 102dd49e..cb07da22 100644
--- a/src/gui/buy.cpp
+++ b/src/gui/buy.cpp
@@ -82,8 +82,8 @@ BuyDialog::BuyDialog():
mItemEffectLabel->setDimension(gcn::Rectangle(5, 150, 240, 14));
mItemDescLabel->setDimension(gcn::Rectangle(5, 169, 240, 14));
- mShopItemList->setEventId("item");
- mSlider->setEventId("slider");
+ mShopItemList->setActionEventId("item");
+ mSlider->setActionEventId("slider");
mShopItemList->addSelectionListener(this);
mSlider->addActionListener(this);
@@ -140,11 +140,11 @@ void BuyDialog::addItem(short id, int price)
mShopItemList->adjustSize();
}
-void BuyDialog::action(const std::string &eventId, gcn::Widget *widget)
+void BuyDialog::action(const gcn::ActionEvent &event)
{
int selectedItem = mShopItemList->getSelected();
- if (eventId == "quit")
+ if (event.getId() == "quit")
{
setVisible(false);
current_npc = 0;
@@ -158,12 +158,12 @@ void BuyDialog::action(const std::string &eventId, gcn::Widget *widget)
bool updateButtonsAndLabels = false;
- if (eventId == "slider")
+ if (event.getId() == "slider")
{
mAmountItems = (int)(mSlider->getValue() * mMaxItems);
updateButtonsAndLabels = true;
}
- else if (eventId == "+")
+ else if (event.getId() == "+")
{
if (mAmountItems < mMaxItems) {
mAmountItems++;
@@ -174,7 +174,7 @@ void BuyDialog::action(const std::string &eventId, gcn::Widget *widget)
mSlider->setValue(double(mAmountItems)/double(mMaxItems));
updateButtonsAndLabels = true;
}
- else if (eventId == "-")
+ else if (event.getId() == "-")
{
if (mAmountItems > 0) {
mAmountItems--;
@@ -188,7 +188,7 @@ void BuyDialog::action(const std::string &eventId, gcn::Widget *widget)
// TODO: Actually we'd have a bug elsewhere if this check for the number
// of items to be bought ever fails, Bertram removed the assertions, is
// there a better way to ensure this fails in an _obivous_ way in C++?
- else if (eventId == "buy" && (mAmountItems > 0 &&
+ else if (event.getId() == "buy" && (mAmountItems > 0 &&
mAmountItems <= mMaxItems))
{
// XXX Convert for new server
diff --git a/src/gui/buy.h b/src/gui/buy.h
index b83b6f2f..13116b6e 100644
--- a/src/gui/buy.h
+++ b/src/gui/buy.h
@@ -73,7 +73,7 @@ class BuyDialog : public Window, public gcn::ActionListener, SelectionListener
/**
* Called when receiving actions from the widgets.
*/
- void action(const std::string& eventId, gcn::Widget* widget);
+ void action(const gcn::ActionEvent &event);
/**
* Returns the number of items in the shop inventory.
diff --git a/src/gui/buysell.cpp b/src/gui/buysell.cpp
index 4bbbb2ff..ae5c7358 100644
--- a/src/gui/buysell.cpp
+++ b/src/gui/buysell.cpp
@@ -52,13 +52,13 @@ BuySellDialog::BuySellDialog():
requestFocus();
}
-void BuySellDialog::action(const std::string &eventId, gcn::Widget *widget)
+void BuySellDialog::action(const gcn::ActionEvent &event)
{
- if (eventId == "Buy") {
+ if (event.getId() == "Buy") {
current_npc->buy();
- } else if (eventId == "Sell") {
+ } else if (event.getId() == "Sell") {
current_npc->sell();
- } else if (eventId == "Cancel") {
+ } else if (event.getId() == "Cancel") {
current_npc = 0;
}
setVisible(false);
diff --git a/src/gui/buysell.h b/src/gui/buysell.h
index 7a90a869..97caf34b 100644
--- a/src/gui/buysell.h
+++ b/src/gui/buysell.h
@@ -47,7 +47,7 @@ class BuySellDialog : public Window, public gcn::ActionListener
/**
* Called when receiving actions from the widgets.
*/
- void action(const std::string& eventId, gcn::Widget* widget);
+ void action(const gcn::ActionEvent &event);
};
#endif
diff --git a/src/gui/char_select.cpp b/src/gui/char_select.cpp
index ec4dad2e..4c4b99e5 100644
--- a/src/gui/char_select.cpp
+++ b/src/gui/char_select.cpp
@@ -48,7 +48,7 @@ class CharDeleteConfirm : public ConfirmDialog
{
public:
CharDeleteConfirm(CharSelectDialog *master);
- void action(const std::string &eventId, gcn::Widget *widget);
+ void action(const gcn::ActionEvent &event);
private:
CharSelectDialog *master;
};
@@ -60,13 +60,13 @@ CharDeleteConfirm::CharDeleteConfirm(CharSelectDialog *m):
{
}
-void CharDeleteConfirm::action(const std::string &eventId, gcn::Widget *widget)
+void CharDeleteConfirm::action(const gcn::ActionEvent &event)
{
- //ConfirmDialog::action(eventId);
- if (eventId == "yes") {
+ //ConfirmDialog::action(event);
+ if (event.getId() == "yes") {
master->attemptCharDelete();
}
- ConfirmDialog::action(eventId, widget);
+ ConfirmDialog::action(event);
}
CharSelectDialog::CharSelectDialog(LockedArray<LocalPlayer*> *charInfo):
@@ -122,9 +122,9 @@ CharSelectDialog::CharSelectDialog(LockedArray<LocalPlayer*> *charInfo):
updatePlayerInfo();
}
-void CharSelectDialog::action(const std::string &eventId, gcn::Widget *widget)
+void CharSelectDialog::action(const gcn::ActionEvent &event)
{
- if (eventId == "ok" && n_character > 0)
+ if (event.getId() == "ok" && n_character > 0)
{
// Start game
mNewCharButton->setEnabled(false);
@@ -136,11 +136,11 @@ void CharSelectDialog::action(const std::string &eventId, gcn::Widget *widget)
Net::AccountServer::Account::selectCharacter(mCharInfo->getPos());
mCharInfo->lock();
}
- else if (eventId == "cancel")
+ else if (event.getId() == "cancel")
{
state = STATE_EXIT;
}
- else if (eventId == "new")
+ else if (event.getId() == "new")
{
if (n_character < MAX_SLOT + 1)
{
@@ -150,7 +150,7 @@ void CharSelectDialog::action(const std::string &eventId, gcn::Widget *widget)
mCharInfo->unlock();
}
}
- else if (eventId == "delete")
+ else if (event.getId() == "delete")
{
// Delete character
if (mCharInfo->getEntry())
@@ -158,11 +158,11 @@ void CharSelectDialog::action(const std::string &eventId, gcn::Widget *widget)
new CharDeleteConfirm(this);
}
}
- else if (eventId == "previous")
+ else if (event.getId() == "previous")
{
mCharInfo->prev();
}
- else if (eventId == "next")
+ else if (event.getId() == "next")
{
mCharInfo->next();
}
@@ -253,7 +253,7 @@ CharCreateDialog::CharCreateDialog(Window *parent, int slot):
mCancelButton = new Button("Cancel", "cancel", this);
mPlayerBox = new PlayerBox(mPlayer);
- mNameField->setEventId("create");
+ mNameField->setActionEventId("create");
int w = 200;
int h = 150;
@@ -298,9 +298,9 @@ CharCreateDialog::~CharCreateDialog()
delete mPlayer;
}
-void CharCreateDialog::action(const std::string &eventId, gcn::Widget *widget)
+void CharCreateDialog::action(const gcn::ActionEvent &event)
{
- if (eventId == "create") {
+ if (event.getId() == "create") {
if (getName().length() >= 4) {
// Attempt to create the character
mCreateButton->setEnabled(false);
@@ -322,20 +322,20 @@ void CharCreateDialog::action(const std::string &eventId, gcn::Widget *widget)
"Your name needs to be at least 4 characters.", this);
}
}
- else if (eventId == "cancel") {
+ else if (event.getId() == "cancel") {
scheduleDelete();
}
- else if (eventId == "nextcolor") {
+ else if (event.getId() == "nextcolor") {
mPlayer->setHairColor((mPlayer->getHairColor() + 1) % NR_HAIR_COLORS);
}
- else if (eventId == "prevcolor") {
+ else if (event.getId() == "prevcolor") {
int prevColor = mPlayer->getHairColor() + NR_HAIR_COLORS - 1;
mPlayer->setHairColor(prevColor % NR_HAIR_COLORS);
}
- else if (eventId == "nextstyle") {
+ else if (event.getId() == "nextstyle") {
mPlayer->setHairStyle((mPlayer->getHairStyle() + 1) % NR_HAIR_STYLES);
}
- else if (eventId == "prevstyle") {
+ else if (event.getId() == "prevstyle") {
int prevStyle = mPlayer->getHairStyle() + NR_HAIR_STYLES - 1;
mPlayer->setHairStyle(prevStyle % NR_HAIR_STYLES);
}
diff --git a/src/gui/char_select.h b/src/gui/char_select.h
index 9d2d77da..d6dee8b5 100644
--- a/src/gui/char_select.h
+++ b/src/gui/char_select.h
@@ -49,7 +49,7 @@ class CharSelectDialog : public Window, public gcn::ActionListener
*/
CharSelectDialog(LockedArray<LocalPlayer*> *charInfo);
- void action(const std::string &eventId, gcn::Widget *widget);
+ void action(const gcn::ActionEvent &event);
void updatePlayerInfo();
@@ -109,7 +109,7 @@ class CharCreateDialog : public Window, public gcn::ActionListener
*/
~CharCreateDialog();
- void action(const std::string &eventId, gcn::Widget *widget);
+ void action(const gcn::ActionEvent &event);
std::string getName();
diff --git a/src/gui/chat.cpp b/src/gui/chat.cpp
index 3dc252ab..d992c6dd 100644
--- a/src/gui/chat.cpp
+++ b/src/gui/chat.cpp
@@ -53,7 +53,7 @@ ChatWindow::ChatWindow():
loadWindowState();
mChatInput = new ChatInput();
- mChatInput->setEventId("chatinput");
+ mChatInput->setActionEventId("chatinput");
mChatInput->addActionListener(this);
mTextOutput = new BrowserBox(BrowserBox::AUTO_WRAP);
@@ -180,9 +180,9 @@ ChatWindow::chatLog(CHATSKILL act)
}
void
-ChatWindow::action(const std::string &eventId, gcn::Widget *widget)
+ChatWindow::action(const gcn::ActionEvent &event)
{
- if (eventId == "chatinput")
+ if (event.getId() == "chatinput")
{
std::string message = mChatInput->getText();
@@ -360,9 +360,10 @@ ChatWindow::const_msg(CHATSKILL act)
}
void
-ChatWindow::keyPress(const gcn::Key &key)
+ChatWindow::keyPressed(gcn::KeyEvent &event)
{
- if (key.getValue() == key.DOWN && mCurHist != mHistory.end())
+ if (event.getKey().getValue() == gcn::Key::DOWN &&
+ mCurHist != mHistory.end())
{
// Move forward through the history
HistoryIterator prevHist = mCurHist++;
@@ -374,8 +375,8 @@ ChatWindow::keyPress(const gcn::Key &key)
mCurHist = prevHist;
}
}
- else if (key.getValue() == key.UP && mCurHist != mHistory.begin() &&
- mHistory.size() > 0)
+ else if (event.getKey().getValue() == gcn::Key::UP &&
+ mCurHist != mHistory.begin() && mHistory.size() > 0)
{
// Move backward through the history
mCurHist--;
diff --git a/src/gui/chat.h b/src/gui/chat.h
index a0a3d1ec..963e5e98 100644
--- a/src/gui/chat.h
+++ b/src/gui/chat.h
@@ -138,7 +138,7 @@ class ChatWindow : public Window, public gcn::ActionListener,
/**
* Performs action.
*/
- void action(const std::string& actionId, gcn::Widget* widget);
+ void action(const gcn::ActionEvent &event);
/**
* Request focus for typing chat message.
@@ -178,13 +178,16 @@ class ChatWindow : public Window, public gcn::ActionListener,
chatSend(const std::string &nick, std::string msg);
/** Called when key is pressed */
- void keyPress(const gcn::Key& key);
+ void
+ keyPressed(gcn::KeyEvent &event);
/** Called to set current text */
- void setInputText(std::string input_str);
+ void
+ setInputText(std::string input_str);
/** Override to reset mTmpVisible */
- void setVisible(bool visible);
+ void
+ setVisible(bool visible);
private:
bool mTmpVisible;
diff --git a/src/gui/chatinput.cpp b/src/gui/chatinput.cpp
index 52e91f3a..2aa5a159 100644
--- a/src/gui/chatinput.cpp
+++ b/src/gui/chatinput.cpp
@@ -28,7 +28,7 @@ ChatInput::ChatInput()
setVisible(false);
}
-void ChatInput::lostFocus()
+void ChatInput::focusLost()
{
setVisible(false);
}
diff --git a/src/gui/chatinput.h b/src/gui/chatinput.h
index 9f543e24..59d0daf3 100644
--- a/src/gui/chatinput.h
+++ b/src/gui/chatinput.h
@@ -41,7 +41,7 @@ class ChatInput : public TextField
* Called if the chat input loses focus. It will set itself to
* invisible as result.
*/
- void lostFocus();
+ void focusLost();
};
#endif
diff --git a/src/gui/confirm_dialog.cpp b/src/gui/confirm_dialog.cpp
index 5a70544f..0ff8be17 100644
--- a/src/gui/confirm_dialog.cpp
+++ b/src/gui/confirm_dialog.cpp
@@ -65,17 +65,18 @@ ConfirmDialog::ConfirmDialog(const std::string &title, const std::string &msg,
yesButton->requestFocus();
}
-void ConfirmDialog::action(const std::string &eventId, gcn::Widget *widget)
+void ConfirmDialog::action(const gcn::ActionEvent &event)
{
// Proxy button events to our listeners
ActionListenerIterator i;
for (i = mActionListeners.begin(); i != mActionListeners.end(); ++i)
{
- (*i)->action(eventId, widget);
+ (*i)->action(event);
}
// Can we receive anything else anyway?
- if (eventId == "yes" || eventId == "no") {
+ if (event.getId() == "yes" || event.getId() == "no")
+ {
scheduleDelete();
}
}
diff --git a/src/gui/confirm_dialog.h b/src/gui/confirm_dialog.h
index 771ecc36..8728f83f 100644
--- a/src/gui/confirm_dialog.h
+++ b/src/gui/confirm_dialog.h
@@ -47,7 +47,7 @@ class ConfirmDialog : public Window, public gcn::ActionListener {
/**
* Called when receiving actions from the widgets.
*/
- void action(const std::string &eventId, gcn::Widget *widget);
+ void action(const gcn::ActionEvent &event);
};
#endif
diff --git a/src/gui/connection.cpp b/src/gui/connection.cpp
index 7e977f1f..3627689a 100644
--- a/src/gui/connection.cpp
+++ b/src/gui/connection.cpp
@@ -38,7 +38,7 @@ namespace {
ConnectionActionListener(unsigned char previousState):
mPreviousState(previousState) {};
- void action(const std::string &eventId, gcn::Widget *widget) {
+ void action(const gcn::ActionEvent &event) {
state = mPreviousState;
}
@@ -51,9 +51,11 @@ ConnectionDialog::ConnectionDialog(unsigned char previousState):
{
setContentSize(200, 100);
- ConnectionActionListener *connectionListener = new ConnectionActionListener(previousState);
+ ConnectionActionListener *connectionListener =
+ new ConnectionActionListener(previousState);
- Button *cancelButton = new Button("Cancel", "cancelButton", connectionListener);
+ Button *cancelButton = new Button("Cancel", "cancelButton",
+ connectionListener);
mProgressBar = new ProgressBar(0.0, 200 - 10, 20, 128, 128, 128);
gcn::Label *label = new gcn::Label("Connecting...");
diff --git a/src/gui/debugwindow.cpp b/src/gui/debugwindow.cpp
index f8a4154e..563f380f 100644
--- a/src/gui/debugwindow.cpp
+++ b/src/gui/debugwindow.cpp
@@ -28,6 +28,8 @@
#include <guichan/widgets/label.hpp>
#include "button.h"
+#include "gui.h"
+#include "viewport.h"
#include "../game.h"
#include "../engine.h"
@@ -72,15 +74,15 @@ DebugWindow::logic()
// Get the current mouse position
int mouseX, mouseY;
SDL_GetMouseState(&mouseX, &mouseY);
- //int mouseTileX = mouseX / 32 + camera_x;
- //int mouseTileY = mouseY / 32 + camera_y;
+ int mouseTileX = mouseX / 32 + viewport->getCameraX();
+ int mouseTileY = mouseY / 32 + viewport->getCameraY();
mFPSLabel->setCaption("[" + toString(fps) + " FPS");
mFPSLabel->adjustSize();
- //mTileMouseLabel->setCaption("[Mouse: " +
- // toString(mouseTileX) + ", " + toString(mouseTileY) + "]");
- //mTileMouseLabel->adjustSize();
+ mTileMouseLabel->setCaption("[Mouse: " +
+ toString(mouseTileX) + ", " + toString(mouseTileY) + "]");
+ mTileMouseLabel->adjustSize();
Map *currentMap = engine->getCurrentMap();
if (currentMap != NULL)
@@ -98,9 +100,9 @@ DebugWindow::logic()
}
void
-DebugWindow::action(const std::string &eventId, gcn::Widget *widget)
+DebugWindow::action(const gcn::ActionEvent &event)
{
- if (eventId == "close")
+ if (event.getId() == "close")
{
setVisible(false);
}
diff --git a/src/gui/debugwindow.h b/src/gui/debugwindow.h
index 61ef44e6..4fd33d83 100644
--- a/src/gui/debugwindow.h
+++ b/src/gui/debugwindow.h
@@ -53,7 +53,7 @@ class DebugWindow : public Window, public gcn::ActionListener
/**
* Performs action.
*/
- void action(const std::string& eventId, gcn::Widget* widget);
+ void action(const gcn::ActionEvent &event);
private:
gcn::Label *mMusicFileLabel, *mMapFileLabel;
diff --git a/src/gui/gccontainer.cpp b/src/gui/gccontainer.cpp
index 3b574622..c22ddfc9 100644
--- a/src/gui/gccontainer.cpp
+++ b/src/gui/gccontainer.cpp
@@ -55,8 +55,8 @@ void GCContainer::add(gcn::Widget *w, int x, int y, bool delChild)
Container::add(w, x, y);
}
-void GCContainer::_announceDeath(gcn::Widget *w)
+void GCContainer::death(const gcn::Event &event)
{
- mDeathList.remove(w);
- Container::_announceDeath(w);
+ mDeathList.remove(event.getSource());
+ Container::death(event);
}
diff --git a/src/gui/gccontainer.h b/src/gui/gccontainer.h
index 46ebfefa..e27eaa96 100644
--- a/src/gui/gccontainer.h
+++ b/src/gui/gccontainer.h
@@ -32,9 +32,12 @@ class GCContainer : public gcn::Container
{
public:
virtual ~GCContainer();
- virtual void add(gcn::Widget *w, bool delChild=true);
- virtual void add(gcn::Widget *w, int x, int y, bool delChild=true);
- virtual void _announceDeath(gcn::Widget *w);
+
+ virtual void add(gcn::Widget *w, bool delChild = true);
+
+ virtual void add(gcn::Widget *w, int x, int y, bool delChild = true);
+
+ virtual void death(const gcn::Event &event);
protected:
typedef std::list<gcn::Widget*> Widgets;
diff --git a/src/gui/help.cpp b/src/gui/help.cpp
index e7429b29..0b010253 100644
--- a/src/gui/help.cpp
+++ b/src/gui/help.cpp
@@ -54,9 +54,9 @@ HelpWindow::HelpWindow():
setLocationRelativeTo(getParent());
}
-void HelpWindow::action(const std::string &eventId, gcn::Widget *widget)
+void HelpWindow::action(const gcn::ActionEvent &event)
{
- if (eventId == "close")
+ if (event.getId() == "close")
{
setVisible(false);
}
diff --git a/src/gui/help.h b/src/gui/help.h
index 539ab31b..3c3715a0 100644
--- a/src/gui/help.h
+++ b/src/gui/help.h
@@ -48,7 +48,7 @@ class HelpWindow : public Window, public LinkHandler,
/**
* Called when receiving actions from the widgets.
*/
- void action(const std::string& eventId, gcn::Widget* widget);
+ void action(const gcn::ActionEvent &event);
/**
* Handles link action.
diff --git a/src/gui/inttextbox.cpp b/src/gui/inttextbox.cpp
index 92f21e5f..2a09f255 100644
--- a/src/gui/inttextbox.cpp
+++ b/src/gui/inttextbox.cpp
@@ -32,12 +32,15 @@ IntTextBox::IntTextBox(int i):
{
}
-void IntTextBox::keyPress(const gcn::Key &key)
+void
+IntTextBox::keyPressed(gcn::KeyEvent &event)
{
+ const gcn::Key &key = event.getKey();
+
if (key.isNumber() || key.getValue() == gcn::Key::BACKSPACE
|| key.getValue() == gcn::Key::DELETE)
{
- gcn::TextBox::keyPress(key);
+ gcn::TextBox::keyPressed(event);
}
std::stringstream s(gcn::TextBox::getText());
diff --git a/src/gui/inttextbox.h b/src/gui/inttextbox.h
index b199cb2f..b5d339ac 100644
--- a/src/gui/inttextbox.h
+++ b/src/gui/inttextbox.h
@@ -55,7 +55,8 @@ class IntTextBox : public TextBox
/**
* Responds to key presses.
*/
- void keyPress(const gcn::Key &key);
+ void
+ keyPressed(gcn::KeyEvent &event);
private:
int mMin; /**< Minimum value */
diff --git a/src/gui/inventorywindow.cpp b/src/gui/inventorywindow.cpp
index 7f9ba3b9..e533c16c 100644
--- a/src/gui/inventorywindow.cpp
+++ b/src/gui/inventorywindow.cpp
@@ -99,7 +99,7 @@ void InventoryWindow::logic()
mWeightLabel->adjustSize();
}
-void InventoryWindow::action(const std::string &eventId, gcn::Widget *widget)
+void InventoryWindow::action(const gcn::ActionEvent &event)
{
Item *item = mItems->getItem();
@@ -107,7 +107,7 @@ void InventoryWindow::action(const std::string &eventId, gcn::Widget *widget)
return;
}
- if (eventId == "use") {
+ if (event.getId() == "use") {
if (item->isEquipment()) {
if (item->isEquipped()) {
player_node->unequipItem(item);
@@ -120,7 +120,7 @@ void InventoryWindow::action(const std::string &eventId, gcn::Widget *widget)
player_node->useItem(item);
}
}
- else if (eventId == "drop")
+ else if (event.getId() == "drop")
{
// Choose amount of items to drop
new ItemAmountWindow(AMOUNT_ITEM_DROP, this, item);
@@ -155,11 +155,11 @@ void InventoryWindow::selectionChanged(const SelectionEvent &event)
}
}
-void InventoryWindow::mouseClick(int x, int y, int button, int count)
+void InventoryWindow::mouseClicked(gcn::MouseEvent &event)
{
- Window::mouseClick(x, y, button, count);
+ Window::mouseClicked(event);
- if (button == gcn::MouseInput::RIGHT)
+ if (event.getButton() == gcn::MouseEvent::RIGHT)
{
Item *item = mItems->getItem();
@@ -168,16 +168,16 @@ void InventoryWindow::mouseClick(int x, int y, int button, int count)
/* Convert relative to the window coordinates to
* absolute screen coordinates.
*/
- int mx = x + getX();
- int my = y + getY();
+ int mx = event.getX() + getX();
+ int my = event.getY() + getY();
viewport->showPopup(mx, my, item);
}
}
-void InventoryWindow::mouseMotion(int mx, int my)
+void InventoryWindow::mouseDragged(gcn::MouseEvent &event)
{
int tmpWidth = getWidth(), tmpHeight = getHeight();
- Window::mouseMotion(mx, my);
+ Window::mouseDragged(event);
if (getWidth() != tmpWidth || getHeight() != tmpHeight) {
updateWidgets();
}
diff --git a/src/gui/inventorywindow.h b/src/gui/inventorywindow.h
index d46e91e7..5ee89fef 100644
--- a/src/gui/inventorywindow.h
+++ b/src/gui/inventorywindow.h
@@ -55,11 +55,11 @@ class InventoryWindow : public Window, gcn::ActionListener, SelectionListener
/**
* Called when receiving actions from the widgets.
*/
- void action(const std::string &eventId, gcn::Widget *widget);
+ void action(const gcn::ActionEvent &event);
- void mouseClick(int x, int y, int button, int count);
+ void mouseClicked(gcn::MouseEvent &event);
- void mouseMotion(int mx, int my);
+ void mouseDragged(gcn::MouseEvent &event);
Item* getItem();
diff --git a/src/gui/item_amount.cpp b/src/gui/item_amount.cpp
index 5ebc0213..f72462f9 100644
--- a/src/gui/item_amount.cpp
+++ b/src/gui/item_amount.cpp
@@ -49,7 +49,7 @@ ItemAmountWindow::ItemAmountWindow(int usage, Window *parent, Item *item):
mItemAmountSlide->setDimension(gcn::Rectangle(5, 120, 180, 10));
// Set button events Id
- mItemAmountSlide->setEventId("Slide");
+ mItemAmountSlide->setActionEventId("Slide");
// Set position
mItemAmountTextBox->setPosition(35, 10);
@@ -75,11 +75,11 @@ ItemAmountWindow::ItemAmountWindow(int usage, Window *parent, Item *item):
switch (usage) {
case AMOUNT_TRADE_ADD:
setCaption("Select amount of items to trade.");
- okButton->setEventId("AddTrade");
+ okButton->setActionEventId("AddTrade");
break;
case AMOUNT_ITEM_DROP:
setCaption("Select amount of items to drop.");
- okButton->setEventId("Drop");
+ okButton->setActionEventId("Drop");
break;
default:
break;
@@ -95,33 +95,33 @@ void ItemAmountWindow::resetAmount()
mItemAmountTextBox->setInt(1);
}
-void ItemAmountWindow::action(const std::string &eventId, gcn::Widget *widget)
+void ItemAmountWindow::action(const gcn::ActionEvent &event)
{
int amount = mItemAmountTextBox->getInt();
- if (eventId == "Cancel")
+ if (event.getId() == "Cancel")
{
scheduleDelete();
}
- else if (eventId == "Drop")
+ else if (event.getId() == "Drop")
{
player_node->dropItem(mItem, mItemAmountTextBox->getInt());
scheduleDelete();
}
- else if (eventId == "AddTrade")
+ else if (event.getId() == "AddTrade")
{
tradeWindow->tradeItem(mItem, mItemAmountTextBox->getInt());
scheduleDelete();
}
- else if (eventId == "Plus")
+ else if (event.getId() == "Plus")
{
amount++;
}
- else if (eventId == "Minus")
+ else if (event.getId() == "Minus")
{
amount--;
}
- else if (eventId == "Slide")
+ else if (event.getId() == "Slide")
{
amount = static_cast<int>(mItemAmountSlide->getValue());
}
diff --git a/src/gui/item_amount.h b/src/gui/item_amount.h
index a2a17575..01319012 100644
--- a/src/gui/item_amount.h
+++ b/src/gui/item_amount.h
@@ -54,7 +54,7 @@ class ItemAmountWindow : public Window, public gcn::ActionListener
/**
* Called when receiving actions from widget.
*/
- void action(const std::string& eventId, gcn::Widget* widget);
+ void action(const gcn::ActionEvent &event);
/**
* Sets default amount value.
diff --git a/src/gui/itemcontainer.cpp b/src/gui/itemcontainer.cpp
index 2c84b19b..308311b7 100644
--- a/src/gui/itemcontainer.cpp
+++ b/src/gui/itemcontainer.cpp
@@ -58,7 +58,8 @@ ItemContainer::~ItemContainer()
mSelImg->decRef();
}
-void ItemContainer::logic()
+void
+ItemContainer::logic()
{
gcn::Widget::logic();
@@ -70,7 +71,8 @@ void ItemContainer::logic()
}
}
-void ItemContainer::draw(gcn::Graphics* graphics)
+void
+ItemContainer::draw(gcn::Graphics *graphics)
{
int gridWidth = 36; //(item icon width + 4)
int gridHeight = 42; //(item icon height + 10)
@@ -124,7 +126,8 @@ void ItemContainer::draw(gcn::Graphics* graphics)
}
}
-void ItemContainer::setWidth(int width)
+void
+ItemContainer::setWidth(int width)
{
gcn::Widget::setWidth(width);
@@ -140,17 +143,20 @@ void ItemContainer::setWidth(int width)
setHeight((mMaxItems + columns - 1) / columns * gridHeight);
}
-Item* ItemContainer::getItem()
+Item*
+ItemContainer::getItem()
{
return mSelectedItem;
}
-void ItemContainer::selectNone()
+void
+ItemContainer::selectNone()
{
setSelectedItem(NULL);
}
-void ItemContainer::setSelectedItem(Item *item)
+void
+ItemContainer::setSelectedItem(Item *item)
{
if (mSelectedItem != item)
{
@@ -159,7 +165,8 @@ void ItemContainer::setSelectedItem(Item *item)
}
}
-void ItemContainer::fireSelectionChangedEvent()
+void
+ItemContainer::fireSelectionChangedEvent()
{
SelectionEvent event(this);
SelectionListeners::iterator i_end = mListeners.end();
@@ -171,14 +178,18 @@ void ItemContainer::fireSelectionChangedEvent()
}
}
-void ItemContainer::mousePress(int mx, int my, int button)
+void
+ItemContainer::mousePressed(gcn::MouseEvent &event)
{
- int gridWidth = 36; //(item icon width + 4)
- int gridHeight = 42; //(item icon height + 10)
- int columns = getWidth() / gridWidth;
+ int button = event.getButton();
- if (button == gcn::MouseInput::LEFT || gcn::MouseInput::RIGHT)
+ if (button == gcn::MouseEvent::LEFT || button == gcn::MouseEvent::RIGHT)
{
+ int gridWidth = 36; //(item icon width + 4)
+ int gridHeight = 42; //(item icon height + 10)
+ int columns = getWidth() / gridWidth;
+ int mx = event.getX();
+ int my = event.getY();
int index = mx / gridWidth + ((my / gridHeight) * columns);
if (index > INVENTORY_SIZE) {
diff --git a/src/gui/itemcontainer.h b/src/gui/itemcontainer.h
index a2d5f0f7..8c548fcd 100644
--- a/src/gui/itemcontainer.h
+++ b/src/gui/itemcontainer.h
@@ -71,7 +71,7 @@ class ItemContainer : public gcn::Widget, public gcn::MouseListener
/**
* Handles mouse click.
*/
- void mousePress(int mx, int my, int button);
+ void mousePressed(gcn::MouseEvent &event);
/**
* Returns the selected item.
diff --git a/src/gui/listbox.cpp b/src/gui/listbox.cpp
index d4a2c6cb..a7f6df8d 100644
--- a/src/gui/listbox.cpp
+++ b/src/gui/listbox.cpp
@@ -31,8 +31,7 @@
#include <guichan/mouseinput.hpp>
ListBox::ListBox(gcn::ListModel *listModel):
- gcn::ListBox(listModel),
- mMousePressed(false)
+ gcn::ListBox(listModel)
{
}
@@ -61,39 +60,19 @@ void ListBox::draw(gcn::Graphics *graphics)
}
}
-void ListBox::setSelected(int selected)
+void
+ListBox::setSelected(int selected)
{
gcn::ListBox::setSelected(selected);
fireSelectionChangedEvent();
}
-void ListBox::mousePress(int x, int y, int button)
+void
+ListBox::mouseDragged(gcn::MouseEvent &event)
{
- gcn::ListBox::mousePress(x, y, button);
-
- if (button == gcn::MouseInput::LEFT && hasMouse())
- {
- mMousePressed = true;
- }
-}
-
-void ListBox::mouseRelease(int x, int y, int button)
-{
- gcn::ListBox::mouseRelease(x, y, button);
-
- mMousePressed = false;
-}
-
-void ListBox::mouseMotion(int x, int y)
-{
- gcn::ListBox::mouseMotion(x, y);
-
// Pretend mouse is pressed continuously while dragged. Causes list
// selection to be updated as is default in many GUIs.
- if (mMousePressed)
- {
- mousePress(x, y, gcn::MouseInput::LEFT);
- }
+ mousePressed(event);
}
void ListBox::fireSelectionChangedEvent()
diff --git a/src/gui/listbox.h b/src/gui/listbox.h
index deca07cf..1d480eb1 100644
--- a/src/gui/listbox.h
+++ b/src/gui/listbox.h
@@ -48,9 +48,7 @@ class ListBox : public gcn::ListBox
*/
void draw(gcn::Graphics *graphics);
- void mousePress(int x, int y, int button);
- void mouseRelease(int x, int y, int button);
- void mouseMotion(int x, int y);
+ void mouseDragged(gcn::MouseEvent &event);
/**
* Adds a listener to the list that's notified each time a change to
@@ -81,8 +79,6 @@ class ListBox : public gcn::ListBox
*/
void fireSelectionChangedEvent();
- bool mMousePressed; /**< Keeps track of mouse pressed status. */
-
std::list<SelectionListener*> mListeners;
};
diff --git a/src/gui/login.cpp b/src/gui/login.cpp
index b8d4df2b..664074aa 100644
--- a/src/gui/login.cpp
+++ b/src/gui/login.cpp
@@ -43,9 +43,9 @@ WrongDataNoticeListener::setTarget(gcn::TextField *textField)
}
void
-WrongDataNoticeListener::action(const std::string &eventId, gcn::Widget *widget)
+WrongDataNoticeListener::action(const gcn::ActionEvent &event)
{
- if (eventId == "ok")
+ if (event.getId() == "ok")
{
// Reset the field
mTarget->setText("");
@@ -85,8 +85,8 @@ LoginDialog::LoginDialog(LoginData *loginData):
mKeepCheck->getX() + mKeepCheck->getWidth() + 10,
91 - mRegisterButton->getHeight() - 5);
- mUserField->setEventId("ok");
- mPassField->setEventId("ok");
+ mUserField->setActionEventId("ok");
+ mPassField->setActionEventId("ok");
mUserField->addActionListener(this);
mPassField->addActionListener(this);
@@ -119,9 +119,9 @@ LoginDialog::~LoginDialog()
}
void
-LoginDialog::action(const std::string &eventId, gcn::Widget *widget)
+LoginDialog::action(const gcn::ActionEvent &event)
{
- if (eventId == "ok")
+ if (event.getId() == "ok")
{
// Check login
if (mUserField->getText().empty())
@@ -142,11 +142,11 @@ LoginDialog::action(const std::string &eventId, gcn::Widget *widget)
state = STATE_LOGIN_ATTEMPT;
}
}
- else if (eventId == "cancel")
+ else if (event.getId() == "cancel")
{
state = STATE_EXIT;
}
- else if (eventId == "register")
+ else if (event.getId() == "register")
{
state = STATE_REGISTER;
}
diff --git a/src/gui/login.h b/src/gui/login.h
index 6d510da7..05c0da31 100644
--- a/src/gui/login.h
+++ b/src/gui/login.h
@@ -38,7 +38,7 @@ class LoginData;
class WrongDataNoticeListener : public gcn::ActionListener {
public:
void setTarget(gcn::TextField *textField);
- void action(const std::string& eventId, gcn::Widget* widget);
+ void action(const gcn::ActionEvent &event);
private:
gcn::TextField *mTarget;
};
@@ -65,7 +65,7 @@ class LoginDialog : public Window, public gcn::ActionListener {
/**
* Called when receiving actions from the widgets.
*/
- void action(const std::string& eventId, gcn::Widget* widget);
+ void action(const gcn::ActionEvent &event);
private:
gcn::TextField *mUserField;
diff --git a/src/gui/menuwindow.cpp b/src/gui/menuwindow.cpp
index a1b342f0..ba4c8e94 100644
--- a/src/gui/menuwindow.cpp
+++ b/src/gui/menuwindow.cpp
@@ -39,7 +39,7 @@ namespace {
/**
* Called when receiving actions from widget.
*/
- void action(const std::string &eventId, gcn::Widget *widget);
+ void action(const gcn::ActionEvent &event);
} listener;
}
@@ -75,26 +75,26 @@ void MenuWindow::draw(gcn::Graphics *graphics)
}
-void MenuWindowListener::action(const std::string &eventId, gcn::Widget *widget)
+void MenuWindowListener::action(const gcn::ActionEvent &event)
{
Window *window = NULL;
- if (eventId == "Status")
+ if (event.getId() == "Status")
{
window = statusWindow;
}
- else if (eventId == "Equipment")
+ else if (event.getId() == "Equipment")
{
window = equipmentWindow;
}
- else if (eventId == "Inventory")
+ else if (event.getId() == "Inventory")
{
window = inventoryWindow;
}
- else if (eventId == "Skills")
+ else if (event.getId() == "Skills")
{
window = skillDialog;
}
- else if (eventId == "Setup")
+ else if (event.getId() == "Setup")
{
window = setupWindow;
}
diff --git a/src/gui/newskill.cpp b/src/gui/newskill.cpp
index 7f5de543..6783a546 100644
--- a/src/gui/newskill.cpp
+++ b/src/gui/newskill.cpp
@@ -121,46 +121,46 @@ NewSkillDialog::NewSkillDialog():
setLocationRelativeTo(getParent());
}
-void NewSkillDialog::action(const std::string &eventId, gcn::Widget *widget)
+void NewSkillDialog::action(const gcn::ActionEvent &event)
{
- int osp = startPoint;
- if (eventId == "close")
+ int osp = startPoint;
+ if (event.getId() == "close")
{
setVisible(false);
}
- else if (eventId == "g1") // weapons group 0-9
+ else if (event.getId() == "g1") // weapons group 0-9
{
startPoint =0;
}
- else if (eventId == "g2") // magic group 10-19
+ else if (event.getId() == "g2") // magic group 10-19
{
startPoint =10;
}
- else if (eventId == "g3") // craft group 20-29
+ else if (event.getId() == "g3") // craft group 20-29
{
startPoint =20;
}
- else if (eventId == "g4") // general group 30-39
+ else if (event.getId() == "g4") // general group 30-39
{
startPoint =30;
}
- else if (eventId == "g5") // combat group 40-49
+ else if (event.getId() == "g5") // combat group 40-49
{
startPoint =40;
}
- else if (eventId == "g6") // e. resist group 50-59
+ else if (event.getId() == "g6") // e. resist group 50-59
{
startPoint =50;
}
- else if (eventId == "g7") // s resist group 60-69
+ else if (event.getId() == "g7") // s resist group 60-69
{
startPoint =60;
}
- else if (eventId == "g8") // hunting group 70-79
+ else if (event.getId() == "g8") // hunting group 70-79
{
startPoint =70;
}
- else if (eventId == "g9") // stats group 80-89
+ else if (event.getId() == "g9") // stats group 80-89
{
startPoint =80;
}
diff --git a/src/gui/newskill.h b/src/gui/newskill.h
index 224574bd..6e12169f 100644
--- a/src/gui/newskill.h
+++ b/src/gui/newskill.h
@@ -55,7 +55,7 @@ class NewSkillDialog : public Window, public gcn::ActionListener
NewSkillDialog();
// action listener
- void action(const std::string& eventId, gcn::Widget* widget);
+ void action(const gcn::ActionEvent &event);
private:
void resetNSD(); // updates the values in the dialog box
diff --git a/src/gui/npc_text.cpp b/src/gui/npc_text.cpp
index 5b7ca439..2dd223bd 100644
--- a/src/gui/npc_text.cpp
+++ b/src/gui/npc_text.cpp
@@ -67,9 +67,9 @@ NpcTextDialog::addText(const std::string &text)
}
void
-NpcTextDialog::action(const std::string &eventId, gcn::Widget *widget)
+NpcTextDialog::action(const gcn::ActionEvent &event)
{
- if (eventId == "ok")
+ if (event.getId() == "ok")
{
setText("");
setVisible(false);
diff --git a/src/gui/npc_text.h b/src/gui/npc_text.h
index 3ce1215d..869661c4 100644
--- a/src/gui/npc_text.h
+++ b/src/gui/npc_text.h
@@ -49,7 +49,7 @@ class NpcTextDialog : public Window, public gcn::ActionListener
* Called when receiving actions from the widgets.
*/
void
- action(const std::string& eventId, gcn::Widget* widget);
+ action(const gcn::ActionEvent &event);
/**
* Sets the text shows in the dialog.
diff --git a/src/gui/npclistdialog.cpp b/src/gui/npclistdialog.cpp
index d1c3ddcb..1bcdc8ff 100644
--- a/src/gui/npclistdialog.cpp
+++ b/src/gui/npclistdialog.cpp
@@ -50,7 +50,7 @@ NpcListDialog::NpcListDialog():
cancelButton->getX() - 5 - okButton->getWidth(),
cancelButton->getY());
- mItemList->setEventId("item");
+ mItemList->setActionEventId("item");
mItemList->addActionListener(this);
@@ -91,11 +91,11 @@ NpcListDialog::reset()
}
void
-NpcListDialog::action(const std::string &eventId, gcn::Widget *widget)
+NpcListDialog::action(const gcn::ActionEvent &event)
{
int choice = 0;
- if (eventId == "ok")
+ if (event.getId() == "ok")
{
// Send the selected index back to the server
int selectedIndex = mItemList->getSelected();
@@ -104,7 +104,7 @@ NpcListDialog::action(const std::string &eventId, gcn::Widget *widget)
choice = selectedIndex + 1;
}
}
- else if (eventId == "cancel")
+ else if (event.getId() == "cancel")
{
choice = 0xff; // 0xff means cancel
}
diff --git a/src/gui/npclistdialog.h b/src/gui/npclistdialog.h
index 03b76681..c09b0a8c 100644
--- a/src/gui/npclistdialog.h
+++ b/src/gui/npclistdialog.h
@@ -54,7 +54,7 @@ class NpcListDialog : public Window, public gcn::ActionListener,
* Called when receiving actions from the widgets.
*/
void
- action(const std::string& eventId, gcn::Widget* widget);
+ action(const gcn::ActionEvent &event);
/**
* Returns the number of items in the choices list.
diff --git a/src/gui/ok_dialog.cpp b/src/gui/ok_dialog.cpp
index 4f9623d7..ca9d2a7b 100644
--- a/src/gui/ok_dialog.cpp
+++ b/src/gui/ok_dialog.cpp
@@ -55,17 +55,17 @@ OkDialog::OkDialog(const std::string &title, const std::string &msg,
okButton->requestFocus();
}
-void OkDialog::action(const std::string &eventId, gcn::Widget *widget)
+void OkDialog::action(const gcn::ActionEvent &event)
{
// Proxy button events to our listeners
ActionListenerIterator i;
for (i = mActionListeners.begin(); i != mActionListeners.end(); ++i)
{
- (*i)->action(eventId, widget);
+ (*i)->action(event);
}
// Can we receive anything else anyway?
- if (eventId == "ok") {
+ if (event.getId() == "ok") {
scheduleDelete();
}
}
diff --git a/src/gui/ok_dialog.h b/src/gui/ok_dialog.h
index 8ae08955..a7b24a90 100644
--- a/src/gui/ok_dialog.h
+++ b/src/gui/ok_dialog.h
@@ -46,7 +46,7 @@ class OkDialog : public Window, public gcn::ActionListener {
/**
* Called when receiving actions from the widgets.
*/
- void action(const std::string &eventId, gcn::Widget *widget);
+ void action(const gcn::ActionEvent &event);
};
#endif
diff --git a/src/gui/playerbox.cpp b/src/gui/playerbox.cpp
index 5fbe79b7..fad156f1 100644
--- a/src/gui/playerbox.cpp
+++ b/src/gui/playerbox.cpp
@@ -28,7 +28,6 @@
#include "../resources/image.h"
#include "../resources/resourcemanager.h"
-#include "../resources/spriteset.h"
#include "../utils/dtor.h"
diff --git a/src/gui/register.cpp b/src/gui/register.cpp
index 70cd6dc4..4539e48e 100644
--- a/src/gui/register.cpp
+++ b/src/gui/register.cpp
@@ -108,13 +108,13 @@ RegisterDialog::~RegisterDialog()
}
void
-RegisterDialog::action(const std::string &eventId, gcn::Widget *widget)
+RegisterDialog::action(const gcn::ActionEvent &event)
{
- if (eventId == "cancel")
+ if (event.getId() == "cancel")
{
state = STATE_LOGIN;
}
- else if (eventId == "register")
+ else if (event.getId() == "register")
{
const std::string user = mUserField->getText();
logger->log("RegisterDialog::register Username is %s", user.c_str());
diff --git a/src/gui/register.h b/src/gui/register.h
index 4c98788f..4ffe451f 100644
--- a/src/gui/register.h
+++ b/src/gui/register.h
@@ -56,7 +56,7 @@ class RegisterDialog : public Window, public gcn::ActionListener {
/**
* Called when receiving actions from the widgets.
*/
- void action(const std::string& eventId, gcn::Widget* widget);
+ void action(const gcn::ActionEvent &event);
// Made them public to have the possibility to request focus
// from external functions.
diff --git a/src/gui/sell.cpp b/src/gui/sell.cpp
index b0957f9e..c9878c84 100644
--- a/src/gui/sell.cpp
+++ b/src/gui/sell.cpp
@@ -87,8 +87,8 @@ SellDialog::SellDialog():
quitButton->setPosition(208, 186);
- mShopItemList->setEventId("item");
- mSlider->setEventId("mSlider");
+ mShopItemList->setActionEventId("item");
+ mSlider->setActionEventId("mSlider");
mShopItemList->setPriceCheck(false);
@@ -154,11 +154,11 @@ void SellDialog::addItem(Item *item, int price)
mShopItemList->adjustSize();
}
-void SellDialog::action(const std::string &eventId, gcn::Widget *widget)
+void SellDialog::action(const gcn::ActionEvent &event)
{
int selectedItem = mShopItemList->getSelected();
- if (eventId == "item")
+ if (event.getId() == "item")
{
mAmountItems = 0;
mSlider->setValue(0);
@@ -182,7 +182,7 @@ void SellDialog::action(const std::string &eventId, gcn::Widget *widget)
}
mQuantityLabel->adjustSize();
}
- else if (eventId == "quit")
+ else if (event.getId() == "quit")
{
setVisible(false);
current_npc = 0;
@@ -195,13 +195,13 @@ void SellDialog::action(const std::string &eventId, gcn::Widget *widget)
bool updateButtonsAndLabels = false;
- if (eventId == "mSlider")
+ if (event.getId() == "mSlider")
{
mAmountItems = (int)(mSlider->getValue() * mMaxItems);
updateButtonsAndLabels = true;
}
- else if (eventId == "+")
+ else if (event.getId() == "+")
{
assert(mAmountItems < mMaxItems);
mAmountItems++;
@@ -209,7 +209,7 @@ void SellDialog::action(const std::string &eventId, gcn::Widget *widget)
updateButtonsAndLabels = true;
}
- else if (eventId == "-")
+ else if (event.getId() == "-")
{
assert(mAmountItems > 0);
mAmountItems--;
@@ -218,7 +218,7 @@ void SellDialog::action(const std::string &eventId, gcn::Widget *widget)
updateButtonsAndLabels = true;
}
- else if (eventId == "sell")
+ else if (event.getId() == "sell")
{
// Attempt sell
assert(mAmountItems > 0 && mAmountItems <= mMaxItems);
diff --git a/src/gui/sell.h b/src/gui/sell.h
index ba324576..68bd7b8b 100644
--- a/src/gui/sell.h
+++ b/src/gui/sell.h
@@ -68,7 +68,7 @@ class SellDialog : public Window, gcn::ActionListener, SelectionListener
/**
* Called when receiving actions from the widgets.
*/
- void action(const std::string& eventId, gcn::Widget* widget);
+ void action(const gcn::ActionEvent &event);
/**
* Updates labels according to selected item.
diff --git a/src/gui/serverdialog.cpp b/src/gui/serverdialog.cpp
index bd17bff7..bf29f0d3 100644
--- a/src/gui/serverdialog.cpp
+++ b/src/gui/serverdialog.cpp
@@ -44,9 +44,9 @@
const short MAX_SERVERLIST = 5;
void
-DropDownListener::action(const std::string &eventId, gcn::Widget *widget)
+DropDownListener::action(const gcn::ActionEvent &event)
{
- if (eventId == "ok")
+ if (event.getId() == "ok")
{
// Reset the text fields and give back the server dialog.
mServerNameField->setText("");
@@ -56,13 +56,14 @@ DropDownListener::action(const std::string &eventId, gcn::Widget *widget)
mServerNameField->requestFocus();
}
- else if (eventId == "changeSelection")
+ else if (event.getId() == "changeSelection")
{
// Change the textField Values according to new selection
if (currentSelectedIndex != mServersListBox->getSelected())
{
Server myServer;
- myServer = mServersListModel->getServer(mServersListBox->getSelected());
+ myServer = mServersListModel->getServer(
+ mServersListBox->getSelected());
mServerNameField->setText(myServer.serverName);
mServerPortField->setText(toString(myServer.port));
currentSelectedIndex = mServersListBox->getSelected();
@@ -131,7 +132,7 @@ ServerDialog::ServerDialog(LoginData *loginData):
mMostUsedServersScrollArea, mMostUsedServersListBox);
mDropDownListener = new DropDownListener(mServerNameField, mPortField,
- mMostUsedServersListModel, mMostUsedServersListBox);
+ mMostUsedServersListModel, mMostUsedServersListBox);
mOkButton = new Button("OK", "ok", this);
mCancelButton = new Button("Cancel", "cancel", this);
@@ -157,9 +158,9 @@ ServerDialog::ServerDialog(LoginData *loginData):
mCancelButton->getX() - mOkButton->getWidth() - 5,
100 - mOkButton->getHeight() - 5);
- mServerNameField->setEventId("ok");
- mPortField->setEventId("ok");
- mMostUsedServersDropDown->setEventId("changeSelection");
+ mServerNameField->setActionEventId("ok");
+ mPortField->setActionEventId("ok");
+ mMostUsedServersDropDown->setActionEventId("changeSelection");
mServerNameField->addActionListener(this);
mPortField->addActionListener(this);
@@ -193,9 +194,9 @@ ServerDialog::~ServerDialog()
}
void
-ServerDialog::action(const std::string &eventId, gcn::Widget *widget)
+ServerDialog::action(const gcn::ActionEvent &event)
{
- if (eventId == "ok")
+ if (event.getId() == "ok")
{
// Check login
if (mServerNameField->getText().empty() || mPortField->getText().empty())
@@ -240,7 +241,7 @@ ServerDialog::action(const std::string &eventId, gcn::Widget *widget)
state = STATE_CONNECT_ACCOUNT;
}
}
- else if (eventId == "cancel")
+ else if (event.getId() == "cancel")
{
state = STATE_EXIT;
}
diff --git a/src/gui/serverdialog.h b/src/gui/serverdialog.h
index d907f340..2bb0609f 100644
--- a/src/gui/serverdialog.h
+++ b/src/gui/serverdialog.h
@@ -98,8 +98,7 @@ class DropDownListener : public gcn::ActionListener
mServerPortField(serverPortField),
mServersListModel(serversListModel),
mServersListBox(serversListBox) {};
- void action(const std::string& eventId,
- gcn::Widget* widget);
+ void action(const gcn::ActionEvent &event);
private:
short currentSelectedIndex;
gcn::TextField *mServerNameField;
@@ -132,7 +131,7 @@ class ServerDialog : public Window, public gcn::ActionListener
/**
* Called when receiving actions from the widgets.
*/
- void action(const std::string &eventId, gcn::Widget *widget);
+ void action(const gcn::ActionEvent &event);
private:
gcn::TextField *mServerNameField;
diff --git a/src/gui/setup.cpp b/src/gui/setup.cpp
index 78b10498..3add3a18 100644
--- a/src/gui/setup.cpp
+++ b/src/gui/setup.cpp
@@ -85,19 +85,19 @@ Setup::~Setup()
for_each(mTabs.begin(), mTabs.end(), make_dtor(mTabs));
}
-void Setup::action(const std::string& event, gcn::Widget *widget)
+void Setup::action(const gcn::ActionEvent &event)
{
- if (event == "Apply")
+ if (event.getId() == "Apply")
{
setVisible(false);
for_each(mTabs.begin(), mTabs.end(), std::mem_fun(&SetupTab::apply));
}
- else if (event == "Cancel")
+ else if (event.getId() == "Cancel")
{
setVisible(false);
for_each(mTabs.begin(), mTabs.end(), std::mem_fun(&SetupTab::cancel));
}
- else if (event == "Reset Windows")
+ else if (event.getId() == "Reset Windows")
{
statusWindow->resetToDefaultSize();
minimap->resetToDefaultSize();
diff --git a/src/gui/setup.h b/src/gui/setup.h
index 6601ce3d..77173367 100644
--- a/src/gui/setup.h
+++ b/src/gui/setup.h
@@ -54,7 +54,7 @@ class Setup : public Window, public gcn::ActionListener
* Event handling method.
*/
void
- action(const std::string& eventId, gcn::Widget* widget);
+ action(const gcn::ActionEvent &event);
private:
std::list<SetupTab*> mTabs;
diff --git a/src/gui/setup_audio.cpp b/src/gui/setup_audio.cpp
index db88ff64..e5aadf80 100644
--- a/src/gui/setup_audio.cpp
+++ b/src/gui/setup_audio.cpp
@@ -46,8 +46,8 @@ Setup_Audio::Setup_Audio():
gcn::Label *sfxLabel = new gcn::Label("Sfx volume");
gcn::Label *musicLabel = new gcn::Label("Music volume");
- mSfxSlider->setEventId("sfx");
- mMusicSlider->setEventId("music");
+ mSfxSlider->setActionEventId("sfx");
+ mMusicSlider->setActionEventId("music");
mSfxSlider->addActionListener(this);
mMusicSlider->addActionListener(this);
@@ -108,14 +108,14 @@ void Setup_Audio::cancel()
config.setValue("musicVolume", mMusicVolume);
}
-void Setup_Audio::action(const std::string& event, gcn::Widget *widget)
+void Setup_Audio::action(const gcn::ActionEvent &event)
{
- if (event == "sfx")
+ if (event.getId() == "sfx")
{
config.setValue("sfxVolume", (int)mSfxSlider->getValue());
sound.setSfxVolume((int)mSfxSlider->getValue());
}
- else if (event == "music")
+ else if (event.getId() == "music")
{
config.setValue("musicVolume", (int)mMusicSlider->getValue());
sound.setMusicVolume((int)mMusicSlider->getValue());
diff --git a/src/gui/setup_audio.h b/src/gui/setup_audio.h
index f09f62da..6e722f74 100644
--- a/src/gui/setup_audio.h
+++ b/src/gui/setup_audio.h
@@ -38,7 +38,7 @@ class Setup_Audio : public SetupTab, public gcn::ActionListener
void apply();
void cancel();
- void action(const std::string& eventId, gcn::Widget* widget);
+ void action(const gcn::ActionEvent &event);
private:
int mMusicVolume, mSfxVolume;
diff --git a/src/gui/setup_joystick.cpp b/src/gui/setup_joystick.cpp
index 685d88cf..56f411d7 100644
--- a/src/gui/setup_joystick.cpp
+++ b/src/gui/setup_joystick.cpp
@@ -45,7 +45,6 @@ Setup_Joystick::Setup_Joystick():
mOriginalJoystickEnabled = (int)config.getValue("joystickEnabled", 0) != 0;
mJoystickEnabled->setMarked(mOriginalJoystickEnabled);
- mJoystickEnabled->setEventId("joystickEnabled");
mJoystickEnabled->addActionListener(this);
add(mCalibrateLabel);
@@ -53,13 +52,13 @@ Setup_Joystick::Setup_Joystick():
add(mJoystickEnabled);
}
-void Setup_Joystick::action(const std::string &event, gcn::Widget *widget)
+void Setup_Joystick::action(const gcn::ActionEvent &event)
{
if (!joystick) {
return;
}
- if (event == "joystickEnabled")
+ if (event.getSource() == mJoystickEnabled)
{
joystick->setEnabled(mJoystickEnabled->isMarked());
}
diff --git a/src/gui/setup_joystick.h b/src/gui/setup_joystick.h
index 4cc2b3d9..6d3ad129 100644
--- a/src/gui/setup_joystick.h
+++ b/src/gui/setup_joystick.h
@@ -38,7 +38,7 @@ class Setup_Joystick : public SetupTab, public gcn::ActionListener
void apply();
void cancel();
- void action(const std::string& eventId, gcn::Widget* widget);
+ void action(const gcn::ActionEvent &event);
private:
gcn::Label *mCalibrateLabel;
diff --git a/src/gui/setup_video.cpp b/src/gui/setup_video.cpp
index 7a4aae03..8930af3e 100644
--- a/src/gui/setup_video.cpp
+++ b/src/gui/setup_video.cpp
@@ -158,16 +158,16 @@ Setup_Video::Setup_Video():
mFpsSlider->setEnabled(mFps > 0);
mFpsCheckBox->setMarked(mFps > 0);
- mCustomCursorCheckBox->setEventId("customcursor");
- mAlphaSlider->setEventId("guialpha");
- mFpsCheckBox->setEventId("fpslimitcheckbox");
- mFpsSlider->setEventId("fpslimitslider");
- mScrollRadiusSlider->setEventId("scrollradiusslider");
- mScrollRadiusField->setEventId("scrollradiusfield");
- mScrollLazinessSlider->setEventId("scrolllazinessslider");
- mScrollLazinessField->setEventId("scrolllazinessfield");
- mOverlayDetailSlider->setEventId("overlaydetailslider");
- mOverlayDetailField->setEventId("overlaydetailfield");
+ mCustomCursorCheckBox->setActionEventId("customcursor");
+ mAlphaSlider->setActionEventId("guialpha");
+ mFpsCheckBox->setActionEventId("fpslimitcheckbox");
+ mFpsSlider->setActionEventId("fpslimitslider");
+ mScrollRadiusSlider->setActionEventId("scrollradiusslider");
+ mScrollRadiusField->setActionEventId("scrollradiusfield");
+ mScrollLazinessSlider->setActionEventId("scrolllazinessslider");
+ mScrollLazinessField->setActionEventId("scrolllazinessfield");
+ mOverlayDetailSlider->setActionEventId("overlaydetailslider");
+ mOverlayDetailField->setActionEventId("overlaydetailfield");
mCustomCursorCheckBox->addActionListener(this);
mAlphaSlider->addActionListener(this);
@@ -331,37 +331,37 @@ void Setup_Video::cancel()
config.setValue("opengl", mOpenGLEnabled ? 1 : 0);
}
-void Setup_Video::action(const std::string &event, gcn::Widget *widget)
+void Setup_Video::action(const gcn::ActionEvent &event)
{
- if (event == "guialpha")
+ if (event.getId() == "guialpha")
{
config.setValue("guialpha", mAlphaSlider->getValue());
}
- else if (event == "customcursor")
+ else if (event.getId() == "customcursor")
{
config.setValue("customcursor",
mCustomCursorCheckBox->isMarked() ? 1 : 0);
}
- else if (event == "fpslimitslider")
+ else if (event.getId() == "fpslimitslider")
{
- mFps = (int)mFpsSlider->getValue();
+ mFps = (int) mFpsSlider->getValue();
mFpsField->setText(toString(mFps));
}
- else if (event == "scrollradiusslider")
+ else if (event.getId() == "scrollradiusslider")
{
- int val = (int)mScrollRadiusSlider->getValue();
+ int val = (int) mScrollRadiusSlider->getValue();
mScrollRadiusField->setText(toString(val));
config.setValue("ScrollRadius", val);
}
- else if (event == "scrolllazinessslider")
+ else if (event.getId() == "scrolllazinessslider")
{
- int val = (int)mScrollLazinessSlider->getValue();
+ int val = (int) mScrollLazinessSlider->getValue();
mScrollLazinessField->setText(toString(val));
config.setValue("ScrollLaziness", val);
}
- else if (event == "overlaydetailslider")
+ else if (event.getId() == "overlaydetailslider")
{
- int val = (int)mOverlayDetailSlider->getValue();
+ int val = (int) mOverlayDetailSlider->getValue();
switch (val)
{
case 0:
@@ -376,11 +376,11 @@ void Setup_Video::action(const std::string &event, gcn::Widget *widget)
}
config.setValue("OverlayDetail", val);
}
- else if (event == "fpslimitcheckbox")
+ else if (event.getId() == "fpslimitcheckbox")
{
if (mFpsCheckBox->isMarked())
{
- mFps = (int)mFpsSlider->getValue();
+ mFps = (int) mFpsSlider->getValue();
}
else
{
@@ -393,7 +393,8 @@ void Setup_Video::action(const std::string &event, gcn::Widget *widget)
}
}
-void Setup_Video::keyPress(const gcn::Key &key)
+void
+Setup_Video::keyPressed(gcn::KeyEvent &event)
{
std::stringstream tempFps(mFpsField->getText());
diff --git a/src/gui/setup_video.h b/src/gui/setup_video.h
index 482d1c65..095fdbd6 100644
--- a/src/gui/setup_video.h
+++ b/src/gui/setup_video.h
@@ -41,10 +41,11 @@ class Setup_Video : public SetupTab, public gcn::ActionListener,
void apply();
void cancel();
- void action(const std::string &eventId, gcn::Widget *widget);
+ void action(const gcn::ActionEvent &event);
/** Called when key is pressed */
- void keyPress(const gcn::Key& key);
+ void
+ keyPressed(gcn::KeyEvent &event);
private:
bool mFullScreenEnabled;
diff --git a/src/gui/shoplistbox.cpp b/src/gui/shoplistbox.cpp
index 4821067c..8cf0b639 100644
--- a/src/gui/shoplistbox.cpp
+++ b/src/gui/shoplistbox.cpp
@@ -125,11 +125,12 @@ void ShopListBox::setSelected(int selected)
fireSelectionChangedEvent();
}
-void ShopListBox::mousePress(int x, int y, int button)
+void ShopListBox::mousePressed(gcn::MouseEvent &event)
{
- if (button == gcn::MouseInput::LEFT && hasMouse())
+ if (event.getButton() == gcn::MouseEvent::LEFT)
{
bool enoughMoney = false;
+ int y = event.getY();
if (mShopItems && mPriceCheck)
{
@@ -145,7 +146,6 @@ void ShopListBox::mousePress(int x, int y, int button)
{
setSelected(y / mRowHeight);
generateAction();
- mMousePressed = true;
}
}
}
diff --git a/src/gui/shoplistbox.h b/src/gui/shoplistbox.h
index 476564b2..1cfb183b 100644
--- a/src/gui/shoplistbox.h
+++ b/src/gui/shoplistbox.h
@@ -54,7 +54,7 @@ class ShopListBox : public ListBox
*/
void draw(gcn::Graphics *graphics);
- void mousePress(int x, int y, int button);
+ void mousePressed(gcn::MouseEvent &event);
/**
* Adds a listener to the list that's notified each time a change to
diff --git a/src/gui/skill.cpp b/src/gui/skill.cpp
index 4f552fd7..1b00a732 100644
--- a/src/gui/skill.cpp
+++ b/src/gui/skill.cpp
@@ -74,7 +74,7 @@ SkillDialog::SkillDialog():
mUseButton->setEnabled(false);
mCloseButton = new Button("Close", "close", this);
- mSkillListBox->setEventId("skill");
+ mSkillListBox->setActionEventId("skill");
skillScrollArea->setHorizontalScrollPolicy(gcn::ScrollArea::SHOW_NEVER);
skillScrollArea->setDimension(gcn::Rectangle(5, 5, 230, 180));
@@ -103,9 +103,9 @@ SkillDialog::~SkillDialog()
cleanList();
}
-void SkillDialog::action(const std::string &eventId, gcn::Widget *widget)
+void SkillDialog::action(const gcn::ActionEvent &event)
{
- if (eventId == "inc")
+ if (event.getId() == "inc")
{
// Increment skill
int selectedSkill = mSkillListBox->getSelected();
@@ -114,13 +114,13 @@ void SkillDialog::action(const std::string &eventId, gcn::Widget *widget)
player_node->raiseSkill(mSkillList[selectedSkill]->id);
}
}
- else if (eventId == "skill")
+ else if (event.getId() == "skill")
{
mIncButton->setEnabled(
mSkillListBox->getSelected() > -1 &&
player_node->mSkillPoint > 0);
}
- else if (eventId == "close")
+ else if (event.getId() == "close")
{
setVisible(false);
}
diff --git a/src/gui/skill.h b/src/gui/skill.h
index 5555fec4..ed1257b0 100644
--- a/src/gui/skill.h
+++ b/src/gui/skill.h
@@ -57,7 +57,7 @@ class SkillDialog : public Window, public gcn::ActionListener,
*/
~SkillDialog();
- void action(const std::string& eventId, gcn::Widget* widget);
+ void action(const gcn::ActionEvent &event);
void update();
diff --git a/src/gui/status.cpp b/src/gui/status.cpp
index bba9f045..9c60752d 100644
--- a/src/gui/status.cpp
+++ b/src/gui/status.cpp
@@ -338,8 +338,10 @@ void StatusWindow::draw(gcn::Graphics *g)
Window::draw(g);
}
-void StatusWindow::action(const std::string &eventId, gcn::Widget *widget)
+void StatusWindow::action(const gcn::ActionEvent &event)
{
+ const std::string &eventId = event.getId();
+
// Stats Part
if (eventId.length() == 3)
{
diff --git a/src/gui/status.h b/src/gui/status.h
index 43dfe8c2..37f8a648 100644
--- a/src/gui/status.h
+++ b/src/gui/status.h
@@ -51,7 +51,7 @@ class StatusWindow : public Window, public gcn::ActionListener {
/**
* Called when receiving actions from widget.
*/
- void action(const std::string& eventId, gcn::Widget* widget);
+ void action(const gcn::ActionEvent &event);
/**
* Draw this window
diff --git a/src/gui/tabbedcontainer.cpp b/src/gui/tabbedcontainer.cpp
index e3d2527b..75f9f3cf 100644
--- a/src/gui/tabbedcontainer.cpp
+++ b/src/gui/tabbedcontainer.cpp
@@ -78,9 +78,9 @@ void TabbedContainer::logic()
Container::logic();
}
-void TabbedContainer::action(const std::string &event, gcn::Widget *widget)
+void TabbedContainer::action(const gcn::ActionEvent &event)
{
- std::stringstream ss(event);
+ std::stringstream ss(event.getId());
int tabNo;
ss >> tabNo;
diff --git a/src/gui/tabbedcontainer.h b/src/gui/tabbedcontainer.h
index 453d8374..2dc017ae 100644
--- a/src/gui/tabbedcontainer.h
+++ b/src/gui/tabbedcontainer.h
@@ -43,7 +43,7 @@ class TabbedContainer : public gcn::Container, public gcn::ActionListener
void logic();
- void action(const std::string &event, gcn::Widget *widget);
+ void action(const gcn::ActionEvent &event);
void setOpaque(bool opaque);
diff --git a/src/gui/trade.cpp b/src/gui/trade.cpp
index 82262563..14b1afa6 100644
--- a/src/gui/trade.cpp
+++ b/src/gui/trade.cpp
@@ -256,11 +256,11 @@ void TradeWindow::selectionChanged(const SelectionEvent &event)
}
}
-void TradeWindow::action(const std::string &eventId, gcn::Widget *widget)
+void TradeWindow::action(const gcn::ActionEvent &event)
{
Item *item = inventoryWindow->getItem();
- if (eventId == "add")
+ if (event.getId() == "add")
{
if (!item)
{
@@ -286,14 +286,14 @@ void TradeWindow::action(const std::string &eventId, gcn::Widget *widget)
new ItemAmountWindow(AMOUNT_TRADE_ADD, this, item);
}
}
- else if (eventId == "cancel")
+ else if (event.getId() == "cancel")
{
// XXX Convert for new server
/*
MessageOut outMsg(CMSG_TRADE_CANCEL_REQUEST);
*/
}
- else if (eventId == "ok")
+ else if (event.getId() == "ok")
{
std::stringstream tempMoney(mMoneyField->getText());
int tempInt;
@@ -317,7 +317,7 @@ void TradeWindow::action(const std::string &eventId, gcn::Widget *widget)
MessageOut outMsg(CMSG_TRADE_ADD_COMPLETE);
*/
}
- else if (eventId == "trade")
+ else if (event.getId() == "trade")
{
// XXX Convert for new server
/*
diff --git a/src/gui/trade.h b/src/gui/trade.h
index ebd05a52..1c64c255 100644
--- a/src/gui/trade.h
+++ b/src/gui/trade.h
@@ -111,7 +111,7 @@ class TradeWindow : public Window, gcn::ActionListener, SelectionListener
/**
* Called when receiving actions from the widgets.
*/
- void action(const std::string &eventId, gcn::Widget *widget);
+ void action(const gcn::ActionEvent &event);
private:
typedef std::auto_ptr<Inventory> InventoryPtr;
diff --git a/src/gui/updatewindow.cpp b/src/gui/updatewindow.cpp
index 73e4489e..d41dfe13 100644
--- a/src/gui/updatewindow.cpp
+++ b/src/gui/updatewindow.cpp
@@ -132,9 +132,9 @@ void UpdaterWindow::enable()
mPlayButton->requestFocus();
}
-void UpdaterWindow::action(const std::string &eventId, gcn::Widget *widget)
+void UpdaterWindow::action(const gcn::ActionEvent &event)
{
- if (eventId == "cancel")
+ if (event.getId() == "cancel")
{
// Register the user cancel
mUserCancel=true;
@@ -148,7 +148,7 @@ void UpdaterWindow::action(const std::string &eventId, gcn::Widget *widget)
mDownloadStatus = UPDATE_ERROR;
}
}
- else if (eventId == "play")
+ else if (event.getId() == "play")
{
state = STATE_LOGIN;
}
diff --git a/src/gui/updatewindow.h b/src/gui/updatewindow.h
index 0d1493ee..8c54be27 100644
--- a/src/gui/updatewindow.h
+++ b/src/gui/updatewindow.h
@@ -79,7 +79,7 @@ class UpdaterWindow : public Window, public gcn::ActionListener
*/
void loadNews();
- void action(const std::string& eventId, gcn::Widget* widget);
+ void action(const gcn::ActionEvent &event);
void logic();
diff --git a/src/gui/viewport.cpp b/src/gui/viewport.cpp
index 75a16865..671ababa 100644
--- a/src/gui/viewport.cpp
+++ b/src/gui/viewport.cpp
@@ -47,6 +47,7 @@ Viewport::Viewport():
mCameraX(0),
mCameraY(0),
mShowDebugPath(false),
+ mPlayerFollowMouse(false),
mPopupActive(false)
{
setOpaque(false);
@@ -243,7 +244,7 @@ Viewport::logic()
}
void
-Viewport::mousePress(int mx, int my, int button)
+Viewport::mousePressed(gcn::MouseEvent &event)
{
// Check if we are alive and kickin'
if (!mMap || !player_node || player_node->mAction == Being::DEAD)
@@ -255,11 +256,11 @@ Viewport::mousePress(int mx, int my, int button)
mPlayerFollowMouse = false;
- int tilex = (mx + mCameraX) / 32;
- int tiley = (my + mCameraY) / 32;
+ int tilex = (event.getX() + mCameraX) / 32;
+ int tiley = (event.getY() + mCameraY) / 32;
// Right click might open a popup
- if (button == gcn::MouseInput::RIGHT)
+ if (event.getButton() == gcn::MouseEvent::RIGHT)
{
Being *being;
FloorItem *floorItem;
@@ -267,12 +268,12 @@ Viewport::mousePress(int mx, int my, int button)
if ((being = beingManager->findBeing(tilex, tiley)) &&
being->getType() != Being::LOCALPLAYER)
{
- showPopup(mx, my, being);
+ showPopup(event.getX(), event.getY(), being);
return;
}
else if((floorItem = floorItemManager->findByCoordinates(tilex, tiley)))
{
- showPopup(mx, my, floorItem);
+ showPopup(event.getX(), event.getY(), floorItem);
return;
}
}
@@ -286,7 +287,7 @@ Viewport::mousePress(int mx, int my, int button)
}
// Left click can cause different actions
- if (button == gcn::MouseInput::LEFT)
+ if (event.getButton() == gcn::MouseEvent::LEFT)
{
FloorItem *item;
@@ -302,13 +303,13 @@ Viewport::mousePress(int mx, int my, int button)
Uint8 *keys = SDL_GetKeyState(NULL);
if (!(keys[SDLK_LSHIFT] || keys[SDLK_RSHIFT]))
{
- player_node->setDestination(mx + mCameraX, my + mCameraY);
+ player_node->setDestination(event.getX() + mCameraX,
+ event.getY() + mCameraY);
}
mPlayerFollowMouse = true;
}
}
-
- if (button == gcn::MouseInput::MIDDLE)
+ else if (event.getButton() == gcn::MouseEvent::MIDDLE)
{
// Find the being nearest to the clicked position
Being *target = beingManager->findNearestLivingBeing(
@@ -323,19 +324,20 @@ Viewport::mousePress(int mx, int my, int button)
}
void
-Viewport::mouseMotion(int mx, int my)
+Viewport::mouseMoved(gcn::MouseEvent &event)
{
if (!mMap || !player_node)
return;
if (mPlayerFollowMouse && mWalkTime == player_node->mWalkTime)
{
- player_node->setDestination(mx + mCameraX, my + mCameraY);
+ player_node->setDestination(event.getX() + mCameraX,
+ event.getY() + mCameraY);
}
}
void
-Viewport::mouseRelease(int mx, int my, int button)
+Viewport::mouseReleased(gcn::MouseEvent &event)
{
mPlayerFollowMouse = false;
}
diff --git a/src/gui/viewport.h b/src/gui/viewport.h
index df78b1da..80475fbf 100644
--- a/src/gui/viewport.h
+++ b/src/gui/viewport.h
@@ -79,31 +79,33 @@ class Viewport : public WindowContainer, public gcn::MouseListener,
/**
* Toggles whether the path debug graphics are shown
*/
- void toggleDebugPath() { mShowDebugPath = !mShowDebugPath; }
+ void
+ toggleDebugPath() { mShowDebugPath = !mShowDebugPath; }
/**
* Handles mouse press on map.
*/
void
- mousePress(int mx, int my, int button);
+ mousePressed(gcn::MouseEvent &event);
/**
* Handles mouse move on map
*/
void
- mouseMotion(int mx, int my);
+ mouseMoved(gcn::MouseEvent &event);
/**
* Handles mouse button release on map.
*/
void
- mouseRelease(int mx, int my, int button);
+ mouseReleased(gcn::MouseEvent &event);
/**
* Shows a popup for an item.
* TODO Find some way to get rid of Item here
*/
- void showPopup(int x, int y, Item *item);
+ void
+ showPopup(int x, int y, Item *item);
/**
* A relevant config option changed.
@@ -111,6 +113,18 @@ class Viewport : public WindowContainer, public gcn::MouseListener,
void
optionChanged(const std::string &name);
+ /**
+ * Returns camera x offset in tiles.
+ */
+ int
+ getCameraX() { return mCameraX; }
+
+ /**
+ * Returns camera y offset in tiles.
+ */
+ int
+ getCameraY() { return mCameraY; }
+
private:
/**
* Shows a popup for a floor item.
@@ -131,8 +145,8 @@ class Viewport : public WindowContainer, public gcn::MouseListener,
int mScrollLaziness;
float mViewX; /**< Current viewpoint in pixels. */
float mViewY; /**< Current viewpoint in pixels. */
- int mCameraX;
- int mCameraY;
+ int mCameraX; /**< Current viewpoint in tiles. */
+ int mCameraY; /**< Current viewpoint in tiles. */
bool mShowDebugPath; /**< Show a path from player to pointer. */
bool mPlayerFollowMouse;
diff --git a/src/gui/window.cpp b/src/gui/window.cpp
index 1960d6ca..bb60c6ff 100644
--- a/src/gui/window.cpp
+++ b/src/gui/window.cpp
@@ -197,6 +197,12 @@ void Window::setContentHeight(int height)
resizeToContent();
}
+void Window::setContentSize(int width, int height)
+{
+ setContentWidth(width);
+ setContentHeight(height);
+}
+
void Window::setLocationRelativeTo(gcn::Widget *widget)
{
int wx, wy;
@@ -209,12 +215,6 @@ void Window::setLocationRelativeTo(gcn::Widget *widget)
getY() + (wy + (widget->getHeight() - getHeight()) / 2 - y));
}
-void Window::setContentSize(int width, int height)
-{
- setContentWidth(width);
- setContentHeight(height);
-}
-
void Window::setMinWidth(unsigned int width)
{
mMinWinWidth = width;
@@ -282,86 +282,60 @@ void Window::add(gcn::Widget *w, int x, int y, bool delChild)
mChrome->add(w, x, y, delChild);
}
-void Window::mousePress(int x, int y, int button)
+void Window::mousePressed(gcn::MouseEvent &event)
{
// Let Guichan move window to top and figure out title bar drag
- gcn::Window::mousePress(x, y, button);
+ gcn::Window::mousePressed(event);
- // If the mouse is not inside the content, the press must have been on the
- // border, and is a candidate for a resize.
- if (isResizable() && button == 1 &&
+ int x = event.getX();
+ int y = event.getY();
+
+ // Activate resizing if the left mouse button was pressed on the grip
+ mMouseResize =
+ isResizable() &&
+ event.getButton() == gcn::MouseEvent::LEFT &&
getGripDimension().isPointInRect(x, y) &&
- !getChildrenArea().isPointInRect(x, y) &&
- hasMouse() &&
- !(mMouseDrag && y > (int)getPadding()))
- {
- mMouseResize = true;
- mMouseXOffset = x;
- mMouseYOffset = y;
- }
+ !getChildrenArea().isPointInRect(x, y);
}
-void Window::mouseMotion(int x, int y)
+void Window::mouseDragged(gcn::MouseEvent &event)
{
- if (mMouseDrag || mMouseResize)
+ // Let Guichan handle title bar drag
+ gcn::Window::mouseDragged(event);
+
+ // Keep guichan window inside screen
+ int newX = std::max(0, getX());
+ int newY = std::max(0, getY());
+ newX = std::min(windowContainer->getWidth() - getWidth(), newX);
+ newY = std::min(windowContainer->getHeight() - getHeight(), newY);
+ setPosition(newX, newY);
+
+ if (mMouseResize && !mIsMoving)
{
- int dx = x - mMouseXOffset;
- int dy = y - mMouseYOffset;
gcn::Rectangle newDim = getDimension();
- // Change the dimension according to dragging and moving
- if (mMouseResize && isResizable())
- {
- // We're dragging bottom right
- newDim.height += dy;
- newDim.width += dx;
- }
- else if (mMouseDrag && isMovable())
- {
- newDim.x += dx;
- newDim.y += dy;
- }
+ // We're dragging bottom right
+ newDim.width += event.getX() - mDragOffsetX;
+ newDim.height += event.getY() - mDragOffsetY;
- // Keep guichan window inside screen
+ // Keep guichan window inside screen (supports resizing any side)
if (newDim.x < 0)
{
- if (mMouseResize)
- {
- newDim.width += newDim.x;
- }
-
+ newDim.width += newDim.x;
newDim.x = 0;
}
if (newDim.y < 0)
{
- if (mMouseResize)
- {
- newDim.height += newDim.y;
- }
-
+ newDim.height += newDim.y;
newDim.y = 0;
}
if (newDim.x + newDim.width > windowContainer->getWidth())
{
- if (mMouseResize)
- {
- newDim.width = windowContainer->getWidth() - newDim.x;
- }
- else
- {
- newDim.x = windowContainer->getWidth() - newDim.width;
- }
+ newDim.width = windowContainer->getWidth() - newDim.x;
}
if (newDim.y + newDim.height > windowContainer->getHeight())
{
- if (mMouseResize)
- {
- newDim.height = windowContainer->getHeight() - newDim.y;
- }
- else
- {
- newDim.y = windowContainer->getHeight() - newDim.height;
- }
+ newDim.height = windowContainer->getHeight() - newDim.y;
}
// Keep the window at least its minimum size
@@ -383,18 +357,9 @@ void Window::mouseMotion(int x, int y)
newDim.height = mMaxWinHeight;
}
- // Snap window to edges
- //if (x < snapSize) x = 0;
- //if (y < snapSize) y = 0;
- //if (x + winWidth + snapSize > screen->w) x = screen->w - winWidth;
- //if (y + winHeight + snapSize > screen->h) y = screen->h - winHeight;
-
// Update mouse offset when dragging bottom or right border
- if (mMouseResize)
- {
- mMouseYOffset += newDim.height - getHeight();
- mMouseXOffset += newDim.width - getWidth();
- }
+ mDragOffsetX += newDim.width - getWidth();
+ mDragOffsetY += newDim.height - getHeight();
// Set the new window and content dimensions
setDimension(newDim);
@@ -403,16 +368,6 @@ void Window::mouseMotion(int x, int y)
}
}
-void
-Window::mouseRelease(int x, int y, int button)
-{
- if (button == 1)
- {
- mMouseResize = false;
- mMouseDrag = false;
- }
-}
-
gcn::Rectangle
Window::getGripDimension()
{
diff --git a/src/gui/window.h b/src/gui/window.h
index 158035c0..9ac02287 100644
--- a/src/gui/window.h
+++ b/src/gui/window.h
@@ -77,12 +77,12 @@ class Window : public gcn::Window
/**
* Adds a widget to the window.
*/
- void add(gcn::Widget *wi, bool delChild=true);
+ void add(gcn::Widget *wi, bool delChild = true);
/**
* Adds a widget to the window and also specifices its position.
*/
- void add(gcn::Widget *w, int x, int y, bool delChild=true);
+ void add(gcn::Widget *w, int x, int y, bool delChild = true);
/**
* Sets the width of the window contents.
@@ -95,14 +95,14 @@ class Window : public gcn::Window
void setContentHeight(int height);
/**
- * Sets the location relative to the given widget.
+ * Sets the size of this window.
*/
- void setLocationRelativeTo(gcn::Widget* widget);
+ void setContentSize(int width, int height);
/**
- * Sets the size of this window.
+ * Sets the location relative to the given widget.
*/
- void setContentSize(int width, int height);
+ void setLocationRelativeTo(gcn::Widget *widget);
/**
* Sets whether of not the window can be resized.
@@ -146,7 +146,7 @@ class Window : public gcn::Window
*/
bool isSticky();
- /**
+ /**
* Overloads window setVisible by guichan to allow sticky window
* Handling
*/
@@ -171,9 +171,8 @@ class Window : public gcn::Window
* Window dragging and resizing mouse related. These methods also makes
* sure the window is not dragged/resized outside of the screen.
*/
- void mousePress(int x, int y, int button);
- void mouseMotion(int mx, int my);
- void mouseRelease(int x, int y, int button);
+ void mousePressed(gcn::MouseEvent &event);
+ void mouseDragged(gcn::MouseEvent &event);
/**
* Gets the position of the resize grip.
diff --git a/src/main.cpp b/src/main.cpp
index b9eeaeb5..3a448494 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -110,7 +110,8 @@ Net::Connection *chatServerConnection = 0;
namespace {
struct ErrorListener : public gcn::ActionListener
{
- void action(const std::string &eventId, gcn::Widget *widget) {
+ void action(const gcn::ActionEvent &event)
+ {
state = STATE_CHOOSE_SERVER;
}
} errorListener;
@@ -713,15 +714,16 @@ int main(int argc, char *argv[])
logger->log("State: CHAR_SELECT");
currentDialog = new CharSelectDialog(&charInfo);
- if (((CharSelectDialog*)currentDialog)->
+ if (((CharSelectDialog*) currentDialog)->
selectByName(options.playername))
options.chooseDefault = true;
else
- ((CharSelectDialog*)currentDialog)->selectByName(
+ ((CharSelectDialog*) currentDialog)->selectByName(
config.getValue("lastCharacter", ""));
if (options.chooseDefault)
- ((CharSelectDialog*)currentDialog)->action("ok", NULL);
+ ((CharSelectDialog*) currentDialog)->action(
+ gcn::ActionEvent(NULL, "ok"));
break;
case STATE_ERROR:
diff --git a/src/net/playerhandler.cpp b/src/net/playerhandler.cpp
index f16037cf..327edea3 100644
--- a/src/net/playerhandler.cpp
+++ b/src/net/playerhandler.cpp
@@ -56,7 +56,7 @@ extern Window *buySellDialog;
namespace {
struct WeightListener : public gcn::ActionListener
{
- void action(const std::string &eventId, gcn::Widget *widget)
+ void action(const gcn::ActionEvent &event)
{
weightNotice = NULL;
}
@@ -70,7 +70,7 @@ namespace {
namespace {
struct DeathListener : public gcn::ActionListener
{
- void action(const std::string &eventId, gcn::Widget *widget)
+ void action(const gcn::ActionEvent &event)
{
player_node->revive();
deathNotice = NULL;
diff --git a/src/net/tradehandler.cpp b/src/net/tradehandler.cpp
index 2ebc160f..b3e80675 100644
--- a/src/net/tradehandler.cpp
+++ b/src/net/tradehandler.cpp
@@ -41,9 +41,9 @@ std::string tradePartnerName;
namespace {
struct RequestTradeListener : public gcn::ActionListener
{
- void action(const std::string &eventId, gcn::Widget *widget)
+ void action(const gcn::ActionEvent &event)
{
- player_node->tradeReply(eventId == "yes");
+ player_node->tradeReply(event.getId() == "yes");
};
} listener;
}
diff --git a/tools/Purger.java b/tools/Purger.java
deleted file mode 100644
index 1751c8de..00000000
--- a/tools/Purger.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Purger (c) 2006 Eugenio Favalli
- * License: GPL, v2 or later
- */
-
-import java.io.*;
-import java.text.*;
-import java.util.*;
-
- public class Purger {
-
- public static void main(String[] args) {
- if (args.length != 2) {
- System.out.println(
- "Usage: java Purger <folder> <date>\n" +
- " - folder: is the path to account.txt and athena.txt files.\n" +
- " - date: accounts created before this date will be purged (dd/mm/yy).");
- return;
- }
-
- int accounts = 0;
- int characters = 0;
- int deletedCharacters = 0;
- Vector activeAccounts = new Vector();
-
- File oldAccount = new File(args[0] + "account.txt");
- File oldAthena = new File(args[0] + "athena.txt");
- File newAccount = new File(args[0] + "account.txt.new");
- File newAthena = new File(args[0] + "athena.txt.new");
-
- DateFormat dateFormat = new SimpleDateFormat("dd/MM/yy");
- Date purgeDate;
- try {
- purgeDate = dateFormat.parse(args[1]);
- }
- catch (ParseException e) {
- System.out.println("ERROR: Wrong date format.");
- return;
- }
-
- String line;
- try {
- FileInputStream fin = new FileInputStream(oldAccount);
- BufferedReader input = new BufferedReader(
- new InputStreamReader(fin));
- FileOutputStream fout = new FileOutputStream(newAccount);
- PrintStream output = new PrintStream(fout);
-
- while ((line = input.readLine()) != null) {
- boolean copy = false;
- String[] fields = line.split("\t");
- // Check if we're reading a comment or the last line
- if (line.substring(0, 2).equals("//") || fields[1].charAt(0) == '%') {
- copy = true;
- }
- else {
- // Server accounts should not be purged
- if (!fields[4].equals("S")) {
- accounts++;
- dateFormat = new SimpleDateFormat("yyyy-MM-dd");
- try {
- Date date = dateFormat.parse(fields[3]);
- if (date.after(purgeDate)) {
- activeAccounts.add(fields[0]);
- copy = true;
- }
- }
- catch (ParseException e) {
- System.out.println(
- "ERROR: Wrong date format in account.txt. ("
- + accounts + ": " + line + ")");
- //return;
- }
- catch (Exception e) {
- e.printStackTrace();
- return;
- }
- }
- else {
- copy = true;
- }
- }
- if (copy) {
- try {
- output.println(line);
- }
- catch (Exception e) {
- System.err.println("ERROR: Unable to write file.");
- }
- }
- }
- }
- catch (FileNotFoundException e ) {
- System.out.println(
- "ERROR: file " + oldAccount.getAbsolutePath() + " not found.");
- return;
- }
- catch (Exception e) {
- System.out.println("ERROR: unable to process account.txt");
- e.printStackTrace();
- return;
- }
-
- input.close();
- output.close();
-
- try {
- FileInputStream fin = new FileInputStream(oldAthena);
- BufferedReader input = new BufferedReader(
- new InputStreamReader(fin));
- FileOutputStream fout = new FileOutputStream(newAthena);
- PrintStream output = new PrintStream(fout);
-
- while ((line = input.readLine()) != null) {
- boolean copy = false;
- String[] fields = line.split("\t");
- // Check if we're reading a comment or the last line
- if (line.substring(0, 2).equals("//")
- || fields[1].charAt(0) == '%') {
- copy = true;
- }
- else {
- characters++;
- String id = fields[1].substring(0, fields[1].indexOf(','));
- if (activeAccounts.contains(id)) {
- copy = true;
- }
- else {
- deletedCharacters++;
- }
- }
- if (copy) {
- output.println(line);
- }
- }
- }
- catch (FileNotFoundException e ) {
- System.out.println(
- "ERROR: file " + oldAthena.getAbsolutePath() + " not found.");
- return;
- }
- catch (Exception e) {
- System.out.println("ERROR: unable to process athena.txt");
- e.printStackTrace();
- return;
- }
-
- input.close();
- output.close();
-
- System.out.println(
- "Removed " + (accounts - activeAccounts.size()) + "/" +
- accounts + " accounts.");
- System.out.println(
- "Removed " + deletedCharacters + "/"
- + characters + " characters.");
- }
-
-} \ No newline at end of file