--- name: toolbar kind: component lang: cpp domain: core version: "1.0.0" purity: pure signature: "void fn_ui::toolbar_begin(); void fn_ui::toolbar_separator(); void fn_ui::toolbar_end()" description: "Grupo horizontal de acciones (buttons/icon_buttons) con spacing coherente y separadores verticales. Patron begin/separator/end." tags: [imgui, ui, toolbar, layout, tokens] uses_functions: ["tokens_cpp_core"] uses_types: [] returns: [] returns_optional: false error_type: "" imports: [imgui] tested: true tests: - "compiles and links against Catch2 (placeholder, visual cubierto en 0048)" test_file_path: "cpp/tests/test_toolbar.cpp" file_path: "cpp/functions/core/toolbar.cpp" framework: imgui params: [] output: "Inicializa/cierra un grupo horizontal con spacing sm; toolbar_separator dibuja una linea vertical sutil entre grupos" --- # toolbar Contenedor horizontal para agrupar acciones con spacing consistente. El caller es responsable de llamar a `ImGui::SameLine()` entre widgets consecutivos — `toolbar_separator()` ya incluye `SameLine` implicito. ## Patron ```cpp #include "core/toolbar.h" #include "core/button.h" #include "core/icon_button.h" using namespace fn_ui; toolbar_begin(); if (button("New", ButtonVariant::Primary)) { /* ... */ } ImGui::SameLine(); if (button("Open")) { /* ... */ } toolbar_separator(); if (icon_button("##reload", "\xe2\x86\xbb", "Reload")) { /* ... */ } toolbar_end(); ``` ## Notas - Para alinear la toolbar a la derecha del page_header usar `ImGui::SameLine(ImGui::GetWindowWidth() - estimated_width)` antes del begin, o usar un Table de 2 columnas con la derecha stretch. - El separador usa `colors::border` de tokens y ocupa 70% de `GetFrameHeight`.