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_axis_motion.connect(sigc::bind_return(sigc::mem_fun(this, &Tool::axis_motion), false));
20 pointer.x = mouse.get_axis_value(0);
21 pointer.y = mouse.get_axis_value(1);
22 ground_pointer = designer.map_pointer_to_ground(pointer);
25 void Tool::set_status(const std::string &s)
28 signal_status.emit(status);
31 void Tool::set_done(bool a)
38 void Tool::key_press(unsigned key)
40 if(key==Input::KEY_ESC)
42 else if(key==Input::KEY_SHIFT_L || key==Input::KEY_SHIFT_R)
44 else if(key==Input::KEY_CTRL_L || key==Input::KEY_CTRL_R)
48 void Tool::key_release(unsigned key)
50 if(key==Input::KEY_SHIFT_L || key==Input::KEY_SHIFT_R)
52 else if(key==Input::KEY_CTRL_L || key==Input::KEY_CTRL_R)
56 void Tool::button_press(unsigned btn)
67 void Tool::axis_motion(unsigned axis, float value, float)
73 ground_pointer = designer.map_pointer_to_ground(pointer);