insilmaril@0: #include "frameobj.h" insilmaril@0: insilmaril@0: #include insilmaril@0: insilmaril@0: ///////////////////////////////////////////////////////////////// insilmaril@0: // FrameObj insilmaril@0: ///////////////////////////////////////////////////////////////// insilmaril@0: FrameObj::FrameObj() : MapObj() insilmaril@0: { insilmaril@0: // cout << "Const FrameObj ()\n"; insilmaril@0: init (); insilmaril@0: } insilmaril@0: insilmaril@408: FrameObj::FrameObj(QGraphicsScene *s) :MapObj(s) insilmaril@0: { insilmaril@0: // cout << "Const FrameObj\n"; insilmaril@0: init (); insilmaril@0: } insilmaril@0: insilmaril@0: FrameObj::~FrameObj() insilmaril@0: { insilmaril@0: clear(); insilmaril@0: } insilmaril@0: insilmaril@0: void FrameObj::init() insilmaril@0: { insilmaril@0: type=NoFrame; insilmaril@0: border=0; insilmaril@0: } insilmaril@0: insilmaril@0: void FrameObj::clear() insilmaril@0: { insilmaril@0: switch (type) insilmaril@0: { insilmaril@0: case NoFrame: insilmaril@0: break; insilmaril@0: case Rectangle: insilmaril@0: delete rectFrame; insilmaril@0: break; insilmaril@421: case Ellipse: insilmaril@421: delete ellipseFrame; insilmaril@421: break; insilmaril@0: } insilmaril@0: type=NoFrame; insilmaril@0: border=0; insilmaril@0: } insilmaril@0: insilmaril@0: void FrameObj::move(double x, double y) insilmaril@0: { insilmaril@0: switch (type) insilmaril@0: { insilmaril@0: case NoFrame: insilmaril@0: break; insilmaril@0: case Rectangle: insilmaril@408: rectFrame->setPos (x,y); insilmaril@0: break; insilmaril@421: case Ellipse: insilmaril@421: ellipseFrame->setPos (x,y); insilmaril@421: break; insilmaril@0: } insilmaril@0: } insilmaril@0: insilmaril@0: void FrameObj::moveBy(double x, double y) insilmaril@0: { insilmaril@0: MapObj::moveBy (x,y); insilmaril@0: } insilmaril@0: insilmaril@0: void FrameObj::positionBBox() insilmaril@0: { insilmaril@0: } insilmaril@0: insilmaril@0: void FrameObj::calcBBoxSize() insilmaril@0: { insilmaril@0: } insilmaril@0: insilmaril@408: void FrameObj::setRect(const QRectF &r) insilmaril@0: { insilmaril@0: bbox=r; insilmaril@0: switch (type) insilmaril@0: { insilmaril@0: case NoFrame: insilmaril@0: break; insilmaril@0: case Rectangle: insilmaril@408: rectFrame->setRect (QRectF(bbox.x(),bbox.y(),bbox.width(),bbox.height() )); insilmaril@0: break; insilmaril@421: case Ellipse: insilmaril@421: ellipseFrame->setRect (QRectF(bbox.x(),bbox.y(),bbox.width(),bbox.height() )); insilmaril@421: break; insilmaril@0: } insilmaril@0: } insilmaril@0: insilmaril@0: int FrameObj::getBorder() insilmaril@0: { insilmaril@0: return border; insilmaril@0: } insilmaril@0: insilmaril@0: FrameType FrameObj::getFrameType() insilmaril@0: { insilmaril@0: return type; insilmaril@0: } insilmaril@0: insilmaril@0: QString FrameObj::getFrameTypeName() insilmaril@0: { insilmaril@0: switch (type) insilmaril@0: { insilmaril@0: case Rectangle: insilmaril@0: return "Rectangle"; insilmaril@0: break; insilmaril@421: case Ellipse: insilmaril@421: return "Ellipse"; insilmaril@421: break; insilmaril@0: default: insilmaril@0: return "NoFrame"; insilmaril@0: } insilmaril@0: } insilmaril@0: insilmaril@0: void FrameObj::setFrameType(const FrameType &t) insilmaril@0: { insilmaril@0: if (t!=type) insilmaril@0: { insilmaril@0: clear(); insilmaril@0: type=t; insilmaril@0: switch (type) insilmaril@0: { insilmaril@0: case NoFrame: insilmaril@0: border=0; insilmaril@0: break; insilmaril@0: case Rectangle: insilmaril@0: border=10; insilmaril@408: rectFrame = scene->addRect(QRectF(0,0,0,0), QPen(QColor("black") ), QColor("white")); insilmaril@408: rectFrame->setZValue(Z_FRAME); insilmaril@421: break; insilmaril@421: case Ellipse: insilmaril@421: border=10; insilmaril@421: ellipseFrame = scene->addEllipse(QRectF(0,0,0,0), QPen(QColor("black") ), QColor("white")); insilmaril@421: ellipseFrame->setZValue(Z_FRAME); insilmaril@0: break; insilmaril@0: } insilmaril@140: setVisibility (visible); insilmaril@0: } insilmaril@0: } insilmaril@0: insilmaril@0: void FrameObj::setFrameType(const QString &t) insilmaril@0: { insilmaril@0: if (t=="Rectangle") insilmaril@0: FrameObj::setFrameType (Rectangle); insilmaril@421: else if (t=="Ellipse") insilmaril@421: FrameObj::setFrameType (Ellipse); insilmaril@0: else insilmaril@0: FrameObj::setFrameType (NoFrame); insilmaril@0: } insilmaril@0: insilmaril@0: void FrameObj::setVisibility (bool v) insilmaril@0: { insilmaril@0: MapObj::setVisibility(v); insilmaril@140: switch (type) insilmaril@140: { insilmaril@140: case NoFrame: insilmaril@140: break; insilmaril@140: case Rectangle: insilmaril@140: if (visible) insilmaril@140: rectFrame->show(); insilmaril@140: else insilmaril@140: rectFrame->hide(); insilmaril@140: break; insilmaril@421: case Ellipse: insilmaril@421: if (visible) insilmaril@421: ellipseFrame->show(); insilmaril@421: else insilmaril@421: ellipseFrame->hide(); insilmaril@421: break; insilmaril@140: } insilmaril@0: } insilmaril@0: insilmaril@421: QString FrameObj::saveToDir () insilmaril@421: { insilmaril@421: QString frameTypeAttr=attribut ("frameType",getFrameTypeName()); insilmaril@421: return singleElement ("frame",frameTypeAttr); insilmaril@421: } insilmaril@421: