Использование автономных SWT Полосы прокрутки - это что-то вроде взлома (с использованием this workaround), но это можно сделать. Вот отрывок:События мыши на SWT Полоса прокрутки
ScrolledComposite scrolledComposite = new ScrolledComposite(
parent, SWT.V_SCROLL);
ScrollBar scrollbar = scrolledComposite.getVerticalBar();
Shell tip = new Shell(UserInterface.getShell(), SWT.ON_TOP
| SWT.NO_FOCUS | SWT.TOOL);
// ..stylize and fill the tooltip..
Теперь то, что я пытаюсь сделать, это контролировать, когда пользователь взаимодействует с скроллинга. В частности, я хочу знать, когда пользователь перетаскивает полосу прокрутки — и когда она была выпущена —, чтобы отобразить всплывающую подсказку в стиле Office 2007, показывающую, с какой страницы расположена полоса прокрутки.
В настоящее время у меня есть следующий код, который отображает всплывающую подсказку:
scrollbar.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent event) {}
public void widgetSelected(SelectionEvent event) {
tip.setVisible(true);
}
}
Казалось бы, логично то, чтобы подсказка исчезает при отпускании кнопки мыши:
scrollbar.addListener(SWT.MouseUp, new Listener() {
public void handleEvent(Event event) {
tip.setVisible(false);
}
});
Тем не менее, ни scrollbar
, ни scrolledComposite
, кажется, отвечают на вопросы SWT.MouseUp
ev когда пользователь взаимодействует с полосой прокрутки.
В настоящее время у меня есть обходное решение, которое скрывает кончик после таймаута, но я не удовлетворен этим. Любые идеи будут оценены наиболее высоко!
Отлично! Я посмотрю, действительно ли это будет первым делом с утра. –
Работает как очарование! Большое спасибо! –