Описание
TreeView — это элемент управления IMGUI, который позволяет создавать древовидные представления, списковые представления и таблицы с несколькими столбцами для инструментов редактора.
Его можно настроить в отношении рендеринга содержимого строки, логики перетаскивания, логики выбора, поиска, сортировки и переименования элементов. Чтобы обеспечить согласованность между TreeView, следующие функции не настраиваются: отрисовка складывающейся стрелки, отрисовка выбора, отрисовка маркеров перетаскивания.
Хорошим местом для начала является BuildRoot.
Свойства
baseIndent | Отступ, используемый для всех строк перед стрелками и содержимым дерева. |
cellMargin | При использовании MultiColumnHeader это значение настраивает прямоугольники ячеек, предусмотренные для всех столбцов, кроме столбца иерархической структуры. |
columnIndexForTreeFoldouts | При использовании MultiColumnHeader это значение должно быть установлено равным индексу столбца, в котором должны отображаться раскрывающиеся стрелки. |
customFoldoutYOffset | Пользовательское вертикальное смещение раскрывающейся стрелки. |
depthIndentWidth | Значение, которое возвращает отступ складных листов для каждого увеличения значения глубины. |
extraSpaceBeforeIconAndLabel | Значение для управления интервалом перед значком и меткой по умолчанию. Может использоваться, например, для размещения переключателя слева от содержимого. |
foldoutOverride | Регистрирует обратный вызов для этого свойства, чтобы переопределить кнопку Foldout в TreeView. |
foldoutWidth | Ширина встроенной раскрывающейся стрелки. |
getNewSelectionOverride | Регистрирует обратный вызов для этого поля, чтобы переопределить, как TreeView обрабатывает изменения выбора в ответ на нажатия клавиш и щелчки мыши. |
hasSearch | Текущее состояние поиска в TreeView. |
isDragging | true, если пользователь в данный момент перетаскивает один или несколько элементов в TreeView, и ложь в противном случае. |
isInitialized | TreeView инициализируется вызовом Reload(). Поэтому возвращает false, пока Reload() не будет вызвана в первый раз. |
multiColumnHeader | Получение MultiColumnHeader для TreeView. Может быть нулевым, если TreeView был создан без MultiColumnHeader. |
rootItem | Скрытый корневой элемент TreeView (он никогда не отображается). |
rowHeight | Фиксированная высота, используемая для каждой строки в TreeView, если GetCustomRowHeight не был переопределен. |
searchString | Текущая строка поиска TreeView. |
showAlternatingRowBackgrounds | Включает этот параметр, чтобы отображались чередующиеся цвета фона строк. |
showBorder | Включает , чтобы показать границу вокруг TreeView. |
showingHorizontalScrollBar | Возвращает true, если отображается горизонтальная полоса прокрутки, иначе false. |
showingVerticalScrollBar | Возвращает true, если отображается вертикальная полоса прокрутки, иначе false. |
state | Состояние TreeView (расширенное состояние, выделение, прокрутка и т. д.) |
totalHeight | Возвращает сумму высот строк TreeView, высоты MultiColumnHeader (если используется) и границы (если используется). |
treeViewControlID | controlID, используемый TreeView для получения фокуса управления клавиатурой. |
treeViewRect | Образец Rect, в который визуализируется TreeView. |
useScrollView | При отрисовке содержимого TreeView оно будет заключено в ScrollView? |
Конструкторы
TreeView | TreeView всегда строится с объектом состояния и, при необходимости, объектом заголовка с несколькими столбцами, если заголовок необходим. |
Публичные Методы
BeginRename | Показывает наложение переименования для TreeViewItem. |
CollapseAll | Свернуть все развернутые элементы в TreeView. |
EndRename | Заканчивает переименование, если отображается наложение переименования. При вызове, когда наложение переименования не отображается, этот метод ничего не делает. |
ExpandAll | Развернуть все свернутые элементы в TreeView. |
FrameItem | Это покажет элемент с идентификатором ID (путем расширения предков этого элемента) и обеспечит его видимость в ScrollView. |
GetExpanded | Возвращает список идентификаторов TreeViewItem, которые в настоящее время развернуты в TreeView. |
GetRows | Это список объектов TreeViewItem, созданных в BuildRows. |
GetSelection | Возвращает список выбранных ID TreeViewItem. |
HasFocus | Возвращает true, если TreeView и его EditorWindow имеют фокус клавиатуры. |
HasSelection | Возвращает true, если в TreeView есть выбор. |
IsExpanded | Возвращает значение true, если TreeViewItem с идентификатором ID в настоящее время развернут. |
IsSelected | Возвращает true, если в данный момент выбран TreeViewItem с идентификатором ID. |
OnGUI | Это основной метод графического интерфейса TreeView, в котором обрабатываются и отображаются элементы TreeViewItem. |
Reload | Вызовите это, чтобы заставить TreeView перезагрузить свои данные. Это, в свою очередь, вызывает вызовы BuildRoot и BuildRows. |
Repaint | Запросить перерисовку окна, в котором отображается TreeView. |
SelectAllRows | Выбирает все строки в TreeView. |
SetExpanded | Установите один элемент TreeViewItem для развертывания или свертывания. |
SetExpandedRecursive | Развернуть или свернуть все элементы под элементом с идентификатором. |
SetFocus | Вызов этой функции изменяет фокус клавиатуры на TreeView. |
SetFocusAndEnsureSelectedItem | Вызов этой функции изменяет фокус клавиатуры на TreeView и обеспечивает выбор элемента. Используйте эту функцию, чтобы включить навигацию по дереву с помощью клавиш. |
SetSelection | Установите выбранные элементы TreeView. |
Защищенные методы
AddExpandedRows | Добавляет развернутые строки полного дерева в список ввода. Используйте этот метод только в том случае, если в BuildRoot было построено полное дерево. |
AfterRowsGUI | Вызывается после того, как для всех строк вызывается RowGUI. |
BeforeRowsGUI | Вызывается перед вызовом RowGUI любых строк. |
BuildRoot | Абстрактный метод, который необходимо реализовать. По умолчанию этот метод должен создавать полное дерево TreeViewItems и возвращать корень. |
BuildRows | Переопределяет этот метод, чтобы управлять созданием строк. |
CanBeParent | Переопределяет этот метод, чтобы контролировать, какие элементы могут быть родительскими. |
CanChangeExpandedState | Переопределяет этот метод, чтобы контролировать, можно ли разворачивать или сворачивать элемент с помощью клавиши или мыши. |
CanMultiSelect | Переопределяет этот метод, чтобы контролировать, может ли элемент быть частью множественного выбора. |
CanRename | Переопределяет этот метод, чтобы указать, можно ли переименовывать элемент с помощью сочетания клавиш или щелчка по уже выбранному элементу. |
CanStartDrag | Эта функция вызывается всякий раз, когда элемент TreeViewItem щелкается и перетаскивается. По умолчанию возвращает false. |
CenterRectUsingSingleLineHeight | Изменяет прямоугольник ввода таким образом, чтобы он располагался по центру и имел высоту, равную EditorGUIUtility.singleLineHeight. |
CommandEventHandling | Эта функция вызывается автоматически и обрабатывает события ExecuteCommand для «SelectAll» и «FrameSelection». Переопределяет эту функцию, чтобы расширить или избежать командных событий. |
ContextClicked | Переопределяет этот метод, чтобы обрабатывать контекстные клики вне каких-либо элементов (но все еще в прямоугольнике TreeView). |
ContextClickedItem | Переопределяет этот метод для обработки контекстного клика по элементу с идентификатором TreeViewItem.id. |
DoesItemMatchSearch | Переопределяет эту функцию, чтобы расширить или изменить поведение поиска. |
DoubleClickedItem | Переопределяет этот метод для обработки событий двойного щелчка по элементу. |
ExpandedStateChanged | Переопределяет , чтобы получать уведомления, когда элементы развернуты или свернуты. Это общее уведомление об изменении расширенного состояния. |
FindItem | Находит TreeViewItem по идентификатору. |
FindRowOfItem | Возвращает строку данного элемента TreeViewItem. |
FindRows | Полезно для преобразования ID TreeViewItem в TreeViewItem с использованием текущих строк. |
GetAncestors | Этот метод, например. используется для отображения элементов, которые в данный момент находятся под свернутым элементом. |
GetCellRectForTreeFoldouts | Утилита для настройки нескольких столбцов. Этот метод обрезает входной rowRect по прямоугольнику столбца, определенному columnIndexForTreeFoldouts, чтобы получить прямоугольник ячейки, в котором появляются раскрывающиеся стрелки. |
GetContentIndent | Возвращает горизонтальное смещение содержимого элемента. Здесь должно начинаться содержимое (после раскрывающейся стрелки). |
GetCustomRowHeight | Переопределение для управления высотой отдельных строк. |
GetDescendantsThatHaveChildren | Возвращает всех потомков элемента с идентификатором id, у которых есть дочерние элементы. |
GetFirstAndLastVisibleRows | Возвращает первый и последний индексы строк, видимых в представлении прокрутки TreeView. |
GetFoldoutIndent | Возвращает смещение элемента по горизонтали. Здесь отображается раскрывающаяся стрелка. |
GetRenameRect | Переопределите этот метод, если в RowGUI используется индивидуальная обработка графического интерфейса. Этот метод определяет, где появляется наложение переименования. |
GetRowRect | Получить прямоугольник для строки. |
HandleDragAndDrop | Переопределите эту функцию, чтобы управлять поведением перетаскивания TreeView. |
KeyEvent | Переопределите этот метод для обработки событий, когда TreeView имеет фокус клавиатуры. |
RefreshCustomRowHeights | Обновляет кэш пользовательских прямоугольников строк на основе высоты, возвращаемой GetCustomRowHeight. |
RenameEnded | Вызывается, когда переименование завершается либо пользователем, завершающим процесс переименования, либо когда оверлей переименования теряет фокус или закрывается с помощью EndRename. |
RowGUI | Переопределите этот метод, чтобы добавить пользовательский контент графического интерфейса для строк в TreeView. |
SearchChanged | Переопределить метод, чтобы получать уведомления об изменениях строки поиска. |
SelectionChanged | Переопределить метод, чтобы получать уведомления об изменениях выбора. |
SelectionClick | Используйте этот метод в RowGUI для выполнения логики щелчка мыши. |
SetupDragAndDrop | Эта функция вызывается, когда CanStartDrag возвращает значение true. |
SingleClickedItem | Переопределите этот метод для обработки событий одиночного щелчка по элементу. |
SortItemIDsInRowOrder | Возвращает список, отсортированный в том порядке, в котором они отображаются в TreeView. |
Статические Методы
CreateChildListForCollapsedParent | Создает фиктивный список TreeViewItem. Полезно при переопределении BuildRows, чтобы предотвратить построение полного дерева элементов. |
IsChildListForACollapsedParent | Служебный метод для проверки того, идентичен ли дочерний список тому, который возвращается методом CreateChildListForCollapsedParent. |
SetupDepthsFromParentsAndChildren | Служебный метод, использующий глубину входного элемента TreeViewItem для установки правильной глубины для всех его потомков элементов TreeViewItem. |
SetupParentsAndChildrenFromDepths | Служебный метод для инициализации всех родительских и дочерних свойств строк с использованием установленных значений порядка и глубины. |
Делегаты
DoFoldoutCallback | Подпись обратного вызова, используемая для переопределения раскладки TreeView. См. foldoutOverride. |
GetNewSelectionFunction | Обратный вызов, который определяет, как TreeView обрабатывает изменения выбора в ответ на нажатия клавиш и щелчки мыши. |