Drag and Drop versus click even in SWT [message #444865] |
Thu, 21 October 2004 18:41 |
Eclipse User |
|
|
|
Originally posted by: tshab.mail.arc.nasa.gov
Hi,
I have a Button that I want to both have normal mouse-down click events but
also be draggable in DnD.
Does anyone have a good example of doing this (or something like this,
anything that has both click events and DnD events on the same widget).
--Ted
|
|
|
Re: Drag and Drop versus click even in SWT [message #444964 is a reply to message #444865] |
Fri, 22 October 2004 13:22 |
Grant Gayed Messages: 2150 Registered: July 2009 |
Senior Member |
|
|
Hi Ted,
The following snippet demonstrates using Selection and DragDetect listeners
to differentiate these cases. I notice two small bugs on win32 that it
exposes, but the event firing behaviour is correct, and should properly
respect differences in platform drag conventions. The bugs, which I'll be
logging reports for, are:
- hooking the DragDetect listener makes the button no longer visually press
in when MouseDown'd by the user
- ending the Tracker drag while on the Button leaves cheese; this is worked
around in the snippet below with the button.redraw()
public static void main(String[] args) {
Display display = new Display();
final Shell shell = new Shell(display);
shell.setBounds(10, 10, 200, 200);
final Button button = new Button(shell, SWT.PUSH);
button.setBounds(10,10,50,50);
button.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
System.out.println("Pushed!");
}
});
button.addListener(SWT.DragDetect, new Listener() {
public void handleEvent(Event event) {
Tracker tracker = new Tracker(shell, SWT.NONE);
tracker.setRectangles(new Rectangle[] {button.getBounds()});
tracker.open();
button.redraw();
}
});
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) display.sleep();
}
display.dispose();
}
HTH,
Grant
"Ted Shab" <tshab@mail.arc.nasa.gov> wrote in message
news:cl8vh9$2hs$2@eclipse.org...
> Hi,
>
> I have a Button that I want to both have normal mouse-down click events
but
> also be draggable in DnD.
>
> Does anyone have a good example of doing this (or something like this,
> anything that has both click events and DnD events on the same widget).
>
> --Ted
>
>
>
|
|
|
Powered by
FUDForum. Page generated in 0.02122 seconds