# mode_tree_build

- **Language:** C
- **Kind:** function
- **Source:** https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/mode-tree.c#L477
- **Page:** https://libtmux.org/en/tmux/3.2a/reference/c-function-mode_tree_build/

```c
void mode_tree_build(struct mode_tree_data *mtd)
```

## Parameters

- `mtd` (`struct mode_tree_data *`)

## Called by

- [`mode_tree_collapse_current`](/en/tmux/3.2a/reference/c-function-mode_tree_collapse_current/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/mode-tree.c#L300)
- [`mode_tree_expand`](/en/tmux/3.2a/reference/c-function-mode_tree_expand/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/mode-tree.c#L329)
- [`mode_tree_expand_current`](/en/tmux/3.2a/reference/c-function-mode_tree_expand_current/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/mode-tree.c#L291)
- [`mode_tree_filter_callback`](/en/tmux/3.2a/reference/c-function-mode-tree-c-mode_tree_filter_callback/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/mode-tree.c#L895)
- [`mode_tree_key`](/en/tmux/3.2a/reference/c-function-mode_tree_key/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/mode-tree.c#L1126)
- [`mode_tree_resize`](/en/tmux/3.2a/reference/c-function-mode_tree_resize/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/mode-tree.c#L546)
- [`mode_tree_search_set`](/en/tmux/3.2a/reference/c-function-mode-tree-c-mode_tree_search_set/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/mode-tree.c#L847)
- [`window_buffer_edit_close_cb`](/en/tmux/3.2a/reference/c-function-window-buffer-c-window_buffer_edit_close_cb/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/window-buffer.c#L470)
- [`window_buffer_init`](/en/tmux/3.2a/reference/c-function-window-buffer-c-window_buffer_init/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/window-buffer.c#L357)
- [`window_buffer_key`](/en/tmux/3.2a/reference/c-function-window-buffer-c-window_buffer_key/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/window-buffer.c#L520)
- [`window_buffer_update`](/en/tmux/3.2a/reference/c-function-window-buffer-c-window_buffer_update/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/window-buffer.c#L398)
- [`window_client_init`](/en/tmux/3.2a/reference/c-function-window-client-c-window_client_init/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/window-client.c#L317)
- [`window_client_key`](/en/tmux/3.2a/reference/c-function-window-client-c-window_client_key/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/window-client.c#L398)
- [`window_client_update`](/en/tmux/3.2a/reference/c-function-window-client-c-window_client_update/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/window-client.c#L358)
- [`window_customize_change_current_callback`](/en/tmux/3.2a/reference/c-function-window-customize-c-window_customize_change_current_callback/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/window-customize.c#L1380)
- [`window_customize_change_tagged_callback`](/en/tmux/3.2a/reference/c-function-window-customize-c-window_customize_change_tagged_callback/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/window-customize.c#L1400)
- [`window_customize_init`](/en/tmux/3.2a/reference/c-function-window-customize-c-window_customize_init/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/window-customize.c#L897)
- [`window_customize_key`](/en/tmux/3.2a/reference/c-function-window-customize-c-window_customize_key/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/window-customize.c#L1435)
- [`window_customize_set_command_callback`](/en/tmux/3.2a/reference/c-function-window-customize-c-window_customize_set_command_callback/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/window-customize.c#L1200)
- [`window_customize_set_note_callback`](/en/tmux/3.2a/reference/c-function-window-customize-c-window_customize_set_note_callback/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/window-customize.c#L1229)
- [`window_customize_set_option_callback`](/en/tmux/3.2a/reference/c-function-window-customize-c-window_customize_set_option_callback/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/window-customize.c#L994)
- [`window_tree_command_done`](/en/tmux/3.2a/reference/c-function-window-tree-c-window_tree_command_done/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/window-tree.c#L1057)
- [`window_tree_init`](/en/tmux/3.2a/reference/c-function-window-tree-c-window_tree_init/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/window-tree.c#L940)
- [`window_tree_key`](/en/tmux/3.2a/reference/c-function-window-tree-c-window_tree_key/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/window-tree.c#L1267)
- [`window_tree_update`](/en/tmux/3.2a/reference/c-function-window-tree-c-window_tree_update/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/window-tree.c#L993)

## Calls

- [`mode_tree_build_lines`](/en/tmux/3.2a/reference/c-function-mode-tree-c-mode_tree_build_lines/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/mode-tree.c#L499)
- [`mode_tree_check_selected`](/en/tmux/3.2a/reference/c-function-mode-tree-c-mode_tree_check_selected/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/mode-tree.c#L510)
- [`mode_tree_clear_lines`](/en/tmux/3.2a/reference/c-function-mode-tree-c-mode_tree_clear_lines/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/mode-tree.c#L498)
- [`mode_tree_free_items`](/en/tmux/3.2a/reference/c-function-mode-tree-c-mode_tree_free_items/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/mode-tree.c#L495)
- [`mode_tree_set_current`](/en/tmux/3.2a/reference/c-function-mode_tree_set_current/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/mode-tree.c#L503)
- [`mode_tree_set_height`](/en/tmux/3.2a/reference/c-function-mode-tree-c-mode_tree_set_height/) (function) [Call site](https://github.com/tmux/tmux/blob/3b929f332aafa7f1080eacc31feb11ffbb1d1841/mode-tree.c#L507)

## Referenced declarations

- [`mode_tree_data.buildcb`](/en/tmux/3.2a/reference/c-struct-mode_tree_data-buildcb/) (attribute)
- [`mode_tree_data.children`](/en/tmux/3.2a/reference/c-struct-mode_tree_data-children/) (attribute)
- [`mode_tree_data.current`](/en/tmux/3.2a/reference/c-struct-mode_tree_data-current/) (attribute)
- [`mode_tree_data.filter`](/en/tmux/3.2a/reference/c-struct-mode_tree_data-filter/) (attribute)
- [`mode_tree_data.height`](/en/tmux/3.2a/reference/c-struct-mode_tree_data-height/) (attribute)
- [`mode_tree_line.item`](/en/tmux/3.2a/reference/c-struct-mode_tree_line-item/) (attribute)
- [`mode_tree_data.line_list`](/en/tmux/3.2a/reference/c-struct-mode_tree_data-line_list/) (attribute)
- [`mode_tree_data`](/en/tmux/3.2a/reference/c-struct-mode_tree_data/) (struct)
- [`mode_tree_data.modedata`](/en/tmux/3.2a/reference/c-struct-mode_tree_data-modedata/) (attribute)
- [`mode_tree_data.no_matches`](/en/tmux/3.2a/reference/c-struct-mode_tree_data-no_matches/) (attribute)
- [`mode_tree_data.preview`](/en/tmux/3.2a/reference/c-struct-mode_tree_data-preview/) (attribute)
- [`mode_tree_data.saved`](/en/tmux/3.2a/reference/c-struct-mode_tree_data-saved/) (attribute)
- [`mode_tree_data.screen`](/en/tmux/3.2a/reference/c-struct-mode_tree_data-screen/) (attribute)
- [`screen_size_x`](/en/tmux/3.2a/reference/c-define-tmux-h-screen_size_x/) (constant)
- [`screen_size_y`](/en/tmux/3.2a/reference/c-define-tmux-h-screen_size_y/) (constant)
- [`mode_tree_data.sort_crit`](/en/tmux/3.2a/reference/c-struct-mode_tree_data-sort_crit/) (attribute)
- [`mode_tree_item.tag`](/en/tmux/3.2a/reference/c-struct-mode_tree_item-tag/) (attribute)
- [`mode_tree_data.width`](/en/tmux/3.2a/reference/c-struct-mode_tree_data-width/) (attribute)
