ManaPlus
icon.h
Go to the documentation of this file.
1 /*
2  * The ManaPlus Client
3  * Copyright (C) 2008-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_ICON_H
25 #define GUI_WIDGETS_ICON_H
26 
27 #include "gui/widgets/widget.h"
28 
30 
31 #include "localconsts.h"
32 
33 class Image;
34 
40 class Icon final : public Widget
41 {
42  public:
46  Icon(const Widget2 *const widget,
47  const std::string &filename,
48  const AutoRelease autoRelease);
49 
53  Icon(const Widget2 *const widget,
54  Image *const image,
55  const AutoRelease autoRelease);
56 
58 
59  ~Icon() override final;
60 
65  { return mImage; }
66 
70  void setImage(Image *const image);
71 
75  void draw(Graphics *const g) override final A_NONNULL(2);
76 
77  void safeDraw(Graphics *const g) override final A_NONNULL(2);
78 
79  private:
82 };
83 
84 #endif // GUI_WIDGETS_ICON_H
bool AutoRelease
Definition: autorelease.h:30
Definition: icon.h:41
Icon(const Widget2 *const widget, const std::string &filename, const AutoRelease autoRelease)
Definition: icon.cpp:36
AutoRelease mAutoRelease
Definition: icon.h:81
void safeDraw(Graphics *const g)
Definition: icon.cpp:96
Image * mImage
Definition: icon.h:80
void draw(Graphics *const g)
Definition: icon.cpp:84
Image * getImage() const
Definition: icon.h:64
~Icon()
Definition: icon.cpp:66
void setImage(Image *const image)
Definition: icon.cpp:74
Definition: widget.h:99
#define A_WARN_UNUSED
Definition: localconsts.h:161
#define A_NONNULL(...)
Definition: localconsts.h:168
#define noexcept2
Definition: localconsts.h:50
#define final
Definition: localconsts.h:46
#define A_DELETE_COPY(func)
Definition: localconsts.h:53