我正在编写一个Eclipse插件,它有一个悬停控件,由两个控件组成,一个在另一个之上:
我可以轻松计算大小提示的HTML查看器(BrowserInformationControl)
包含树的TreeViewer。
我已经用实际内容设置了我的树。但是,我无法找到一种方法来计算树的大小或渲染后的大小提示。
答案 0 :(得分:4)
根据org.eclipse.swt.widgets.Tree的API,这应该通过以下方式完成:
public Point computeSize(int wHint,
int hHint,
boolean changed)
控件的首选大小是最佳显示的大小。
宽度提示和高度提示参数允许调用者询问控制问题,例如“给定特定宽度,控件需要多高才能显示所有内容?”
为了表明调用者不希望约束特定维度,为提示传递常量SWT.DEFAULT。如果更改的标志为真,则表示接收方的内容已更改,因此需要刷新包含控件的布局管理器可能保持的任何高速缓存。调整控件的大小时,更改的标志将为false,因此可以保留布局管理器缓存。
请注意,在Windows上,computeSize()
的行为存在缺陷:请参阅此message和此bug:已修复为eclipse 3.4M1并转发。
在this message中使用computeSize()
的示例。
使用getBound()
可能是另一个interesting alternative。