Tables: extracted some code into TableBeginContextMenuPopup() for easier reuse for appending into context menu.
This commit is contained in:
parent
9aae45eb4a
commit
088ddef98a
@ -2753,6 +2753,7 @@ namespace ImGui
|
|||||||
IMGUI_API void TableUpdateColumnsWeightFromWidth(ImGuiTable* table);
|
IMGUI_API void TableUpdateColumnsWeightFromWidth(ImGuiTable* table);
|
||||||
IMGUI_API void TableDrawBorders(ImGuiTable* table);
|
IMGUI_API void TableDrawBorders(ImGuiTable* table);
|
||||||
IMGUI_API void TableDrawContextMenu(ImGuiTable* table);
|
IMGUI_API void TableDrawContextMenu(ImGuiTable* table);
|
||||||
|
IMGUI_API bool TableBeginContextMenuPopup(ImGuiTable* table);
|
||||||
IMGUI_API void TableMergeDrawChannels(ImGuiTable* table);
|
IMGUI_API void TableMergeDrawChannels(ImGuiTable* table);
|
||||||
inline ImGuiTableInstanceData* TableGetInstanceData(ImGuiTable* table, int instance_no) { if (instance_no == 0) return &table->InstanceDataFirst; return &table->InstanceDataExtra[instance_no - 1]; }
|
inline ImGuiTableInstanceData* TableGetInstanceData(ImGuiTable* table, int instance_no) { if (instance_no == 0) return &table->InstanceDataFirst; return &table->InstanceDataExtra[instance_no - 1]; }
|
||||||
IMGUI_API void TableSortSpecsSanitize(ImGuiTable* table);
|
IMGUI_API void TableSortSpecsSanitize(ImGuiTable* table);
|
||||||
|
@ -1105,18 +1105,10 @@ void ImGui::TableUpdateLayout(ImGuiTable* table)
|
|||||||
table->IsUsingHeaders = false;
|
table->IsUsingHeaders = false;
|
||||||
|
|
||||||
// [Part 11] Context menu
|
// [Part 11] Context menu
|
||||||
if (table->IsContextPopupOpen && table->InstanceCurrent == table->InstanceInteracted)
|
if (TableBeginContextMenuPopup(table))
|
||||||
{
|
{
|
||||||
const ImGuiID context_menu_id = ImHashStr("##ContextMenu", 0, table->ID);
|
TableDrawContextMenu(table);
|
||||||
if (BeginPopupEx(context_menu_id, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoSavedSettings))
|
EndPopup();
|
||||||
{
|
|
||||||
TableDrawContextMenu(table);
|
|
||||||
EndPopup();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
table->IsContextPopupOpen = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// [Part 13] Sanitize and build sort specs before we have a change to use them for display.
|
// [Part 13] Sanitize and build sort specs before we have a change to use them for display.
|
||||||
@ -3035,6 +3027,17 @@ void ImGui::TableOpenContextMenu(int column_n)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ImGui::TableBeginContextMenuPopup(ImGuiTable* table)
|
||||||
|
{
|
||||||
|
if (!table->IsContextPopupOpen || table->InstanceCurrent != table->InstanceInteracted)
|
||||||
|
return false;
|
||||||
|
const ImGuiID context_menu_id = ImHashStr("##ContextMenu", 0, table->ID);
|
||||||
|
if (BeginPopupEx(context_menu_id, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoSavedSettings))
|
||||||
|
return true;
|
||||||
|
table->IsContextPopupOpen = false;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// Output context menu into current window (generally a popup)
|
// Output context menu into current window (generally a popup)
|
||||||
// FIXME-TABLE: Ideally this should be writable by the user. Full programmatic access to that data?
|
// FIXME-TABLE: Ideally this should be writable by the user. Full programmatic access to that data?
|
||||||
void ImGui::TableDrawContextMenu(ImGuiTable* table)
|
void ImGui::TableDrawContextMenu(ImGuiTable* table)
|
||||||
|
Loading…
Reference in New Issue
Block a user