|
1 #ifndef SCALENINEPAINTER_H |
|
2 #define SCALENINEPAINTER_H |
|
3 |
|
4 #include <QPixmap> |
|
5 |
|
6 class QPainter; |
|
7 class QString; |
|
8 class QStyleOptionGraphicsItem; |
|
9 class QWidget; |
|
10 |
|
11 namespace GVA { |
|
12 |
|
13 /*! |
|
14 * This class paints a resizable window background using separate images for its' four corners, |
|
15 * four edges and middle area. |
|
16 */ |
|
17 class ScaleNinePainter |
|
18 { |
|
19 public: |
|
20 ScaleNinePainter(const QString &topLeftFilename, |
|
21 const QString &topMiddleFilename, |
|
22 const QString &topRightFilename, |
|
23 const QString &middleLeftFilename = QString::null, |
|
24 const QString &middleMiddleFilename = QString::null, |
|
25 const QString &middleRightFilename = QString::null, |
|
26 const QString &bottomLeftFilename = QString::null, |
|
27 const QString &bottomMiddleFilename = QString::null, |
|
28 const QString &bottomRightFilename = QString::null |
|
29 ); |
|
30 ~ScaleNinePainter(); |
|
31 void paint(QPainter* painter, const QRect &rect, QWidget* widget); |
|
32 void unloadPixmaps(); |
|
33 |
|
34 private: |
|
35 void loadPixmaps(); |
|
36 |
|
37 private: |
|
38 QString m_topLeftFilename; |
|
39 QString m_topMiddleFilename; |
|
40 QString m_topRightFilename; |
|
41 QString m_middleLeftFilename; |
|
42 QString m_middleMiddleFilename; |
|
43 QString m_middleRightFilename; |
|
44 QString m_bottomLeftFilename; |
|
45 QString m_bottomMiddleFilename; |
|
46 QString m_bottomRightFilename; |
|
47 QPixmap *m_topLeftPixmap; |
|
48 QPixmap *m_topMiddlePixmap; |
|
49 QPixmap *m_topRightPixmap; |
|
50 QPixmap *m_middleLeftPixmap; |
|
51 QPixmap *m_middleMiddlePixmap; |
|
52 QPixmap *m_middleRightPixmap; |
|
53 QPixmap *m_bottomLeftPixmap; |
|
54 QPixmap *m_bottomMiddlePixmap; |
|
55 QPixmap *m_bottomRightPixmap; |
|
56 bool m_pixmapsLoaded; |
|
57 }; |
|
58 |
|
59 } // GVA namespace |
|
60 |
|
61 #endif // SCALENINEPAINTER_H |