Plasma Engine  2.0
Loading...
Searching...
No Matches
TimeScrubberWidget.moc.h
1#pragma once
2
3#include <GuiFoundation/GuiFoundationDLL.h>
4
5#include <Foundation/Time/Time.h>
6
7#include <QToolBar>
8#include <QWidget>
9
10class QMouseEvent;
11class QPushButton;
12class QLineEdit;
13
14class PL_GUIFOUNDATION_DLL plQtTimeScrubberWidget : public QWidget
15{
16 Q_OBJECT
17
18public:
19 explicit plQtTimeScrubberWidget(QWidget* pParent);
21
23 void SetDuration(plUInt64 uiNumTicks);
24
26 void SetDuration(plTime time);
27
29 void SetScrubberPosition(plUInt64 uiTick);
30
32 void SetScrubberPosition(plTime time);
33
34Q_SIGNALS:
35 void ScrubberPosChangedEvent(plUInt64 uiNewScrubberTickPos);
36
37private:
38 virtual void paintEvent(QPaintEvent* event) override;
39 virtual void mousePressEvent(QMouseEvent* event) override;
40 virtual void mouseReleaseEvent(QMouseEvent* event) override;
41 virtual void mouseMoveEvent(QMouseEvent* event) override;
42 void SetScrubberPosFromPixelCoord(plInt32 x);
43
44 plUInt64 m_uiDurationTicks = 0;
45 plTime m_Duration;
46 plUInt64 m_uiScrubberTickPos = 0;
47 double m_fNormScrubberPosition = 0.0;
48 bool m_bDragging = false;
49};
50
51class PL_GUIFOUNDATION_DLL plQtTimeScrubberToolbar : public QToolBar
52{
53 Q_OBJECT
54
55public:
56 explicit plQtTimeScrubberToolbar(QWidget* pParent);
57
59 void SetDuration(plUInt64 uiNumTicks);
60
62 void SetScrubberPosition(plUInt64 uiTick);
63
64 void SetButtonState(bool bPlaying, bool bRepeatEnabled);
65
66Q_SIGNALS:
67 void ScrubberPosChangedEvent(plUInt64 uiNewScrubberTickPos);
68 void PlayPauseEvent();
69 void RepeatEvent();
70 void DurationChangedEvent(double fDuration);
71 void AdjustDurationEvent();
72
73private:
74 plQtTimeScrubberWidget* m_pScrubber = nullptr;
75 QPushButton* m_pPlayButton = nullptr;
76 QPushButton* m_pRepeatButton = nullptr;
77 QLineEdit* m_pDuration = nullptr;
78 QPushButton* m_pAdjustDurationButton = nullptr;
79};
80
Definition TimeScrubberWidget.moc.h:52
Definition TimeScrubberWidget.moc.h:15
The time class encapsulates a double value storing the time in seconds.
Definition Time.h:12