#pragma once #include #include namespace LtsTimeline { struct LTSTIMELINE_EXPORT Tick { int pos{-1}; qint64 time{0}; QString label; Tick() {} explicit Tick(qint64 time) : time(time) {} explicit Tick(int pos, qint64 time, const QString &label) : pos(pos), time(time), label(label) {} }; typedef QVector Ticks; namespace DateTime { enum Format { DTG = 0, ISODate = Qt::ISODate, Standard = 2, DTGShort = 3, DTGVeryShort, TimeOnly = 5 }; extern int numberOfDateTimeFormats(); extern LTSTIMELINE_EXPORT QString toString(qint64 time, Format format); } typedef DateTime::Format DateTimeFormat; namespace Zoom { enum Factor : int { FifteenSeconds = 15 * 1000, ThirtySeconds = 30 * 1000, SixtySeconds = 60 * 1000, TwoMinutes = 2 * 60 * 1000, ThreeMinutes = 3 * 60 * 1000, FiveMinutes = 5 * 60 * 1000, TenMinutes = 10 * 60 * 1000, FifteenMinutes = 15 * 60 * 1000, ThirtyMinutes = 30 * 60 * 1000, SixtyMinutes = 60 * 60 * 1000, TwoHours = 2 * 60 * 60 * 1000, FourHours = 4 * 60 * 60 * 1000, EightHours = 8 * 60 * 60 * 1000, TwelveHours = 12 * 60 * 60 * 1000, OneDay = 24 * 60 * 60 * 1000 }; extern LTSTIMELINE_EXPORT int numberOfZoomFactors(); extern LTSTIMELINE_EXPORT Factor increment(Factor factor); extern LTSTIMELINE_EXPORT Factor decrement(Factor factor); extern LTSTIMELINE_EXPORT Factor ceil(int value); extern LTSTIMELINE_EXPORT Factor floor(int value); extern LTSTIMELINE_EXPORT QVector availableZoomFactors(Factor min, Factor max); extern LTSTIMELINE_EXPORT QString toString(Factor factor, bool useShort = false); extern LTSTIMELINE_EXPORT QString toShortString(Factor factor); extern LTSTIMELINE_EXPORT int majorInterval(Factor factor); extern LTSTIMELINE_EXPORT int mediumInterval(Factor factor); extern LTSTIMELINE_EXPORT int minorInterval(Factor factor); } typedef Zoom::Factor ZoomFactor; typedef QVector ZoomFactors; }