diff options
-rw-r--r-- | src/Makefile.am | 2 | ||||
-rw-r--r-- | src/engine.cpp | 5 | ||||
-rw-r--r-- | src/engine.h | 2 | ||||
-rw-r--r-- | src/game.cpp | 4 | ||||
-rw-r--r-- | src/gui/buddywindow.cpp | 50 | ||||
-rw-r--r-- | src/gui/buddywindow.h | 62 |
6 files changed, 125 insertions, 0 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index 6229aaf5..4796655f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,6 +1,8 @@ bin_PROGRAMS = tmw tmw_SOURCES = graphic/spriteset.cpp \ graphic/spriteset.h \ + gui/buddywindow.cpp \ + gui/buddywindow.h \ gui/button.cpp \ gui/button.h \ gui/buy.cpp \ diff --git a/src/engine.cpp b/src/engine.cpp index 9ef0a5a2..ad6adda6 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -30,6 +30,7 @@ #include "gui/itemcontainer.h" #include "gui/item_amount.h" #include "gui/trade.h" +#include "gui/buddywindow.h" #include "main.h" #include "being.h" #include "floor_item.h" @@ -67,6 +68,7 @@ ChargeDialog *chargeDialog; TradeWindow *tradeWindow; RequestTradeDialog *requestTradeDialog; ConfirmDialog *quitDialog; +BuddyWindow *buddyWindow; std::vector<Spriteset*> monsterset; /** @@ -179,6 +181,7 @@ Engine::Engine() equipmentWindow = new EquipmentWindow(); chargeDialog = new ChargeDialog(); tradeWindow = new TradeWindow(); + buddyWindow = new BuddyWindow(); requestTradeDialog = new RequestTradeDialog(); quitDialog = new ConfirmDialog("Quit", "Are you sure you want to quit ?", (gcn::ActionListener*)&exitListener); // Initialize window posisitons @@ -220,6 +223,7 @@ Engine::Engine() equipmentWindow->setVisible(false); chargeDialog->setVisible(false); tradeWindow->setVisible(false); + buddyWindow->setVisible(false); requestTradeDialog->setVisible(false); quitDialog->setVisible(false); // Do not focus any text field @@ -271,6 +275,7 @@ Engine::~Engine() delete newSkillWindow; delete itemAmountWindow; delete tradeWindow; + delete buddyWindow; delete requestTradeDialog; delete quitDialog; diff --git a/src/engine.h b/src/engine.h index 09a366a6..4cb90f6f 100644 --- a/src/engine.h +++ b/src/engine.h @@ -29,6 +29,7 @@ #include "gui/buy.h" #include "gui/sell.h" #include "gui/buysell.h" +#include "gui/buddywindow.h" #include "gui/chat.h" #include "gui/inventory.h" #include "gui/shop.h" @@ -73,6 +74,7 @@ extern EquipmentWindow *equipmentWindow; extern ChargeDialog* chargeDialog; extern RequestTradeDialog *requestTradeDialog; extern TradeWindow *tradeWindow; +extern BuddyWindow *buddyWindow; extern ConfirmDialog *quitDialog; extern std::vector<Spriteset*> monsterset; char get_x_offset(char, char); diff --git a/src/game.cpp b/src/game.cpp index a4fd8aa7..2f0f6ee2 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -280,6 +280,10 @@ void do_input() equipmentWindow->setVisible(!equipmentWindow->isVisible()); used = true; } + else if (keysym.sym == SDLK_b) { + buddyWindow->setVisible(!buddyWindow->isVisible()); + used = true; + } } if (event.key.keysym.sym == SDLK_ESCAPE) diff --git a/src/gui/buddywindow.cpp b/src/gui/buddywindow.cpp new file mode 100644 index 00000000..e5b0d82f --- /dev/null +++ b/src/gui/buddywindow.cpp @@ -0,0 +1,50 @@ +/* + * 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 + * + */ + +#include "buddywindow.h" + +BuddyWindow::BuddyWindow(): + Window("") +{ + setContentSize(80,200); + textlist = new TextBox(); + textlist->setEditable(false); + scrollArea = new ScrollArea(textlist); +} + +BuddyWindow::~BuddyWindow() +{ + delete textlist; + delete scrollArea; +} + +void BuddyWindow::draw(gcn::Graphics *graphics) +{ + // Draw the children + Window::draw(graphics); +} + +void BuddyWindow::action(const std::string& eventId) +{ + +} + diff --git a/src/gui/buddywindow.h b/src/gui/buddywindow.h new file mode 100644 index 00000000..d3ddbbb3 --- /dev/null +++ b/src/gui/buddywindow.h @@ -0,0 +1,62 @@ +/* + * 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 + * + */ + +#ifndef _TMW_BUDDYWINDOW_H +#define _TMW_BUDDYWINDOW_H + +#include <guichan.hpp> +#include "window.h" +#include "scrollarea.h" +#include "textbox.h" +#include "../resources/buddylist.h" + +class BuddyWindow : public Window, public BuddyList, + public gcn::ActionListener +{ + public: + /** + * Constructor. + */ + BuddyWindow(); + + /** + * Destructor. + */ + ~BuddyWindow(); + + /** + * Draws updated list + */ + void draw(gcn::Graphics *graphics); + + /** + * Performs action. + */ + void action(const std::string &actionId); + + private: + TextBox *textlist; + ScrollArea *scrollArea; +}; + +#endif /* _TMW_BUDDYWINDOW_H */ + |