/** * @RDE_HEADER@ * Topic painters * $Id$ * $HeadURL$ * $Author$ * * Created by Mike Wille, SLSE, 2017-06-30 */ #pragma once #include #include #include #include #include #include namespace LtsScriptTimeline { class TrackEntry; enum class TrackEntryType { INVALID, SituationMap, SituationReplay, // Replay Image, Text, Pdf, Xml, TacticalPlan, // Filter MSOffice, OpenOffice, Audio, Video, Building, SituationMapFilter, // Filter Snapshot, // Replay Evaluation, Report, Situation // Situation Replay inclusive Situation and Filter Settings }; 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 /* FIXME: hack */, 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