如何在 SWT UI 中检测对 Draw2D 图形的三次单击?
How to detect triple-click on Draw2D figure in SWT UI?
我想检测对 Draw2D 图形的三次单击。
这将允许第一次点击 select Draw2D 图,第二次点击展开 selection,第三次点击进一步展开。
SWT 在其 MouseEvent 中提供点击计数。但是,Draw2D 有自己的 MouseEvent,不会公开点击次数。 [参见 Eclipse bug 516272。 ]
我可以将第三次鼠标单击检测为独立事件,并确定它是否在最后一次双击后足够快地发生。
我想遵守 OS 的多次点击速度设置。在AWT/Swing中,我可以用Toolkit.getDefaultToolkit().getDesktopProperty("awt.multiClickInterval")
得到最大间隔。但我想避免在 SWT 应用程序中耦合到 AWT class。
有没有办法通过 SWT 或 Draw2D API 获取多次点击间隔?
SWT 的 Display class 提供了一个方法 getDoubleClickTime():
public int getDoubleClickTime()
Returns the longest duration, in milliseconds, between two mouse button clicks that will be considered a double click by the underlying operating system.getDoubleClickTime():
例如:
int doubleClickTime = Display.getDefault().getDoubleClickTime();
可以跟踪自双击以来的时间,并在下一次候选鼠标单击时查看它是否小于该值。
我想检测对 Draw2D 图形的三次单击。
这将允许第一次点击 select Draw2D 图,第二次点击展开 selection,第三次点击进一步展开。
SWT 在其 MouseEvent 中提供点击计数。但是,Draw2D 有自己的 MouseEvent,不会公开点击次数。 [参见 Eclipse bug 516272。 ]
我可以将第三次鼠标单击检测为独立事件,并确定它是否在最后一次双击后足够快地发生。
我想遵守 OS 的多次点击速度设置。在AWT/Swing中,我可以用Toolkit.getDefaultToolkit().getDesktopProperty("awt.multiClickInterval")
得到最大间隔。但我想避免在 SWT 应用程序中耦合到 AWT class。
有没有办法通过 SWT 或 Draw2D API 获取多次点击间隔?
SWT 的 Display class 提供了一个方法 getDoubleClickTime():
public int getDoubleClickTime()
Returns the longest duration, in milliseconds, between two mouse button clicks that will be considered a double click by the underlying operating system.getDoubleClickTime():
例如:
int doubleClickTime = Display.getDefault().getDoubleClickTime();
可以跟踪自双击以来的时间,并在下一次候选鼠标单击时查看它是否小于该值。