X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fdesigner%2Fmeasure.cpp;h=937856c55bcce61a5baaae44c21d33907d3a9947;hb=32cf18ff4306b36f2ce59d41056f888638a85578;hp=e12378061fe35dadefdcfe21da818d0f160f8172;hpb=5e39ffb806f876099fcad5f2f5fe35993090de8a;p=r2c2.git diff --git a/source/designer/measure.cpp b/source/designer/measure.cpp index e123780..937856c 100644 --- a/source/designer/measure.cpp +++ b/source/designer/measure.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include #include "designer.h" #include "3d/layout.h" @@ -10,8 +11,8 @@ using namespace std; using namespace R2C2; using namespace Msp; -Measure::Measure(Designer &d, Input::Mouse &m): - Tool(d, m), +Measure::Measure(Designer &d, Input::Keyboard &k, Input::Mouse &m): + Tool(d, k, m), start_pinned(false), mesh((GL::COLOR4_UBYTE, GL::VERTEX3)) { @@ -25,6 +26,25 @@ Measure::~Measure() designer.get_layout_3d().get_scene().remove(*this); } +void Measure::back() +{ + if(start_pinned) + { + start_pinned = false; + update_mesh(); + } + else + set_done(true); +} + +void Measure::key_press(unsigned key) +{ + if(key==Input::KEY_ESC) + back(); + else + Tool::key_press(key); +} + void Measure::button_press(unsigned btn) { if(btn==1) @@ -36,15 +56,7 @@ void Measure::button_press(unsigned btn) start_pinned = true; } else if(btn==3) - { - if(start_pinned) - { - start_pinned = false; - update_mesh(); - } - else - set_done(true); - } + back(); } void Measure::pointer_motion()