mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 05:01:05 +01:00 
			
		
		
		
	+ Merge some shallow changes from range-select branch.
This commit is contained in:
		| @@ -38,6 +38,8 @@ Breaking changes: | ||||
|  | ||||
| Other changes: | ||||
|  | ||||
| - Demo: Better showcase use of SetNextItemAllowOverlap(). (#6574, #6512, #3909, #517) | ||||
|  | ||||
|  | ||||
| ----------------------------------------------------------------------- | ||||
|  VERSION 1.89.7 (Released 2023-07-04) | ||||
|   | ||||
| @@ -1262,16 +1262,16 @@ static void ShowDemoWindowWidgets() | ||||
|         IMGUI_DEMO_MARKER("Widgets/Selectables/Basic"); | ||||
|         if (ImGui::TreeNode("Basic")) | ||||
|         { | ||||
|             static bool selection[5] = { false, true, false, false, false }; | ||||
|             static bool selection[5] = { false, true, false, false }; | ||||
|             ImGui::Selectable("1. I am selectable", &selection[0]); | ||||
|             ImGui::Selectable("2. I am selectable", &selection[1]); | ||||
|             ImGui::Text("(I am not selectable)"); | ||||
|             ImGui::Selectable("4. I am selectable", &selection[3]); | ||||
|             if (ImGui::Selectable("5. I am double clickable", selection[4], ImGuiSelectableFlags_AllowDoubleClick)) | ||||
|             ImGui::Selectable("3. I am selectable", &selection[2]); | ||||
|             if (ImGui::Selectable("4. I am double clickable", selection[3], ImGuiSelectableFlags_AllowDoubleClick)) | ||||
|                 if (ImGui::IsMouseDoubleClicked(0)) | ||||
|                     selection[4] = !selection[4]; | ||||
|                     selection[3] = !selection[3]; | ||||
|             ImGui::TreePop(); | ||||
|         } | ||||
|  | ||||
|         IMGUI_DEMO_MARKER("Widgets/Selectables/Single Selection"); | ||||
|         if (ImGui::TreeNode("Selection State: Single Selection")) | ||||
|         { | ||||
| @@ -1303,17 +1303,18 @@ static void ShowDemoWindowWidgets() | ||||
|             } | ||||
|             ImGui::TreePop(); | ||||
|         } | ||||
|         IMGUI_DEMO_MARKER("Widgets/Selectables/Rendering more text into the same line"); | ||||
|         if (ImGui::TreeNode("Rendering more text into the same line")) | ||||
|         IMGUI_DEMO_MARKER("Widgets/Selectables/Rendering more items on the same line"); | ||||
|         if (ImGui::TreeNode("Rendering more items on the same line")) | ||||
|         { | ||||
|             // Using the Selectable() override that takes "bool* p_selected" parameter, | ||||
|             // this function toggle your bool value automatically. | ||||
|             // (1) Using SetNextItemAllowOverlap() | ||||
|             // (2) Using the Selectable() override that takes "bool* p_selected" parameter, the bool value is toggled automatically. | ||||
|             static bool selected[3] = { false, false, false }; | ||||
|             ImGui::Selectable("main.c",    &selected[0]); ImGui::SameLine(300); ImGui::Text(" 2,345 bytes"); | ||||
|             ImGui::Selectable("Hello.cpp", &selected[1]); ImGui::SameLine(300); ImGui::Text("12,345 bytes"); | ||||
|             ImGui::Selectable("Hello.h",   &selected[2]); ImGui::SameLine(300); ImGui::Text(" 2,345 bytes"); | ||||
|             ImGui::SetNextItemAllowOverlap(); ImGui::Selectable("main.c",    &selected[0]); ImGui::SameLine(); ImGui::SmallButton("Link 1"); | ||||
|             ImGui::SetNextItemAllowOverlap(); ImGui::Selectable("Hello.cpp", &selected[1]); ImGui::SameLine(); ImGui::SmallButton("Link 2"); | ||||
|             ImGui::SetNextItemAllowOverlap(); ImGui::Selectable("Hello.h",   &selected[2]); ImGui::SameLine(); ImGui::SmallButton("Link 3"); | ||||
|             ImGui::TreePop(); | ||||
|         } | ||||
|  | ||||
|         IMGUI_DEMO_MARKER("Widgets/Selectables/In columns"); | ||||
|         if (ImGui::TreeNode("In columns")) | ||||
|         { | ||||
| @@ -1349,6 +1350,7 @@ static void ShowDemoWindowWidgets() | ||||
|             } | ||||
|             ImGui::TreePop(); | ||||
|         } | ||||
|  | ||||
|         IMGUI_DEMO_MARKER("Widgets/Selectables/Grid"); | ||||
|         if (ImGui::TreeNode("Grid")) | ||||
|         { | ||||
| @@ -2795,11 +2797,11 @@ static void ShowDemoWindowLayout() | ||||
|         // Text | ||||
|         IMGUI_DEMO_MARKER("Layout/Basic Horizontal Layout/SameLine"); | ||||
|         ImGui::Text("Two items: Hello"); ImGui::SameLine(); | ||||
|         ImGui::TextColored(ImVec4(1,1,0,1), "Sailor"); | ||||
|         ImGui::TextColored(ImVec4(1, 1, 0, 1), "Sailor"); | ||||
|  | ||||
|         // Adjust spacing | ||||
|         ImGui::Text("More spacing: Hello"); ImGui::SameLine(0, 20); | ||||
|         ImGui::TextColored(ImVec4(1,1,0,1), "Sailor"); | ||||
|         ImGui::TextColored(ImVec4(1, 1, 0, 1), "Sailor"); | ||||
|  | ||||
|         // Button | ||||
|         ImGui::AlignTextToFramePadding(); | ||||
| @@ -3397,6 +3399,36 @@ static void ShowDemoWindowLayout() | ||||
|  | ||||
|         ImGui::TreePop(); | ||||
|     } | ||||
|  | ||||
|     IMGUI_DEMO_MARKER("Layout/Overlap Mode"); | ||||
|     if (ImGui::TreeNode("Overlap Mode")) | ||||
|     { | ||||
|         static bool enable_allow_overlap = true; | ||||
|  | ||||
|         HelpMarker( | ||||
|             "Hit-testing is by default performed in item submission order, which generally is perceived as 'back-to-front'.\n\n" | ||||
|             "By using SetNextItemAllowOverlap() you can notify that an item may be overlapped by another. Doing so alters the hovering logic: items using AllowOverlap mode requires an extra frame to accept hovered state."); | ||||
|         ImGui::Checkbox("Enable AllowOverlap", &enable_allow_overlap); | ||||
|  | ||||
|         ImVec2 button1_pos = ImGui::GetCursorScreenPos(); | ||||
|         ImVec2 button2_pos = ImVec2(button1_pos.x + 50.0f, button1_pos.y + 50.0f); | ||||
|         if (enable_allow_overlap) | ||||
|             ImGui::SetNextItemAllowOverlap(); | ||||
|         ImGui::Button("Button 1", ImVec2(80, 80)); | ||||
|         ImGui::SetCursorScreenPos(button2_pos); | ||||
|         ImGui::Button("Button 2", ImVec2(80, 80)); | ||||
|  | ||||
|         // This is typically used with width-spanning items. | ||||
|         // (note that Selectable() has a dedicated flag ImGuiSelectableFlags_AllowOverlap, which is a shortcut | ||||
|         // for using SetNextItemAllowOverlap(). For demo purpose we use SetNextItemAllowOverlap() here.) | ||||
|         if (enable_allow_overlap) | ||||
|             ImGui::SetNextItemAllowOverlap(); | ||||
|         ImGui::Selectable("Some Selectable", false); | ||||
|         ImGui::SameLine(); | ||||
|         ImGui::SmallButton("++"); | ||||
|  | ||||
|         ImGui::TreePop(); | ||||
|     } | ||||
| } | ||||
|  | ||||
| static void ShowDemoWindowPopups() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user