OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
scenetooltexturebrush.hpp
Go to the documentation of this file.
1 #ifndef CSV_WIDGET_SCENETOOLTEXTUREBRUSH_H
2 #define CSV_WIDGET_SCENETOOLTEXTUREBRUSH_H
3 
4 #include <QIcon>
5 #include <QFrame>
6 #include <QModelIndex>
7 
8 #include <QWidget>
9 #include <QLabel>
10 #include <QSpinBox>
11 #include <QGroupBox>
12 #include <QSlider>
13 #include <QEvent>
14 #include <QHBoxLayout>
15 #include <QPushButton>
16 
17 #include "scenetool.hpp"
18 
19 #include "../../model/doc/document.hpp"
20 
21 class QTableWidget;
22 
23 namespace CSVRender
24 {
25  class TerrainTextureMode;
26 }
27 
28 namespace CSVWidget
29 {
30  class SceneToolTextureBrush;
31 
34  {
35  Q_OBJECT
36 
37  public:
38  BrushSizeControls(const QString &title, QWidget *parent);
39 
40  private:
41  QHBoxLayout *mLayoutSliderSize;
42  QSlider *mBrushSizeSlider;
44 
45  friend class SceneToolTextureBrush;
47  };
48 
50 
52  class TextureBrushWindow : public QFrame
53  {
54  Q_OBJECT
55 
56  public:
57  TextureBrushWindow(CSMDoc::Document& document, QWidget *parent = 0);
58  void configureButtonInitialSettings(QPushButton *button);
59 
60  const QString toolTipPoint = "Paint single point";
61  const QString toolTipSquare = "Paint with square brush";
62  const QString toolTipCircle = "Paint with circle brush";
63  const QString toolTipCustom = "Paint custom selection (not implemented yet)";
64 
65  private:
68  std::string mBrushTexture;
70  QLabel *mSelectedBrush;
72  std::string mBrushTextureLabel;
73  QPushButton *mButtonPoint;
74  QPushButton *mButtonSquare;
75  QPushButton *mButtonCircle;
76  QPushButton *mButtonCustom;
78 
79  friend class SceneToolTextureBrush;
81 
82  public slots:
83  void setBrushTexture(std::string brushTexture);
84  void setBrushShape();
85  void setBrushSize(int brushSize);
86 
87  signals:
88  void passBrushSize (int brushSize);
89  void passBrushShape(int brushShape);
90  void passTextureId(std::string brushTexture);
91  };
92 
94  {
95  Q_OBJECT
96 
97  QString mToolTip;
101  std::vector<std::string> mBrushHistory;
103 
104  private:
105 
106  void adjustToolTips();
107 
108  public:
109 
110  SceneToolTextureBrush (SceneToolbar *parent, const QString& toolTip, CSMDoc::Document& document);
111 
112  virtual void showPanel (const QPoint& position);
113  void updatePanel ();
114 
115  void dropEvent (QDropEvent *event);
116  void dragEnterEvent (QDragEnterEvent *event);
117 
119 
120  public slots:
121  void setButtonIcon(int brushShape);
122  void updateBrushHistory (const std::string& mBrushTexture);
123  void clicked (const QModelIndex& index);
124  virtual void activate();
125 
126  signals:
127  void passEvent(QDropEvent *event);
128  void passEvent(QDragEnterEvent *event);
129  void passTextureId(std::string brushTexture);
130  };
131 }
132 
133 #endif
Layout-box for some brush button settings.
Definition: scenetooltexturebrush.hpp:33
QGroupBox * mHorizontalGroupBox
Definition: scenetooltexturebrush.hpp:71
BrushSizeControls(const QString &title, QWidget *parent)
Definition: scenetooltexturebrush.cpp:35
void dragEnterEvent(QDragEnterEvent *event)
Definition: scenetooltexturebrush.cpp:370
QPushButton * mButtonCircle
Definition: scenetooltexturebrush.hpp:75
void passBrushShape(int brushShape)
QLabel * mSelectedBrush
Definition: scenetooltexturebrush.hpp:70
void setBrushSize(int brushSize)
Definition: scenetooltexturebrush.cpp:201
const QString toolTipSquare
Definition: scenetooltexturebrush.hpp:61
Brush settings window.
Definition: scenetooltexturebrush.hpp:52
std::string mBrushTexture
Definition: terraintexturemode.hpp:79
static const struct @8 signals[]
QSlider * mBrushSizeSlider
Definition: scenetooltexturebrush.hpp:42
void dropEvent(QDropEvent *event)
Definition: scenetooltexturebrush.cpp:375
QSpinBox * mBrushSizeSpinBox
Definition: scenetooltexturebrush.hpp:43
QPushButton * mButtonPoint
Definition: scenetooltexturebrush.hpp:73
int mBrushSize
Definition: scenetooltexturebrush.hpp:67
Definition: scenetooltexturebrush.hpp:93
TextureBrushWindow(CSMDoc::Document &document, QWidget *parent=0)
Definition: scenetooltexturebrush.cpp:58
void setBrushShape()
Definition: scenetooltexturebrush.cpp:207
void passTextureId(std::string brushTexture)
void passTextureId(std::string brushTexture)
const QString toolTipCustom
Definition: scenetooltexturebrush.hpp:63
Definition: terraintexturemode.hpp:27
virtual void activate()
Definition: scenetooltexturebrush.cpp:361
void updateBrushHistory(const std::string &mBrushTexture)
Definition: scenetooltexturebrush.cpp:342
void passBrushSize(int brushSize)
std::string mBrushTextureLabel
Definition: scenetooltexturebrush.hpp:72
void setButtonIcon(int brushShape)
Definition: scenetooltexturebrush.cpp:260
void passEvent(QDropEvent *event)
Tool base class.
Definition: scenetool.hpp:11
QPushButton * mButtonSquare
Definition: scenetooltexturebrush.hpp:74
void setBrushTexture(std::string brushTexture)
Definition: scenetooltexturebrush.cpp:143
QHBoxLayout * mLayoutSliderSize
Definition: scenetooltexturebrush.hpp:41
CSMDoc::Document & mDocument
Definition: scenetooltexturebrush.hpp:69
virtual void showPanel(const QPoint &position)
Definition: scenetooltexturebrush.cpp:313
std::vector< std::string > mBrushHistory
Definition: scenetooltexturebrush.hpp:101
Definition: document.hpp:57
void updatePanel()
Definition: scenetooltexturebrush.cpp:320
const QString toolTipCircle
Definition: scenetooltexturebrush.hpp:62
void configureButtonInitialSettings(QPushButton *button)
Definition: scenetooltexturebrush.cpp:134
QString mToolTip
Definition: scenetooltexturebrush.hpp:97
QFrame * mPanel
Definition: scenetooltexturebrush.hpp:99
void clicked(const QModelIndex &index)
Definition: scenetooltexturebrush.cpp:348
BrushSizeControls * mSizeSliders
Definition: scenetooltexturebrush.hpp:77
Definition: scenetoolbar.hpp:12
QTableWidget * mTable
Definition: scenetooltexturebrush.hpp:100
SceneToolTextureBrush(SceneToolbar *parent, const QString &toolTip, CSMDoc::Document &document)
Definition: scenetooltexturebrush.cpp:220
int mBrushShape
Definition: scenetooltexturebrush.hpp:66
CSMDoc::Document & mDocument
Definition: scenetooltexturebrush.hpp:98
const QString toolTipPoint
Definition: scenetooltexturebrush.hpp:60
void adjustToolTips()
Definition: scenetooltexturebrush.cpp:216
TextureBrushWindow * mTextureBrushWindow
Definition: scenetooltexturebrush.hpp:102
QPushButton * mButtonCustom
Definition: scenetooltexturebrush.hpp:76
std::string mBrushTexture
Definition: scenetooltexturebrush.hpp:68