|
|
@ -47,6 +47,7 @@ |
|
|
|
static void ShowExampleAppConsole(bool* opened); |
|
|
|
static void ShowExampleAppLog(bool* opened); |
|
|
|
static void ShowExampleAppLayout(bool* opened); |
|
|
|
static void ShowExampleAppPropertyEditor(bool* opened); |
|
|
|
static void ShowExampleAppLongText(bool* opened); |
|
|
|
static void ShowExampleAppAutoResize(bool* opened); |
|
|
|
static void ShowExampleAppFixedOverlay(bool* opened); |
|
|
@ -93,6 +94,7 @@ void ImGui::ShowTestWindow(bool* opened) |
|
|
|
static bool show_app_console = false; |
|
|
|
static bool show_app_log = false; |
|
|
|
static bool show_app_layout = false; |
|
|
|
static bool show_app_property_editor = false; |
|
|
|
static bool show_app_long_text = false; |
|
|
|
static bool show_app_auto_resize = false; |
|
|
|
static bool show_app_fixed_overlay = false; |
|
|
@ -104,6 +106,7 @@ void ImGui::ShowTestWindow(bool* opened) |
|
|
|
if (show_app_console) ShowExampleAppConsole(&show_app_console); |
|
|
|
if (show_app_log) ShowExampleAppLog(&show_app_log); |
|
|
|
if (show_app_layout) ShowExampleAppLayout(&show_app_layout); |
|
|
|
if (show_app_property_editor) ShowExampleAppPropertyEditor(&show_app_property_editor); |
|
|
|
if (show_app_long_text) ShowExampleAppLongText(&show_app_long_text); |
|
|
|
if (show_app_auto_resize) ShowExampleAppAutoResize(&show_app_auto_resize); |
|
|
|
if (show_app_fixed_overlay) ShowExampleAppFixedOverlay(&show_app_fixed_overlay); |
|
|
@ -163,6 +166,7 @@ void ImGui::ShowTestWindow(bool* opened) |
|
|
|
ImGui::MenuItem("Console", NULL, &show_app_console); |
|
|
|
ImGui::MenuItem("Log", NULL, &show_app_log); |
|
|
|
ImGui::MenuItem("Simple layout", NULL, &show_app_layout); |
|
|
|
ImGui::MenuItem("Property editor", NULL, &show_app_property_editor); |
|
|
|
ImGui::MenuItem("Long text display", NULL, &show_app_long_text); |
|
|
|
ImGui::MenuItem("Auto-resizing window", NULL, &show_app_auto_resize); |
|
|
|
ImGui::MenuItem("Simple overlay", NULL, &show_app_fixed_overlay); |
|
|
@ -1319,56 +1323,6 @@ void ImGui::ShowTestWindow(bool* opened) |
|
|
|
ImGui::TreePop(); |
|
|
|
} |
|
|
|
|
|
|
|
if (ImGui::TreeNode("Property tree")) |
|
|
|
{ |
|
|
|
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(2,2)); |
|
|
|
ImGui::Columns(2); |
|
|
|
ImGui::Separator(); |
|
|
|
|
|
|
|
ImGui::Text("Item1"); ImGui::NextColumn(); |
|
|
|
ImGui::Text("value1"); ImGui::NextColumn(); |
|
|
|
|
|
|
|
// Iterate dummy objects with dummy members (all the same data)
|
|
|
|
static float members[6] = { 0.0f,1.0f,3.1416f,100.0f,999.0f }; |
|
|
|
for (int obj_i = 0; obj_i < 3; obj_i++) |
|
|
|
{ |
|
|
|
ImGui::PushID(obj_i); |
|
|
|
bool opened = ImGui::TreeNode("Object", "Object%d", obj_i); |
|
|
|
ImGui::NextColumn(); |
|
|
|
ImGui::Text("my tailor is rich"); |
|
|
|
ImGui::NextColumn(); |
|
|
|
if (opened) |
|
|
|
{ |
|
|
|
for (int i = 0; i < 6; i++) |
|
|
|
{ |
|
|
|
ImGui::PushID(i); |
|
|
|
ImGui::AlignFirstTextHeightToWidgets(); |
|
|
|
// Here we use a Selectable (instead of Text) to highlight on hover
|
|
|
|
//ImGui::Text("Field%d", i);
|
|
|
|
char label[32]; |
|
|
|
sprintf(label, "Field%d", i); |
|
|
|
ImGui::Selectable(label); |
|
|
|
ImGui::NextColumn(); |
|
|
|
ImGui::PushItemWidth(-1); |
|
|
|
if (i >= 3) |
|
|
|
ImGui::InputFloat("##value", &members[i], 1.0f); |
|
|
|
else |
|
|
|
ImGui::DragFloat("##value", &members[i], 0.01f); |
|
|
|
ImGui::PopItemWidth(); |
|
|
|
ImGui::NextColumn(); |
|
|
|
ImGui::PopID(); |
|
|
|
} |
|
|
|
ImGui::TreePop(); |
|
|
|
} |
|
|
|
ImGui::PopID(); |
|
|
|
} |
|
|
|
|
|
|
|
ImGui::Columns(1); |
|
|
|
ImGui::Separator(); |
|
|
|
ImGui::PopStyleVar(); |
|
|
|
ImGui::TreePop(); |
|
|
|
} |
|
|
|
|
|
|
|
bool opened = ImGui::TreeNode("Tree within single cell"); |
|
|
|
ImGui::SameLine(); ShowHelpMarker("NB: Tree node must be poped before ending the cell.\nThere's no storage of state per-cell."); |
|
|
|
if (opened) |
|
|
@ -2217,6 +2171,76 @@ static void ShowExampleAppLayout(bool* opened) |
|
|
|
ImGui::End(); |
|
|
|
} |
|
|
|
|
|
|
|
static void ShowExampleAppPropertyEditor(bool* opened) |
|
|
|
{ |
|
|
|
ImGui::SetNextWindowSize(ImVec2(430,450), ImGuiSetCond_FirstUseEver); |
|
|
|
if (!ImGui::Begin("Example: Property editor", opened)) |
|
|
|
{ |
|
|
|
ImGui::End(); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(2,2)); |
|
|
|
ImGui::Columns(2); |
|
|
|
ImGui::Separator(); |
|
|
|
|
|
|
|
ImGui::Text("Item1"); ImGui::NextColumn(); |
|
|
|
ImGui::Text("value1"); ImGui::NextColumn(); |
|
|
|
|
|
|
|
struct funcs |
|
|
|
{ |
|
|
|
static void ShowDummyObject(const char* prefix, ImU32 uid) |
|
|
|
{ |
|
|
|
ImGui::PushID(uid); // Use object uid as identifier. Most commonly you could also use the object pointer as a base ID.
|
|
|
|
bool opened = ImGui::TreeNode("Object", "%s_%u", prefix, uid); |
|
|
|
ImGui::NextColumn(); |
|
|
|
ImGui::Text("my sailor is rich"); |
|
|
|
ImGui::NextColumn(); |
|
|
|
if (opened) |
|
|
|
{ |
|
|
|
static float dummy_members[8] = { 0.0f,0.0f,1.0f,3.1416f,100.0f,999.0f }; |
|
|
|
for (int i = 0; i < 8; i++) |
|
|
|
{ |
|
|
|
ImGui::PushID(i); // Use field index as identifier.
|
|
|
|
if (i < 2) |
|
|
|
{ |
|
|
|
ShowDummyObject("Child", ImGui::GetID("foo")); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
ImGui::AlignFirstTextHeightToWidgets(); |
|
|
|
// Here we use a Selectable (instead of Text) to highlight on hover
|
|
|
|
//ImGui::Text("Field_%d", i);
|
|
|
|
char label[32]; |
|
|
|
sprintf(label, "Field_%d", i); |
|
|
|
ImGui::Selectable(label); |
|
|
|
ImGui::NextColumn(); |
|
|
|
ImGui::PushItemWidth(-1); |
|
|
|
if (i >= 5) |
|
|
|
ImGui::InputFloat("##value", &dummy_members[i], 1.0f); |
|
|
|
else |
|
|
|
ImGui::DragFloat("##value", &dummy_members[i], 0.01f); |
|
|
|
ImGui::PopItemWidth(); |
|
|
|
ImGui::NextColumn(); |
|
|
|
} |
|
|
|
ImGui::PopID(); |
|
|
|
} |
|
|
|
ImGui::TreePop(); |
|
|
|
} |
|
|
|
ImGui::PopID(); |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
// Iterate dummy objects with dummy members (all the same data)
|
|
|
|
for (int obj_i = 0; obj_i < 3; obj_i++) |
|
|
|
funcs::ShowDummyObject("Object", obj_i); |
|
|
|
|
|
|
|
ImGui::Columns(1); |
|
|
|
ImGui::Separator(); |
|
|
|
ImGui::PopStyleVar(); |
|
|
|
ImGui::End(); |
|
|
|
} |
|
|
|
|
|
|
|
static void ShowExampleAppLongText(bool* opened) |
|
|
|
{ |
|
|
|
ImGui::SetNextWindowSize(ImVec2(520,600), ImGuiSetCond_FirstUseEver); |
|
|
|