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

[email protected] ("Madeleine D.") Mon, 15 Feb 2010 12:50:29 -0800
Newsgroups php.gtk.general
Message-ID <[email protected]>
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)
>>
>>     
>
>
>
>