Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Standard Widget Toolkit (SWT) » How to dermine if Shift Key is down?
How to dermine if Shift Key is down? [message #462951] Fri, 21 October 2005 18:35 Go to next message
Sergey Gomanyuk is currently offline Sergey GomanyukFriend
Messages: 46
Registered: July 2009
Member
I tried following:

displayKeysListener = new Listener() {
public void handleEvent(Event event) {
if(event.keyCode == SWT.SHIFT) {
if(event.type == SWT.KeyDown) {
Utilities.setShiftKeyDown(true);
} else if(event.type == SWT.KeyUp) {
Utilities.setShiftKeyDown(false);
}
}
}
};
Display d = getWorkbench().getDisplay();
d.addFilter(SWT.KeyDown, displayKeysListener);
d.addFilter(SWT.KeyUp, displayKeysListener);


It works until popup menu in Eclipse view invoked, display doesn't send any
key events while menu is active. Why? How to find out if Shift key had been
pressed just before action from popup menu was invoked?
Sergey Gomanyuk,
ISP RAS,
junior research assistant,
e-mail: sergg@ispras.ru
phone: +7 (095) 912-5317 (4428 additional)
cell: +7 (909) 159-1066
Re: How to dermine if Shift Key is down? [message #462954 is a reply to message #462951] Fri, 21 October 2005 21:14 Go to previous messageGo to next message
Grant Gayed is currently offline Grant GayedFriend
Messages: 2150
Registered: July 2009
Senior Member
I'm assuming that you mean the user is holding Shift while selecting the
menu item:

public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell (display);
shell.setBounds(10,10,200,200);
Menu menu = new Menu(shell, SWT.POP_UP);
shell.setMenu(menu);
MenuItem item = new MenuItem(menu, SWT.NONE);
item.setText("item");
item.addListener(SWT.Selection, new Listener (){
public void handleEvent(Event event) {
System.out.print("item selected with modifiers: ");
if ((event.stateMask & SWT.SHIFT) != 0) System.out.print("Shift
");
if ((event.stateMask & SWT.CTRL) != 0) System.out.print("Ctrl
");
if ((event.stateMask & SWT.ALT) != 0) System.out.print("Alt");
System.out.println();
}
});
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) display.sleep();
}
display.dispose();
}

Grant

"Sergey V. Gomanyuk" <sergg@ispras.ru> wrote in message
news:djbci9$t9n$1@news.eclipse.org...
> I tried following:
>
> displayKeysListener = new Listener() {
> public void handleEvent(Event event) {
> if(event.keyCode == SWT.SHIFT) {
> if(event.type == SWT.KeyDown) {
> Utilities.setShiftKeyDown(true);
> } else if(event.type == SWT.KeyUp) {
> Utilities.setShiftKeyDown(false);
> }
> }
> }
> };
> Display d = getWorkbench().getDisplay();
> d.addFilter(SWT.KeyDown, displayKeysListener);
> d.addFilter(SWT.KeyUp, displayKeysListener);
>
>
> It works until popup menu in Eclipse view invoked, display doesn't send
any
> key events while menu is active. Why? How to find out if Shift key had
been
> pressed just before action from popup menu was invoked?
> Sergey Gomanyuk,
> ISP RAS,
> junior research assistant,
> e-mail: sergg@ispras.ru
> phone: +7 (095) 912-5317 (4428 additional)
> cell: +7 (909) 159-1066
>
>
>
Re: How to dermine if Shift Key is down? [message #463033 is a reply to message #462954] Tue, 25 October 2005 07:44 Go to previous message
Sergey Gomanyuk is currently offline Sergey GomanyukFriend
Messages: 46
Registered: July 2009
Member
Thanks a lot. It's exactly what I need.

"Grant Gayed" <grant_gayed@ca.ibm.com> wrote in message
news:djblob$9ak$1@news.eclipse.org...
> I'm assuming that you mean the user is holding Shift while selecting the
> menu item:
>
> public static void main(String[] args) {
> Display display = new Display();
> Shell shell = new Shell (display);
> shell.setBounds(10,10,200,200);
> Menu menu = new Menu(shell, SWT.POP_UP);
> shell.setMenu(menu);
> MenuItem item = new MenuItem(menu, SWT.NONE);
> item.setText("item");
> item.addListener(SWT.Selection, new Listener (){
> public void handleEvent(Event event) {
> System.out.print("item selected with modifiers: ");
> if ((event.stateMask & SWT.SHIFT) != 0) System.out.print("Shift
> ");
> if ((event.stateMask & SWT.CTRL) != 0) System.out.print("Ctrl
> ");
> if ((event.stateMask & SWT.ALT) != 0) System.out.print("Alt");
> System.out.println();
> }
> });
> shell.open();
> while (!shell.isDisposed()) {
> if (!display.readAndDispatch()) display.sleep();
> }
> display.dispose();
> }
>
> Grant
>
> "Sergey V. Gomanyuk" <sergg@ispras.ru> wrote in message
> news:djbci9$t9n$1@news.eclipse.org...
>> I tried following:
>>
>> displayKeysListener = new Listener() {
>> public void handleEvent(Event event) {
>> if(event.keyCode == SWT.SHIFT) {
>> if(event.type == SWT.KeyDown) {
>> Utilities.setShiftKeyDown(true);
>> } else if(event.type == SWT.KeyUp) {
>> Utilities.setShiftKeyDown(false);
>> }
>> }
>> }
>> };
>> Display d = getWorkbench().getDisplay();
>> d.addFilter(SWT.KeyDown, displayKeysListener);
>> d.addFilter(SWT.KeyUp, displayKeysListener);
>>
>>
>> It works until popup menu in Eclipse view invoked, display doesn't send
> any
>> key events while menu is active. Why? How to find out if Shift key had
> been
>> pressed just before action from popup menu was invoked?
>> Sergey Gomanyuk,
>> ISP RAS,
>> junior research assistant,
>> e-mail: sergg@ispras.ru
>> phone: +7 (095) 912-5317 (4428 additional)
>> cell: +7 (909) 159-1066
>>
>>
>>
>
>
Previous Topic:Problems with Table
Next Topic:swt browser - applet
Goto Forum:
  


Current Time: Fri Apr 26 10:19:57 GMT 2024

Powered by FUDForum. Page generated in 0.03190 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top