16
|
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
|