1 /*
2  *  The ManaPlus Client
3  *  Copyright (C) 2011-2019  The ManaPlus Developers
4  *  Copyright (C) 2019-2021  Andrei Karas
5  *
6  *  This file is part of The ManaPlus Client.
7  *
8  *  This program is free software; you can redistribute it and/or modify
9  *  it under the terms of the GNU General Public License as published by
10  *  the Free Software Foundation; either version 2 of the License, or
11  *  any later version.
12  *
13  *  This program is distributed in the hope that it will be useful,
14  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  *  GNU General Public License for more details.
17  *
18  *  You should have received a copy of the GNU General Public License
19  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
20  */
21 
22 #ifndef GUI_WIDGETS_TABS_SOCIALATTACKTAB_H
23 #define GUI_WIDGETS_TABS_SOCIALATTACKTAB_H
24 
25 #include "gui/widgets/tabs/socialtab.h"
26 
27 #include "being/localplayer.h"
28 
29 #include "gui/models/beingslistmodel.h"
30 
31 #include "gui/widgets/tabs/socialtabbase.h"
32 
33 #include "utils/delete2.h"
34 #include "utils/gettext.h"
35 
36 #include "localconsts.h"
37 
38 class SocialAttackTab final : public SocialTab
39 {
40     public:
SocialAttackTab(const Widget2 * const widget,const Opaque showBackground)41         SocialAttackTab(const Widget2 *const widget,
42                         const Opaque showBackground) :
43             SocialTab(widget),
44             mBeings(new BeingsListModel)
45         {
46             createControls(mBeings, showBackground);
47 
48             // TRANSLATORS: Attack filter tab name in social window.
49             // TRANSLATORS: Should be small
50             setCaption(_("Atk"));
51             mMenuAction = "attack";
52         }
53 
54         A_DELETE_COPY(SocialAttackTab)
55 
~SocialAttackTab()56         ~SocialAttackTab() override final
57         {
58             delete2(mList)
59             delete2(mScroll)
60             delete2(mBeings)
61         }
62 
updateList()63         void updateList() override final
64         {
65             updateAtkListStart();
66             // TRANSLATORS: mobs group name in social window
67             addAvatars(PriorityAttackMob, _("Priority mobs"), PRIORITY)
68             // TRANSLATORS: mobs group name in social window
69             addAvatars(AttackMob, _("Attack mobs"), ATTACK)
70             // TRANSLATORS: mobs group name in social window
71             addAvatars(IgnoreAttackMob, _("Ignore mobs"), IGNORE_)
72         }
73 
74     private:
75         BeingsListModel *mBeings;
76 };
77 
78 #endif  // GUI_WIDGETS_TABS_SOCIALATTACKTAB_H
79