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