1 #include <sigc++/bind.h>
2 #include <msp/input/keys.h>
8 Tool::Tool(Designer &d, Input::Keyboard &keyboard, Input::Mouse &mouse):
13 keyboard.signal_button_press.connect(sigc::bind_return(sigc::mem_fun(this, &Tool::key_press), false));
14 keyboard.signal_button_release.connect(sigc::bind_return(sigc::mem_fun(this, &Tool::key_release), false));
15 mouse.signal_button_press.connect(sigc::bind_return(sigc::mem_fun(this, &Tool::button_press), false));
16 mouse.signal_axis_motion.connect(sigc::bind_return(sigc::mem_fun(this, &Tool::axis_motion), false));
18 pointer.x = mouse.get_axis_value(0);
19 pointer.y = mouse.get_axis_value(1);
20 ground_pointer = designer.map_pointer_to_ground(pointer);
23 void Tool::set_status(const std::string &s)
26 signal_status.emit(status);
29 void Tool::set_done(bool a)
36 void Tool::key_press(unsigned key)
38 if(key==Input::KEY_ESC)
40 else if(key==Input::KEY_SHIFT_L || key==Input::KEY_SHIFT_R)
42 else if(key==Input::KEY_CTRL_L || key==Input::KEY_CTRL_R)
46 void Tool::key_release(unsigned key)
48 if(key==Input::KEY_SHIFT_L || key==Input::KEY_SHIFT_R)
50 else if(key==Input::KEY_CTRL_L || key==Input::KEY_CTRL_R)
54 void Tool::button_press(unsigned btn)
65 void Tool::axis_motion(unsigned axis, float value, float)
71 ground_pointer = designer.map_pointer_to_ground(pointer);