#include <msp/io/print.h>
#include <msp/stringcodec/codec.h>
#include <msp/stringcodec/utf8.h>
#include <msp/io/print.h>
#include <msp/stringcodec/codec.h>
#include <msp/stringcodec/utf8.h>
void key_press(unsigned);
void key_release(unsigned);
void character(StringCodec::unichar);
void key_press(unsigned);
void key_release(unsigned);
void character(StringCodec::unichar);
window.signal_close.connect(sigc::bind(sigc::mem_fun(this, &Ev::exit), 0));
keyboard.signal_button_press.connect(sigc::bind_return(sigc::mem_fun(this, &Ev::key_press), false));
keyboard.signal_button_release.connect(sigc::bind_return(sigc::mem_fun(this, &Ev::key_release), false));
window.signal_close.connect(sigc::bind(sigc::mem_fun(this, &Ev::exit), 0));
keyboard.signal_button_press.connect(sigc::bind_return(sigc::mem_fun(this, &Ev::key_press), false));
keyboard.signal_button_release.connect(sigc::bind_return(sigc::mem_fun(this, &Ev::key_release), false));
mouse.signal_button_press.connect(sigc::bind_return(sigc::mem_fun(this, &Ev::button_press), false));
mouse.signal_button_release.connect(sigc::bind_return(sigc::mem_fun(this, &Ev::button_release), false));
mouse.signal_axis_motion.connect(sigc::bind_return(sigc::mem_fun(this, &Ev::axis_motion), false));
mouse.signal_button_press.connect(sigc::bind_return(sigc::mem_fun(this, &Ev::button_press), false));
mouse.signal_button_release.connect(sigc::bind_return(sigc::mem_fun(this, &Ev::button_release), false));
mouse.signal_axis_motion.connect(sigc::bind_return(sigc::mem_fun(this, &Ev::axis_motion), false));