Tables: Fixed demo layout when clipped. Fixed warnings.

This commit is contained in:
ocornut 2020-03-09 11:09:54 +01:00
parent f130db51ae
commit 0190b619cf
2 changed files with 20 additions and 19 deletions

View File

@ -4209,6 +4209,8 @@ static void ShowDemoWindowTables()
const ImDrawList* parent_draw_list = ImGui::GetWindowDrawList(); const ImDrawList* parent_draw_list = ImGui::GetWindowDrawList();
const int parent_draw_list_draw_cmd_count = parent_draw_list->CmdBuffer.Size; const int parent_draw_list_draw_cmd_count = parent_draw_list->CmdBuffer.Size;
ImVec2 table_scroll_cur, table_scroll_max; // For debug display
const ImDrawList* table_draw_list = NULL; // "
const float inner_width_to_use = (flags & ImGuiTableFlags_ScrollX) ? inner_width_with_scroll : inner_width_without_scroll; const float inner_width_to_use = (flags & ImGuiTableFlags_ScrollX) ? inner_width_with_scroll : inner_width_without_scroll;
if (ImGui::BeginTable("##table", 5, flags, outer_size_enabled ? outer_size_value : ImVec2(0, 0), inner_width_to_use)) if (ImGui::BeginTable("##table", 5, flags, outer_size_enabled ? outer_size_value : ImVec2(0, 0), inner_width_to_use))
@ -4322,23 +4324,22 @@ static void ShowDemoWindowTables()
} }
ImGui::PopButtonRepeat(); ImGui::PopButtonRepeat();
const ImVec2 table_scroll_cur = ImVec2(ImGui::GetScrollX(), ImGui::GetScrollY()); table_scroll_cur = ImVec2(ImGui::GetScrollX(), ImGui::GetScrollY());
const ImVec2 table_scroll_max = ImVec2(ImGui::GetScrollMaxX(), ImGui::GetScrollMaxY()); table_scroll_max = ImVec2(ImGui::GetScrollMaxX(), ImGui::GetScrollMaxY());
const ImDrawList* table_draw_list = ImGui::GetWindowDrawList(); table_draw_list = ImGui::GetWindowDrawList();
ImGui::EndTable(); ImGui::EndTable();
}
static bool show_debug_details = false; static bool show_debug_details = false;
ImGui::Checkbox("Debug details", &show_debug_details); ImGui::Checkbox("Debug details", &show_debug_details);
if (show_debug_details) if (show_debug_details && table_draw_list)
{ {
ImGui::SameLine(0.0f, 0.0f); ImGui::SameLine(0.0f, 0.0f);
const int table_draw_list_draw_cmd_count = table_draw_list->CmdBuffer.Size; const int table_draw_list_draw_cmd_count = table_draw_list->CmdBuffer.Size;
if (table_draw_list == parent_draw_list) if (table_draw_list == parent_draw_list)
ImGui::Text(": DrawCmd: +%d (in same window)", table_draw_list_draw_cmd_count - parent_draw_list_draw_cmd_count); ImGui::Text(": DrawCmd: +%d (in same window)", table_draw_list_draw_cmd_count - parent_draw_list_draw_cmd_count);
else else
ImGui::Text(": DrawCmd: +%d (in child window), Scroll: (%.f/%.f) (%.f/%.f)", ImGui::Text(": DrawCmd: +%d (in child window), Scroll: (%.f/%.f) (%.f/%.f)",
table_draw_list_draw_cmd_count - 1, table_scroll_cur.x, table_scroll_max.x, table_scroll_cur.y, table_scroll_max.y); table_draw_list_draw_cmd_count - 1, table_scroll_cur.x, table_scroll_max.x, table_scroll_cur.y, table_scroll_max.y);
}
} }
ImGui::TreePop(); ImGui::TreePop();
} }
@ -5076,9 +5077,9 @@ void ImGui::ShowStyleEditor(ImGuiStyle* ref)
ImGui::Text("Main"); ImGui::Text("Main");
ImGui::SliderFloat2("WindowPadding", (float*)&style.WindowPadding, 0.0f, 20.0f, "%.0f"); ImGui::SliderFloat2("WindowPadding", (float*)&style.WindowPadding, 0.0f, 20.0f, "%.0f");
ImGui::SliderFloat2("FramePadding", (float*)&style.FramePadding, 0.0f, 20.0f, "%.0f"); ImGui::SliderFloat2("FramePadding", (float*)&style.FramePadding, 0.0f, 20.0f, "%.0f");
ImGui::SliderFloat2("CellPadding", (float*)&style.CellPadding, 0.0f, 20.0f, "%.0f");
ImGui::SliderFloat2("ItemSpacing", (float*)&style.ItemSpacing, 0.0f, 20.0f, "%.0f"); ImGui::SliderFloat2("ItemSpacing", (float*)&style.ItemSpacing, 0.0f, 20.0f, "%.0f");
ImGui::SliderFloat2("ItemInnerSpacing", (float*)&style.ItemInnerSpacing, 0.0f, 20.0f, "%.0f"); ImGui::SliderFloat2("ItemInnerSpacing", (float*)&style.ItemInnerSpacing, 0.0f, 20.0f, "%.0f");
ImGui::SliderFloat2("CellPadding", (float*)&style.CellPadding, 0.0f, 20.0f, "%.0f");
ImGui::SliderFloat2("TouchExtraPadding", (float*)&style.TouchExtraPadding, 0.0f, 10.0f, "%.0f"); ImGui::SliderFloat2("TouchExtraPadding", (float*)&style.TouchExtraPadding, 0.0f, 10.0f, "%.0f");
ImGui::SliderFloat("IndentSpacing", &style.IndentSpacing, 0.0f, 30.0f, "%.0f"); ImGui::SliderFloat("IndentSpacing", &style.IndentSpacing, 0.0f, 30.0f, "%.0f");
ImGui::SliderFloat("ScrollbarSize", &style.ScrollbarSize, 1.0f, 20.0f, "%.0f"); ImGui::SliderFloat("ScrollbarSize", &style.ScrollbarSize, 1.0f, 20.0f, "%.0f");

