Files
oak-editor/app/widget/timelinewidget/timelinescaledobject.h
T
itsmattkc f0e6f9a5f9 various: created derived class for widget derivations of
TimelineScaledObject

Minor code cleanup, faster than deriving both QWidget and
TimelineScaledObject each time.
2020-03-14 00:45:50 +11:00

53 lines
1.1 KiB
C++

#ifndef TIMELINESCALEDOBJECT_H
#define TIMELINESCALEDOBJECT_H
#include <QWidget>
#include "common/rational.h"
class TimelineScaledObject
{
public:
TimelineScaledObject();
virtual ~TimelineScaledObject() = default;
void SetTimebase(const rational &timebase);
const rational& timebase() const;
const double& timebase_dbl() const;
static rational SceneToTime(const double &x, const double& x_scale, const rational& timebase, bool round = false);
const double& GetScale() const;
void SetScale(const double& scale);
protected:
double TimeToScene(const rational& time);
rational SceneToTime(const double &x, bool round = false);
virtual void TimebaseChangedEvent(const rational&){}
virtual void ScaleChangedEvent(const double&){}
void SetMaximumScale(const double& max);
private:
rational timebase_;
double timebase_dbl_;
double scale_;
double max_scale_;
};
class TimelineScaledWidget : public QWidget, public TimelineScaledObject
{
public:
TimelineScaledWidget(QWidget* parent = nullptr);
};
#endif // TIMELINESCALEDOBJECT_H