Skip to main content



      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 14:35 Go to next message
Eclipse UserFriend
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 17:14 Go to previous messageGo to next message
Eclipse UserFriend
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 03:44 Go to previous message
Eclipse UserFriend
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: Sun Jul 06 03:56:56 EDT 2025

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

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

Back to the top