#pragma once #include "ltsscripttimeline_export.h" #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); } // namespace LtsScriptTimeline