mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-30 20:51:06 +01:00 
			
		
		
		
	Examples: Constrained Resize: Added more test cases (for #1417)
This commit is contained in:
		| @@ -2145,31 +2145,40 @@ static void ShowExampleAppConstrainedResize(bool* p_open) | ||||
|         static void Step(ImGuiSizeConstraintCallbackData* data)   { float step = (float)(int)(intptr_t)data->UserData; data->DesiredSize = ImVec2((int)(data->DesiredSize.x / step + 0.5f) * step, (int)(data->DesiredSize.y / step + 0.5f) * step); } | ||||
|     }; | ||||
|  | ||||
|     static bool auto_resize = false; | ||||
|     static int type = 0; | ||||
|     static int display_lines = 10; | ||||
|     if (type == 0) ImGui::SetNextWindowSizeConstraints(ImVec2(-1, 0),    ImVec2(-1, FLT_MAX));      // Vertical only | ||||
|     if (type == 1) ImGui::SetNextWindowSizeConstraints(ImVec2(0, -1),    ImVec2(FLT_MAX, -1));      // Horizontal only | ||||
|     if (type == 2) ImGui::SetNextWindowSizeConstraints(ImVec2(100, 100), ImVec2(FLT_MAX, FLT_MAX)); // Width > 100, Height > 100 | ||||
|     if (type == 3) ImGui::SetNextWindowSizeConstraints(ImVec2(300, 0),   ImVec2(400, FLT_MAX));     // Width 300-400 | ||||
|     if (type == 4) ImGui::SetNextWindowSizeConstraints(ImVec2(0, 0),     ImVec2(FLT_MAX, FLT_MAX), CustomConstraints::Square);          // Always Square | ||||
|     if (type == 5) ImGui::SetNextWindowSizeConstraints(ImVec2(0, 0),     ImVec2(FLT_MAX, FLT_MAX), CustomConstraints::Step, (void*)100);// Fixed Step | ||||
|     if (type == 3) ImGui::SetNextWindowSizeConstraints(ImVec2(400, -1),  ImVec2(500, -1));          // Width 400-500 | ||||
|     if (type == 4) ImGui::SetNextWindowSizeConstraints(ImVec2(-1, 400),  ImVec2(-1, 500));          // Height 400-500 | ||||
|     if (type == 5) ImGui::SetNextWindowSizeConstraints(ImVec2(0, 0),     ImVec2(FLT_MAX, FLT_MAX), CustomConstraints::Square);          // Always Square | ||||
|     if (type == 6) ImGui::SetNextWindowSizeConstraints(ImVec2(0, 0),     ImVec2(FLT_MAX, FLT_MAX), CustomConstraints::Step, (void*)100);// Fixed Step | ||||
|  | ||||
|     if (ImGui::Begin("Example: Constrained Resize", p_open)) | ||||
|     ImGuiWindowFlags flags = auto_resize ? ImGuiWindowFlags_AlwaysAutoResize : 0; | ||||
|     if (ImGui::Begin("Example: Constrained Resize", p_open, flags)) | ||||
|     { | ||||
|         const char* desc[] =  | ||||
|         { | ||||
|             "Resize vertical only", | ||||
|             "Resize horizontal only", | ||||
|             "Width > 100, Height > 100", | ||||
|             "Width 300-400", | ||||
|             "Width 400-500", | ||||
|             "Height 400-500", | ||||
|             "Custom: Always Square", | ||||
|             "Custom: Fixed Steps (100)", | ||||
|         }; | ||||
|         ImGui::Combo("Constraint", &type, desc, IM_ARRAYSIZE(desc));  | ||||
|         if (ImGui::Button("200x200")) { ImGui::SetWindowSize(ImVec2(200,200)); } ImGui::SameLine(); | ||||
|         if (ImGui::Button("500x500")) { ImGui::SetWindowSize(ImVec2(500,500)); } ImGui::SameLine(); | ||||
|         if (ImGui::Button("800x200")) { ImGui::SetWindowSize(ImVec2(800,200)); } | ||||
|         for (int i = 0; i < 10; i++)  | ||||
|             ImGui::Text("Hello, sailor! Making this line long enough for the example."); | ||||
|         if (ImGui::Button("200x200")) { ImGui::SetWindowSize(ImVec2(200, 200)); } ImGui::SameLine(); | ||||
|         if (ImGui::Button("500x500")) { ImGui::SetWindowSize(ImVec2(500, 500)); } ImGui::SameLine(); | ||||
|         if (ImGui::Button("800x200")) { ImGui::SetWindowSize(ImVec2(800, 200)); } | ||||
|         ImGui::PushItemWidth(200); | ||||
|         ImGui::Combo("Constraint", &type, desc, IM_ARRAYSIZE(desc)); | ||||
|         ImGui::DragInt("Lines", &display_lines, 0.2f, 1, 100); | ||||
|         ImGui::PopItemWidth(); | ||||
|         ImGui::Checkbox("Auto-resize", &auto_resize); | ||||
|         for (int i = 0; i < display_lines; i++) | ||||
|             ImGui::Text("%*sHello, sailor! Making this line long enough for the example.", i * 4, ""); | ||||
|     } | ||||
|     ImGui::End(); | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user