]> git.tdb.fi Git - libs/gui.git/blobdiff - examples/ev.cpp
Avoid using too much CPU time in the event tester
[libs/gui.git] / examples / ev.cpp
index 5a338e7355b9dedb1565812cbb92e1ae007f2d98..8029df2af8310a9c1e5a25a326b8d607bbfba085 100644 (file)
@@ -5,6 +5,8 @@
 #include <msp/io/print.h>
 #include <msp/stringcodec/codec.h>
 #include <msp/stringcodec/utf8.h>
+#include <msp/time/timedelta.h>
+#include <msp/time/utils.h>
 
 using namespace Msp;
 
@@ -35,18 +37,20 @@ Ev::Ev(int, char **):
        mouse(window)
 {
        window.signal_close.connect(sigc::bind(sigc::mem_fun(this, &Ev::exit), 0));
-       keyboard.signal_button_press.connect(sigc::mem_fun(this, &Ev::key_press));
-       keyboard.signal_button_release.connect(sigc::mem_fun(this, &Ev::key_release));
-       keyboard.signal_character.connect(sigc::mem_fun(this, &Ev::character));
-       mouse.signal_button_press.connect(sigc::mem_fun(this, &Ev::button_press));
-       mouse.signal_button_release.connect(sigc::mem_fun(this, &Ev::button_release));
-       mouse.signal_axis_motion.connect(sigc::mem_fun(this, &Ev::axis_motion));
+       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));
+       keyboard.signal_character.connect(sigc::bind_return(sigc::mem_fun(this, &Ev::character), 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));
+       window.set_title("Event tester");
        window.show();
 }
 
 void Ev::tick()
 {
        window.tick();
+       Time::sleep(Time::msec);
 }
 
 void Ev::key_press(unsigned key)