summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2013-03-22 01:42:08 +0300
committerAndrei Karas <akaras@inbox.ru>2013-03-22 01:42:08 +0300
commit392b20563409d8f56fb9940c622a195f0ee0f7c7 (patch)
tree86746ddcec8599882e77098d3d9cfd2d185e5b06
parent69b548e10a24332cb2f62d04ad4645df786f771c (diff)
downloadManaVerse-392b20563409d8f56fb9940c622a195f0ee0f7c7.tar.gz
ManaVerse-392b20563409d8f56fb9940c622a195f0ee0f7c7.tar.bz2
ManaVerse-392b20563409d8f56fb9940c622a195f0ee0f7c7.tar.xz
ManaVerse-392b20563409d8f56fb9940c622a195f0ee0f7c7.zip
Add language tab class.
-rw-r--r--src/CMakeLists.txt2
-rw-r--r--src/Makefile.am2
-rw-r--r--src/game.cpp13
-rw-r--r--src/gui/widgets/chattab.h1
-rw-r--r--src/gui/widgets/langtab.cpp42
-rw-r--r--src/gui/widgets/langtab.h42
6 files changed, 102 insertions, 0 deletions
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 <http://www.gnu.org/licenses/>.
+ */
+
+#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 <http://www.gnu.org/licenses/>.
+ */
+
+#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