Exemplo n.º 1
0
boolean ConnectManip::Manipulating (Event& e) {
    GraphicView* views = GetViewer()->GetGraphicView();
    Rubberband* r = GetRubberband();
    float cx, cy;

    if (r == nil) {
        return false;
    }

    if (e.eventType == MotionEvent) {
        _target = views->ConnectorIntersecting(
            e.x-SLOP, e.y-SLOP, e.x+SLOP, e.y+SLOP
        );

        if (_target == nil) {
            r->Track(e.x, e.y);

        } else {
            _target->GetGraphic()->GetCenter(cx, cy);
            r->Track(Math::round(cx), Math::round(cy));
        }

    } else if (e.eventType == UpEvent) {
	r->Erase();
	return false;
    }
    return true;
}
Exemplo n.º 2
0
boolean VertexManip::Manipulating (Event& e) {
    Rubberband* r = GetRubberband();

    if (r == nil) {
        return false;
    }

    if (e.eventType == MotionEvent) {
        Constrain(e);
	r->Track(e.x, e.y);

    } else if (e.eventType == DownEvent) {
        Constrain(e);

        if (e.button == LEFTMOUSE) {
            GetGrowingVertices()->AddVertex(e.x, e.y);
	    _origx = e.x;
	    _origy = e.y;

        } else if (e.button == MIDDLEMOUSE) {
            GetGrowingVertices()->AddVertex(e.x, e.y);
            return false;

        } else if (e.button == RIGHTMOUSE) {
            GetGrowingVertices()->RemoveVertex();
	    if (GetGrowingVertices()->Count()==0) return false;
        }
    }
    return true;
}
Exemplo n.º 3
0
void View::Track (Event& e, Rubberband& r) {
    r.Draw();

    Listen(allEvents);
    do {
	if (e.eventType == MotionEvent) {
	    r.Track(e.x, e.y);
	}
	Read(e);
    } while (e.eventType != UpEvent);
    Listen(input);

    r.Erase();
}
Exemplo n.º 4
0
void RubberTool::execute() {
	sp_->bind_select(rb_);
	sp_->set_scene_tool(tool_);
	if (Oc::helpmode()) {
		rb_->help();
	}else if (sel_) {
		sel_->execute();
	}
}
Exemplo n.º 5
0
boolean ScribbleVertexManip::Manipulating (Event& e) {
    Rubberband* r = GetRubberband();

    if (r == nil) {
        return false;
    }

    if (e.eventType == MotionEvent) {
        if (!_first) {
            GetGrowingVertices()->AddVertex(e.x, e.y);
            r->Track(e.x, e.y);
	} else
	    _first = false;


    } else if (e.eventType == UpEvent) {

      return false;
    }
    return true;
}