1 #include <sigc++/bind.h>
2 #include <msp/input/keys.h>
8 Tool::Tool(Designer &d, Input::Keyboard &keyboard, Input::Mouse &mouse):
15 keyboard.signal_button_press.connect(sigc::bind_return(sigc::mem_fun(this, &Tool::key_press), false));
16 keyboard.signal_button_release.connect(sigc::bind_return(sigc::mem_fun(this, &Tool::key_release), false));
17 mouse.signal_button_press.connect(sigc::bind_return(sigc::mem_fun(this, &Tool::button_press), false));
18 mouse.signal_button_release.connect(sigc::bind_return(sigc::mem_fun(this, &Tool::button_release), false));
19 mouse.signal_axis_motion.connect(sigc::bind_return(sigc::mem_fun(this, &Tool::axis_motion), false));
21 pointer.x = mouse.get_axis_value(0);
22 pointer.y = mouse.get_axis_value(1);
23 ground_pointer = designer.map_pointer_to_ground(pointer);
26 void Tool::set_status(const std::string &s)
29 signal_status.emit(status);
32 void Tool::set_done(bool a)
39 void Tool::key_press(unsigned key)
41 if(key==Input::KEY_ESC)
43 else if(key==Input::KEY_SHIFT_L || key==Input::KEY_SHIFT_R)
45 else if(key==Input::KEY_CTRL_L || key==Input::KEY_CTRL_R)
49 void Tool::key_release(unsigned key)
51 if(key==Input::KEY_SHIFT_L || key==Input::KEY_SHIFT_R)
53 else if(key==Input::KEY_CTRL_L || key==Input::KEY_CTRL_R)
57 void Tool::button_press(unsigned btn)
68 void Tool::axis_motion(unsigned axis, float value, float)
74 ground_pointer = designer.map_pointer_to_ground(pointer);