diff options
author | Andrei Karas <akaras@inbox.ru> | 2018-09-06 23:02:33 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2018-09-06 23:02:33 +0300 |
commit | fea2f27179d17bbba96873ea0eeae99df20a457c (patch) | |
tree | 351269579b90f47067ab316d23a7d195d03684d7 /src | |
parent | 1466f73a383891b617d68136bb4004137028e309 (diff) | |
download | mv-fea2f27179d17bbba96873ea0eeae99df20a457c.tar.gz mv-fea2f27179d17bbba96873ea0eeae99df20a457c.tar.bz2 mv-fea2f27179d17bbba96873ea0eeae99df20a457c.tar.xz mv-fea2f27179d17bbba96873ea0eeae99df20a457c.zip |
Split debugwindowtabs into separate tab files.
Diffstat (limited to 'src')
-rw-r--r-- | src/CMakeLists.txt | 9 | ||||
-rw-r--r-- | src/Makefile.am | 9 | ||||
-rw-r--r-- | src/gui/widgets/tabs/debugtab.h | 48 | ||||
-rw-r--r-- | src/gui/widgets/tabs/mapdebugtab.cpp (renamed from src/gui/widgets/tabs/debugwindowtabs.cpp) | 222 | ||||
-rw-r--r-- | src/gui/widgets/tabs/mapdebugtab.h (renamed from src/gui/widgets/tabs/debugwindowtabs.h) | 73 | ||||
-rw-r--r-- | src/gui/widgets/tabs/netdebugtab.cpp | 75 | ||||
-rw-r--r-- | src/gui/widgets/tabs/netdebugtab.h | 45 | ||||
-rw-r--r-- | src/gui/widgets/tabs/targetdebugtab.cpp | 209 | ||||
-rw-r--r-- | src/gui/widgets/tabs/targetdebugtab.h | 56 | ||||
-rw-r--r-- | src/gui/windows/debugwindow.cpp | 4 |
10 files changed, 455 insertions, 295 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f7b15bf85..d89e44cec 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -137,8 +137,13 @@ SET(SRCS gui/widgets/attrs/derdisplay.h gui/widgets/tabs/clanwindowtabs.cpp gui/widgets/tabs/clanwindowtabs.h - gui/widgets/tabs/debugwindowtabs.cpp - gui/widgets/tabs/debugwindowtabs.h + gui/widgets/tabs/debugtab.h + gui/widgets/tabs/mapdebugtab.cpp + gui/widgets/tabs/mapdebugtab.h + gui/widgets/tabs/netdebugtab.cpp + gui/widgets/tabs/netdebugtab.h + gui/widgets/tabs/targetdebugtab.cpp + gui/widgets/tabs/targetdebugtab.h gui/widgets/tabs/chat/chattab.cpp gui/widgets/tabs/chat/chattab.h gui/widgets/tabs/chat/clantab.cpp diff --git a/src/Makefile.am b/src/Makefile.am index d1f3029b5..55a1d4038 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1135,8 +1135,13 @@ SRC = ${BASE_SRC} \ gui/widgets/attrs/derdisplay.h \ gui/widgets/tabs/clanwindowtabs.cpp \ gui/widgets/tabs/clanwindowtabs.h \ - gui/widgets/tabs/debugwindowtabs.cpp \ - gui/widgets/tabs/debugwindowtabs.h \ + gui/widgets/tabs/debugtab.h \ + gui/widgets/tabs/mapdebugtab.cpp \ + gui/widgets/tabs/mapdebugtab.h \ + gui/widgets/tabs/netdebugtab.cpp \ + gui/widgets/tabs/netdebugtab.h \ + gui/widgets/tabs/targetdebugtab.cpp \ + gui/widgets/tabs/targetdebugtab.h \ gui/widgets/tabs/chat/chattab.cpp \ gui/widgets/tabs/chat/chattab.h \ gui/widgets/tabs/chat/clantab.cpp \ diff --git a/src/gui/widgets/tabs/debugtab.h b/src/gui/widgets/tabs/debugtab.h new file mode 100644 index 000000000..072fcf8ea --- /dev/null +++ b/src/gui/widgets/tabs/debugtab.h @@ -0,0 +1,48 @@ +/* + * The ManaPlus Client + * Copyright (C) 2004-2009 The Mana World Development Team + * Copyright (C) 2009-2010 The Mana Developers + * Copyright (C) 2011-2018 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 GUI_WIDGETS_TABS_DEBUGTAB_H +#define GUI_WIDGETS_TABS_DEBUGTAB_H + +#include "gui/widgets/container.h" + +class DebugTab notfinal : public Container +{ + friend class DebugWindow; + + public: + A_DELETE_COPY(DebugTab) + + void logic() override + { + } + + void resize(const int x, const int y) + { setDimension(Rect(0, 0, x, y)); } + + protected: + explicit DebugTab(const Widget2 *const widget) : + Container(widget) + { setSelectable(false); } +}; + +#endif // GUI_WIDGETS_TABS_DEBUGTAB_H diff --git a/src/gui/widgets/tabs/debugwindowtabs.cpp b/src/gui/widgets/tabs/mapdebugtab.cpp index d9a1e4c0e..14dd4184e 100644 --- a/src/gui/widgets/tabs/debugwindowtabs.cpp +++ b/src/gui/widgets/tabs/mapdebugtab.cpp @@ -20,7 +20,7 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "gui/widgets/tabs/debugwindowtabs.h" +#include "gui/widgets/tabs/mapdebugtab.h" #include "game.h" @@ -40,8 +40,6 @@ #include "resources/map/map.h" -#include "net/packetcounters.h" - #include "utils/gettext.h" #include "utils/stringutils.h" #include "utils/timer.h" @@ -289,221 +287,3 @@ void MapDebugTab::logic() mLPSLabel->setCaption(strprintf(_("%d LPS"), lps)); BLOCK_END("MapDebugTab::logic") } - -TargetDebugTab::TargetDebugTab(const Widget2 *const widget) : - DebugTab(widget), - // TRANSLATORS: debug window label - mTargetLabel(new Label(this, strprintf("%s ?", _("Target:")))), - // TRANSLATORS: debug window label - mTargetIdLabel(new Label(this, strprintf("%s ? ", _("Target Id:")))), - mTargetTypeLabel(new Label(this, strprintf( - // TRANSLATORS: debug window label - "%s ? ", _("Target type:")))), - // TRANSLATORS: debug window label - mTargetLevelLabel(new Label(this, strprintf("%s ?", _("Target level:")))), - // TRANSLATORS: debug window label - mTargetRaceLabel(new Label(this, strprintf("%s ?", _("Target race:")))), - // TRANSLATORS: debug window label - mTargetPartyLabel(new Label(this, strprintf("%s ?", _("Target party:")))), - // TRANSLATORS: debug window label - mTargetGuildLabel(new Label(this, strprintf("%s ?", _("Target guild:")))), - // TRANSLATORS: debug window label - mAttackDelayLabel(new Label(this, strprintf("%s ?", _("Attack delay:")))), - // TRANSLATORS: debug window label - mMinHitLabel(new Label(this, strprintf("%s ?", _("Minimal hit:")))), - // TRANSLATORS: debug window label - mMaxHitLabel(new Label(this, strprintf("%s ?", _("Maximum hit:")))), - // TRANSLATORS: debug window label - mCriticalHitLabel(new Label(this, strprintf("%s ?", _("Critical hit:")))), - // TRANSLATORS: debug window label - mKarmaLabel(new Label(this, strprintf("%s ?", _("Karma:")))), - // TRANSLATORS: debug window label - mMannerLabel(new Label(this, strprintf("%s ?", _("Manner:")))), - // TRANSLATORS: debug window label - mEffectsLabel(new Label(this, strprintf("%s ?", _("Effects:")))) -{ - LayoutHelper h(this); - ContainerPlacer place = h.getPlacer(0, 0); - - place(0, 0, mTargetLabel, 2, 1); - place(0, 1, mTargetIdLabel, 2, 1); - place(0, 2, mTargetTypeLabel, 2, 1); - place(0, 3, mTargetLevelLabel, 2, 1); - place(0, 4, mTargetRaceLabel, 2, 1); - place(0, 5, mAttackDelayLabel, 2, 1); - place(0, 6, mTargetPartyLabel, 2, 1); - place(0, 7, mTargetGuildLabel, 2, 1); - place(0, 8, mMinHitLabel, 2, 1); - place(0, 9, mMaxHitLabel, 2, 1); - place(0, 10, mCriticalHitLabel, 2, 1); - place(0, 11, mKarmaLabel, 2, 1); - place(0, 12, mMannerLabel, 2, 1); - place(0, 13, mEffectsLabel, 2, 1); - - place.getCell().matchColWidth(0, 0); - place = h.getPlacer(0, 1); - setDimension(Rect(0, 0, 600, 300)); -} - -void TargetDebugTab::logic() -{ - BLOCK_START("TargetDebugTab::logic") - if ((localPlayer != nullptr) && (localPlayer->getTarget() != nullptr)) - { - const Being *const target = localPlayer->getTarget(); - - // TRANSLATORS: debug window label - mTargetLabel->setCaption(strprintf("%s %s (%d, %d)", _("Target:"), - target->getName().c_str(), target->getTileX(), - target->getTileY())); - - mTargetIdLabel->setCaption(strprintf("%s %d", - // TRANSLATORS: debug window label - _("Target Id:"), toInt(target->getId(), int))); - mTargetTypeLabel->setCaption(strprintf("%s %d", - // TRANSLATORS: debug window label - _("Target type:"), toInt(target->getSubType(), int))); - if (target->getLevel() != 0) - { - mTargetLevelLabel->setCaption(strprintf("%s %d", - // TRANSLATORS: debug window label - _("Target Level:"), target->getLevel())); - } - else - { - mTargetLevelLabel->setCaption(strprintf("%s ?", - // TRANSLATORS: debug window label - _("Target Level:"))); - } - - mTargetRaceLabel->setCaption(strprintf("%s %s", - // TRANSLATORS: debug window label - _("Target race:"), target->getRaceName().c_str())); - - // TRANSLATORS: debug window label - mTargetPartyLabel->setCaption(strprintf("%s %s", _("Target Party:"), - target->getPartyName().c_str())); - - // TRANSLATORS: debug window label - mTargetGuildLabel->setCaption(strprintf("%s %s", _("Target Guild:"), - target->getGuildName().c_str())); - - mMinHitLabel->setCaption(strprintf("%s %d", - // TRANSLATORS: debug window label - _("Minimal hit:"), target->getMinHit())); - mMaxHitLabel->setCaption(strprintf("%s %d", - // TRANSLATORS: debug window label - _("Maximum hit:"), target->getMaxHit())); - mCriticalHitLabel->setCaption(strprintf("%s %d", - // TRANSLATORS: debug window label - _("Critical hit:"), target->getCriticalHit())); - mKarmaLabel->setCaption(strprintf("%s %d", - // TRANSLATORS: debug window label - _("Karma:"), target->getKarma())); - mMannerLabel->setCaption(strprintf("%s %d", - // TRANSLATORS: debug window label - _("Manner:"), target->getManner())); - mEffectsLabel->setCaption(strprintf("%s %s", - // TRANSLATORS: debug window label - _("Effects:"), target->getStatusEffectsString().c_str())); - - const int delay = target->getAttackDelay(); - if (delay != 0) - { - mAttackDelayLabel->setCaption(strprintf("%s %d", - // TRANSLATORS: debug window label - _("Attack delay:"), delay)); - } - else - { - mAttackDelayLabel->setCaption(strprintf( - // TRANSLATORS: debug window label - "%s ?", _("Attack delay:"))); - } - } - else - { - // TRANSLATORS: debug window label - mTargetLabel->setCaption(strprintf("%s ?", _("Target:"))); - // TRANSLATORS: debug window label - mTargetIdLabel->setCaption(strprintf("%s ?", _("Target Id:"))); - // TRANSLATORS: debug window label - mTargetTypeLabel->setCaption(strprintf("%s ?", _("Target type:"))); - // TRANSLATORS: debug window label - mTargetLevelLabel->setCaption(strprintf("%s ?", _("Target Level:"))); - // TRANSLATORS: debug window label - mTargetPartyLabel->setCaption(strprintf("%s ?", _("Target Party:"))); - // TRANSLATORS: debug window label - mTargetGuildLabel->setCaption(strprintf("%s ?", _("Target Guild:"))); - // TRANSLATORS: debug window label - mAttackDelayLabel->setCaption(strprintf("%s ?", _("Attack delay:"))); - // TRANSLATORS: debug window label - mMinHitLabel->setCaption(strprintf("%s ?", _("Minimal hit:"))); - // TRANSLATORS: debug window label - mMaxHitLabel->setCaption(strprintf("%s ?", _("Maximum hit:"))); - // TRANSLATORS: debug window label - mCriticalHitLabel->setCaption(strprintf("%s ?", _("Critical hit:"))); - // TRANSLATORS: debug window label - mKarmaLabel->setCaption(strprintf("%s ?", _("Karma:"))); - // TRANSLATORS: debug window label - mMannerLabel->setCaption(strprintf("%s ?", _("Manner:"))); - // TRANSLATORS: debug window label - mEffectsLabel->setCaption(strprintf("%s ?", _("Effects:"))); - } - - mTargetLabel->adjustSize(); - mTargetIdLabel->adjustSize(); - mTargetTypeLabel->adjustSize(); - mTargetLevelLabel->adjustSize(); - mTargetPartyLabel->adjustSize(); - mTargetGuildLabel->adjustSize(); - mAttackDelayLabel->adjustSize(); - mMinHitLabel->adjustSize(); - mMaxHitLabel->adjustSize(); - mCriticalHitLabel->adjustSize(); - mKarmaLabel->adjustSize(); - mMannerLabel->adjustSize(); - mEffectsLabel->adjustSize(); - BLOCK_END("TargetDebugTab::logic") -} - -NetDebugTab::NetDebugTab(const Widget2 *const widget) : - DebugTab(widget), - mPingLabel(new Label(this, " ")), - mInPackets1Label(new Label(this, " ")), - mOutPackets1Label(new Label(this, " ")) -{ - LayoutHelper h(this); - ContainerPlacer place = h.getPlacer(0, 0); - - place(0, 0, mPingLabel, 2, 1); - place(0, 1, mInPackets1Label, 2, 1); - place(0, 2, mOutPackets1Label, 2, 1); - - place.getCell().matchColWidth(0, 0); - place = h.getPlacer(0, 1); - setDimension(Rect(0, 0, 600, 300)); -} - -void NetDebugTab::logic() -{ - BLOCK_START("NetDebugTab::logic") - if (localPlayer != nullptr) - { - // TRANSLATORS: debug window label - mPingLabel->setCaption(strprintf(_("Ping: %s ms"), - localPlayer->getPingTime().c_str())); - } - else - { - // TRANSLATORS: debug window label - mPingLabel->setCaption(strprintf(_("Ping: %s ms"), "0")); - } - // TRANSLATORS: debug window label - mInPackets1Label->setCaption(strprintf(_("In: %d bytes/s"), - PacketCounters::getInBytes())); - // TRANSLATORS: debug window label - mOutPackets1Label->setCaption(strprintf(_("Out: %d bytes/s"), - PacketCounters::getOutBytes())); - BLOCK_END("NetDebugTab::logic") -} diff --git a/src/gui/widgets/tabs/debugwindowtabs.h b/src/gui/widgets/tabs/mapdebugtab.h index 17722f658..16130b353 100644 --- a/src/gui/widgets/tabs/debugwindowtabs.h +++ b/src/gui/widgets/tabs/mapdebugtab.h @@ -20,33 +20,13 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#ifndef GUI_WIDGETS_TABS_DEBUGWINDOWTABS_H -#define GUI_WIDGETS_TABS_DEBUGWINDOWTABS_H +#ifndef GUI_WIDGETS_TABS_MAPDEBUGTAB_H +#define GUI_WIDGETS_TABS_MAPDEBUGTAB_H -#include "gui/widgets/container.h" +#include "gui/widgets/tabs/debugtab.h" class Label; -class DebugTab notfinal : public Container -{ - friend class DebugWindow; - - public: - A_DELETE_COPY(DebugTab) - - void logic() override - { - } - - void resize(const int x, const int y) - { setDimension(Rect(0, 0, x, y)); } - - protected: - explicit DebugTab(const Widget2 *const widget) : - Container(widget) - { setSelectable(false); } -}; - class MapDebugTab final : public DebugTab { friend class DebugWindow; @@ -84,49 +64,4 @@ class MapDebugTab final : public DebugTab std::string mFPSText; }; -class TargetDebugTab final : public DebugTab -{ - friend class DebugWindow; - - public: - explicit TargetDebugTab(const Widget2 *const widget); - - A_DELETE_COPY(TargetDebugTab) - - void logic() override final; - - private: - Label *mTargetLabel A_NONNULLPOINTER; - Label *mTargetIdLabel A_NONNULLPOINTER; - Label *mTargetTypeLabel A_NONNULLPOINTER; - Label *mTargetLevelLabel A_NONNULLPOINTER; - Label *mTargetRaceLabel A_NONNULLPOINTER; - Label *mTargetPartyLabel A_NONNULLPOINTER; - Label *mTargetGuildLabel A_NONNULLPOINTER; - Label *mAttackDelayLabel A_NONNULLPOINTER; - Label *mMinHitLabel A_NONNULLPOINTER; - Label *mMaxHitLabel A_NONNULLPOINTER; - Label *mCriticalHitLabel A_NONNULLPOINTER; - Label *mKarmaLabel A_NONNULLPOINTER; - Label *mMannerLabel A_NONNULLPOINTER; - Label *mEffectsLabel A_NONNULLPOINTER; -}; - -class NetDebugTab final : public DebugTab -{ - friend class DebugWindow; - - public: - explicit NetDebugTab(const Widget2 *const widget); - - A_DELETE_COPY(NetDebugTab) - - void logic() override final; - - private: - Label *mPingLabel A_NONNULLPOINTER; - Label *mInPackets1Label A_NONNULLPOINTER; - Label *mOutPackets1Label A_NONNULLPOINTER; -}; - -#endif // GUI_WIDGETS_TABS_DEBUGWINDOWTABS_H +#endif // GUI_WIDGETS_TABS_MAPDEBUGTAB_H diff --git a/src/gui/widgets/tabs/netdebugtab.cpp b/src/gui/widgets/tabs/netdebugtab.cpp new file mode 100644 index 000000000..20b3ffdb8 --- /dev/null +++ b/src/gui/widgets/tabs/netdebugtab.cpp @@ -0,0 +1,75 @@ +/* + * The ManaPlus Client + * Copyright (C) 2011-2018 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/tabs/netdebugtab.h" + +#include "being/localplayer.h" + +#include "gui/widgets/containerplacer.h" +#include "gui/widgets/label.h" +#include "gui/widgets/layouthelper.h" + +#include "net/packetcounters.h" + +#include "utils/gettext.h" +#include "utils/stringutils.h" + +#include "debug.h" + +NetDebugTab::NetDebugTab(const Widget2 *const widget) : + DebugTab(widget), + mPingLabel(new Label(this, " ")), + mInPackets1Label(new Label(this, " ")), + mOutPackets1Label(new Label(this, " ")) +{ + LayoutHelper h(this); + ContainerPlacer place = h.getPlacer(0, 0); + + place(0, 0, mPingLabel, 2, 1); + place(0, 1, mInPackets1Label, 2, 1); + place(0, 2, mOutPackets1Label, 2, 1); + + place.getCell().matchColWidth(0, 0); + place = h.getPlacer(0, 1); + setDimension(Rect(0, 0, 600, 300)); +} + +void NetDebugTab::logic() +{ + BLOCK_START("NetDebugTab::logic") + if (localPlayer != nullptr) + { + // TRANSLATORS: debug window label + mPingLabel->setCaption(strprintf(_("Ping: %s ms"), + localPlayer->getPingTime().c_str())); + } + else + { + // TRANSLATORS: debug window label + mPingLabel->setCaption(strprintf(_("Ping: %s ms"), "0")); + } + // TRANSLATORS: debug window label + mInPackets1Label->setCaption(strprintf(_("In: %d bytes/s"), + PacketCounters::getInBytes())); + // TRANSLATORS: debug window label + mOutPackets1Label->setCaption(strprintf(_("Out: %d bytes/s"), + PacketCounters::getOutBytes())); + BLOCK_END("NetDebugTab::logic") +} diff --git a/src/gui/widgets/tabs/netdebugtab.h b/src/gui/widgets/tabs/netdebugtab.h new file mode 100644 index 000000000..71f31854a --- /dev/null +++ b/src/gui/widgets/tabs/netdebugtab.h @@ -0,0 +1,45 @@ +/* + * The ManaPlus Client + * Copyright (C) 2011-2018 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 GUI_WIDGETS_TABS_NETDEBUGTAB_H +#define GUI_WIDGETS_TABS_NETDEBUGTAB_H + +#include "gui/widgets/tabs/debugtab.h" + +class Label; + +class NetDebugTab final : public DebugTab +{ + friend class DebugWindow; + + public: + explicit NetDebugTab(const Widget2 *const widget); + + A_DELETE_COPY(NetDebugTab) + + void logic() override final; + + private: + Label *mPingLabel A_NONNULLPOINTER; + Label *mInPackets1Label A_NONNULLPOINTER; + Label *mOutPackets1Label A_NONNULLPOINTER; +}; + +#endif // GUI_WIDGETS_TABS_NETDEBUGTAB_H diff --git a/src/gui/widgets/tabs/targetdebugtab.cpp b/src/gui/widgets/tabs/targetdebugtab.cpp new file mode 100644 index 000000000..8ec9b84f6 --- /dev/null +++ b/src/gui/widgets/tabs/targetdebugtab.cpp @@ -0,0 +1,209 @@ +/* + * The ManaPlus Client + * Copyright (C) 2011-2018 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/tabs/targetdebugtab.h" + +#include "being/localplayer.h" + +#include "gui/widgets/containerplacer.h" +#include "gui/widgets/label.h" +#include "gui/widgets/layouthelper.h" + +#include "utils/gettext.h" +#include "utils/stringutils.h" + +#include "debug.h" + +TargetDebugTab::TargetDebugTab(const Widget2 *const widget) : + DebugTab(widget), + // TRANSLATORS: debug window label + mTargetLabel(new Label(this, strprintf("%s ?", _("Target:")))), + // TRANSLATORS: debug window label + mTargetIdLabel(new Label(this, strprintf("%s ? ", _("Target Id:")))), + mTargetTypeLabel(new Label(this, strprintf( + // TRANSLATORS: debug window label + "%s ? ", _("Target type:")))), + // TRANSLATORS: debug window label + mTargetLevelLabel(new Label(this, strprintf("%s ?", _("Target level:")))), + // TRANSLATORS: debug window label + mTargetRaceLabel(new Label(this, strprintf("%s ?", _("Target race:")))), + // TRANSLATORS: debug window label + mTargetPartyLabel(new Label(this, strprintf("%s ?", _("Target party:")))), + // TRANSLATORS: debug window label + mTargetGuildLabel(new Label(this, strprintf("%s ?", _("Target guild:")))), + // TRANSLATORS: debug window label + mAttackDelayLabel(new Label(this, strprintf("%s ?", _("Attack delay:")))), + // TRANSLATORS: debug window label + mMinHitLabel(new Label(this, strprintf("%s ?", _("Minimal hit:")))), + // TRANSLATORS: debug window label + mMaxHitLabel(new Label(this, strprintf("%s ?", _("Maximum hit:")))), + // TRANSLATORS: debug window label + mCriticalHitLabel(new Label(this, strprintf("%s ?", _("Critical hit:")))), + // TRANSLATORS: debug window label + mKarmaLabel(new Label(this, strprintf("%s ?", _("Karma:")))), + // TRANSLATORS: debug window label + mMannerLabel(new Label(this, strprintf("%s ?", _("Manner:")))), + // TRANSLATORS: debug window label + mEffectsLabel(new Label(this, strprintf("%s ?", _("Effects:")))) +{ + LayoutHelper h(this); + ContainerPlacer place = h.getPlacer(0, 0); + + place(0, 0, mTargetLabel, 2, 1); + place(0, 1, mTargetIdLabel, 2, 1); + place(0, 2, mTargetTypeLabel, 2, 1); + place(0, 3, mTargetLevelLabel, 2, 1); + place(0, 4, mTargetRaceLabel, 2, 1); + place(0, 5, mAttackDelayLabel, 2, 1); + place(0, 6, mTargetPartyLabel, 2, 1); + place(0, 7, mTargetGuildLabel, 2, 1); + place(0, 8, mMinHitLabel, 2, 1); + place(0, 9, mMaxHitLabel, 2, 1); + place(0, 10, mCriticalHitLabel, 2, 1); + place(0, 11, mKarmaLabel, 2, 1); + place(0, 12, mMannerLabel, 2, 1); + place(0, 13, mEffectsLabel, 2, 1); + + place.getCell().matchColWidth(0, 0); + place = h.getPlacer(0, 1); + setDimension(Rect(0, 0, 600, 300)); +} + +void TargetDebugTab::logic() +{ + BLOCK_START("TargetDebugTab::logic") + if ((localPlayer != nullptr) && (localPlayer->getTarget() != nullptr)) + { + const Being *const target = localPlayer->getTarget(); + + // TRANSLATORS: debug window label + mTargetLabel->setCaption(strprintf("%s %s (%d, %d)", _("Target:"), + target->getName().c_str(), target->getTileX(), + target->getTileY())); + + mTargetIdLabel->setCaption(strprintf("%s %d", + // TRANSLATORS: debug window label + _("Target Id:"), toInt(target->getId(), int))); + mTargetTypeLabel->setCaption(strprintf("%s %d", + // TRANSLATORS: debug window label + _("Target type:"), toInt(target->getSubType(), int))); + if (target->getLevel() != 0) + { + mTargetLevelLabel->setCaption(strprintf("%s %d", + // TRANSLATORS: debug window label + _("Target Level:"), target->getLevel())); + } + else + { + mTargetLevelLabel->setCaption(strprintf("%s ?", + // TRANSLATORS: debug window label + _("Target Level:"))); + } + + mTargetRaceLabel->setCaption(strprintf("%s %s", + // TRANSLATORS: debug window label + _("Target race:"), target->getRaceName().c_str())); + + // TRANSLATORS: debug window label + mTargetPartyLabel->setCaption(strprintf("%s %s", _("Target Party:"), + target->getPartyName().c_str())); + + // TRANSLATORS: debug window label + mTargetGuildLabel->setCaption(strprintf("%s %s", _("Target Guild:"), + target->getGuildName().c_str())); + + mMinHitLabel->setCaption(strprintf("%s %d", + // TRANSLATORS: debug window label + _("Minimal hit:"), target->getMinHit())); + mMaxHitLabel->setCaption(strprintf("%s %d", + // TRANSLATORS: debug window label + _("Maximum hit:"), target->getMaxHit())); + mCriticalHitLabel->setCaption(strprintf("%s %d", + // TRANSLATORS: debug window label + _("Critical hit:"), target->getCriticalHit())); + mKarmaLabel->setCaption(strprintf("%s %d", + // TRANSLATORS: debug window label + _("Karma:"), target->getKarma())); + mMannerLabel->setCaption(strprintf("%s %d", + // TRANSLATORS: debug window label + _("Manner:"), target->getManner())); + mEffectsLabel->setCaption(strprintf("%s %s", + // TRANSLATORS: debug window label + _("Effects:"), target->getStatusEffectsString().c_str())); + + const int delay = target->getAttackDelay(); + if (delay != 0) + { + mAttackDelayLabel->setCaption(strprintf("%s %d", + // TRANSLATORS: debug window label + _("Attack delay:"), delay)); + } + else + { + mAttackDelayLabel->setCaption(strprintf( + // TRANSLATORS: debug window label + "%s ?", _("Attack delay:"))); + } + } + else + { + // TRANSLATORS: debug window label + mTargetLabel->setCaption(strprintf("%s ?", _("Target:"))); + // TRANSLATORS: debug window label + mTargetIdLabel->setCaption(strprintf("%s ?", _("Target Id:"))); + // TRANSLATORS: debug window label + mTargetTypeLabel->setCaption(strprintf("%s ?", _("Target type:"))); + // TRANSLATORS: debug window label + mTargetLevelLabel->setCaption(strprintf("%s ?", _("Target Level:"))); + // TRANSLATORS: debug window label + mTargetPartyLabel->setCaption(strprintf("%s ?", _("Target Party:"))); + // TRANSLATORS: debug window label + mTargetGuildLabel->setCaption(strprintf("%s ?", _("Target Guild:"))); + // TRANSLATORS: debug window label + mAttackDelayLabel->setCaption(strprintf("%s ?", _("Attack delay:"))); + // TRANSLATORS: debug window label + mMinHitLabel->setCaption(strprintf("%s ?", _("Minimal hit:"))); + // TRANSLATORS: debug window label + mMaxHitLabel->setCaption(strprintf("%s ?", _("Maximum hit:"))); + // TRANSLATORS: debug window label + mCriticalHitLabel->setCaption(strprintf("%s ?", _("Critical hit:"))); + // TRANSLATORS: debug window label + mKarmaLabel->setCaption(strprintf("%s ?", _("Karma:"))); + // TRANSLATORS: debug window label + mMannerLabel->setCaption(strprintf("%s ?", _("Manner:"))); + // TRANSLATORS: debug window label + mEffectsLabel->setCaption(strprintf("%s ?", _("Effects:"))); + } + + mTargetLabel->adjustSize(); + mTargetIdLabel->adjustSize(); + mTargetTypeLabel->adjustSize(); + mTargetLevelLabel->adjustSize(); + mTargetPartyLabel->adjustSize(); + mTargetGuildLabel->adjustSize(); + mAttackDelayLabel->adjustSize(); + mMinHitLabel->adjustSize(); + mMaxHitLabel->adjustSize(); + mCriticalHitLabel->adjustSize(); + mKarmaLabel->adjustSize(); + mMannerLabel->adjustSize(); + mEffectsLabel->adjustSize(); + BLOCK_END("TargetDebugTab::logic") +} diff --git a/src/gui/widgets/tabs/targetdebugtab.h b/src/gui/widgets/tabs/targetdebugtab.h new file mode 100644 index 000000000..6b6b40a8f --- /dev/null +++ b/src/gui/widgets/tabs/targetdebugtab.h @@ -0,0 +1,56 @@ +/* + * The ManaPlus Client + * Copyright (C) 2011-2018 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 GUI_WIDGETS_TABS_TARGETDEBUGTAB_H +#define GUI_WIDGETS_TABS_TARGETDEBUGTAB_H + +#include "gui/widgets/tabs/debugtab.h" + +class Label; + +class TargetDebugTab final : public DebugTab +{ + friend class DebugWindow; + + public: + explicit TargetDebugTab(const Widget2 *const widget); + + A_DELETE_COPY(TargetDebugTab) + + void logic() override final; + + private: + Label *mTargetLabel A_NONNULLPOINTER; + Label *mTargetIdLabel A_NONNULLPOINTER; + Label *mTargetTypeLabel A_NONNULLPOINTER; + Label *mTargetLevelLabel A_NONNULLPOINTER; + Label *mTargetRaceLabel A_NONNULLPOINTER; + Label *mTargetPartyLabel A_NONNULLPOINTER; + Label *mTargetGuildLabel A_NONNULLPOINTER; + Label *mAttackDelayLabel A_NONNULLPOINTER; + Label *mMinHitLabel A_NONNULLPOINTER; + Label *mMaxHitLabel A_NONNULLPOINTER; + Label *mCriticalHitLabel A_NONNULLPOINTER; + Label *mKarmaLabel A_NONNULLPOINTER; + Label *mMannerLabel A_NONNULLPOINTER; + Label *mEffectsLabel A_NONNULLPOINTER; +}; + +#endif // GUI_WIDGETS_TABS_TARGETDEBUGTAB_H diff --git a/src/gui/windows/debugwindow.cpp b/src/gui/windows/debugwindow.cpp index 885fb7318..958a5428a 100644 --- a/src/gui/windows/debugwindow.cpp +++ b/src/gui/windows/debugwindow.cpp @@ -29,7 +29,9 @@ #include "gui/widgets/createwidget.h" #include "gui/widgets/tabbedarea.h" -#include "gui/widgets/tabs/debugwindowtabs.h" +#include "gui/widgets/tabs/mapdebugtab.h" +#include "gui/widgets/tabs/netdebugtab.h" +#include "gui/widgets/tabs/targetdebugtab.h" #include "utils/delete2.h" #include "utils/gettext.h" |