insilmaril@364: #ifndef SELECTION_H insilmaril@364: #define SELECTION_H insilmaril@364: insilmaril@440: #include insilmaril@440: #include insilmaril@440: #include insilmaril@440: insilmaril@440: insilmaril@440: class MapEditor; insilmaril@440: class BranchObj; insilmaril@440: class FloatImageObj; insilmaril@440: class MapCenterObj; insilmaril@440: class LinkableMapObj; insilmaril@440: insilmaril@440: insilmaril@0: insilmaril@421: insilmaril@0: class Selection insilmaril@0: { insilmaril@0: public: insilmaril@492: enum Type {Undefined,Branch,MapCenter,FloatImage}; insilmaril@0: Selection (); insilmaril@0: ~Selection(); insilmaril@0: void copy(const Selection&); insilmaril@0: void clear(); insilmaril@440: void setMapEditor (MapEditor *); insilmaril@440: void update(); insilmaril@440: void setColor (QColor c); insilmaril@440: QColor getColor (); insilmaril@0: bool select (LinkableMapObj*); insilmaril@364: bool select (const QString &); insilmaril@421: bool reselect (); insilmaril@364: void unselect (); insilmaril@0: bool isEmpty(); insilmaril@0: uint count(); insilmaril@492: Type type(); insilmaril@424: LinkableMapObj * first(); // first in selection list insilmaril@424: LinkableMapObj * single(); // NULL, if multiple selected insilmaril@424: BranchObj* getBranch(); insilmaril@424: FloatImageObj* getFloatImage(); insilmaril@0: insilmaril@364: QString getSelectString(); insilmaril@364: insilmaril@0: private: insilmaril@364: void init(); insilmaril@364: QList selectList; insilmaril@421: QList lastSelectList; insilmaril@440: QList selboxList; insilmaril@440: MapEditor *mapEditor; insilmaril@364: MapCenterObj *mapCenter; insilmaril@440: QGraphicsScene *scene; insilmaril@440: insilmaril@440: QColor color; insilmaril@0: }; insilmaril@0: #endif insilmaril@0: