yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::editor::layout_designer::WidgetCodeGenerator Class Reference

Generates C++ ImGui code from widget definitions. More...

#include <widget_code_generator.h>

Static Public Member Functions

static std::string GeneratePanelDrawMethod (const PanelDesign &design)
 Generate complete panel Draw() method code.
 
static std::string GenerateWidgetCode (const WidgetDefinition &widget, int indent_level=0)
 Generate code for a single widget.
 
static std::string GenerateMemberVariables (const PanelDesign &design)
 Generate member variable declarations for panel.
 
static std::string GenerateInitializationCode (const PanelDesign &design)
 Generate initialization code for panel constructor.
 

Static Private Member Functions

static std::string GetIndent (int level)
 
static std::string EscapeString (const std::string &str)
 
static std::string GenerateButtonCode (const WidgetDefinition &widget, int indent)
 
static std::string GenerateTextCode (const WidgetDefinition &widget, int indent)
 
static std::string GenerateInputCode (const WidgetDefinition &widget, int indent)
 
static std::string GenerateTableCode (const WidgetDefinition &widget, int indent)
 
static std::string GenerateCanvasCode (const WidgetDefinition &widget, int indent)
 
static std::string GenerateContainerCode (const WidgetDefinition &widget, int indent)
 
static std::string GetVariableName (const WidgetDefinition &widget)
 

Detailed Description

Generates C++ ImGui code from widget definitions.

Definition at line 17 of file widget_code_generator.h.

Member Function Documentation

◆ GeneratePanelDrawMethod()

std::string yaze::editor::layout_designer::WidgetCodeGenerator::GeneratePanelDrawMethod ( const PanelDesign & design)
static

Generate complete panel Draw() method code.

Parameters
designThe panel design
Returns
C++ code string

Definition at line 10 of file widget_code_generator.cc.

References GenerateWidgetCode(), yaze::editor::layout_designer::PanelDesign::panel_id, yaze::editor::layout_designer::PanelDesign::panel_name, and yaze::editor::layout_designer::PanelDesign::widgets.

Here is the call graph for this function:

◆ GenerateWidgetCode()

std::string yaze::editor::layout_designer::WidgetCodeGenerator::GenerateWidgetCode ( const WidgetDefinition & widget,
int indent_level = 0 )
static

Generate code for a single widget.

Parameters
widgetThe widget definition
indent_levelIndentation level for formatting
Returns
C++ code string

Definition at line 29 of file widget_code_generator.cc.

References yaze::editor::layout_designer::BeginChild, yaze::editor::layout_designer::BeginGroup, yaze::editor::layout_designer::BeginTable, yaze::editor::layout_designer::BulletText, yaze::editor::layout_designer::Button, yaze::editor::layout_designer::Canvas, yaze::editor::layout_designer::Checkbox, yaze::editor::layout_designer::CollapsingHeader, yaze::editor::layout_designer::EndTable, GenerateButtonCode(), GenerateCanvasCode(), GenerateContainerCode(), GenerateInputCode(), GenerateTableCode(), GenerateTextCode(), GetIndent(), yaze::editor::layout_designer::GetWidgetTypeName(), yaze::editor::layout_designer::WidgetDefinition::id, yaze::editor::layout_designer::InputFloat, yaze::editor::layout_designer::InputInt, yaze::editor::layout_designer::InputText, yaze::editor::layout_designer::NewLine, yaze::editor::layout_designer::RadioButton, yaze::editor::layout_designer::WidgetDefinition::same_line, yaze::editor::layout_designer::SameLine, yaze::editor::layout_designer::Separator, yaze::editor::layout_designer::SliderFloat, yaze::editor::layout_designer::SliderInt, yaze::editor::layout_designer::SmallButton, yaze::editor::layout_designer::Spacing, yaze::editor::layout_designer::TabBar, yaze::editor::layout_designer::TableNextColumn, yaze::editor::layout_designer::TableNextRow, yaze::editor::layout_designer::Text, yaze::editor::layout_designer::TextColored, yaze::editor::layout_designer::TextWrapped, yaze::editor::layout_designer::TreeNode, and yaze::editor::layout_designer::WidgetDefinition::type.

Referenced by GeneratePanelDrawMethod(), and GenerateTableCode().

◆ GenerateMemberVariables()

◆ GenerateInitializationCode()

std::string yaze::editor::layout_designer::WidgetCodeGenerator::GenerateInitializationCode ( const PanelDesign & design)
static

Generate initialization code for panel constructor.

Parameters
designThe panel design
Returns
C++ initialization code

Definition at line 153 of file widget_code_generator.cc.

References yaze::editor::layout_designer::WidgetDefinition::GetProperty(), GetVariableName(), yaze::editor::layout_designer::InputText, and yaze::editor::layout_designer::PanelDesign::widgets.

Here is the call graph for this function:

◆ GetIndent()

std::string yaze::editor::layout_designer::WidgetCodeGenerator::GetIndent ( int level)
staticprivate

◆ EscapeString()

std::string yaze::editor::layout_designer::WidgetCodeGenerator::EscapeString ( const std::string & str)
staticprivate

◆ GenerateButtonCode()

std::string yaze::editor::layout_designer::WidgetCodeGenerator::GenerateButtonCode ( const WidgetDefinition & widget,
int indent )
staticprivate

◆ GenerateTextCode()

std::string yaze::editor::layout_designer::WidgetCodeGenerator::GenerateTextCode ( const WidgetDefinition & widget,
int indent )
staticprivate

◆ GenerateInputCode()

std::string yaze::editor::layout_designer::WidgetCodeGenerator::GenerateInputCode ( const WidgetDefinition & widget,
int indent )
staticprivate

◆ GenerateTableCode()

std::string yaze::editor::layout_designer::WidgetCodeGenerator::GenerateTableCode ( const WidgetDefinition & widget,
int indent )
staticprivate

◆ GenerateCanvasCode()

std::string yaze::editor::layout_designer::WidgetCodeGenerator::GenerateCanvasCode ( const WidgetDefinition & widget,
int indent )
staticprivate

Definition at line 343 of file widget_code_generator.cc.

References GetIndent().

Referenced by GenerateWidgetCode().

Here is the call graph for this function:

◆ GenerateContainerCode()

std::string yaze::editor::layout_designer::WidgetCodeGenerator::GenerateContainerCode ( const WidgetDefinition & widget,
int indent )
staticprivate
Todo
Implement container code generation

Definition at line 363 of file widget_code_generator.cc.

References GetIndent(), yaze::editor::layout_designer::GetWidgetTypeName(), and yaze::editor::layout_designer::WidgetDefinition::type.

Referenced by GenerateWidgetCode().

Here is the call graph for this function:

◆ GetVariableName()

std::string yaze::editor::layout_designer::WidgetCodeGenerator::GetVariableName ( const WidgetDefinition & widget)
staticprivate

The documentation for this class was generated from the following files: