1
0
mirror of synced 2025-01-18 00:56:49 +01:00

impr: Replace various fixed-size boxes with dynamic ones

This commit is contained in:
WerWolv 2023-11-07 00:46:44 +01:00
parent f49b5efac4
commit 924b4a9436
4 changed files with 22 additions and 9 deletions

View File

@ -270,6 +270,9 @@ namespace ImGui {
void TextOverlay(const char *text, ImVec2 pos);
bool BeginBox();
void EndBox();
template<typename T>
constexpr ImGuiDataType getImGuiDataType() {
if constexpr (std::same_as<T, u8>) return ImGuiDataType_U8;

View File

@ -821,4 +821,18 @@ namespace ImGui {
drawList->AddText(textPos, ImGui::GetColorU32(ImGuiCol_Text), text);
}
bool BeginBox() {
ImGui::PushStyleVar(ImGuiStyleVar_CellPadding, ImVec2(5, 5));
auto result = ImGui::BeginTable("##box", 1, ImGuiTableFlags_BordersOuter | ImGuiTableFlags_SizingStretchSame);
ImGui::TableNextRow();
ImGui::TableNextColumn();
return result;
}
void EndBox() {
ImGui::EndTable();
ImGui::PopStyleVar();
}
}

View File

@ -115,7 +115,7 @@ namespace hex::plugin::builtin {
this->m_mode = cs_mode(0);
// Draw sub-settings for each architecture
if (ImGui::BeginChild("modes", ImVec2(0, ImGui::GetTextLineHeightWithSpacing() * 6), true, ImGuiWindowFlags_AlwaysAutoResize)) {
if (ImGui::BeginBox()) {
// Draw endian radio buttons. This setting is available for all architectures
static int littleEndian = true;
@ -374,8 +374,9 @@ namespace hex::plugin::builtin {
this->m_mode = cs_mode(0);
break;
}
ImGui::EndBox();
}
ImGui::EndChild();
}
// Draw disassemble button

View File

@ -67,11 +67,7 @@ namespace hex::plugin::builtin {
firstSubCategory = false;
ImGui::PushStyleVar(ImGuiStyleVar_CellPadding, scaled({5, 5}));
if (ImGui::BeginTable("##subCategory", 1, ImGuiTableFlags_BordersOuter | ImGuiTableFlags_SizingStretchSame)) {
ImGui::TableNextRow();
ImGui::TableNextColumn();
if (ImGui::BeginBox()) {
for (auto &setting : subCategory.entries) {
ImGui::BeginDisabled(!setting.widget->isEnabled());
bool settingChanged = setting.widget->draw(LangEntry(setting.unlocalizedName));
@ -102,9 +98,8 @@ namespace hex::plugin::builtin {
}
}
ImGui::EndTable();
ImGui::EndBox();
}
ImGui::PopStyleVar();
}