add non-functional c1 Hatchery
[openc2e.git] / qtgui / openc2eview.h
blob89fad265e768e54f19f7ae1275ddb35b561610c7
1 /*
2 This program is free software; you can redistribute it and/or modify
3 it under the terms of the GNU General Public License as published by
4 the Free Software Foundation; either version 2 of the License, or
5 (at your option) any later version.
7 This program is distributed in the hope that it will be useful,
8 but WITHOUT ANY WARRANTY; without even the implied warranty of
9 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 GNU General Public License for more details.
12 You should have received a copy of the GNU General Public License along
13 with this program; if not, write to the Free Software Foundation, Inc.,
14 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17 #ifndef _OPENC2EVIEW_H
18 #define _OPENC2EVIEW_H
20 #include <QAbstractScrollArea>
21 #include <boost/shared_ptr.hpp>
22 #include "Backend.h"
24 class openc2eView : public QAbstractScrollArea {
25 Q_OBJECT
27 public:
28 openc2eView(QWidget *parent, boost::shared_ptr<class QtBackend>);
29 ~openc2eView();
31 protected:
32 // event handlers
33 void resizeEvent(QResizeEvent *);
34 void paintEvent(QPaintEvent *);
36 void mouseMoveEvent(QMouseEvent *m);
38 void mouseEvent(QMouseEvent *m, eventtype t);
39 void mousePressEvent(QMouseEvent *m);
40 void mouseReleaseEvent(QMouseEvent *m);
42 void wheelEvent(QWheelEvent *w);
44 void keyPressEvent(QKeyEvent *k);
45 void keyReleaseEvent(QKeyEvent *k);
47 void scrollContentsBy(int dx, int dy);
49 // variables
50 boost::shared_ptr<class QtBackend> backend;
51 int lastmousex, lastmousey;
52 class MetaRoom *lastMetaroom;
54 // helpers
55 void resizescrollbars();
57 public:
58 boost::shared_ptr<class Backend> getBackend();
59 bool needsRender();
60 void tick();
63 #endif