88 ImGui::SetNextItemWidth(-FLT_MIN);
89 ImGui::SetNextItemShortcut(ImGuiMod_Ctrl | ImGuiKey_F,
90 ImGuiInputFlags_Tooltip);
91 ImGui::PushItemFlag(ImGuiItemFlags_NoNavDefaultFocus,
true);
92 if (ImGui::InputTextWithHint(
"##Filter",
"incl,-excl",
Filter.InputBuf,
93 IM_ARRAYSIZE(
Filter.InputBuf),
94 ImGuiInputTextFlags_EscapeClearsAll))
98 ImGuiTableFlags table_flags = ImGuiTableFlags_Resizable |
99 ImGuiTableFlags_ScrollY |
100 ImGuiTableFlags_RowBg;
101 if (ImGui::BeginTable(
"##split", 2, table_flags)) {
102 ImGui::TableSetupColumn(
"Object", ImGuiTableColumnFlags_WidthStretch,
104 ImGui::TableSetupColumn(
"Contents", ImGuiTableColumnFlags_WidthStretch,
118 ImGui::PushID((
int)node->
UID);
119 ImGui::TableNextRow();
120 ImGui::TableSetColumnIndex(0);
121 ImGui::AlignTextToFramePadding();
122 ImGuiTreeNodeFlags tree_flags = ImGuiTreeNodeFlags_None;
124 ImGuiTreeNodeFlags_SpanAllColumns |
125 ImGuiTreeNodeFlags_AllowOverlap;
127 ImGuiTreeNodeFlags_OpenOnArrow |
128 ImGuiTreeNodeFlags_OpenOnDoubleClick;
132 ImGuiTreeNodeFlags_NavLeftJumpsBackHere;
134 ImGui::TreeNodeEx(
"##Object", tree_flags,
"%s", node->
Name);
135 ImGui::TableSetColumnIndex(1);
136 ImGui::TextDisabled(
"UID: 0x%08X", node->
UID);
141 if (node_open && node->
HasData) {
151 ImGui::TableNextRow();
152 ImGui::TableSetColumnIndex(0);
153 ImGui::AlignTextToFramePadding();
154 ImGui::PushItemFlag(ImGuiItemFlags_NoTabStop | ImGuiItemFlags_NoNav,
156 ImGui::Selectable(field_desc.Name,
false,
157 ImGuiSelectableFlags_SpanAllColumns |
158 ImGuiSelectableFlags_AllowOverlap);
159 ImGui::PopItemFlag();
160 ImGui::TableSetColumnIndex(1);
161 ImGui::PushID(field_desc.Name);
162 void* field_ptr = (
void*)(((
unsigned char*)node) + field_desc.Offset);
163 switch (field_desc.DataType) {
164 case ImGuiDataType_Bool: {
165 IM_ASSERT(field_desc.DataCount == 1);
166 ImGui::Checkbox(
"##Editor", (
bool*)field_ptr);
169 case ImGuiDataType_S32: {
170 int v_min = INT_MIN, v_max = INT_MAX;
171 ImGui::SetNextItemWidth(-FLT_MIN);
172 ImGui::DragScalarN(
"##Editor", field_desc.DataType, field_ptr,
173 field_desc.DataCount, 1.0f, &v_min, &v_max);
176 case ImGuiDataType_Float: {
177 float v_min = 0.0f, v_max = 1.0f;
178 ImGui::SetNextItemWidth(-FLT_MIN);
179 ImGui::SliderScalarN(
"##Editor", field_desc.DataType, field_ptr,
180 field_desc.DataCount, &v_min, &v_max);
187 if (node_open) ImGui::TreePop();