OSDN Git Service

Initial Import
[nethackexpress/trunk.git] / win / Qt / tileedit.h
1 /*      SCCS Id: @(#)tileedit.h 3.4     1999/11/19      */
2 /* Copyright (c) Warwick Allison, 1999. */
3 /* NetHack may be freely redistributed.  See license for details. */
4 #ifndef QNHTILEEDIT_H
5 #define QNHTILEEDIT_H
6
7 #include <qtabwidget.h>
8 #include <qpixmap.h>
9 #include <qimage.h>
10 #include <qvbox.h>
11
12 class TilePickerTab : public QWidget {
13     Q_OBJECT
14 public:
15     TilePickerTab(const char* basename, int id, QWidget* parent);
16
17     bool save();
18     int numTiles();
19
20 signals:
21     void pick(const QImage&);
22     void pickName(const QString&);
23
24 public slots:
25     void setCurrent(const QImage&);
26
27 protected:
28     void paintEvent( QPaintEvent* );
29     QSize sizeHint() const;
30     void mousePressEvent(QMouseEvent*);
31
32 private:
33     QString filename;
34     int id;
35     int last_pick;
36     int num;
37     QPixmap pixmap;
38     QImage image;
39 };
40
41 class TilePicker : public QTabWidget {
42     Q_OBJECT
43 public:
44     TilePicker(QWidget* parent);
45
46     void setTile(int tilenum, const QImage&);
47
48 signals:
49     void pick(const QImage&);
50     void pickName(const QString&);
51
52 public slots:
53     void setCurrent(const QImage&);
54     void save();
55 };
56
57 class TrivialTileEditor : public QWidget {
58     Q_OBJECT
59 public:
60     TrivialTileEditor( QWidget* parent );
61     const QImage& image() const;
62
63 signals:
64     void edited(const QImage&);
65     void pick(QRgb);
66
67 public slots:
68     void setColor(QRgb);
69     void setImage( const QImage& );
70
71 protected:
72     void paintEvent( QPaintEvent* );
73     void mousePressEvent(QMouseEvent*);
74     void mouseReleaseEvent(QMouseEvent*);
75     void mouseMoveEvent(QMouseEvent*);
76     QSize sizeHint() const;
77     QSize sizeForWidth(int) const;
78     QSizePolicy sizePolicy() const;
79
80 private:
81     void fill(QPainter& painter, QPoint p, uchar from);
82     QImage img;
83     QColor pen;
84     int penpixel;
85     void paintPoint(QPainter& painter, QPoint p);
86     QPoint screenPoint(QPoint) const;
87     QPoint imagePoint(QPoint) const;
88 };
89
90 class TilePalette : public QWidget {
91     Q_OBJECT
92 public:
93     TilePalette( QWidget* parent );
94     ~TilePalette();
95     void setFromImage( const QImage& );
96 protected:
97     void paintEvent( QPaintEvent* );
98     void mousePressEvent(QMouseEvent*);
99     QSize sizeHint() const;
100     QSizePolicy sizePolicy() const;
101 signals:
102     void pick(QRgb);
103 public slots:
104     void setColor(QRgb);
105 private:
106     int num;
107     QRgb *rgb;
108 };
109
110 class TileEditor : public QVBox {
111     Q_OBJECT
112 public:
113     TileEditor(QWidget* parent);
114
115     const QImage& image() const;
116
117 signals:
118     void edited(const QImage&);
119
120 public slots:
121     void edit(const QImage&);
122
123 private:
124     TrivialTileEditor editor;
125     TilePalette palette;
126 };
127
128 #endif