#pragma once #include #include #include #include #include #include namespace LtsScriptTimeline { class TrackEntry; enum class TrackEntryType { INVALID, SituationMap, SituationReplay, Image, Text, Pdf, Xml, TacticalPlan, MSOffice, OpenOffice, Audio, Video, Building, SituationMapFilter, Snapshot, Evaluation, Report, Situation }; LTSSCRIPTTIMELINE_EXPORT QString translateTrackEntryType(const TrackEntryType &tet); LTSSCRIPTTIMELINE_EXPORT QString trackEntryTypeName(const TrackEntryType &tet); LTSSCRIPTTIMELINE_EXPORT QIcon appToIcon(const TrackEntryType type); inline std::ostream &operator<<(std::ostream &stream, const TrackEntryType tet) { return stream << trackEntryTypeName(tet).toStdString(); } class LTSSCRIPTTIMELINE_EXPORT TrackEntryPainter { public: explicit TrackEntryPainter(const QColor &bgColor = QColor(0, 0, 0), const QString &trackEntryType = QStringLiteral("INVALID")) : m_bgColor(bgColor) , m_trackEntryType(trackEntryType) { } void paintEvent(QPainter &painter, const QRect &rect) { painter.setPen(QPen(Qt::black)); painter.drawText(rect.adjusted(3, 0, 5000 , 0), m_trackEntryType); } QColor bgColor() const { return m_bgColor; } void setBgColor(const QColor &bgColor) { m_bgColor = bgColor; } const QString &trackEntryType() const { return m_trackEntryType; } void setTrackEntryType(const QString &trackEntryType) { m_trackEntryType = trackEntryType; } protected: QColor m_bgColor; QString m_trackEntryType; }; void drawTrackEntry(TrackEntry *te, QPainter &painter, const QRect &trackRect, bool isSelected, bool isEnabled = true); TrackEntryPainter *getTrackEntryPainter(const TrackEntryType &type); }