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@0: FrameObj::FrameObj(QCanvas* c) :MapObj(c) 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@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@0: rectFrame->move (x,y); insilmaril@0: 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@0: void FrameObj::setRect(const QRect &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@0: rectFrame->setX (bbox.x() ); insilmaril@0: rectFrame->setY (bbox.y() ); insilmaril@0: rectFrame->setSize (bbox.width(),bbox.height() ); insilmaril@0: 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@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@0: rectFrame = new QCanvasRectangle (canvas); insilmaril@0: rectFrame->setZ(Z_FRAME); insilmaril@0: rectFrame->setBrush( QColor("white") ); insilmaril@0: rectFrame->setPen( QPen(QColor("black") )); 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@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@140: } insilmaril@0: } insilmaril@0: