1 #ifndef BEAMERWINDOW_H
2 #define BEAMERWINDOW_H
3 
4 #include <QWidget>
5 
6 
7 class Viewer;
8 class Layout;
9 
10 // TODO make subclass of Canvas?
11 class BeamerWindow : public QWidget {
12 	Q_OBJECT
13 
14 public:
15 	BeamerWindow(Viewer *v, QWidget *parent = 0);
16 	~BeamerWindow();
17 
18 	void freeze(bool f);
19 	bool is_frozen() const;
20 
21 	bool is_valid() const;
22 
23 	Layout *get_layout() const;
24 
25 public slots:
26 	void toggle_fullscreen();
27 
28 protected:
29 	// QT event handling
30 	void paintEvent(QPaintEvent *event);
31 	void mousePressEvent(QMouseEvent *event);
32 	void mouseReleaseEvent(QMouseEvent *event);
33 	void wheelEvent(QWheelEvent *event);
34 	void resizeEvent(QResizeEvent *event);
35 
36 private slots:
37 	void page_rendered(int page);
38 
39 private:
40 	Viewer *viewer;
41 	Layout *layout;
42 
43 	int mx_down, my_down;
44 
45 	int mouse_wheel_factor;
46 
47 	Qt::MouseButton click_link_button;
48 
49 	bool frozen;
50 	bool valid;
51 };
52 
53 #endif
54 
55