Walls And Holes  1
abstracttilemaptool.h
Go to the documentation of this file.
1 #ifndef ABSTRACTTILEMAPTOOL_H
2 #define ABSTRACTTILEMAPTOOL_H
3 
4 #include "abstracttool.h"
5 #include "tilemap.h"
6 #include "tiletemplate.h"
8 
10 {
11 public:
13  : AbstractTool()
14  , mPreviewItem(previewItem)
15  , mTileMap(nullptr)
16  , mTileTemplate(nullptr)
17  {
19  }
20 
21  void setTileMap(TileMap *tileMap)
22  {
23  TileMap *prev = mTileMap;
24  mTileMap = tileMap;
25  toolTileMapChanged(prev);
26  }
27 
28  void setTileTemplate(TileTemplate *tileTemplate) { mTileTemplate = tileTemplate; }
29 
30 
36  virtual void toolTileMapChanged(TileMap *previous = nullptr) { Q_UNUSED(previous); }
37 
38 
48  virtual void cellActivated(int, int, QMouseEvent *) {}
49 
59  virtual void cellClicked(int, int, QMouseEvent *) {}
60 
67  virtual void cellReleased(int, int, QMouseEvent *) {}
68 
69 
75  virtual void cellHovered(int, int, QMouseEvent *) {}
76 
77 
81  virtual void mouseExitedMap(QMouseEvent *) {}
82 
83 protected:
84  TileMap *getTileMap() const { return mTileMap; }
85  TileTemplate *getTileTemplate() const { return mTileTemplate; }
86 
87  //the preview item of mapView, can't be changed
89 
90 private:
91  TileMap *mTileMap;
92  TileTemplate *mTileTemplate;
93 
98 };
99 
100 #endif // ABSTRACTTILEMAPTOOL_H
virtual void mouseMoveEvent(QMouseEvent *)
Definition: abstracttool.h:49
virtual void mouseExitedMap(QMouseEvent *)
Called when the mouse is no longer hovering over a cell.
Definition: abstracttilemaptool.h:81
virtual void mousePressEvent(QMouseEvent *)
Definition: abstracttool.h:47
virtual void cellHovered(int, int, QMouseEvent *)
Called when the mouse hovers over a new cell.
Definition: abstracttilemaptool.h:75
TileMapPreviewGraphicsItem *const mPreviewItem
Definition: abstracttilemaptool.h:88
virtual void cellReleased(int, int, QMouseEvent *)
Called when the left mouse button is released over a cell.
Definition: abstracttilemaptool.h:67
Definition: abstracttilemaptool.h:9
void setTileTemplate(TileTemplate *tileTemplate)
Definition: abstracttilemaptool.h:28
virtual void cellClicked(int, int, QMouseEvent *)
Called the first time the left mouse button is pressed over a cell.
Definition: abstracttilemaptool.h:59
TileTemplate * getTileTemplate() const
Definition: abstracttilemaptool.h:85
The AbstractTool class represents a UI tool. A UI tool can be activated or deactivated.
Definition: abstracttool.h:24
virtual void wheelEvent(QWheelEvent *)
Definition: abstracttool.h:50
void setTileMap(TileMap *tileMap)
Definition: abstracttilemaptool.h:21
virtual void toolTileMapChanged(TileMap *previous=nullptr)
Called whenever mTileMap changes. Called in constructor.
Definition: abstracttilemaptool.h:36
Definition: tiletemplate.h:13
AbstractTileMapTool(TileMapPreviewGraphicsItem *previewItem)
Definition: abstracttilemaptool.h:12
virtual void cellActivated(int, int, QMouseEvent *)
Called when the left mouse button is down over a new cell.
Definition: abstracttilemaptool.h:48
Definition: tilemappreviewgraphicsitem.h:9
Definition: tilemap.h:14
virtual void mouseReleaseEvent(QMouseEvent *)
Definition: abstracttool.h:48
TileMap * getTileMap() const
Definition: abstracttilemaptool.h:84