Eclipse SWT: невозможно прокрутить текст, если включена вертикальная прокрутка

В дополнение к генерации кода и редактированию, если вы хотите реализовать парсер, этот тип грамматики проще и проще реализовать. C # следует за этим правилом в нескольких местах, где есть список разделенных запятыми элементов, таких как элементы в определении enum.

0
задан Sadik 4 March 2019 в 08:33
поделиться

1 ответ

Решение, которое я нашел, было отключить вертикальную полосу прокрутки. Это также отключает прокрутку колесиком мыши. Также используйте методы SWT addMouseWheelListener() и mouseScrolled() вместо addListener(). Затем просто прокрутите ScrolledComposite, используя метод getOrigin().

myText.addMouseWheelListener(new MouseWheelListener() {
    @Override
    public void mouseScrolled(MouseEvent e) {
        if (!myText.isFocusControl() ) {
            myText.getVerticalBar().setEnabled(false);
            if (e.count == 3) {
                mySc.setOrigin(sc.getOrigin().x, mySc.getOrigin().y - 30);
            } else if (e.count == -3) {
                mySc.setOrigin(sc.getOrigin().x, mySc.getOrigin().y + 30);
            }
        } else {
            myText.getVerticalBar().setEnabled(true);
        }
    }
});

count всегда возвращает 3 или -3, в зависимости от направления прокрутки. Значение 30 для прокрутки вверх / вниз хорошо для меня, может быть более или менее для других целей. Я еще не проверял поведение на машине с Windows.

0
ответ дан Sadik 4 March 2019 в 08:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: