1
0
Fork 0
flightgear/utils/fgqcanvas/fgcanvasgroup.h

52 lines
1.2 KiB
C
Raw Normal View History

#ifndef FGCANVASGROUP_H
#define FGCANVASGROUP_H
#include "fgcanvaselement.h"
class FGCanvasGroup : public FGCanvasElement
{
Q_OBJECT
public:
explicit FGCanvasGroup(FGCanvasGroup* pr, LocalProp* prop);
const FGCanvasElementVec& children() const;
void markChildZIndicesDirty() const;
bool hasChilden() const;
unsigned int childCount() const;
FGCanvasElement* childAt(unsigned int index) const;
unsigned int indexOfChild(const FGCanvasElement* e) const;
CanvasItem* createQuickItem(QQuickItem *parent) override;
CanvasItem* quickItem() const override
{ return _quick; }
signals:
void childAdded();
void childRemoved(int index);
protected:
virtual void doPaint(FGCanvasPaintContext* context) const override;
bool onChildAdded(LocalProp *prop) override;
bool onChildRemoved(LocalProp *prop) override;
virtual void markStyleDirty() override;
private:
void markCachedSymbolDirty();
int indexOfChildWithProp(LocalProp *prop) const;
private:
mutable FGCanvasElementVec _children;
mutable bool _zIndicesDirty = false;
mutable bool _cachedSymbolDirty = false;
CanvasItem* _quick = nullptr;
};
#endif // FGCANVASGROUP_H