Freeciv21
Develop your civilization from humble roots to a global empire
minimap.h
Go to the documentation of this file.
1 /**************************************************************************
2  Copyright (c) 1996-2023 Freeciv21 and Freeciv contributors. This file
3  is part of Freeciv21. Freeciv21 is free software:
4 |\_/|,,_____,~~` you can redistribute it and/or modify it under the
5 (.".)~~ )`~}} terms of the GNU General Public License as published
6  \o/\ /---~\\ ~}} by the Free Software Foundation, either version 3 of
7  _// _// ~} the License, or (at your option) any later version.
8  You should have received a copy of the GNU General
9  Public License along with Freeciv21. If not, see
10  https://www.gnu.org/licenses/.
11 **************************************************************************/
12 #pragma once
13 
14 #include "mapview_g.h"
15 // Qt
16 #include <QFrame>
17 #include <QLabel>
18 // client
19 #include "widgets/decorations.h"
20 
21 class QImage;
22 class QMouseEvent;
23 class QMoveEvent;
24 class QObject;
25 class QPaintEvent;
26 class QPainter;
27 class QPixmap; // lines 26-26
28 class QResizeEvent;
29 class QShowEvent;
30 class QWheelEvent;
31 class QWidget;
32 
33 /**************************************************************************
34  Widget used for displaying overview (minimap)
35 **************************************************************************/
36 class minimap_view : public fcwidget {
37  Q_OBJECT
38 
39 public:
40  minimap_view(QWidget *parent);
41 
42  void paint(QPainter *painter, QPaintEvent *event);
43  void update_menu() override;
44  void update_image();
45 
46  bool hasHeightForWidth() const override { return true; }
47  int heightForWidth(int width) const override;
48  QSize sizeHint() const override;
49 
50 protected:
51  void paintEvent(QPaintEvent *event) override;
52  void resizeEvent(QResizeEvent *event) override;
53  void mousePressEvent(QMouseEvent *event) override;
54 
55 private:
56  void draw_viewport(QPainter *painter);
57 };
bool hasHeightForWidth() const override
Definition: minimap.h:46
void paint(QPainter *painter, QPaintEvent *event)
Redraws visible map using stored pixmap.
Definition: minimap.cpp:188
void paintEvent(QPaintEvent *event) override
Paint event for minimap.
Definition: minimap.cpp:44
void update_menu() override
Called by close widget, cause widget has been hidden.
Definition: minimap.cpp:56
minimap_view(QWidget *parent)
Constructor for minimap.
Definition: minimap.cpp:35
int heightForWidth(int width) const override
Reimplements QWidget::heightForWidth.
Definition: minimap.cpp:165
QSize sizeHint() const override
Reimplements QWidget::sizeHint.
Definition: minimap.cpp:179
void mousePressEvent(QMouseEvent *event) override
Mouse Handler for minimap_view Left button - moves minimap Right button - recenters on some point For...
Definition: minimap.cpp:230
void resizeEvent(QResizeEvent *event) override
Called when minimap has been resized.
Definition: minimap.cpp:201
void draw_viewport(QPainter *painter)
Draws viewport on minimap.
Definition: minimap.cpp:81
void update_image()
Updates minimap's pixmap.
Definition: minimap.cpp:154
enum event_type event
Definition: events.cpp:68