mirror of
https://github.com/ocornut/imgui.git
synced 2025-02-02 12:37:20 +01:00
This commit is contained in:
parent
6fb7d44255
commit
290e402a02
@ -70,6 +70,10 @@ Other changes:
|
|||||||
coordinates.
|
coordinates.
|
||||||
- Tables, MultiSelect: Fixed an issue where column width may be mismeasured
|
- Tables, MultiSelect: Fixed an issue where column width may be mismeasured
|
||||||
when calling BeginMultiSelect() while inside a table. (#8250)
|
when calling BeginMultiSelect() while inside a table. (#8250)
|
||||||
|
- TreeNode, Tables: Added ImGuiTreeNodeFlags_LabelSpanAllColumns to make
|
||||||
|
the label (not only the frame) also spans all columns. This can be useful
|
||||||
|
for table rows where you know nothing else is submitted. (#8318, #3565)
|
||||||
|
Obviously best used with ImGuiTableFlags_NoBordersInBodyUntilResize.
|
||||||
- Drags: Added ImGuiSliderFlags_NoSpeedTweaks flag to disable keyboard
|
- Drags: Added ImGuiSliderFlags_NoSpeedTweaks flag to disable keyboard
|
||||||
modifiers altering the tweak speed. Useful if you want to alter tweak speed
|
modifiers altering the tweak speed. Useful if you want to alter tweak speed
|
||||||
yourself based on your own logic. (#8223)
|
yourself based on your own logic. (#8223)
|
||||||
|
7
imgui.h
7
imgui.h
@ -29,7 +29,7 @@
|
|||||||
// Library Version
|
// Library Version
|
||||||
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM >= 12345')
|
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM >= 12345')
|
||||||
#define IMGUI_VERSION "1.91.7 WIP"
|
#define IMGUI_VERSION "1.91.7 WIP"
|
||||||
#define IMGUI_VERSION_NUM 19165
|
#define IMGUI_VERSION_NUM 19166
|
||||||
#define IMGUI_HAS_TABLE
|
#define IMGUI_HAS_TABLE
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1206,9 +1206,10 @@ enum ImGuiTreeNodeFlags_
|
|||||||
ImGuiTreeNodeFlags_SpanAvailWidth = 1 << 11, // Extend hit box to the right-most edge, even if not framed. This is not the default in order to allow adding other items on the same line without using AllowOverlap mode.
|
ImGuiTreeNodeFlags_SpanAvailWidth = 1 << 11, // Extend hit box to the right-most edge, even if not framed. This is not the default in order to allow adding other items on the same line without using AllowOverlap mode.
|
||||||
ImGuiTreeNodeFlags_SpanFullWidth = 1 << 12, // Extend hit box to the left-most and right-most edges (cover the indent area).
|
ImGuiTreeNodeFlags_SpanFullWidth = 1 << 12, // Extend hit box to the left-most and right-most edges (cover the indent area).
|
||||||
ImGuiTreeNodeFlags_SpanTextWidth = 1 << 13, // Narrow hit box + narrow hovering highlight, will only cover the label text.
|
ImGuiTreeNodeFlags_SpanTextWidth = 1 << 13, // Narrow hit box + narrow hovering highlight, will only cover the label text.
|
||||||
ImGuiTreeNodeFlags_SpanAllColumns = 1 << 14, // Frame will span all columns of its container table (text will still fit in current column)
|
ImGuiTreeNodeFlags_SpanAllColumns = 1 << 14, // Frame will span all columns of its container table (label will still fit in current column)
|
||||||
ImGuiTreeNodeFlags_NavLeftJumpsBackHere = 1 << 15, // (WIP) Nav: left direction may move to this TreeNode() from any of its child (items submitted between TreeNode and TreePop)
|
ImGuiTreeNodeFlags_LabelSpanAllColumns = 1 << 15, // Label will span all columns of its container table
|
||||||
//ImGuiTreeNodeFlags_NoScrollOnOpen = 1 << 16, // FIXME: TODO: Disable automatic scroll on TreePop() if node got just open and contents is not visible
|
//ImGuiTreeNodeFlags_NoScrollOnOpen = 1 << 16, // FIXME: TODO: Disable automatic scroll on TreePop() if node got just open and contents is not visible
|
||||||
|
ImGuiTreeNodeFlags_NavLeftJumpsBackHere = 1 << 17, // (WIP) Nav: left direction may move to this TreeNode() from any of its child (items submitted between TreeNode and TreePop)
|
||||||
ImGuiTreeNodeFlags_CollapsingHeader = ImGuiTreeNodeFlags_Framed | ImGuiTreeNodeFlags_NoTreePushOnOpen | ImGuiTreeNodeFlags_NoAutoOpenOnLog,
|
ImGuiTreeNodeFlags_CollapsingHeader = ImGuiTreeNodeFlags_Framed | ImGuiTreeNodeFlags_NoTreePushOnOpen | ImGuiTreeNodeFlags_NoAutoOpenOnLog,
|
||||||
|
|
||||||
#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
|
#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
|
||||||
|
@ -6363,6 +6363,8 @@ static void ShowDemoWindowTables()
|
|||||||
ImGui::CheckboxFlags("ImGuiTreeNodeFlags_SpanFullWidth", &tree_node_flags, ImGuiTreeNodeFlags_SpanFullWidth);
|
ImGui::CheckboxFlags("ImGuiTreeNodeFlags_SpanFullWidth", &tree_node_flags, ImGuiTreeNodeFlags_SpanFullWidth);
|
||||||
ImGui::CheckboxFlags("ImGuiTreeNodeFlags_SpanTextWidth", &tree_node_flags, ImGuiTreeNodeFlags_SpanTextWidth);
|
ImGui::CheckboxFlags("ImGuiTreeNodeFlags_SpanTextWidth", &tree_node_flags, ImGuiTreeNodeFlags_SpanTextWidth);
|
||||||
ImGui::CheckboxFlags("ImGuiTreeNodeFlags_SpanAllColumns", &tree_node_flags, ImGuiTreeNodeFlags_SpanAllColumns);
|
ImGui::CheckboxFlags("ImGuiTreeNodeFlags_SpanAllColumns", &tree_node_flags, ImGuiTreeNodeFlags_SpanAllColumns);
|
||||||
|
ImGui::CheckboxFlags("ImGuiTreeNodeFlags_LabelSpanAllColumns", &tree_node_flags, ImGuiTreeNodeFlags_LabelSpanAllColumns);
|
||||||
|
ImGui::SameLine(); HelpMarker("Useful if you know that you aren't displaying contents in other columns");
|
||||||
|
|
||||||
HelpMarker("See \"Columns flags\" section to configure how indentation is applied to individual columns.");
|
HelpMarker("See \"Columns flags\" section to configure how indentation is applied to individual columns.");
|
||||||
if (ImGui::BeginTable("3ways", 3, flags))
|
if (ImGui::BeginTable("3ways", 3, flags))
|
||||||
|
@ -6532,6 +6532,7 @@ bool ImGui::TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char* l
|
|||||||
// We vertically grow up to current line height up the typical widget height.
|
// We vertically grow up to current line height up the typical widget height.
|
||||||
const float frame_height = ImMax(ImMin(window->DC.CurrLineSize.y, g.FontSize + style.FramePadding.y * 2), label_size.y + padding.y * 2);
|
const float frame_height = ImMax(ImMin(window->DC.CurrLineSize.y, g.FontSize + style.FramePadding.y * 2), label_size.y + padding.y * 2);
|
||||||
const bool span_all_columns = (flags & ImGuiTreeNodeFlags_SpanAllColumns) != 0 && (g.CurrentTable != NULL);
|
const bool span_all_columns = (flags & ImGuiTreeNodeFlags_SpanAllColumns) != 0 && (g.CurrentTable != NULL);
|
||||||
|
const bool span_all_columns_label = (flags & ImGuiTreeNodeFlags_LabelSpanAllColumns) != 0 && (g.CurrentTable != NULL);
|
||||||
ImRect frame_bb;
|
ImRect frame_bb;
|
||||||
frame_bb.Min.x = span_all_columns ? window->ParentWorkRect.Min.x : (flags & ImGuiTreeNodeFlags_SpanFullWidth) ? window->WorkRect.Min.x : window->DC.CursorPos.x;
|
frame_bb.Min.x = span_all_columns ? window->ParentWorkRect.Min.x : (flags & ImGuiTreeNodeFlags_SpanFullWidth) ? window->WorkRect.Min.x : window->DC.CursorPos.x;
|
||||||
frame_bb.Min.y = window->DC.CursorPos.y;
|
frame_bb.Min.y = window->DC.CursorPos.y;
|
||||||
@ -6557,7 +6558,7 @@ bool ImGui::TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char* l
|
|||||||
bool is_open = TreeNodeUpdateNextOpen(storage_id, flags);
|
bool is_open = TreeNodeUpdateNextOpen(storage_id, flags);
|
||||||
|
|
||||||
bool is_visible;
|
bool is_visible;
|
||||||
if (span_all_columns)
|
if (span_all_columns || span_all_columns_label)
|
||||||
{
|
{
|
||||||
// Modify ClipRect for the ItemAdd(), faster than doing a PushColumnsBackground/PushTableBackgroundChannel for every Selectable..
|
// Modify ClipRect for the ItemAdd(), faster than doing a PushColumnsBackground/PushTableBackgroundChannel for every Selectable..
|
||||||
const float backup_clip_rect_min_x = window->ClipRect.Min.x;
|
const float backup_clip_rect_min_x = window->ClipRect.Min.x;
|
||||||
@ -6598,7 +6599,7 @@ bool ImGui::TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char* l
|
|||||||
return is_open;
|
return is_open;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (span_all_columns)
|
if (span_all_columns || span_all_columns_label)
|
||||||
{
|
{
|
||||||
TablePushBackgroundChannel();
|
TablePushBackgroundChannel();
|
||||||
g.LastItemData.StatusFlags |= ImGuiItemStatusFlags_HasClipRect;
|
g.LastItemData.StatusFlags |= ImGuiItemStatusFlags_HasClipRect;
|
||||||
@ -6751,7 +6752,7 @@ bool ImGui::TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char* l
|
|||||||
LogSetNextTextDecoration(">", NULL);
|
LogSetNextTextDecoration(">", NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (span_all_columns)
|
if (span_all_columns && !span_all_columns_label)
|
||||||
TablePopBackgroundChannel();
|
TablePopBackgroundChannel();
|
||||||
|
|
||||||
// Label
|
// Label
|
||||||
@ -6759,6 +6760,9 @@ bool ImGui::TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char* l
|
|||||||
RenderTextClipped(text_pos, frame_bb.Max, label, label_end, &label_size);
|
RenderTextClipped(text_pos, frame_bb.Max, label, label_end, &label_size);
|
||||||
else
|
else
|
||||||
RenderText(text_pos, label, label_end, false);
|
RenderText(text_pos, label, label_end, false);
|
||||||
|
|
||||||
|
if (span_all_columns_label)
|
||||||
|
TablePopBackgroundChannel();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (store_tree_node_stack_data && is_open)
|
if (store_tree_node_stack_data && is_open)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user