1
0
Fork 0
flightgear/utils/fgqcanvas/fgcanvastext.h
James Turner bd5a266e9f Qt-based remote canvas application.
Work-in-progress, currently performance is sub-optimal (software
rendering via QPainter API).
2016-12-17 14:24:28 +00:00

40 lines
791 B
C++

#ifndef FGCANVASTEXT_H
#define FGCANVASTEXT_H
#include <QFont>
#include <QFontMetricsF>
#include "fgcanvaselement.h"
class FGCanvasText : public FGCanvasElement
{
public:
FGCanvasText(FGCanvasGroup* pr, LocalProp* prop);
protected:
virtual void doPaint(FGCanvasPaintContext* context) const override;
virtual void markStyleDirty() override;
private:
bool onChildAdded(LocalProp *prop) override;
void onTextChanged(QVariant var);
void setDrawMode(QVariant var);
void markFontDirty();
private:
void rebuildFont() const;
void rebuildAlignment(QVariant var) const;
QString _text;
mutable Qt::Alignment _alignment;
mutable bool _fontDirty = true;
mutable QFont _font;
mutable QFontMetricsF _metrics;
};
#endif // FGCANVASTEXT_H