Я реализую представления для версии OS X нашего Java-приложения SWT и хотел бы использовать опцию «список источников», предложенную NSOutlineView, в моем дереве SWT.
Я реализовал это, взломав собственную версию Tree.class, добавив этот код в метод #createHandle()
:
long NSTableViewSelectionHighlightStyleSourceList = 1;
long hi = OS.sel_registerName("setSelectionHighlightStyle:");
OS.objc_msgSend(widget.id, hi, NSTableViewSelectionHighlightStyleSourceList);
Что, по сути, просто помечает базовый NSOutlineView для использования стиля NSTableViewSelectionHighlightStyleSourceList.
Это выглядит так:
, который работает, но не полностью эмулирует поведение NSOutlineView. Например, при выборе корневых узлов, хотя заголовок имеет достаточно места, он все равно обрезает его следующим образом:
Другая проблема заключается в том, что я не знаю, как реализовать категории (или группы / папки), как вы видите в Finder.app/iTunes.app/Mail.app/ в следующем примере:
Обратите внимание на категорию FAVORITES
и способ ее форматирования. Это выполняется в обычном приложении ObjC путем возврата true в методе outlineView:isGroupItem
в делегате outlineView
, но я не знаю, где взломать это.
Итак, мой вопрос
Как мне реализовать реализацию категории (isGroupItem
) в SWT на OS X?