Re: [PHP-GTK] Re: Key Press php-gtk1

[email protected] (Jake) Fri, 19 Feb 2010 09:48:16 -0500
Newsgroups php.gtk.general
Message-ID <[email protected]>
If one Shift key is already down and you press the other, does this trigger
another key-press event?  If so, can't you detect both are down by
incrementing/decrementing a counter when you get a key press/release for
Shift and checking for the counter being 2?

-Jake

On Mon, Feb 15, 2010 at 5:44 PM, Brian Stumm <
[email protected]> wrote:

> Thanks to Madeleine for pointing out my error, I can now detect key
> release as well as key press. But I now have a new problem and looking
> for any ideas anyone might have.
>
> I must choose two keys on the keyboard that cannot be pressed using
> only one hand. Most keys fall into the "auto repeat" category where
> while holding the key down for long periods it will repeat the "press"
> action. I'm sure you've all experienced the annoying beeping from a
> computer with a key that is stuck down for whatever reason. I decided
> I could use the two shift keys as my two handed solution, however both
> shift keys use the value 65505 and I cannot determine that both shift
> keys are depressed. Using a combination of ctrl and shift is out
> because you can press them both using only one hand.
>
> Is there a way to treat the two shift or ctrl keys separate? Is there
> a way to disable auto-repeat for the keyboard (temporarily) via
> php-gtk? Any other ideas?
>
> Thanks.
>
> On Mon, Feb 15, 2010 at 12:50 PM, Madeleine D. <[email protected]> wrote:
> >
> > Brian -
> >
> > You need to add 'add-events', after the realize, as in:
> >
> > $alert_window->add_events(GDK_KEY_PRESS_MASK|GDK_KEY_RELEASE_MASK);
> >
> >
> > The key press mask is probably not needed, but I always add it anyway.
> >
> >
> > Madeleine D.
> >
> >
> >
> >
> >
> > Brian Stumm wrote:
> >>
> >> Not sure if messages are going through or not but...
> >>
> >> I've discovered the key-press-event and key-release-event and while
> >> key-press is working for me, the key-release does not seem to work.
> >>
> >> Here is a snippet from my code:
> >>
> >> $alert_window = &new GtkWindow(GTK_WINDOW_DIALOG);
> >> $alert_window->connect('delete-event', 'hide_window');
> >> $alert_window->set_border_width(0);
> >> $alert_window->set_policy(0, 0, 0);
> >> $alert_window->set_title('Notice!');
> >> $alert_window->set_name('AlertWindow');
> >> $alert_window->set_usize(400,430);
> >> $alert_window->realize();
> >> $alert_window->set_position(GTK_WIN_POS_CENTER);
> >> $alert_window->connect('key-press-event', 'onKeyPress');
> >> $alert_window->connect('key-release-event', 'onKeyRelease');
> >> -----------------8<--SNIP
> >>
> >> /***** ONKEYPRESS/RELEASE() *****/
> >> function onKeyPress($widget, $event) {
> >>  global $righthand, $lefthand;
> >>  echo "Pressed: " . $event->keyval;
> >>  return true;
> >> }
> >> function onKeyRelease($widget, $event) {
> >>  global $righthand, $lefthand;
> >>  echo "Released: " . $event->keyval;
> >>  return true;
> >> }
> >>
> >> Key Press echo's Pressed and a value (numeric) but the key release
> >> does nothing. Am I doing something wrong?
> >>
> >>
> >> On Mon, Feb 15, 2010 at 6:01 AM, Brian Stumm
> >> <[email protected]> wrote:
> >>
> >>>
> >>> First, I am still using php-gtk1. I'd like to make the move to v2 but
> >>> do not have the luxury right now.
> >>>
> >>> I am looking to detect when keys are pressed (and held down) in
> >>> php-gtk version 1. This is for a "two hand, no tie down" safety
> >>> feature on our machines. Access to our machines is made possible by
> >>> lifting the top of the machine using air cylinders. The air cylinders
> >>> are controlled via an electric valve. To lower the top I need to
> >>> require the user to press two keys on opposite sides of the keyboard
> >>> and keep them depressed until the top closes completely. If they
> >>> release before the top closes completely the top should go back up.
> >>>
> >>> Is there a way I can monitor key press and key release in version 1 of
> >>> php-gtk?
> >>>
> >>> --
> >>> Brian Stumm
> >>> ETS Energy Technology Systems, Inc.
> >>> http://EnergyTechnologySystems.com
> >>> [email protected]
> >>> 509-276-2015 (PH)
> >>> 509-276-2016 (FX)
> >>>
> >>>
> >>
> >>
> >>
> >>
> >
>
>
>
> --
> Brian Stumm
> ETS Energy Technology Systems, Inc.
> http://EnergyTechnologySystems.com
> [email protected]
> 509-276-2015 (PH)
> 509-276-2016 (FX)
>
> --
> PHP-GTK General Mailing List (http://gtk.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>