[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.platform.swt] Re: How to dermine if Shift Key is down?

Thanks a lot. It's exactly what I need.

"Grant Gayed" <grant_gayed@xxxxxxxxxx> wrote in message 
news:djblob$9ak$1@xxxxxxxxxxxxxxxxxxx
> 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@xxxxxxxxx> wrote in message
> news:djbci9$t9n$1@xxxxxxxxxxxxxxxxxxx
>> 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@xxxxxxxxx
>> phone: +7 (095) 912-5317 (4428 additional)
>> cell: +7 (909) 159-1066
>>
>>
>>
>
>