Как применить различные стили к виджету в зависимости от некоторых переменных? - PullRequest
0 голосов
/ 12 ноября 2018

Я хочу применить горизонтальную прокрутку в текстовом виджете в зависимости от переменной.

Я сделал это так:

    int style = (SWT.BORDER | SWT.V_SCROLL | SWT.CANCEL | SWT.MULTI);

    if (!editable) {
        style = (style | SWT.READ_ONLY);
    }

    if (horizontalScroll) {
        style = (style | SWT.H_SCROLL);
    }

    text = new Text(composite, style);

Проблема в том, что горизонтальная прокрутка всегда присутствует, даже если для горизонтального прокрутки логическое значение ложно. Разве это не правильный способ сделать это?

Спасибо

1 Ответ

0 голосов
/ 12 ноября 2018

SWT.CANCEL не поддерживается стилем виджета SWT Text.

Вам не повезло в этом случае, потому что значение SWT.CANCEL равно SWT.H_SCROLL, поэтому, добавив стиль отмены, вы фактически добавляете горизонтальную прокрутку.

Стили, поддерживаемые текстовым виджетом SWT: CENTER, ICON_CANCEL, ICON_SEARCH, ВЛЕВО, НЕСКОЛЬКО, ПАРОЛЬ, ПОИСК, ОДИНАРНЫЙ, ПРАВО, ЧИТАТЬ_ONLY, WRAP.

Стили, поддерживаемые наследованием: H_SCROLL, V_SCROLL, BORDER, LEFT_TO_RIGHT, RIGHT_TO_LEFT, FLIP_TEXT_DIRECTION

И вы должны проверить, что есть некоторые правила, которые некоторые стили не могут сочетать (например, SWT.SINGLE с SWT.MULTI).

...