diff options
Diffstat (limited to 'src/gui/windows')
24 files changed, 117 insertions, 88 deletions
diff --git a/src/gui/windows/chatwindow.cpp b/src/gui/windows/chatwindow.cpp index 6af18ff06..26f665052 100644 --- a/src/gui/windows/chatwindow.cpp +++ b/src/gui/windows/chatwindow.cpp @@ -43,7 +43,8 @@ #include "gui/viewport.h" #include "gui/windows/emotewindow.h" -#include "gui/windows/setup.h" +#include "gui/windows/setupwindow.h" +#include "gui/widgets/tabbedarea.h" #include "gui/windows/whoisonline.h" #include "gui/widgets/tabs/battletab.h" @@ -452,7 +453,7 @@ ChatTab *ChatWindow::getFocused() const return static_cast<ChatTab*>(mChatTabs->getSelectedTab()); } -void ChatWindow::clearTab(ChatTab *const tab) const +void ChatWindow::clearTab(ChatTab *const tab) { if (tab) tab->clearText(); @@ -1312,7 +1313,6 @@ void ChatWindow::autoComplete() const int caretPos = mChatInput->getCaretPosition(); int startName = 0; const std::string inputText = mChatInput->getText(); - bool needSecure(false); std::string name = inputText.substr(0, caretPos); for (int f = caretPos - 1; f > -1; f --) @@ -1335,15 +1335,21 @@ void ChatWindow::autoComplete() if (cTab) cTab->getAutoCompleteList(nameList); std::string newName = autoComplete(nameList, name); - if (!newName.empty()) - needSecure = true; + if (!newName.empty() && !startName) + secureChatCommand(newName); + + if (cTab && newName.empty()) + { + cTab->getAutoCompleteCommands(nameList); + newName = autoComplete(nameList, name); + } if (newName.empty() && actorManager) { actorManager->getPlayerNames(nameList, true); newName = autoComplete(nameList, name); - if (!newName.empty()) - needSecure = true; + if (!newName.empty() && !startName) + secureChatCommand(newName); } if (newName.empty()) newName = autoCompleteHistory(name); @@ -1366,11 +1372,6 @@ void ChatWindow::autoComplete() if (!newName.empty()) { - if (!startName && needSecure && (newName[0] == '/' - || newName[0] == '@' || newName[0] == '#')) - { - newName = "_" + newName; - } mChatInput->setText(inputText.substr(0, startName).append(newName) .append(inputText.substr(caretPos, inputText.length() - caretPos))); @@ -1386,7 +1387,7 @@ void ChatWindow::autoComplete() } std::string ChatWindow::autoComplete(StringVect &names, - std::string partName) const + std::string partName) { StringVectCIter i = names.begin(); const StringVectCIter i_end = names.end(); @@ -1770,7 +1771,7 @@ void ChatWindow::saveState() const } } -std::string ChatWindow::doReplace(const std::string &msg) const +std::string ChatWindow::doReplace(const std::string &msg) { std::string str = msg; replaceSpecialChars(str); @@ -1918,7 +1919,7 @@ void ChatWindow::updateVisibility() int mouseY = 0; int x = 0; int y = 0; - gui->getMouseState(&mouseX, &mouseY); + Gui::getMouseState(&mouseX, &mouseY); getAbsolutePosition(x, y); if (mChatInput->isVisible()) { diff --git a/src/gui/windows/chatwindow.h b/src/gui/windows/chatwindow.h index c000215f1..3093c52e9 100644 --- a/src/gui/windows/chatwindow.h +++ b/src/gui/windows/chatwindow.h @@ -109,7 +109,7 @@ class ChatWindow final : public Window, /** * Clear the given tab. */ - void clearTab(ChatTab *const tab) const; + static void clearTab(ChatTab *const tab); /** * Clear the current tab. @@ -253,7 +253,7 @@ class ChatWindow final : public Window, void loadGMCommands(); - std::string doReplace(const std::string &msg) const A_WARN_UNUSED; + static std::string doReplace(const std::string &msg) A_WARN_UNUSED; void adjustTabSize(); @@ -328,8 +328,8 @@ class ChatWindow final : public Window, std::string autoComplete(const std::string &partName, History *const words) const; - std::string autoComplete(StringVect &names, - std::string partName) const; + static std::string autoComplete(StringVect &names, + std::string partName); /** Used for showing item popup on clicking links **/ ItemLinkHandler *mItemLinkHandler; diff --git a/src/gui/windows/debugwindow.cpp b/src/gui/windows/debugwindow.cpp index 02a79d0de..30d202054 100644 --- a/src/gui/windows/debugwindow.cpp +++ b/src/gui/windows/debugwindow.cpp @@ -31,11 +31,12 @@ #include "gui/viewport.h" -#include "gui/windows/setup.h" +#include "gui/windows/setupwindow.h" #include "gui/widgets/label.h" #include "gui/widgets/layout.h" #include "gui/widgets/layouthelper.h" +#include "gui/widgets/tabbedarea.h" #include "resources/imagehelper.h" diff --git a/src/gui/windows/didyouknowwindow.cpp b/src/gui/windows/didyouknowwindow.cpp index 37c970562..93166e6fa 100644 --- a/src/gui/windows/didyouknowwindow.cpp +++ b/src/gui/windows/didyouknowwindow.cpp @@ -26,7 +26,7 @@ #include "gui/sdlfont.h" -#include "gui/windows/setup.h" +#include "gui/windows/setupwindow.h" #include "gui/widgets/button.h" #include "gui/widgets/browserbox.h" diff --git a/src/gui/windows/equipmentwindow.cpp b/src/gui/windows/equipmentwindow.cpp index 621f5e537..3b97e12d7 100644 --- a/src/gui/windows/equipmentwindow.cpp +++ b/src/gui/windows/equipmentwindow.cpp @@ -36,7 +36,7 @@ #include "gui/popups/itempopup.h" -#include "gui/windows/setup.h" +#include "gui/windows/setupwindow.h" #include "gui/widgets/button.h" #include "gui/widgets/playerbox.h" @@ -552,7 +552,7 @@ void EquipmentWindow::loadSlot(const XmlNodePtr slotNode, mMaxY = y + mBoxSize; } -int EquipmentWindow::parseSlotName(const std::string &name) const +int EquipmentWindow::parseSlotName(const std::string &name) { int id = -1; if (name == "shoes" || name == "boot" || name == "boots") diff --git a/src/gui/windows/equipmentwindow.h b/src/gui/windows/equipmentwindow.h index d291a5f81..7387fb249 100644 --- a/src/gui/windows/equipmentwindow.h +++ b/src/gui/windows/equipmentwindow.h @@ -122,7 +122,7 @@ class EquipmentWindow final : public Window, public gcn::ActionListener void loadSlot(const XmlNodePtr slotNode, const ImageSet *const imageset); - int parseSlotName(const std::string &name) const A_WARN_UNUSED; + static int parseSlotName(const std::string &name) A_WARN_UNUSED; Equipment *mEquipment; diff --git a/src/gui/windows/helpwindow.cpp b/src/gui/windows/helpwindow.cpp index 854ac8cbd..eb2300e0e 100644 --- a/src/gui/windows/helpwindow.cpp +++ b/src/gui/windows/helpwindow.cpp @@ -27,7 +27,7 @@ #include "gui/sdlfont.h" #include "gui/windows/didyouknowwindow.h" -#include "gui/windows/setup.h" +#include "gui/windows/setupwindow.h" #include "gui/widgets/button.h" #include "gui/widgets/browserbox.h" diff --git a/src/gui/windows/inventorywindow.cpp b/src/gui/windows/inventorywindow.cpp index 02b30aed7..6fd2ab95b 100644 --- a/src/gui/windows/inventorywindow.cpp +++ b/src/gui/windows/inventorywindow.cpp @@ -38,7 +38,7 @@ #include "gui/windows/equipmentwindow.h" #include "gui/windows/itemamountwindow.h" #include "gui/windows/outfitwindow.h" -#include "gui/windows/setup.h" +#include "gui/windows/setupwindow.h" #include "gui/windows/shopwindow.h" #include "gui/windows/tradewindow.h" diff --git a/src/gui/windows/minimap.cpp b/src/gui/windows/minimap.cpp index 177be8a74..02be64a13 100644 --- a/src/gui/windows/minimap.cpp +++ b/src/gui/windows/minimap.cpp @@ -33,7 +33,7 @@ #include "gui/popups/textpopup.h" -#include "gui/windows/setup.h" +#include "gui/windows/setupwindow.h" #include "resources/image.h" #include "resources/imagehelper.h" diff --git a/src/gui/windows/outfitwindow.cpp b/src/gui/windows/outfitwindow.cpp index c5df4b652..d686056ac 100644 --- a/src/gui/windows/outfitwindow.cpp +++ b/src/gui/windows/outfitwindow.cpp @@ -524,7 +524,7 @@ void OutfitWindow::unequipNotInOutfit(const int outfit) const } } -std::string OutfitWindow::keyName(const int number) const +std::string OutfitWindow::keyName(const int number) { if (number < 0 || number >= SHORTCUT_EMOTES) return ""; diff --git a/src/gui/windows/outfitwindow.h b/src/gui/windows/outfitwindow.h index 4f6e5c0bf..eeedc2ec6 100644 --- a/src/gui/windows/outfitwindow.h +++ b/src/gui/windows/outfitwindow.h @@ -89,7 +89,7 @@ class OutfitWindow final : public Window, void showCurrentOutfit(); - std::string keyName(const int number) const A_WARN_UNUSED; + static std::string keyName(const int number) A_WARN_UNUSED; void clearCurrentOutfit(); diff --git a/src/gui/windows/setup.cpp b/src/gui/windows/setupwindow.cpp index d0ecc2d6d..0780865aa 100644 --- a/src/gui/windows/setup.cpp +++ b/src/gui/windows/setupwindow.cpp @@ -20,7 +20,7 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "gui/windows/setup.h" +#include "gui/windows/setupwindow.h" #include "configuration.h" #include "game.h" @@ -45,6 +45,7 @@ #include "gui/widgets/tabs/setup_visual.h" #include "gui/widgets/label.h" +#include "gui/widgets/tabbedarea.h" #include "utils/dtor.h" #include "utils/gettext.h" @@ -52,9 +53,9 @@ #include "debug.h" extern Window *statusWindow; -Setup *setupWindow = nullptr; +SetupWindow *setupWindow = nullptr; -Setup::Setup() : +SetupWindow::SetupWindow() : // TRANSLATORS: setup window name Window(_("Setup"), false, nullptr, "setup.xml"), gcn::ActionListener(), @@ -72,7 +73,7 @@ Setup::Setup() : setStickyButtonLock(true); } -void Setup::postInit() +void SetupWindow::postInit() { int width = 620; const int height = 450; @@ -153,13 +154,13 @@ void Setup::postInit() enableVisibleSound(true); } -Setup::~Setup() +SetupWindow::~SetupWindow() { delete_all(mTabs); mButtons.clear(); } -void Setup::action(const gcn::ActionEvent &event) +void SetupWindow::action(const gcn::ActionEvent &event) { if (Game::instance()) Game::instance()->resetAdjustLevel(); @@ -196,12 +197,12 @@ void Setup::action(const gcn::ActionEvent &event) } } -void Setup::setInGame(const bool inGame) +void SetupWindow::setInGame(const bool inGame) { mResetWindows->setEnabled(inGame); } -void Setup::externalUpdate() +void SetupWindow::externalUpdate() { unloadModTab(); mModsTab = new Setup_Mods(this); @@ -214,7 +215,7 @@ void Setup::externalUpdate() } } -void Setup::unloadModTab() +void SetupWindow::unloadModTab() { if (mModsTab) { @@ -226,7 +227,7 @@ void Setup::unloadModTab() } } -void Setup::externalUnload() +void SetupWindow::externalUnload() { FOR_EACH (std::list<SetupTab*>::const_iterator, it, mTabs) { @@ -236,30 +237,30 @@ void Setup::externalUnload() unloadModTab(); } -void Setup::registerWindowForReset(Window *const window) +void SetupWindow::registerWindowForReset(Window *const window) { mWindowsToReset.push_back(window); } -void Setup::doCancel() +void SetupWindow::doCancel() { setVisible(false); for_each(mTabs.begin(), mTabs.end(), std::mem_fun(&SetupTab::cancel)); } -void Setup::activateTab(const std::string &name) +void SetupWindow::activateTab(const std::string &name) { std::string tmp = gettext(name.c_str()); mPanel->setSelectedTabByName(tmp); } -void Setup::setVisible(bool visible) +void SetupWindow::setVisible(bool visible) { touchManager.setTempHide(visible); Window::setVisible(visible); } -void Setup::widgetResized(const gcn::Event &event) +void SetupWindow::widgetResized(const gcn::Event &event) { Window::widgetResized(event); diff --git a/src/gui/windows/setup.h b/src/gui/windows/setupwindow.h index 4c9ab2fb7..f5406e8ac 100644 --- a/src/gui/windows/setup.h +++ b/src/gui/windows/setupwindow.h @@ -20,10 +20,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#ifndef GUI_WINDOWS_SETUP_H -#define GUI_WINDOWS_SETUP_H - -#include "gui/widgets/tabbedarea.h" +#ifndef GUI_WINDOWS_SETUPWINDOW_H +#define GUI_WINDOWS_SETUPWINDOW_H #include "gui/widgets/window.h" @@ -31,8 +29,10 @@ #include <list> +class Button; class Label; class SetupTab; +class TabbedArea; /** * The setup dialog. Displays several tabs for configuring different aspects @@ -40,14 +40,15 @@ class SetupTab; * * \ingroup GUI */ -class Setup final : public Window, public gcn::ActionListener +class SetupWindow final : public Window, + public gcn::ActionListener { public: - Setup(); + SetupWindow(); - A_DELETE_COPY(Setup) + A_DELETE_COPY(SetupWindow) - ~Setup(); + ~SetupWindow(); void postInit() override final; @@ -84,6 +85,6 @@ class Setup final : public Window, public gcn::ActionListener Label *mVersion; }; -extern Setup* setupWindow; +extern SetupWindow* setupWindow; -#endif // GUI_WINDOWS_SETUP_H +#endif // GUI_WINDOWS_SETUPWINDOW_H diff --git a/src/gui/windows/shopwindow.cpp b/src/gui/windows/shopwindow.cpp index 48bfedb06..a940e4cdb 100644 --- a/src/gui/windows/shopwindow.cpp +++ b/src/gui/windows/shopwindow.cpp @@ -632,7 +632,7 @@ void ShopWindow::sendMessage(const std::string &nick, chatWindow->addWhisper(nick, data, BY_PLAYER); } -void ShopWindow::showList(const std::string &nick, std::string data) const +void ShopWindow::showList(const std::string &nick, std::string data) { BuyDialog *buyDialog = nullptr; SellDialog *sellDialog = nullptr; diff --git a/src/gui/windows/shopwindow.h b/src/gui/windows/shopwindow.h index 590a05dcc..95eee1e05 100644 --- a/src/gui/windows/shopwindow.h +++ b/src/gui/windows/shopwindow.h @@ -121,7 +121,7 @@ class ShopWindow final : public Window, void sendMessage(const std::string &nick, std::string data, const bool random = false); - void showList(const std::string &nick, std::string data) const; + static void showList(const std::string &nick, std::string data); void processRequest(const std::string &nick, std::string data, const int mode); diff --git a/src/gui/windows/shortcutwindow.cpp b/src/gui/windows/shortcutwindow.cpp index 1d9fa88c2..96ec8c93c 100644 --- a/src/gui/windows/shortcutwindow.cpp +++ b/src/gui/windows/shortcutwindow.cpp @@ -22,7 +22,8 @@ #include "gui/windows/shortcutwindow.h" -#include "gui/windows/setup.h" +#include "gui/windows/setupwindow.h" +#include "gui/widgets/tabbedarea.h" #include "gui/widgets/layout.h" #include "gui/widgets/scrollarea.h" @@ -234,6 +235,18 @@ void ShortcutWindow::widgetMoved(const gcn::Event& event) (*it)->setRedraw(true); } +void ShortcutWindow::nextTab() +{ + if (mTabs) + mTabs->selectNextTab(); +} + +void ShortcutWindow::prevTab() +{ + if (mTabs) + mTabs->selectPrevTab(); +} + #ifdef USE_PROFILER void ShortcutWindow::logicChildren() { diff --git a/src/gui/windows/shortcutwindow.h b/src/gui/windows/shortcutwindow.h index b7d7f70a1..f4c417c94 100644 --- a/src/gui/windows/shortcutwindow.h +++ b/src/gui/windows/shortcutwindow.h @@ -68,6 +68,10 @@ class ShortcutWindow final : public Window void mouseDragged(gcn::MouseEvent &event) override final; + void nextTab(); + + void prevTab(); + #ifdef USE_PROFILER void logicChildren(); #endif diff --git a/src/gui/windows/skilldialog.cpp b/src/gui/windows/skilldialog.cpp index 197c60a90..04baad26a 100644 --- a/src/gui/windows/skilldialog.cpp +++ b/src/gui/windows/skilldialog.cpp @@ -33,7 +33,7 @@ #include "gui/popups/textpopup.h" -#include "gui/windows/setup.h" +#include "gui/windows/setupwindow.h" #include "gui/windows/shortcutwindow.h" #include "gui/widgets/button.h" diff --git a/src/gui/windows/socialwindow.cpp b/src/gui/windows/socialwindow.cpp index 1c6b85153..2385066be 100644 --- a/src/gui/windows/socialwindow.cpp +++ b/src/gui/windows/socialwindow.cpp @@ -35,7 +35,7 @@ #include "gui/windows/confirmdialog.h" #include "gui/windows/okdialog.h" -#include "gui/windows/setup.h" +#include "gui/windows/setupwindow.h" #include "gui/windows/textdialog.h" #include "gui/windows/whoisonline.h" @@ -46,6 +46,7 @@ #include "gui/widgets/label.h" #include "gui/widgets/popup.h" #include "gui/widgets/scrollarea.h" +#include "gui/widgets/tabbedarea.h" #include "gui/widgets/tabs/chattab.h" @@ -1276,6 +1277,7 @@ SocialWindow::SocialWindow() : // TRANSLATORS: social window name Window(_("Social"), false, nullptr, "social.xml"), gcn::ActionListener(), + PlayerRelationsListener(), mGuildInvited(0), mGuildAcceptDialog(nullptr), mGuildCreateDialog(nullptr), @@ -1372,10 +1374,12 @@ void SocialWindow::postInit() enableVisibleSound(true); updateButtons(); + player_relations.addListener(this); } SocialWindow::~SocialWindow() { + player_relations.removeListener(this); if (mGuildAcceptDialog) { mGuildAcceptDialog->close(); @@ -1740,6 +1744,7 @@ void SocialWindow::slowLogic() const unsigned int nowTime = cur_time; if (mNeedUpdate && nowTime - mLastUpdateTime > 1) { + logger->log("soc update"); mPlayers->updateList(); mFriends->updateList(); mNeedUpdate = false; @@ -1819,30 +1824,14 @@ void SocialWindow::removePortal(const int x, const int y) void SocialWindow::nextTab() { - if (!mTabs) - return; - - int tab = mTabs->getSelectedTabIndex(); - - tab++; - if (tab == mTabs->getNumberOfTabs()) - tab = 0; - - mTabs->setSelectedTabByIndex(tab); + if (mTabs) + mTabs->selectNextTab(); } void SocialWindow::prevTab() { - if (!mTabs) - return; - - int tab = mTabs->getSelectedTabIndex(); - - if (tab == 0) - tab = mTabs->getNumberOfTabs(); - tab--; - - mTabs->setSelectedTabByIndex(tab); + if (mTabs) + mTabs->selectPrevTab(); } void SocialWindow::updateAttackFilter() @@ -1908,6 +1897,16 @@ void SocialWindow::updateGuildCounter(const int online, const int total) } } +void SocialWindow::updatedPlayer(const std::string &name A_UNUSED) +{ + mNeedUpdate = true; +} + +void SocialWindow::updateAll() +{ + mNeedUpdate = true; +} + #ifdef USE_PROFILER void SocialWindow::logicChildren() { diff --git a/src/gui/windows/socialwindow.h b/src/gui/windows/socialwindow.h index 018b5f32c..e8dc44043 100644 --- a/src/gui/windows/socialwindow.h +++ b/src/gui/windows/socialwindow.h @@ -24,6 +24,8 @@ #include "gui/widgets/window.h" +#include "being/playerrelationslistener.h" + #include <guichan/actionlistener.hpp> #include <string> @@ -45,7 +47,9 @@ class TextDialog; * * \ingroup Interface */ -class SocialWindow final : public Window, private gcn::ActionListener +class SocialWindow final : public Window, + private gcn::ActionListener, + public PlayerRelationsListener { public: SocialWindow(); @@ -125,6 +129,10 @@ public: void updateGuildCounter(const int online = 0, const int total = 0); + void updatedPlayer(const std::string &name); + + void updateAll(); + #ifdef USE_PROFILER void logicChildren(); #endif diff --git a/src/gui/windows/statuswindow.cpp b/src/gui/windows/statuswindow.cpp index 567460927..80e86e66f 100644 --- a/src/gui/windows/statuswindow.cpp +++ b/src/gui/windows/statuswindow.cpp @@ -36,7 +36,7 @@ #include "gui/viewport.h" #include "gui/windows/equipmentwindow.h" -#include "gui/windows/setup.h" +#include "gui/windows/setupwindow.h" #include "gui/widgets/button.h" #include "gui/widgets/label.h" @@ -606,7 +606,7 @@ void StatusWindow::updateJobBar(ProgressBar *const bar, const bool percent) } void StatusWindow::updateProgressBar(ProgressBar *const bar, const int id, - const bool percent) const + const bool percent) { const std::pair<int, int> exp = PlayerInfo::getStatExperience(id); updateProgressBar(bar, exp.first, exp.second, percent); @@ -733,10 +733,10 @@ void StatusWindow::updateStatusBar(ProgressBar *const bar, player_node->getQuickDropCounterString())) .append(translateLetter2(player_node->getPickUpTypeString())) .append(" ").append(translateLetter2( - player_node->getDebugPathString())) + LocalPlayer::getDebugPathString())) .append(" ").append(translateLetter2( player_node->getImitationModeString())) - .append(translateLetter2(player_node->getCameraModeString())) + .append(translateLetter2(LocalPlayer::getCameraModeString())) .append(translateLetter2(player_node->getAwayModeString()))); bar->setProgress(50); diff --git a/src/gui/windows/statuswindow.h b/src/gui/windows/statuswindow.h index 414449df0..94f1aaa65 100644 --- a/src/gui/windows/statuswindow.h +++ b/src/gui/windows/statuswindow.h @@ -79,8 +79,9 @@ class StatusWindow final : public Window, const bool percent = true); static void updateProgressBar(ProgressBar *const bar, const int value, const int max, const bool percent); - void updateProgressBar(ProgressBar *const bar, const int id, - const bool percent = true) const; + static void updateProgressBar(ProgressBar *const bar, + const int id, + const bool percent = true); void action(const gcn::ActionEvent &event) override; diff --git a/src/gui/windows/tradewindow.cpp b/src/gui/windows/tradewindow.cpp index dfdc53a5c..a379f0f28 100644 --- a/src/gui/windows/tradewindow.cpp +++ b/src/gui/windows/tradewindow.cpp @@ -35,7 +35,7 @@ #include "gui/windows/inventorywindow.h" #include "gui/windows/itemamountwindow.h" -#include "gui/windows/setup.h" +#include "gui/windows/setupwindow.h" #include "gui/widgets/button.h" #include "gui/widgets/itemcontainer.h" diff --git a/src/gui/windows/whoisonline.h b/src/gui/windows/whoisonline.h index 1057f1898..10a8be4b5 100644 --- a/src/gui/windows/whoisonline.h +++ b/src/gui/windows/whoisonline.h @@ -153,7 +153,7 @@ public: void readFromWeb(); - void setNeutralColor(OnlinePlayer *const player); + static void setNeutralColor(OnlinePlayer *const player); void getPlayerNames(StringVect &names); |