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