ManaPlus
minimap.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_WINDOWS_MINIMAP_H
25 #define GUI_WINDOWS_MINIMAP_H
26 
27 #include "gui/widgets/window.h"
28 
29 class Image;
30 class Map;
31 
41 class Minimap final : public Window, public ConfigListener
42 {
43  public:
44  Minimap();
45 
47 
48  ~Minimap() override final;
49 
53  void setMap(const Map *const map);
54 
58  void toggle();
59 
63  void draw(Graphics *const graphics) override final A_NONNULL(2);
64 
65  void safeDraw(Graphics *const graphics) override final A_NONNULL(2);
66 
67  void draw2(Graphics *const graphics) A_NONNULL(2);
68 
69  void mouseMoved(MouseEvent &event) override final;
70 
71  void mouseReleased(MouseEvent &event) override final;
72 
73  void mousePressed(MouseEvent &event) override final;
74 
75  void mouseExited(MouseEvent &event) override final;
76 
77  void screenToMap(int &x, int &y);
78 
79  void optionChanged(const std::string &name) override final;
80 
81  private:
82  void deleteMapImage();
83 
91  static bool mShow;
92 };
93 
94 extern Minimap *minimap;
95 
96 #endif // GUI_WINDOWS_MINIMAP_H
Definition: map.h:75
int mMapOriginY
Definition: minimap.h:88
void setMap(const Map *const map)
Definition: minimap.cpp:119
void optionChanged(const std::string &name)
Definition: minimap.cpp:538
void mouseReleased(MouseEvent &event)
Definition: minimap.cpp:489
void mousePressed(MouseEvent &event)
Definition: minimap.cpp:482
static bool mShow
Definition: minimap.h:91
void toggle()
Definition: minimap.cpp:248
~Minimap()
Definition: minimap.cpp:99
int mMapOriginX
Definition: minimap.h:87
void mouseMoved(MouseEvent &event)
Definition: minimap.cpp:516
Minimap()
Definition: minimap.cpp:65
Image * mMapImage
Definition: minimap.h:86
void screenToMap(int &x, int &y)
Definition: minimap.cpp:531
void draw2(Graphics *const graphics)
Definition: minimap.cpp:270
bool mCustomMapImage
Definition: minimap.h:89
void safeDraw(Graphics *const graphics)
Definition: minimap.cpp:262
void deleteMapImage()
Definition: minimap.cpp:107
float mHeightProportion
Definition: minimap.h:85
void mouseExited(MouseEvent &event)
Definition: minimap.cpp:525
bool mAutoResize
Definition: minimap.h:90
void draw(Graphics *const graphics)
Definition: minimap.cpp:254
float mWidthProportion
Definition: minimap.h:84
Definition: window.h:102
#define A_NONNULL(...)
Definition: localconsts.h:168
#define final
Definition: localconsts.h:46
#define A_DELETE_COPY(func)
Definition: localconsts.h:53
Minimap * minimap
Definition: minimap.cpp:62