MCPcopy Create free account
hub / github.com/SakuraEngine/SakuraEngine / DrawLeaf

Method DrawLeaf

modules/experimental/inspector/src/inspect_value.cpp:196–256  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

194}
195
196void inspect_system::DrawLeaf(const skr_value_ref_t &value, const skr::String &name)
197{
198 ImGui::TableNextRow();
199 ImGui::TableSetColumnIndex(0);
200 ImGui::AlignTextToFramePadding();
201 ImGuiTreeNodeFlags flags = ImGuiTreeNodeFlags_Leaf | ImGuiTreeNodeFlags_NoTreePushOnOpen | ImGuiTreeNodeFlags_Bullet;
202 ImGui::TreeNodeEx("Field", flags, "%s", name.c_str());
203 ImGui::TableSetColumnIndex(1);
204 ImGui::SetNextItemWidth(-FLT_MIN);
205 switch(value.type->type)
206 {
207 case SKR_TYPE_CATEGORY_I32:
208 {
209 ImGui::InputScalar("##value", ImGuiDataType_S32, value.ptr);
210 break;
211 }
212 case SKR_TYPE_CATEGORY_U32:
213 {
214 ImGui::InputScalar("##value", ImGuiDataType_U32, value.ptr);
215 break;
216 }
217 case SKR_TYPE_CATEGORY_I64:
218 {
219 ImGui::InputScalar("##value", ImGuiDataType_S64, value.ptr);
220 break;
221 }
222 case SKR_TYPE_CATEGORY_U64:
223 {
224 ImGui::InputScalar("##value", ImGuiDataType_U64, value.ptr);
225 break;
226 }
227 case SKR_TYPE_CATEGORY_F32:
228 {
229 ImGui::InputFloat("##value", (float*)value.ptr);
230 break;
231 }
232 case SKR_TYPE_CATEGORY_F64:
233 {
234 ImGui::InputDouble("##value", (double*)value.ptr);
235 break;
236 }
237 case SKR_TYPE_CATEGORY_BOOL:
238 {
239 ImGui::Checkbox("##value", (bool*)value.ptr);
240 break;
241 }
242 case SKR_TYPE_CATEGORY_STR:
243 {
244 skr::String* v = (skr::String*)value.ptr;
245 ImGui::InputText("##value", v);
246 break;
247 }
248 case SKR_TYPE_CATEGORY_HANDLE:
249 //TODO: draw handle
250 default:
251 {
252 ImGui::Text("Unsupported field type");
253 break;

Callers

nothing calls this directly

Calls 2

TextFunction · 0.85
c_strMethod · 0.45

Tested by

no test coverage detected