summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Makefile.am2
-rw-r--r--src/engine.cpp5
-rw-r--r--src/engine.h2
-rw-r--r--src/game.cpp4
-rw-r--r--src/gui/buddywindow.cpp50
-rw-r--r--src/gui/buddywindow.h62
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 */
+