1 #include <msp/core/application.h>
2 #include <msp/graphics/simplewindow.h>
3 #include <msp/input/keyboard.h>
4 #include <msp/input/mouse.h>
5 #include <msp/io/print.h>
9 class Ev: public RegisteredApplication<Ev>
12 Graphics::SimpleWindow window;
13 Input::Keyboard keyboard;
22 void key_press(unsigned);
23 void key_release(unsigned);
24 void button_press(unsigned);
25 void button_release(unsigned);
26 void axis_motion(unsigned, float, float);
34 window.signal_close.connect(sigc::bind(sigc::mem_fun(this, &Ev::exit), 0));
35 keyboard.signal_button_press.connect(sigc::mem_fun(this, &Ev::key_press));
36 keyboard.signal_button_release.connect(sigc::mem_fun(this, &Ev::key_release));
37 mouse.signal_button_press.connect(sigc::mem_fun(this, &Ev::button_press));
38 mouse.signal_button_release.connect(sigc::mem_fun(this, &Ev::button_release));
39 mouse.signal_axis_motion.connect(sigc::mem_fun(this, &Ev::axis_motion));
48 void Ev::key_press(unsigned key)
50 IO::print("key_press: %s\n", keyboard.get_button_name(key));
53 void Ev::key_release(unsigned key)
55 IO::print("key_release: %s\n", keyboard.get_button_name(key));
58 void Ev::button_press(unsigned btn)
60 IO::print("button_press: %s\n", mouse.get_button_name(btn));
63 void Ev::button_release(unsigned btn)
65 IO::print("button_release: %s\n", mouse.get_button_name(btn));
68 void Ev::axis_motion(unsigned axis, float value, float rel)
70 IO::print("axis_motion: %s %.3f %+.3f\n", mouse.get_axis_name(axis), value, rel);