View File

@ -1342,7 +1342,7 @@ void ImGui::TableDrawMergeChannels(ImGuiTable* table)
continue; continue;
ImDrawChannel* channel = &splitter->_Channels[n]; ImDrawChannel* channel = &splitter->_Channels[n];
IM_ASSERT(channel->_CmdBuffer.Size == 1 && merge_clip_rect.Contains(ImRect(channel->_CmdBuffer[0].ClipRect))); IM_ASSERT(channel->_CmdBuffer.Size == 1 && merge_clip_rect.Contains(ImRect(channel->_CmdBuffer[0].ClipRect)));
channel->_CmdBuffer[0].ClipRect = *(ImVec4*)&merge_clip_rect; channel->_CmdBuffer[0].ClipRect = merge_clip_rect.ToVec4();
memcpy(dst_tmp++, channel, sizeof(ImDrawChannel)); memcpy(dst_tmp++, channel, sizeof(ImDrawChannel));
merge_channels_mask &= ~n_mask; merge_channels_mask &= ~n_mask;
} }
@ -2478,7 +2478,7 @@ void ImGui::DebugNodeTable(ImGuiTable* table)
for (int n = 0; n < settings->ColumnsCount; n++) for (int n = 0; n < settings->ColumnsCount; n++)
{ {
ImGuiTableColumnSettings* column_settings = &settings->GetColumnSettings()[n]; ImGuiTableColumnSettings* column_settings = &settings->GetColumnSettings()[n];
ImGuiSortDirection sort_dir = (column_settings->SortOrder != -1) ? column_settings->SortDirection : ImGuiSortDirection_None; ImGuiSortDirection sort_dir = (column_settings->SortOrder != -1) ? (ImGuiSortDirection)column_settings->SortDirection : ImGuiSortDirection_None;
BulletText("Column %d Order %d SortOrder %d %s Visible %d UserID 0x%08X WidthOrWeight %.3f", BulletText("Column %d Order %d SortOrder %d %s Visible %d UserID 0x%08X WidthOrWeight %.3f",
n, column_settings->DisplayOrder, column_settings->SortOrder, n, column_settings->DisplayOrder, column_settings->SortOrder,
(sort_dir == ImGuiSortDirection_Ascending) ? "Asc" : (sort_dir == ImGuiSortDirection_Descending) ? "Des" : "---", (sort_dir == ImGuiSortDirection_Ascending) ? "Asc" : (sort_dir == ImGuiSortDirection_Descending) ? "Des" : "---",