5 #include <sigc++/signal.h>
6 #include <sigc++/trackable.h>
7 #include <msp/input/mouse.h>
8 #include "libr2c2/geometry.h"
13 class Tool: public sigc::trackable
16 sigc::signal<void> signal_done;
17 sigc::signal<void, const std::string &> signal_status;
22 R2C2::Vector ground_pointer;
26 Tool(Designer &, Msp::Input::Mouse &);
31 void set_status(const std::string &);
34 const std::string &get_status() const { return status; }
35 bool is_done() const { return done; }
37 virtual void button_press(unsigned) { }
38 virtual void axis_motion(unsigned, float, float);
40 virtual void update_selection(Selection &) const { }