X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fdesigner%2Fextendtool.cpp;h=3af4cf6cd0b1398f719e79346e3151794ff52939;hb=9b5a6a6f032863fe525623420c8086a62188b771;hp=aa0f72384e2543ec0c73e9abf32de82b4afef168;hpb=6b9b841c497de4b783178ec8c5b98da49b6b8df5;p=r2c2.git diff --git a/source/designer/extendtool.cpp b/source/designer/extendtool.cpp index aa0f723..3af4cf6 100644 --- a/source/designer/extendtool.cpp +++ b/source/designer/extendtool.cpp @@ -7,9 +7,8 @@ using namespace std; using namespace Msp; using namespace R2C2; -ExtendTool::ExtendTool(Designer &d, Input::Mouse &m, const set &objects): - Tool(d, m), - accepted(false) +ExtendTool::ExtendTool(Designer &d, Input::Keyboard &k, Input::Mouse &m, const set &objects): + Tool(d, k, m) { for(set::const_iterator i=objects.begin(); i!=objects.end(); ++i) if(Track *t = dynamic_cast(*i)) @@ -93,28 +92,11 @@ void ExtendTool::connect() extend_tracks.front()->link_to(*start_track); extend_tracks.back()->link_to(*end_track); - accepted = true; - set_done(); + set_done(true); } -void ExtendTool::button_press(unsigned btn) +void ExtendTool::pointer_motion() { - if(btn==1) - { - for(vector::const_iterator i=unlinked_endpoints.begin(); i!=unlinked_endpoints.end(); ++i) - if(extend_tracks.front()->link_to(**i)) - break; - accepted = true; - set_done(); - } - else if(btn==3) - set_done(); -} - -void ExtendTool::axis_motion(unsigned axis, float value, float rel) -{ - Tool::axis_motion(axis, value, rel); - Vector pos; Angle dir; float length = 0; @@ -163,6 +145,13 @@ void ExtendTool::axis_motion(unsigned axis, float value, float rel) } } +void ExtendTool::finish() +{ + for(vector::const_iterator i=unlinked_endpoints.begin(); i!=unlinked_endpoints.end(); ++i) + if(extend_tracks.front()->link_to(**i)) + break; +} + vector ExtendTool::create_straight(const Vector &start, const Angle &dir, float length, float limit) { const Catalogue::TrackMap &track_types = designer.get_catalogue().get_tracks(); @@ -244,5 +233,6 @@ vector ExtendTool::create_straight(const Vector &start, const Angle &di void ExtendTool::update_selection(Selection &sel) const { - sel.replace(extend_tracks.begin(), extend_tracks.end()); + if(accepted) + sel.replace(extend_tracks.begin(), extend_tracks.end()); }