da6a8b5e59
Anade 9 primitivas reutilizables al registry C++ que replican el comportamiento de los componentes correspondientes de @fn_library / Mantine v9, todas estilizadas con tokens_cpp_core (colores Mantine dark + indigo): - button_cpp_core (component, pure) variantes primary/secondary/subtle/danger + sm/md/lg - icon_button_cpp_core (component, pure) cuadrado 28x28 con glyph centrado + tooltip - toolbar_cpp_core (component, pure) grupo horizontal de acciones con separadores - modal_dialog_cpp_core (component, pure) popup modal centrada + close con Escape - text_input_cpp_core (component, impure) InputText con label muted + placeholder - select_cpp_core (component, impure) dropdown con label + opcion '(none)' opcional - toast_cpp_core (component, impure) notificaciones efimeras + inbox con badge - tree_view_cpp_core (component, impure) jerarquia low-level con tree_node_clicked helper - process_runner_cpp_core (component, impure) tarea en std::thread + spinner inline Cada primitiva tiene su .md con frontmatter completo (params/output) y se indexa via fn index. Son la base del primitives_gallery y de cualquier app fn_ui futura.
22 lines
774 B
C++
22 lines
774 B
C++
#pragma once
|
|
|
|
// Select/dropdown con label arriba, lista de opciones y opcional "None".
|
|
// Equivalente simple de <Select> de Mantine / fn_library.
|
|
//
|
|
// Uso:
|
|
// static int idx = 0;
|
|
// const char* langs[] = {"go", "py", "ts", "sh", "cpp"};
|
|
// fn_ui::select("Language", &idx, langs, 5);
|
|
|
|
namespace fn_ui {
|
|
|
|
// Renderiza label muted arriba + combo abajo. `selected_idx` se muta cuando
|
|
// el usuario elige una opcion. Devuelve true si cambio en este frame.
|
|
// `options[i]` son los strings visibles; el indice seleccionado va de 0 a count-1.
|
|
// Si allow_none es true, aparece una entrada "(none)" con indice -1.
|
|
bool select(const char* label, int* selected_idx,
|
|
const char* const* options, int count,
|
|
bool allow_none = false);
|
|
|
|
} // namespace fn_ui
|