ginebra2/ScaleNinePainter.h
changeset 16 3c88a81ff781
equal deleted inserted replaced
14:6aeb7a756187 16:3c88a81ff781
       
     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