Hi,
I’m managing the selection of a list of widgets.
During a button-pressed-event on the container I want to check
whether SHIFT and/or CTRL are pressed to adjust how the selection
changes.
How can I read the keyboard state at a particular instant?
Thanks,
Martin
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net’s Techsay panel and you’ll get the chance to share
your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
Martin P. wrote:
Hi,
I’m managing the selection of a list of widgets.
During a button-pressed-event on the container I want to check
whether SHIFT and/or CTRL are pressed to adjust how the selection
changes.
How can I read the keyboard state at a particular instant?
Thanks,
Martin
There may be a better way of doing this, but my first suggestion would
be to connect to the key-press-event and key-release-event for the same
container. Then you can set some boolean variable somewhere.
Something like
widget.signal_connect(“key-press-event”) do |a, key|
@shift_down = true if Gdk::Keyval.to_name(key.keyval) == “Shift_L”
@control_down = true if Gdk::Keyval.to_name(key.keyval) == “Control_L”
end
widget.signal_connect(“key-release-event”) do |a, key|
@shift_down = false if Gdk::Keyval.to_name(key.keyval) == “Shift_L”
@control_down = false if Gdk::Keyval.to_name(key.keyval) ==
“Control_L”
end
Then you can check @shift_down and @control_down whenever you need to.
It does seem inefficient though. I’d love to know if it’s possible to
query the status of the keyboard.
best,
Dan
On Thu, Mar 08, 2007 at 12:11:18PM +0000, Martin P. wrote:
Hi,
I’m managing the selection of a list of widgets.
During a button-pressed-event on the container I want to check
whether SHIFT and/or CTRL are pressed to adjust how the selection
changes.
How can I read the keyboard state at a particular instant?
When you get a button-press-event, the second argument, a
Gdk::EventButton, includes a “state” property:
http://ruby-gnome2.sourceforge.jp/hiki.cgi?Gdk%3A%3AEventButton#state
You can inspect that to see which modifiers are currently active during
the button press.
-pete
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net’s Techsay panel and you’ll get the chance to share
your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
Peter J. wrote:
When you get a button-press-event, the second argument, a
Gdk::EventButton, includes a “state” property:
http://ruby-gnome2.sourceforge.jp/hiki.cgi?Gdk%3A%3AEventButton#state
You can inspect that to see which modifiers are currently active during
the button press.
Thank you. Just what I was looking for, but didn’t find as I was
searching the apis, but missed this as i was using
‘keyboard’ in the search. oops.
Martin.
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net’s Techsay panel and you’ll get the chance to share
your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
Peter J. wrote:
When you get a button-press-event, the second argument, a
Gdk::EventButton, includes a “state” property:
http://ruby-gnome2.sourceforge.jp/hiki.cgi?Gdk%3A%3AEventButton#state
You can inspect that to see which modifiers are currently active during
the button press.
-pete
Thanks you peter, I wanted to know the answer to that one as well.
Dan