2

我正在编写一个 Eclipse 插件,它有一个悬停控件,由两个控件组成,一个在另一个之上:

我可以轻松计算大小提示的 HTML 查看器 (BrowserInformationControl)

包含树的 TreeViewer。

我已经用实际内容建立了我的树。但是,我找不到一种方法来计算树的大小或渲染后的大小提示。

4

1 回答 1

4

根据org.eclipse.swt.widgets.Tree的 API ,这应该通过以下方式完成:

public Point computeSize(int wHint,
                     int hHint,
                     boolean changed)

控件的首选大小是它最适合显示的大小。

宽度提示和高度提示参数允许调用者询问控件问题,例如“给定特定宽度,控件需要多高才能显示所有内容?”
为了表明调用者不希望约束特定维度,为提示传递常量 SWT.DEFAULT。

如果 changed 标志为真,则表明接收器的内容已更改,因此包含控件的布局管理器可能一直保留的任何缓存都需要刷新。当控件调整大小时,更改标志将为 false,因此可以保留布局管理器缓存。


请注意,在 Windows 上, 的行为computeSize()存在缺陷:请参阅此消息和此错误:已为 eclipse 3.4M1 及更高版本修复。

此消息computeSize()中的使用示例。

的使用getBound()可能是另一个有趣的选择

于 2009-03-11T05:12:01.817 回答