summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIra Rice <irarice@gmail.com>2009-01-27 15:10:02 -0700
committerIra Rice <irarice@gmail.com>2009-01-27 15:10:02 -0700
commit9ef72eaa168ca047f91f1dce2d98ef2c243b31c2 (patch)
tree635b05e7026efd75f1e1c56e0aa74efe09be8122
parent955a7613d1fe116fe5e1da07a222b6849b3c885c (diff)
downloadmana-client-9ef72eaa168ca047f91f1dce2d98ef2c243b31c2.tar.gz
mana-client-9ef72eaa168ca047f91f1dce2d98ef2c243b31c2.tar.bz2
mana-client-9ef72eaa168ca047f91f1dce2d98ef2c243b31c2.tar.xz
mana-client-9ef72eaa168ca047f91f1dce2d98ef2c243b31c2.zip
Removed the fairly useless buttonbox class, as well as removing the
recorder's dependence upon it. This class should get a bit more work done to it to simplify it further, but right now, it preserves all of the same functionality. Signed-off-by: Ira Rice <irarice@gmail.com>
-rw-r--r--aethyra.cbp6
-rw-r--r--po/POTFILES.in1
-rw-r--r--src/Makefile.am6
-rw-r--r--src/gui/buttonbox.cpp43
-rw-r--r--src/gui/buttonbox.h69
-rw-r--r--src/gui/chat.cpp6
-rw-r--r--src/gui/recorder.cpp (renamed from src/recorder.cpp)92
-rw-r--r--src/gui/recorder.h88
-rw-r--r--src/recorder.h48
9 files changed, 143 insertions, 216 deletions
diff --git a/aethyra.cbp b/aethyra.cbp
index ebda9029..2ee2501b 100644
--- a/aethyra.cbp
+++ b/aethyra.cbp
@@ -119,8 +119,6 @@
<Unit filename="src\gui\browserbox.h" />
<Unit filename="src\gui\button.cpp" />
<Unit filename="src\gui\button.h" />
- <Unit filename="src\gui\buttonbox.cpp" />
- <Unit filename="src\gui\buttonbox.h" />
<Unit filename="src\gui\buy.cpp" />
<Unit filename="src\gui\buy.h" />
<Unit filename="src\gui\buysell.cpp" />
@@ -206,6 +204,8 @@
<Unit filename="src\gui\radiobutton.h" />
<Unit filename="src\gui\register.cpp" />
<Unit filename="src\gui\register.h" />
+ <Unit filename="src\gui\recorder.cpp" />
+ <Unit filename="src\gui\recorder.h" />
<Unit filename="src\gui\scrollarea.cpp" />
<Unit filename="src\gui\scrollarea.h" />
<Unit filename="src\gui\sdlinput.cpp" />
@@ -358,8 +358,6 @@
<Unit filename="src\position.cpp" />
<Unit filename="src\position.h" />
<Unit filename="src\properties.h" />
- <Unit filename="src\recorder.cpp" />
- <Unit filename="src\recorder.h" />
<Unit filename="src\resources\action.cpp" />
<Unit filename="src\resources\action.h" />
<Unit filename="src\resources\ambientoverlay.cpp" />
diff --git a/po/POTFILES.in b/po/POTFILES.in
index f338e665..9df309d3 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -24,6 +24,7 @@ src/gui/npcstringdialog.cpp
src/gui/npc_text.cpp
src/gui/ok_dialog.cpp
src/gui/popupmenu.cpp
+src/gui/recorder.h
src/gui/register.cpp
src/gui/sell.cpp
src/gui/setup_audio.cpp
diff --git a/src/Makefile.am b/src/Makefile.am
index 8f76b06a..aebfdc41 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -15,8 +15,6 @@ aethyra_SOURCES = gui/widgets/dropdown.cpp \
gui/browserbox.h \
gui/button.cpp \
gui/button.h \
- gui/buttonbox.cpp \
- gui/buttonbox.h \
gui/buy.cpp \
gui/buy.h \
gui/buysell.cpp \
@@ -102,6 +100,8 @@ aethyra_SOURCES = gui/widgets/dropdown.cpp \
gui/progressbar.h \
gui/radiobutton.cpp \
gui/radiobutton.h \
+ gui/recorder.cpp \
+ gui/recorder.h \
gui/register.cpp \
gui/register.h \
gui/scrollarea.cpp \
@@ -326,8 +326,6 @@ aethyra_SOURCES = gui/widgets/dropdown.cpp \
position.cpp \
position.h \
properties.h \
- recorder.cpp \
- recorder.h \
serverinfo.h \
shopitem.cpp \
shopitem.h \
diff --git a/src/gui/buttonbox.cpp b/src/gui/buttonbox.cpp
deleted file mode 100644
index d29f3c58..00000000
--- a/src/gui/buttonbox.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * The Mana World
- * Copyright 2004 The Mana World Development Team
- *
- * This file is part of The Mana World.
- *
- * The Mana World is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * any later version.
- *
- * The Mana World is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with The Mana World; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include "button.h"
-#include "buttonbox.h"
-
-ButtonBox::ButtonBox(const std::string &title, const std::string &buttonTxt,
- ButtonBoxListener *listener) :
- Window(title),
- mListener(listener)
-{
- Button *button = new Button(buttonTxt, "activate", this);
- setContentSize(button->getWidth() + 10,
- button->getHeight() + 10);
- button->setPosition(5, 5);
- add(button);
-}
-
-void ButtonBox::action(const gcn::ActionEvent &event)
-{
- if (event.getId() == "activate")
- {
- mListener->buttonBoxRespond();
- }
-}
diff --git a/src/gui/buttonbox.h b/src/gui/buttonbox.h
deleted file mode 100644
index 6d0e46b6..00000000
--- a/src/gui/buttonbox.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * The Mana World
- * Copyright 2004 The Mana World Development Team
- *
- * This file is part of The Mana World.
- *
- * The Mana World is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * any later version.
- *
- * The Mana World is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with The Mana World; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef BUTTONBOX_H
-#define BUTTONBOX_H
-
-#include <string>
-
-#include <guichan/actionlistener.hpp>
-
-#include "window.h"
-
-#include "../guichanfwd.h"
-
-class ButtonBoxListener
-{
- public:
-
- /*
- * function that ButtonBox calls when the button has been pressed
- */
- virtual void buttonBoxRespond() = 0;
-};
-
-class ButtonBox : public Window, public gcn::ActionListener
-{
- public:
-
- /*
- * Constructor
- *
- * @param title is the text that appears at the top of the box
- * @param buttonTxt is the text that appears on the button
- * @param listener points to the class that should respond to the
- * button press
- */
- ButtonBox(const std::string &title, const std::string &buttonTxt,
- ButtonBoxListener *listener);
-
- /*
- * called when the button is pressed
- *
- * @param event is the event that is generated
- */
- void action(const gcn::ActionEvent &event);
-
- private:
-
- ButtonBoxListener *mListener;
-};
-#endif
diff --git a/src/gui/chat.cpp b/src/gui/chat.cpp
index 1a3cb2a4..068fad08 100644
--- a/src/gui/chat.cpp
+++ b/src/gui/chat.cpp
@@ -28,6 +28,7 @@
#include "chat.h"
#include "chatinput.h"
#include "itemlinkhandler.h"
+#include "recorder.h"
#include "scrollarea.h"
#include "sdlinput.h"
#include "windowcontainer.h"
@@ -40,7 +41,6 @@
#include "../game.h"
#include "../localplayer.h"
#include "../party.h"
-#include "../recorder.h"
#include "../net/messageout.h"
#include "../net/protocol.h"
@@ -477,7 +477,7 @@ void ChatWindow::chatSend(const std::string &nick, std::string msg)
else if (command == "whisper" || command == "msg" || command == "w")
whisper(nick, msg);
else if (command == "record")
- mRecorder->respond(msg);
+ mRecorder->changeStatus(msg);
else if (command == "toggle")
{
if (msg == "")
@@ -850,7 +850,7 @@ void ChatWindow::help(const std::string & msg1, const std::string & msg2)
}
else if (msg1 == "record")
{
- mRecorder->help(msg2);
+ mRecorder->help2();
}
else if (msg1 == "toggle")
{
diff --git a/src/recorder.cpp b/src/gui/recorder.cpp
index 57f030b2..da67875b 100644
--- a/src/recorder.cpp
+++ b/src/gui/recorder.cpp
@@ -21,71 +21,73 @@
#include <physfs.h>
+#include "button.h"
+#include "chat.h"
#include "recorder.h"
-#include "gui/buttonbox.h"
-#include "gui/chat.h"
+#include "../utils/trim.h"
-#include "utils/trim.h"
-
-Recorder::Recorder(ChatWindow *chat) : mChat(chat)
+Recorder::Recorder(ChatWindow *chat, const std::string &title,
+ const std::string &buttonTxt) :
+ Window(title)
{
- mButtonBox = new ButtonBox("Recording...", "Stop recording", this);
- mButtonBox->setY(20);
+ mChat = chat;
+ Button *button = new Button(buttonTxt, "activate", this);
+ setContentSize(button->getWidth() + 10, button->getHeight() + 10);
+ button->setPosition(5, 5);
+ add(button);
}
void Recorder::record(const std::string &msg)
{
if (mStream.is_open())
{
- mStream << msg << std::endl;
+ mStream << msg << std::endl;
}
}
-void Recorder::respond(const std::string &msg)
+void Recorder::changeStatus(const std::string &msg)
{
std::string msgCopy = msg;
trim(msgCopy);
+
if (msgCopy == "")
{
- if (mStream.is_open())
- {
- mStream.close();
- mButtonBox->setVisible(false);
- /*
- * Message should go after mStream is closed so that it isn't
- * recorded.
- */
- mChat->chatLog("Finishing recording.", BY_SERVER);
- }
- else
- {
- mChat->chatLog("Not currently recording.", BY_SERVER);
- }
- return;
+ if (mStream.is_open())
+ {
+ mStream.close();
+ setVisible(false);
+
+ /*
+ * Message should go after mStream is closed so that it isn't
+ * recorded.
+ */
+ mChat->chatLog("Finishing recording.", BY_SERVER);
+ }
+ else
+ {
+ mChat->chatLog("Not currently recording.", BY_SERVER);
+ }
}
- if (mStream.is_open())
+ else if (mStream.is_open())
{
- mChat->chatLog("Already recording.", BY_SERVER);
+ mChat->chatLog("Already recording.", BY_SERVER);
}
else
{
- /*
- * Message should go before mStream is opened so that it isn't
- * recorded.
- */
- mChat->chatLog("Starting to record...", BY_SERVER);
+ /*
+ * Message should go before mStream is opened so that it isn't
+ * recorded.
+ */
+ mChat->chatLog("Starting to record...", BY_SERVER);
std::string file = std::string(PHYSFS_getUserDir()) + "/.aethyra/" + msgCopy;
- mStream.open(file.c_str(), std::ios_base::trunc);
- if (mStream.is_open())
- {
- mButtonBox->setVisible(true);
- }
- else
- {
- mChat->chatLog("Failed to start recording.", BY_SERVER);
- }
+ mStream.open(file.c_str(), std::ios_base::trunc);
+
+ if (mStream.is_open())
+ setVisible(true);
+ else
+ mChat->chatLog("Failed to start recording.", BY_SERVER);
}
}
@@ -94,21 +96,21 @@ void Recorder::help() const
mChat->chatLog("/record <filename>: Start recording the chat.", BY_SERVER);
}
-void Recorder::help(const std::string &args) const
+void Recorder::help2() const
{
mChat->chatLog("Command: /record <filename>", BY_SERVER);
mChat->chatLog("This command starts recording the chat log to the file "
- "<filename>.", BY_SERVER);
+ "<filename>.", BY_SERVER);
mChat->chatLog("Command: /record", BY_SERVER);
mChat->chatLog("This command finishes a recording session.", BY_SERVER);
}
-void Recorder::buttonBoxRespond()
+void Recorder::action(const gcn::ActionEvent &event)
{
- respond("");
+ if (event.getId() == "activate")
+ changeStatus("");
}
Recorder::~Recorder()
{
- delete mButtonBox;
}
diff --git a/src/gui/recorder.h b/src/gui/recorder.h
new file mode 100644
index 00000000..6f917c25
--- /dev/null
+++ b/src/gui/recorder.h
@@ -0,0 +1,88 @@
+/*
+ * Aethyra
+ * Copyright (C) 2008 Aethyra Development Team
+ *
+ * This file is part of Aethyra.
+ *
+ * This program 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.
+ *
+ * This program 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 this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef RECORD_H
+#define RECORD_H
+
+#include <fstream>
+#include <string>
+
+#include <guichan/actionlistener.hpp>
+
+#include "window.h"
+
+#include "../guichanfwd.h"
+
+#include "../utils/gettext.h"
+
+class ChatWindow;
+
+class Recorder : public Window, public gcn::ActionListener
+{
+ public:
+ Recorder(ChatWindow *chat, const std::string &title = _("Recording..."),
+ const std::string &buttonTxt = _("Stop recording"));
+
+ virtual ~Recorder();
+
+ /*
+ * Outputs the message to the recorder file
+ *
+ * @param msg the line to write to the recorded file.
+ */
+ void record(const std::string &msg);
+
+ /*
+ * Outputs the message to the recorder file
+ *
+ * @param msg the line to write to the recorded file.
+ */
+ void changeStatus(const std::string &msg);
+
+ /*
+ * Displays a help message on how to use this class in the chat window.
+ */
+ void help() const;
+
+ /*
+ * Displays an extended help message on how to use this class in the
+ * chat window.
+ */
+ void help2() const;
+
+ /*
+ * Whether or not the recorder is in use.
+ */
+ bool isRecording() {return (bool) mStream.is_open();}
+
+ /*
+ * called when the button is pressed
+ *
+ * @param event is the event that is generated
+ */
+ void action(const gcn::ActionEvent &event);
+
+ private:
+ ChatWindow *mChat;
+
+ std::ofstream mStream;
+};
+#endif
diff --git a/src/recorder.h b/src/recorder.h
deleted file mode 100644
index 4a220166..00000000
--- a/src/recorder.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Aethyra
- * Copyright (C) 2008 Aethyra Development Team
- *
- * This file is part of Aethyra.
- *
- * This program 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.
- *
- * This program 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 this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef RECORD_H
-#define RECORD_H
-
-#include <fstream>
-#include <string>
-
-#include "gui/buttonbox.h"
-
-class ChatWindow;
-
-class Recorder : public ButtonBoxListener
-{
- private:
- ChatWindow *mChat;
- std::ofstream mStream;
- ButtonBox *mButtonBox;
- public:
- Recorder(ChatWindow *chat);
- void record(const std::string &msg);
- void respond(const std::string &msg);
- void help() const;
- void help(const std::string &args) const;
- void buttonBoxRespond();
- bool isRecording() {return (bool) mStream.is_open();}
- virtual ~Recorder();
-};
-#endif