keyboard release
"Frank W. Samuelson" <frank-54OiX5uwpr77T4i/[email protected]>
| Newsgroups | gmane.comp.python.visualpython.user |
|---|---|
| Message-ID | <alpine.LFD.2.02.1106110752360.14566@localhost> |
I am interested in using vpython to make some simple games. Apparently there
are a few others like me based on some internet posts that I found. To make
games we need to know when keyboard buttons are released as well as pressed.
To facilitate this happening, I made a couple small code changes represented by
the below patch on the visual-5.71 release. You are welcome to incorporate or
ignore them. When keys are released, the generated keyboard events are
proceeded with the string "Released: " in front of them.
The good:
-The patch is very small
-This hack is backwards compatible for people who use code like
s = scene.kb.getkey()
if s == 'k': ...
-Processing of keyboard events is still easy string comparisons
The bad:
-The code is currently only for gtk. I don't have "Windows" or Mac computer on
which to test any change that I make.
Thanks for all your work on vpython. It's great.
-Frank
--- src/gtk2/display.cpp.~1.58.~ 2009-10-11 17:33:43.000000000 -0400
+++ src/gtk2/display.cpp 2011-06-11 07:24:54.176217104 -0400
@@ -133,6 +133,8 @@
area->set_size_request( w, h );
area->signal_key_press_event().connect(
sigc::mem_fun( *this, &display::on_key_pressed));
+ area->signal_key_release_event().connect(
+ sigc::mem_fun( *this, &display::on_key_pressed));
// Glade-based UI.
// Turned off toolbar in display initialization for now; not yet available on Windows or Mac
@@ -270,6 +272,11 @@
// other than a US keyboard.
guint k = key->keyval;
std::string ctrl_str;
+
+ // Is this a press or release?
+ if (key->type == GDK_KEY_RELEASE) {
+ ctrl_str += "Released: ";
+ }
// First trap for shift, ctrl, and alt.
if (key->state & GDK_CONTROL_MASK) {
ctrl_str += "ctrl+";
------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev