X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fdesigner%2Ftool.h;h=3119bc0327ce715dedf00f76bbcbc399e9b6213d;hb=8f4dd20821b7759c550e4ff66453a4fe867d3700;hp=bfadfc03feae9154b1ab1215e103add88ed03d7e;hpb=678982e7ddb22bb5fd44ce448d1c5cbf646b2573;p=r2c2.git diff --git a/source/designer/tool.h b/source/designer/tool.h index bfadfc0..3119bc0 100644 --- a/source/designer/tool.h +++ b/source/designer/tool.h @@ -4,6 +4,7 @@ #include #include #include +#include #include #include "libr2c2/geometry.h" @@ -20,23 +21,32 @@ protected: Designer &designer; R2C2::Vector pointer; R2C2::Vector ground_pointer; + bool shift_held; + bool ctrl_held; std::string status; bool done; + bool accepted; - Tool(Designer &, Msp::Input::Mouse &); + Tool(Designer &, Msp::Input::Keyboard &, Msp::Input::Mouse &); public: virtual ~Tool() { } protected: void set_status(const std::string &); - void set_done(); + void set_done(bool); public: const std::string &get_status() const { return status; } bool is_done() const { return done; } - virtual void button_press(unsigned) { } +protected: + virtual void key_press(unsigned); + virtual void key_release(unsigned); + virtual void button_press(unsigned); virtual void axis_motion(unsigned, float, float); + virtual void pointer_motion() { } + virtual void finish() { } +public: virtual void update_selection(Selection &) const { } };