Группы — это, по сути, окна внутри окон, они содержат другие элементы, имеют полосы прокрутки, при этом внешнее окно рассматривает группу как один элемент, т.е. в отличие от обычного окна позиция и размеры группы не задается.
||padding-left: 2em||Аналогично, но заголовок задается явно.
**void nk_group_end(struct nk_context*);**
||padding-left: 2em||Завершить группу. В отличие от обычного окна, функция завершения вызывается внутри if:
```c
if(nk_group_begin(ctx, "Group 1", NK_WINDOW_BORDER) {
// добавление элементов в группу
...
nk_group_end(ctx);
}
```
### ДЕРЕВЬЯ
Дерево в nuklear используется для представления "аккордеона" -- вертикально сложенного списка элементов. Каждый элемент может быть раскрыт, чтобы показать содержание, связанное с этим элементом.
||padding-left: 2em||Где type=NK_TREE_NODE, initial_state=NK_MINIMIZED. Функция возвращает 1, если поддерево необходимо нарисовать.
**void nk_tree_pop(struct nk_context* ctx);**
||padding-left: 2em||Завершить поддерево. Аналогично группе вызывается внутри if:
```c
if(nk_tree_push(ctx, NK_TREE_NODE, "Configuration", NK_MINIMIZED) {
// добавление элементов в ветку дерева
...
nk_tree_pop(ctx);
}
```
### ВСПЛЫВАЮЩИЕ ОКНА
nuklear поддерживает несколько видов всплывающих окон.
* Окно с подсказкой
```c
struct nk_rect bounds = nk_widget_bounds(ctx);
nk_label(ctx, "Hover me for tooltip", NK_TEXT_LEFT);
if (nk_input_is_mouse_hovering_rect(&ctx->input, bounds))
nk_tooltip(ctx, "This is a tooltip");
```
* Контекстное окно, которое выводится при нажатии правой кнопкой мыши на некоторую область, и убирается при нажатии на любую точку вне окна. Для этого используются функции: