1 #pragma once 2 3 #ifndef LAYER_FOOTER_PANEL_INCLUDED 4 #define LAYER_FOOTER_PANEL_INCLUDED 5 6 #include <QWidget> 7 #include <QSlider> 8 #include <QKeyEvent> 9 #include <boost/optional.hpp> 10 11 #include "orientation.h" 12 13 using boost::optional; 14 15 class XsheetViewer; 16 17 // Panel showing column footers for layers in timeline mode 18 class LayerFooterPanel final : public QWidget { 19 Q_OBJECT 20 21 QString m_tooltip; 22 QPoint m_pos; 23 24 QSlider *m_frameZoomSlider; 25 26 bool isCtrlPressed = false; 27 bool m_zoomInHighlighted = false; 28 bool m_zoomOutHighlighted = false; 29 30 private: 31 XsheetViewer *m_viewer; 32 33 public: 34 #if QT_VERSION >= 0x050500 35 LayerFooterPanel(XsheetViewer *viewer, QWidget *parent = 0, 36 Qt::WindowFlags flags = 0); 37 #else 38 LayerFooterPanel(XsheetViewer *viewer, QWidget *parent = 0, 39 Qt::WFlags flags = 0); 40 #endif 41 ~LayerFooterPanel(); 42 43 void showOrHide(const Orientation *o); 44 45 void setZoomSliderValue(int val); 46 47 void onControlPressed(bool pressed); 48 const bool isControlPressed(); 49 50 protected: 51 void paintEvent(QPaintEvent *event) override; 52 53 void enterEvent(QEvent *) override; 54 void leaveEvent(QEvent *) override; 55 void mousePressEvent(QMouseEvent *event) override; 56 void mouseMoveEvent(QMouseEvent *event) override; 57 bool event(QEvent *event) override; 58 keyPressEvent(QKeyEvent * event)59 void keyPressEvent(QKeyEvent *event) override { event->ignore(); } wheelEvent(QWheelEvent * event)60 void wheelEvent(QWheelEvent *event) override { event->ignore(); } 61 62 public slots: 63 void onFrameZoomSliderValueChanged(int val); 64 }; 65 #endif 66 #pragma once 67