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