diff options
author | Ira Rice <irarice@gmail.com> | 2009-01-27 15:10:02 -0700 |
---|---|---|
committer | Ira Rice <irarice@gmail.com> | 2009-01-27 15:10:02 -0700 |
commit | 9ef72eaa168ca047f91f1dce2d98ef2c243b31c2 (patch) | |
tree | 635b05e7026efd75f1e1c56e0aa74efe09be8122 | |
parent | 955a7613d1fe116fe5e1da07a222b6849b3c885c (diff) | |
download | mana-9ef72eaa168ca047f91f1dce2d98ef2c243b31c2.tar.gz mana-9ef72eaa168ca047f91f1dce2d98ef2c243b31c2.tar.bz2 mana-9ef72eaa168ca047f91f1dce2d98ef2c243b31c2.tar.xz mana-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.cbp | 6 | ||||
-rw-r--r-- | po/POTFILES.in | 1 | ||||
-rw-r--r-- | src/Makefile.am | 6 | ||||
-rw-r--r-- | src/gui/buttonbox.cpp | 43 | ||||
-rw-r--r-- | src/gui/buttonbox.h | 69 | ||||
-rw-r--r-- | src/gui/chat.cpp | 6 | ||||
-rw-r--r-- | src/gui/recorder.cpp (renamed from src/recorder.cpp) | 92 | ||||
-rw-r--r-- | src/gui/recorder.h | 88 | ||||
-rw-r--r-- | src/recorder.h | 48 |
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 |