Apply multi-selection requests
| 3062 | |
| 3063 | // Apply multi-selection requests |
| 3064 | static void ApplySelectionRequests(ImGuiMultiSelectIO* ms_io, ExampleTreeNode* tree, ImGuiSelectionBasicStorage* selection) |
| 3065 | { |
| 3066 | for (ImGuiSelectionRequest& req : ms_io->Requests) |
| 3067 | { |
| 3068 | if (req.Type == ImGuiSelectionRequestType_SetAll) |
| 3069 | { |
| 3070 | if (req.Selected) |
| 3071 | TreeSetAllInOpenNodes(tree, selection, req.Selected); |
| 3072 | else |
| 3073 | selection->Clear(); |
| 3074 | } |
| 3075 | else if (req.Type == ImGuiSelectionRequestType_SetRange) |
| 3076 | { |
| 3077 | ExampleTreeNode* first_node = (ExampleTreeNode*)(intptr_t)req.RangeFirstItem; |
| 3078 | ExampleTreeNode* last_node = (ExampleTreeNode*)(intptr_t)req.RangeLastItem; |
| 3079 | for (ExampleTreeNode* node = first_node; node != NULL; node = TreeGetNextNodeInVisibleOrder(node, last_node)) |
| 3080 | selection->SetItemSelected((ImGuiID)node->UID, req.Selected); |
| 3081 | } |
| 3082 | } |
| 3083 | } |
| 3084 | |
| 3085 | static void TreeSetAllInOpenNodes(ExampleTreeNode* node, ImGuiSelectionBasicStorage* selection, bool selected) |
| 3086 | { |
nothing calls this directly
no test coverage detected