#ifndef GRAPHICSELEMENT_H
#define GRAPHICSELEMENT_H
+#include <QtCore/QObject>
#include <QtCore/QMap>
-#include "location.h"
class QString;
class QByteArray;
class Reader;
class Effect;
-class GraphicsElement
+class GraphicsElement : public QObject
{
+ Q_OBJECT
+
public:
struct AttributeDetails
bool setEffect(QString const& effect);
bool setEffectAttribute(QString const& name, QString const& value);
void applyEffect();
+ bool canBeVisible() const;
protected:
+ enum VisibleWhen {ALWAYS, POI_VISIBLE, SPEED_EXCEEDED};
+
int getAttribute(QString const& name, QString const& value, const AttributeDetails details[], int count, int& intValue);
void setError(QString const& error);
bool readFile(QString const& name, QByteArray& data);
bool getFont(QString const& name, QFont& font);
+ void setVisibleWhen(VisibleWhen when);
+ VisibleWhen strToVisibleWhen(QString const& str) const;
+
+private slots:
+ void updateVisibility(bool visible);
private:
Reader* reader_;
QString error_;
Effect* effect_;
QMap<QString, QString> loadedFonts_;
+ VisibleWhen visibleWhen_;
+ bool canBeVisible_;
};
#endif