Fixes to speed alarm and poi alerts. Added flicker effect. Some new fields to text...
[jspeed] / src / textelement.h
index 02e34f8..2a3f519 100644 (file)
 
 #include "graphicselement.h"
 
-class Reader;
 class QString;
-class GraphicsScene;
+class QGraphicsItem;
 class QGraphicsTextItem;
+class Reader;
+class GraphicsScene;
 
 class TextElement : public GraphicsElement
 {
 public:
-    enum Attribute {XPOS, YPOS, DATA, FORMAT, WIDTH, ALIGN, COLOR, SIZE, FONT, ATTRIBUTE_COUNT};
+    enum Attribute {XPOS, YPOS, ZPOS, VISIBLEWHEN, DATA, FORMAT, WIDTH, ALIGN, COLOR, SIZE, FONT, BOLD, ITALIC, UPPERCASE, LETTERSPACING, TIMEFORMAT, DATEFORMAT, ATTRIBUTE_COUNT};
+    enum Field {TRIP, TOTAL, SPEED, MAXSPEED, AVGSPEED, UNIT, SPEEDUNIT, TIME, DATE, POIDISTANCE, ANGLE, LATITUDE, LONGITUDE, FIELD_COUNT};
     TextElement(Reader* reader);
     virtual bool setAttribute(QString const& name, QString const& value);
     virtual void addToScene(GraphicsScene* scene);
     virtual void update();
+    virtual QGraphicsItem* getElement() const;
 
 private:
-    void updateHtml(QString const& data);
-    bool replaceSpecialField(QString& value);
+    QString handleEmpty(double value);
+    void updateHtml(QString data);
+    void replaceSpecialFields(QString& value);
+    void replaceValue(QString& value, Field field, QString const& replace);
+    bool applyFont();
     QString formatString(double val);
     QGraphicsTextItem* element_;
     QString data_;
     QString format_;
     QString align_;
+    QString timeFormat_;
+    QString dateFormat_;
     int fontSize_;
+    bool bold_;
+    bool italic_;
+    bool uppercase_;
+    int letterSpacing_;
     QString fontFile_;
-    bool hasSpecialField_;
+    QList<Field> specialFields_;
 };
 
 #endif