/**
* Converts the font of the control by adding a single style bit, unless the font already have
* that style.
* <p>
* If the font is converted, it will attach a {@link DisposeListener}
* to the <code>control</code> to dispose the font when it's not needed anymore.
* <p>
* <em>If converting fonts is a frequent operation, this method will create
* several {@link DisposeListener}s that can lead to high resource allocation</em>
*
* @param control whose font will be changed
* @param style e.g. SWT.BOLD or SWT.ITALIC
*/
public static void convertFont(Control control, int style) {
for (FontData fontData : control.getFont().getFontData()) {
if (hasStyle(fontData, style)) {
return;
}
}
FontDescriptor fontDescriptor = FontDescriptor.createFrom(control.getFont()).setStyle(style);
final Font newFont = fontDescriptor.createFont(control.getDisplay());
control.setFont(newFont);
control.addDisposeListener(new DisposeListener() {
@Override
public void widgetDisposed(DisposeEvent event) {
newFont.dispose();
}
});
}
FontUtil.java 文件源码
java
阅读 27
收藏 0
点赞 0
评论 0
项目:google-cloud-eclipse
作者:
评论列表
文章目录