Элементы инструментов не имеют отдельного элемента управления, они являются частью родительского элемента управления ToolBar
. Класс SWT ToolItem
представляет элемент инструмента, он просто получен из Widget
, а не Control
.
Таким образом, вам придется установить подсказку на панели инструментов и определить, какой элемент активен, когда отображается подсказка.
Классы модели приложения, которые представляют объекты пользовательского интерфейса, расширяют интерфейс MUIElement
. Это обеспечивает getWidget
метод для получения объекта пользовательского интерфейса.
Так что для MToolBar
вы можете сделать:
ToolBar toolbar = (ToolBar)mtoolbar.getWidget();
и для MToolItem
(с обработкой или прямым) вы можете сделать:
ToolItem toolitem = (ToolItem)mtoolitem.getWidget();
Если вы создадите ToolTip
со стилем NO_RECREATE
, он вызовет
getToolTipArea
метод определения необходимости смены наконечника инструмента. Вы можете использовать что-то вроде следующего, чтобы иметь разные области для каждого элемента инструмента:
@Override
protected Object getToolTipArea(final Event event)
{
// TODO save the ToolBar in the class as 'toolBar'
ToolItem item = toolBar.getItem(new Point(event.x, event.y));
if (item != null)
return item;
return super.getToolTipArea(event);
}