Платформа разработки представляет собой Eclipse RCP 3.4 на Fedora (она использует собственный компонент Gtk).Мне нужно избегать переноса слов.
, т. Е. «Hello World» отображается как регистр № 1, но мне нужен регистр № 2.
1|Hello | 2|Hello Wor|
|World | |ld |
Есть ли простое решение?
Я видел, что текстовый дескриптор SWT собран с OS.GTK_WRAP_WORD_CHAR
режимом переноса.Я хотел бы проверить поведение с константой, как OS.GTK_WRAP_WORD
или OS.GTK_WRAP_NONE
, но я не знаю, как совершить это чудо?Можно ли программно изменить конкретную конфигурацию платформы?
РЕДАКТИРОВАТЬ 1 - Есть решение от одного из моих коллег:
import org.eclipse.swt.SWT;
import org.eclipse.swt.internal.gtk.OS;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
public class SampleGrabExcess {
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new GridLayout());
shell.setSize(70, 70);
GridData gridData = new GridData();
Text addressText = new Text(shell, SWT.BORDER | SWT.MULTI) {
@Override
protected void checkSubclass() {}
@Override
protected void checkWidget() {
OS.gtk_text_view_set_wrap_mode(handle, 1);
super.checkWidget();
}
};
gridData = new GridData();
gridData.horizontalAlignment = SWT.FILL;
gridData.grabExcessHorizontalSpace = true;
gridData.verticalAlignment = SWT.FILL;
gridData.grabExcessVerticalSpace = true;
addressText.setLayoutData(gridData);
addressText.setText("Hello World.");
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
}
}
Результат ожидаемый.Я ищу решение от http://dev.eclipse.org.