X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fdesigner%2Ftool.h;h=48780ec48208045798f9c8201336eb336612a1a3;hb=c0e076401ee76fd9a5a96ff919a8e7b4d058c51b;hp=bfadfc03feae9154b1ab1215e103add88ed03d7e;hpb=678982e7ddb22bb5fd44ce448d1c5cbf646b2573;p=r2c2.git diff --git a/source/designer/tool.h b/source/designer/tool.h index bfadfc0..48780ec 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,33 @@ 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 button_release(unsigned) { } virtual void axis_motion(unsigned, float, float); + virtual void pointer_motion() { } + virtual void finish() { } +public: virtual void update_selection(Selection &) const { } };