Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

painter.h

Go to the documentation of this file.
00001 #ifndef PAINTER_H
00002 #define PAINTER_H
00003 
00004 #include "portable.h"
00005 
00006 #if defined( KDE2_PORT )
00007 #include <kapp.h>
00008 #include <klocale.h>
00009 #endif
00010 
00011 #include <qpixmap.h>
00012 #include <qbitmap.h>
00013 #include <qlabel.h>
00014 #include <qcolor.h>
00015 #include <qlist.h>
00016 #include <qstrlist.h>
00017 #include <qregexp.h>
00018 
00019 #include "board.h"
00020 #include "bitfont.h"
00021 #include "colors.h"
00022 
00023 enum PixMap { PacmanPix, DyingPix, MonsterPix, EyesPix, FruitPix,
00024               PointPix, EnergizerPix, WallPix, PrisonPix,
00025               FruitScorePix, MonsterScorePix };
00026 enum DrawWidget { Widget, RoomPix, BackPix };
00027 
00028 class Painter
00029 {
00030 public:
00031     Painter (Board *, QWidget *parent=0, int scheme=-1, int mode=-1,Bitfont *font=0);
00032     QPixmap levelPix() { return roomPix; }
00033 
00034     void setScheme(int scheme=-1, int mode=-1, Bitfont *font=0);
00035     void setLevel(int level=0);
00036 
00037     QRect rect(int pos, PixMap pix, uint i = 0);
00038     QRect rect(int pos, QString str, int align = QLabel::AlignCenter );
00039     QRect rect(QRect r1, QRect r2);
00040 
00041     void draw(QPoint point, DrawWidget where, QPixmap pix);
00042     void draw(QRect rect, DrawWidget where, QPixmap pix);
00043     void draw(int pos, DrawWidget where, PixMap pix, uint i = 0);
00044     QPixmap draw(int pos, DrawWidget where, QString str,
00045                  QColor fg, QColor bg = QColor(), int align = QLabel::AlignCenter);
00046     QRect draw(int col, int row, DrawWidget where, QString str,
00047                QColor fg, QColor bg = QColor(), int align = QLabel::AlignCenter);
00048 
00049     void drawBrick(int pos);
00050     void drawPrison(int pos);
00051     void drawPoint(int pos);
00052 
00053     void erase(int pos, PixMap pix, uint i = 0);
00054 
00055     int maxPixmaps(PixMap pix);
00056 
00057 protected:
00058     QString decodeHexOctString(QString str);
00059 
00060     void fillScoreString(QStrList &, QArray<int> &);
00061     void fillArray(QArray<int> &, QString, int);
00062     void fillStrList(QStrList &, QString, int);
00063     void fillPixmapName(QStrList &);
00064 
00065     void confScheme();
00066     void confLevels(bool defGroup=TRUE);
00067     void confMisc(bool defGroup=TRUE);
00068     void confScoring(bool defGroup=TRUE);
00069 
00070     void initPixmaps();
00071     void initRoomPixmap();
00072     void initbackPixmaps();
00073 
00074 private:
00075     QWidget *w;
00076     Board *board;
00077     Bitfont *bitfont;
00078 
00079     int BlockWidth;
00080     int BlockHeight;
00081 
00082     QArray<int> fruitScore;
00083     QStrList fruitScoreString;
00084     QArray<int> monsterScore;
00085     QStrList monsterScoreString;
00086 
00087     QString pixmapDirectory;
00088 
00089     QStrList pointPixmapName;
00090     QStrList wallPixmapName;
00091     QStrList prisonPixmapName;
00092     QStrList energizerPixmapName;
00093     QStrList fruitPixmapName;
00094     QStrList pacmanPixmapName;
00095     QStrList dyingPixmapName;
00096     QStrList eyesPixmapName;
00097     QStrList monsterPixmapName;
00098     QStrList fruitScorePixmapName;
00099     QStrList monsterScorePixmapName;
00100 
00101     QString lastPointPixmapName;
00102     QString lastWallPixmapName;
00103     QString lastPrisonPixmapName;
00104     QString lastEnergizerPixmapName;
00105     QString lastFruitPixmapName;
00106     QString lastPacmanPixmapName;
00107     QString lastDyingPixmapName;
00108     QString lastEyesPixmapName;
00109     QString lastMonsterPixmapName;
00110     QString lastFruitScorePixmapName;
00111     QString lastMonsterScorePixmapName;
00112 
00113     QList<QPixmap> *loadPixmap(QWidget *parent, QString pixmapName,
00114                                QList<QPixmap> *pixmaps=0);
00115     QList<QPixmap> *textPixmap(QStrList &, QList<QPixmap> *pixmaps=0,
00116                                QColor fg = BLACK, QColor bg = QColor());
00117     QList<QPixmap> *textPixmap(QString str, QList<QPixmap> *pixmaps=0,
00118                                QColor fg = BLACK, QColor bg = QColor());
00119 
00120     QPoint point(int pos);
00121     int checkRange(int value, int max, int min=0);
00122 
00123     QList<QPixmap> *wallPix;
00124     QList<QPixmap> *prisonPix;
00125     QList<QPixmap> *pointPix;
00126     QList<QPixmap> *energizerPix;
00127     QList<QPixmap> *fruitPix;
00128     QList<QPixmap> *pacmanPix;
00129     QList<QPixmap> *dyingPix;
00130     QList<QPixmap> *eyesPix;
00131     QList<QPixmap> *monsterPix;
00132     QList<QPixmap> *fruitScorePix;
00133     QList<QPixmap> *monsterScorePix;
00134 
00135     QPixmap roomPix;
00136     QPixmap backPix;
00137 
00138     bool plainColor;
00139     QColor backgroundColor;
00140 
00141     int maxLevel;
00142     int level;
00143 
00144     int scheme;
00145     int mode;
00146 };
00147 
00148 #endif // PAINTER_H

Generated on Sat Nov 5 16:17:21 2005 for OPIE by  doxygen 1.4.2