单击工具提示后将其冻结



我正在尝试使用org.eclipse.jface.window.DefaultToolTip来显示一些UI组件,如放置在组合中的复选框、单选按钮。当用户单击文本时,工具提示会弹出并显示UI组件。

问题:一旦用户点击这个工具提示,我想冻结工具提示。使用toolTip.setHideOnMouseDown(false);,只要我在工具提示区域内,我就可以选中/取消选中复选框/单选按钮。鼠标指针退出工具提示区域后,工具提示将消失。这怎么能避免呢。我正在寻找可用于eclipse工具提示(javadoc,方法定义)的类似行为。在Eclipse工具提示中,如果我们单击/按f2,工具提示将保持活动状态,直到我们在工具提示区域之外单击为止。

编辑:我也尝试在工具提示中使用Eclipse插件间谍,但没有成功。

任何想法。

Eclipse在按下F2时所做的是创建一个与工具提示大小和内容完全相同的新Shell,并关闭原始工具提示。

我在一个扩展的工具提示类中使用如下代码:

  /**
   * Switch from tool tip to a normal window.
   */
  private void showWindow()
  {
    if (_control.isDisposed())
      return;
    final Shell shell = new Shell(_control.getShell(), SWT.CLOSE | SWT.ON_TOP | SWT.RESIZE);
    shell.setLayout(new FillLayout());
    createBody(shell);
    final Point currLoc = _parent.getShell().getLocation();
    final Rectangle client = _parent.getClientArea();
    final Rectangle bounds = shell.computeTrim(currLoc.x, currLoc.y, client.width, client.height);
    shell.setBounds(bounds);
    shell.open();
    // Hide the tool tip window
    hide();
  }

_control是传递给构造函数的控件。

最新更新