Beispiel #1
0
bool MgCmdDrawGrid::touchBegan(const MgMotion* sender)
{
    if (m_step == 0) {
        return MgCmdDrawRect::touchBegan(sender);
    }
    m_step = 3;
    return _touchBegan(sender);
}
Beispiel #2
0
bool MgCmdDrawRect::touchBegan(const MgMotion* sender)
{
    m_step = 1;
    m_startPt = snapPoint(sender, true);
    ((MgBaseRect*)dynshape()->shape())->setRect2P(m_startPt, m_startPt);
    dynshape()->shape()->update();

    return _touchBegan(sender);
}
Beispiel #3
0
bool MgCmdDrawFreeLines::touchBegan(const MgMotion* sender)
{
    ((MgBaseLines*)dynshape()->shape())->resize(2);
    m_step = 1;
    dynshape()->shape()->setPoint(0, sender->startPointM);
    dynshape()->shape()->setPoint(1, sender->pointM);
    dynshape()->shape()->update();

    return _touchBegan(sender);
}
Beispiel #4
0
bool MgCmdParallelogram::touchBegan(const MgMotion* sender)
{
    if (0 == m_step) {
        m_step = 1;
        for (int i = 0; i < 4; i++) {
            dynshape()->shape()->setPoint(i, sender->pointM);
        }
    }
    else {
        dynshape()->shape()->setHandlePoint(m_step, snapPoint(sender), 0);
    }
    dynshape()->shape()->update();

    return _touchBegan(sender);
}
Beispiel #5
0
bool MgCmdDrawLines::touchBegan(const MgMotion* sender)
{
    if (0 == m_step) {
        m_step = 1;
        Point2d pnt(snapPoint(sender, true));
        ((MgBaseLines*)dynshape()->shape())->resize(2);
        dynshape()->shape()->setPoint(0, pnt);
        dynshape()->shape()->setPoint(1, pnt);
    }
    else {
        dynshape()->shape()->setPoint(m_step, snapPoint(sender));
    }
    dynshape()->shape()->update();
    
    return _touchBegan(sender);
}
Beispiel #6
0
bool MgCommandDraw::_touchBegan2(const MgMotion* sender)
{
    if (0 == m_step) {
        m_step = 1;
        Point2d pnt(snapPoint(sender, true));
        for (int i = dynshape()->shape()->getPointCount() - 1; i >= 0; i--) {
            dynshape()->shape()->setPoint(i, pnt);
        }
        setStepPoint(0, pnt);
    }
    else {
        setStepPoint(m_step, snapPoint(sender));
    }
    dynshape()->shape()->update();

    return _touchBegan(sender);
}
Beispiel #7
0
bool MgCmdDrawTriangle::touchBegan(const MgMotion* sender)
{
    MgBaseLines* lines = (MgBaseLines*)dynshape()->shape();
    
    if (0 == m_step) {
        m_step = 1;
        lines->setClosed(true);
        lines->resize(3);
        Point2d pnt(snapPoint(sender, true));
        for (int i = 0; i < 3; i++) {
            dynshape()->shape()->setPoint(i, pnt);
        }
    }
    else {
        dynshape()->shape()->setPoint(m_step, snapPoint(sender));
    }
    
    dynshape()->shape()->update();

    return _touchBegan(sender);
}
Beispiel #8
0
bool MgCmdDrawSplines::touchBegan(const MgMotion* sender)
{
    MgBaseLines* lines = (MgBaseLines*)dynshape()->shape();
    
    if (m_step > 0 && !m_freehand) {
        m_step++;
        if (m_step >= dynshape()->shape()->getPointCount()) {
            lines->addPoint(sender->pointM);
            dynshape()->shape()->update();
        }
        
        return _touchMoved(sender);
    }
    else {
        lines->resize(2);
        m_freehand = !sender->pressDrag;
        m_step = 1;
        dynshape()->shape()->setPoint(0, sender->startPointM);
        dynshape()->shape()->setPoint(1, sender->pointM);
        dynshape()->shape()->update();
        
        return _touchBegan(sender);
    }
}