ManaPlus
playerbox.h
Go to the documentation of this file.
1 /*
2  * The ManaPlus Client
3  * Copyright (C) 2004-2009 The Mana World Development Team
4  * Copyright (C) 2009-2010 The Mana Developers
5  * Copyright (C) 2011-2019 The ManaPlus Developers
6  * Copyright (C) 2019-2021 Andrei Karas
7  *
8  * This file is part of The ManaPlus Client.
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program. If not, see <http://www.gnu.org/licenses/>.
22  */
23 
24 #ifndef GUI_WIDGETS_PLAYERBOX_H
25 #define GUI_WIDGETS_PLAYERBOX_H
26 
27 #include "gui/widgets/widget.h"
28 
30 
31 #include "resources/imagerect.h"
32 
33 #include "localconsts.h"
34 
35 class Being;
36 class Skin;
37 
43 class PlayerBox final : public Widget,
44  public MouseListener
45 {
46  public:
51  PlayerBox(Widget2 *const widget,
52  Being *const being,
53  const std::string &skin,
54  const std::string &selectedSkin);
55 
56  PlayerBox(Widget2 *const widget,
57  const std::string &skin,
58  const std::string &selectedSkin);
59 
61 
62 
65  ~PlayerBox() override final;
66 
67  void init(std::string name, std::string selectedName);
68 
74  void setPlayer(Being *being)
75  { mBeing = being; }
76 
80  void draw(Graphics *const graphics) override final A_NONNULL(2);
81 
82  void safeDraw(Graphics *const graphics) override final A_NONNULL(2);
83 
87  void drawFrame(Graphics *const graphics) override final A_NONNULL(2);
88 
89  void safeDrawFrame(Graphics *const graphics) override final
90  A_NONNULL(2);
91 
93  { return mBeing; }
94 
95  void setSelected(bool b)
96  { mSelected = b; }
97 
98  void mouseReleased(MouseEvent& event) override final;
99 
100  private:
102  float mAlpha;
107  int mOffsetX;
108  int mOffsetY;
110  bool mSelected;
111 };
112 
113 #endif // GUI_WIDGETS_PLAYERBOX_H
Definition: being.h:96
Being * mBeing
Definition: playerbox.h:101
Being * getBeing()
Definition: playerbox.h:92
void draw(Graphics *const graphics)
Definition: playerbox.cpp:127
ImageRect mSelectedBackground
Definition: playerbox.h:104
ImageRect mBackground
Definition: playerbox.h:103
void init(std::string name, std::string selectedName)
Definition: playerbox.cpp:88
int mOffsetX
Definition: playerbox.h:107
void setPlayer(Being *being)
Definition: playerbox.h:74
void mouseReleased(MouseEvent &event)
Definition: playerbox.cpp:189
void setSelected(bool b)
Definition: playerbox.h:95
void safeDrawFrame(Graphics *const graphics)
Definition: playerbox.cpp:172
bool mSelected
Definition: playerbox.h:110
void drawFrame(Graphics *const graphics)
Definition: playerbox.cpp:155
Skin * mSelectedSkin
Definition: playerbox.h:106
Skin * mSkin
Definition: playerbox.h:105
bool mDrawBackground
Definition: playerbox.h:109
float mAlpha
Definition: playerbox.h:102
PlayerBox(Widget2 *const widget, Being *const being, const std::string &skin, const std::string &selectedSkin)
Definition: playerbox.cpp:39
int mOffsetY
Definition: playerbox.h:108
void safeDraw(Graphics *const graphics)
Definition: playerbox.cpp:150
Definition: skin.h:37
Definition: widget.h:99
#define A_WARN_UNUSED
Definition: localconsts.h:161
#define A_NONNULL(...)
Definition: localconsts.h:168
#define final
Definition: localconsts.h:46
#define A_DELETE_COPY(func)
Definition: localconsts.h:53