From 392b20563409d8f56fb9940c622a195f0ee0f7c7 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Fri, 22 Mar 2013 01:42:08 +0300 Subject: Add language tab class. --- src/CMakeLists.txt | 2 ++ src/Makefile.am | 2 ++ src/game.cpp | 13 +++++++++++++ src/gui/widgets/chattab.h | 1 + src/gui/widgets/langtab.cpp | 42 ++++++++++++++++++++++++++++++++++++++++++ src/gui/widgets/langtab.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 102 insertions(+) create mode 100644 src/gui/widgets/langtab.cpp create mode 100644 src/gui/widgets/langtab.h (limited to 'src') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5523549ac..32ad5c08a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -155,6 +155,8 @@ SET(SRCS gui/widgets/spellshortcutcontainer.h gui/widgets/label.cpp gui/widgets/label.h + gui/widgets/langtab.cpp + gui/widgets/langtab.h gui/widgets/layout.cpp gui/widgets/layout.h gui/widgets/layouthelper.cpp diff --git a/src/Makefile.am b/src/Makefile.am index c4b5971fa..c926a8e2e 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -156,6 +156,8 @@ manaplus_SOURCES += gui/widgets/avatarlistbox.cpp \ gui/widgets/spellshortcutcontainer.h \ gui/widgets/label.cpp \ gui/widgets/label.h \ + gui/widgets/langtab.cpp \ + gui/widgets/langtab.h \ gui/widgets/layout.cpp \ gui/widgets/layout.h \ gui/widgets/layouthelper.cpp \ diff --git a/src/game.cpp b/src/game.cpp index d2537c091..5eed2bd38 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -75,6 +75,7 @@ #include "gui/widgets/emoteshortcutcontainer.h" #include "gui/widgets/gmtab.h" #include "gui/widgets/itemshortcutcontainer.h" +#include "gui/widgets/langtab.h" #include "gui/widgets/spellshortcutcontainer.h" #include "gui/widgets/tradetab.h" @@ -88,6 +89,7 @@ #include "resources/resourcemanager.h" #include "utils/gettext.h" +#include "utils/langs.h" #include "utils/mkdir.h" #include "utils/physfstools.h" #include "utils/process.h" @@ -155,6 +157,7 @@ ChatTab *debugChatTab = nullptr; TradeTab *tradeChatTab = nullptr; BattleTab *battleChatTab = nullptr; GmTab *gmChatTab = nullptr; +LangTab *langChatTab = nullptr; const unsigned adjustDelay = 10; @@ -257,6 +260,16 @@ static void createGuiWindows() if (config.getBoolValue("showChatHistory")) localChatTab->loadFromLogFile("#General"); + if (serverVersion >= 8) + { + const std::string lang = getLangShort(); + if (lang.size() == 2) + { + langChatTab = new LangTab(chatWindow, lang); + langChatTab->setAllowHighlight(false); + } + } + debugChatTab = new ChatTab(chatWindow, _("Debug"), ""); debugChatTab->setAllowHighlight(false); diff --git a/src/gui/widgets/chattab.h b/src/gui/widgets/chattab.h index 4cd899287..e85dac74a 100644 --- a/src/gui/widgets/chattab.h +++ b/src/gui/widgets/chattab.h @@ -51,6 +51,7 @@ class ChatTab : public Tab TAB_DEBUG, TAB_TRADE, TAB_BATTLE, + TAB_LANG, TAB_GM }; diff --git a/src/gui/widgets/langtab.cpp b/src/gui/widgets/langtab.cpp new file mode 100644 index 000000000..edef9e178 --- /dev/null +++ b/src/gui/widgets/langtab.cpp @@ -0,0 +1,42 @@ +/* + * The ManaPlus Client + * Copyright (C) 2011-2013 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * 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, see . + */ + +#include "gui/widgets/langtab.h" + +#include "chatlogger.h" + +#include "utils/gettext.h" + +#include "debug.h" + +LangTab::LangTab(const Widget2 *const widget, const std::string &lang) : + ChatTab(widget, _("Lang"), " " + lang) +{ +} + +LangTab::~LangTab() +{ +} + +void LangTab::saveToLogFile(std::string &msg) +{ + if (chatLogger) + chatLogger->log(std::string("#Lang"), std::string(msg)); +} diff --git a/src/gui/widgets/langtab.h b/src/gui/widgets/langtab.h new file mode 100644 index 000000000..04c77cac2 --- /dev/null +++ b/src/gui/widgets/langtab.h @@ -0,0 +1,42 @@ +/* + * The ManaPlus Client + * Copyright (C) 2011-2013 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * 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, see . + */ + +#ifndef LANGTAB_H +#define LANGTAB_H + +#include "gui/widgets/chattab.h" + +class LangTab final : public ChatTab +{ + public: + LangTab(const Widget2 *const widget, const std::string &lang); + + A_DELETE_COPY(LangTab) + + ~LangTab(); + + int getType() const override A_WARN_UNUSED + { return ChatTab::TAB_LANG; } + + void saveToLogFile(std::string &msg) override; +}; + +extern LangTab *langChatTab; +#endif -- cgit v1.2.3-60-g2f50