#include <string>
#include <sigc++/signal.h>
#include <sigc++/trackable.h>
+#include <msp/input/keyboard.h>
#include <msp/input/mouse.h>
#include "libr2c2/geometry.h"
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 { }
};