.. _file_include_mola_kernel_GuiWidgetDescription.h: File GuiWidgetDescription.h =========================== |exhale_lsh| :ref:`Parent directory ` (``include/mola_kernel``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS Backend-agnostic description of a GUI sub-window and its widgets. .. contents:: Contents :local: :backlinks: none Definition (``include/mola_kernel/GuiWidgetDescription.h``) ----------------------------------------------------------- .. toctree:: :maxdepth: 1 program_listing_file_include_mola_kernel_GuiWidgetDescription.h.rst Detailed Description -------------------- Design goals - Pure data / std types - no GUI toolkit headers required by clients. - Compatible with both nanogui (retained mode) and Dear ImGui docking branch (immediate mode). - Thread-safe label updates via LiveString. - Widget values are bound to caller-owned variables (T*) so the module always holds ground truth; the GUI is a view of it. Nanogui mapping notes WindowDescription → nanogui::Window inside CDisplayWindowGUI Tab → nanogui::TabWidget + one tab per Tab entry Row → nanogui::Widget with BoxLayout(Horizontal) Label → nanogui::Label (caption refreshed via LiveString::poll) Separator → zero-height nanogui::Widget used as spacer CheckBox → nanogui::CheckBox Button → nanogui::Button (ENTYPO icon optional, ignored if 0) TextBox → nanogui::TextBox (editable) SliderFloat → nanogui::Slider + adjacent nanogui::Label showing value SliderInt → same, integer clamped ComboBox → nanogui::ComboBox Dear ImGui (docking branch) mapping notes WindowDescription → ImGui::Begin / End. position/size passed as ImGuiCond_FirstUseEver so the dock manager can freely override them. Tab → ImGui::BeginTabBar / ImGui::BeginTabItem Row → consecutive widgets separated by ImGui::SameLine() Label → ImGui::TextUnformatted (reads LiveString each frame) Separator → ImGui::Separator() CheckBox → ImGui::Checkbox (binds directly to bool*) Button → ImGui::Button; callback fired when returns true TextBox → ImGui::InputText (uses internal 256-byte buffer, flushed to std::string* on every edit) SliderFloat → ImGui::SliderFloat SliderInt → ImGui::SliderInt ComboBox → ImGui::Combo Jose Luis Blanco Claraco 2026 Includes -------- - ``array`` - ``atomic`` - ``cstdint`` - ``functional`` - ``memory`` - ``mutex`` - ``string`` - ``variant`` (:ref:`file_include_mola_kernel_variant_helper.h`) - ``vector`` Included By ----------- - :ref:`file_include_mola_kernel_interfaces_VizInterface.h` Namespaces ---------- - :ref:`namespace_mola` - :ref:`namespace_mola__gui` Classes ------- - :ref:`exhale_struct_structmola_1_1gui_1_1Button` - :ref:`exhale_struct_structmola_1_1gui_1_1CheckBox` - :ref:`exhale_struct_structmola_1_1gui_1_1ComboBox` - :ref:`exhale_struct_structmola_1_1gui_1_1Label` - :ref:`exhale_struct_structmola_1_1gui_1_1LiveString` - :ref:`exhale_struct_structmola_1_1gui_1_1Menu` - :ref:`exhale_struct_structmola_1_1gui_1_1MenuBar` - :ref:`exhale_struct_structmola_1_1gui_1_1MenuItem` - :ref:`exhale_struct_structmola_1_1gui_1_1Row` - :ref:`exhale_struct_structmola_1_1gui_1_1Separator` - :ref:`exhale_struct_structmola_1_1gui_1_1SliderFloat` - :ref:`exhale_struct_structmola_1_1gui_1_1SliderInt` - :ref:`exhale_struct_structmola_1_1gui_1_1Tab` - :ref:`exhale_struct_structmola_1_1gui_1_1TextBox` - :ref:`exhale_struct_structmola_1_1gui_1_1TextPanel` - :ref:`exhale_struct_structmola_1_1gui_1_1WindowDescription` Typedefs -------- - :ref:`exhale_typedef_GuiWidgetDescription_8h_1a69d190f41e19bb6a11124c9068b62195` - :ref:`exhale_typedef_GuiWidgetDescription_8h_1aabbea62cb0fe3ca04c0a39a6dd75cfdb`