mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 13:11:05 +01:00 
			
		
		
		
	Removed extraneous ImGui:: prefixes. Declared ColorEditOptionsPopup in imgui_internals.h. Tweaked internal signatures.
This commit is contained in:
		
							
								
								
									
										67
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										67
									
								
								imgui.cpp
									
									
									
									
									
								
							| @@ -3629,7 +3629,7 @@ bool ImGui::BeginPopupModal(const char* name, bool* p_open, ImGuiWindowFlags ext | ||||
|         SetNextWindowPos(g.IO.DisplaySize * 0.5f, ImGuiCond_Appearing, ImVec2(0.5f, 0.5f)); | ||||
|  | ||||
|     ImGuiWindowFlags flags = extra_flags|ImGuiWindowFlags_Popup|ImGuiWindowFlags_Modal|ImGuiWindowFlags_NoCollapse|ImGuiWindowFlags_NoSavedSettings; | ||||
|     bool is_open = ImGui::Begin(name, p_open, flags); | ||||
|     bool is_open = Begin(name, p_open, flags); | ||||
|     if (!is_open || (p_open && !*p_open)) // NB: is_open can be 'false' when the popup is completely clipped (e.g. zero size display) | ||||
|     { | ||||
|         EndPopup(); | ||||
| @@ -3646,9 +3646,9 @@ void ImGui::EndPopup() | ||||
|     ImGuiWindow* window = GetCurrentWindow(); | ||||
|     IM_ASSERT(window->Flags & ImGuiWindowFlags_Popup);  // Mismatched BeginPopup()/EndPopup() calls | ||||
|     IM_ASSERT(GImGui->CurrentPopupStack.Size > 0); | ||||
|     ImGui::End(); | ||||
|     End(); | ||||
|     if (!(window->Flags & ImGuiWindowFlags_Modal)) | ||||
|         ImGui::PopStyleVar(); | ||||
|         PopStyleVar(); | ||||
| } | ||||
|  | ||||
| // This is a helper to handle the most simple case of associating one named popup to one given widget. | ||||
| @@ -3758,17 +3758,17 @@ bool ImGui::BeginChildFrame(ImGuiID id, const ImVec2& size, ImGuiWindowFlags ext | ||||
| { | ||||
|     ImGuiContext& g = *GImGui; | ||||
|     const ImGuiStyle& style = g.Style; | ||||
|     ImGui::PushStyleColor(ImGuiCol_ChildWindowBg, style.Colors[ImGuiCol_FrameBg]); | ||||
|     ImGui::PushStyleVar(ImGuiStyleVar_ChildWindowRounding, style.FrameRounding); | ||||
|     ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, style.FramePadding); | ||||
|     return ImGui::BeginChild(id, size, (g.CurrentWindow->Flags & ImGuiWindowFlags_ShowBorders) ? true : false, ImGuiWindowFlags_NoMove | ImGuiWindowFlags_AlwaysUseWindowPadding | extra_flags); | ||||
|     PushStyleColor(ImGuiCol_ChildWindowBg, style.Colors[ImGuiCol_FrameBg]); | ||||
|     PushStyleVar(ImGuiStyleVar_ChildWindowRounding, style.FrameRounding); | ||||
|     PushStyleVar(ImGuiStyleVar_WindowPadding, style.FramePadding); | ||||
|     return BeginChild(id, size, (g.CurrentWindow->Flags & ImGuiWindowFlags_ShowBorders) ? true : false, ImGuiWindowFlags_NoMove | ImGuiWindowFlags_AlwaysUseWindowPadding | extra_flags); | ||||
| } | ||||
|  | ||||
| void ImGui::EndChildFrame() | ||||
| { | ||||
|     ImGui::EndChild(); | ||||
|     ImGui::PopStyleVar(2); | ||||
|     ImGui::PopStyleColor(); | ||||
|     EndChild(); | ||||
|     PopStyleVar(2); | ||||
|     PopStyleColor(); | ||||
| } | ||||
|  | ||||
| // Save and compare stack sizes on Begin()/End() to detect usage errors | ||||
| @@ -5161,7 +5161,7 @@ void ImGui::SetNextWindowPos(const ImVec2& pos, ImGuiCond cond, const ImVec2& pi | ||||
| #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS | ||||
| void ImGui::SetNextWindowPosCenter(ImGuiCond cond) | ||||
| { | ||||
|     SetNextWindowPos(ImGui::GetIO().DisplaySize * 0.5f, cond, ImVec2(0.5f, 0.5f)); | ||||
|     SetNextWindowPos(GetIO().DisplaySize * 0.5f, cond, ImVec2(0.5f, 0.5f)); | ||||
| } | ||||
| #endif | ||||
|  | ||||
| @@ -9137,7 +9137,7 @@ void ImGui::EndMenu() | ||||
| } | ||||
|  | ||||
| // Note: only access 3 floats if ImGuiColorEditFlags_NoAlpha flag is set. | ||||
| void ImGui::ColorTooltip(const char* text, const float col[4], ImGuiColorEditFlags flags) | ||||
| void ImGui::ColorTooltip(const char* text, const float* col, ImGuiColorEditFlags flags) | ||||
| { | ||||
|     ImGuiContext& g = *GImGui; | ||||
|  | ||||
| @@ -9277,51 +9277,52 @@ bool ImGui::ColorEdit3(const char* label, float col[3], ImGuiColorEditFlags flag | ||||
|     return ColorEdit4(label, col, flags | ImGuiColorEditFlags_NoAlpha); | ||||
| } | ||||
|  | ||||
| static void ColorEditOptionsPopup(ImGuiColorEditFlags flags, float* col) | ||||
| void ImGui::ColorEditOptionsPopup(const float* col, ImGuiColorEditFlags flags) | ||||
| { | ||||
|     bool allow_opt_inputs = !(flags & ImGuiColorEditFlags__InputsMask); | ||||
|     bool allow_opt_datatype = !(flags & ImGuiColorEditFlags__DataTypeMask); | ||||
|     if ((!allow_opt_inputs && !allow_opt_datatype) || !ImGui::BeginPopup("context")) | ||||
|     if ((!allow_opt_inputs && !allow_opt_datatype) || !BeginPopup("context")) | ||||
|         return; | ||||
|     ImGuiContext& g = *GImGui; | ||||
|     ImGuiColorEditFlags opts = g.ColorEditOptions; | ||||
|     if (allow_opt_inputs) | ||||
|     { | ||||
|         if (ImGui::RadioButton("RGB", (opts & ImGuiColorEditFlags_RGB) ? 1 : 0)) opts = (opts & ~ImGuiColorEditFlags__InputsMask) | ImGuiColorEditFlags_RGB; | ||||
|         if (ImGui::RadioButton("HSV", (opts & ImGuiColorEditFlags_HSV) ? 1 : 0)) opts = (opts & ~ImGuiColorEditFlags__InputsMask) | ImGuiColorEditFlags_HSV; | ||||
|         if (ImGui::RadioButton("HEX", (opts & ImGuiColorEditFlags_HEX) ? 1 : 0)) opts = (opts & ~ImGuiColorEditFlags__InputsMask) | ImGuiColorEditFlags_HEX; | ||||
|         if (RadioButton("RGB", (opts & ImGuiColorEditFlags_RGB) ? 1 : 0)) opts = (opts & ~ImGuiColorEditFlags__InputsMask) | ImGuiColorEditFlags_RGB; | ||||
|         if (RadioButton("HSV", (opts & ImGuiColorEditFlags_HSV) ? 1 : 0)) opts = (opts & ~ImGuiColorEditFlags__InputsMask) | ImGuiColorEditFlags_HSV; | ||||
|         if (RadioButton("HEX", (opts & ImGuiColorEditFlags_HEX) ? 1 : 0)) opts = (opts & ~ImGuiColorEditFlags__InputsMask) | ImGuiColorEditFlags_HEX; | ||||
|     } | ||||
|     if (allow_opt_datatype) | ||||
|     { | ||||
|         if (allow_opt_inputs) ImGui::Separator(); | ||||
|         if (ImGui::RadioButton("0..255",     (opts & ImGuiColorEditFlags_Uint8) ? 1 : 0)) opts = (opts & ~ImGuiColorEditFlags__DataTypeMask) | ImGuiColorEditFlags_Uint8; | ||||
|         if (ImGui::RadioButton("0.00..1.00", (opts & ImGuiColorEditFlags_Float) ? 1 : 0)) opts = (opts & ~ImGuiColorEditFlags__DataTypeMask) | ImGuiColorEditFlags_Float; | ||||
|         if (allow_opt_inputs) Separator(); | ||||
|         if (RadioButton("0..255",     (opts & ImGuiColorEditFlags_Uint8) ? 1 : 0)) opts = (opts & ~ImGuiColorEditFlags__DataTypeMask) | ImGuiColorEditFlags_Uint8; | ||||
|         if (RadioButton("0.00..1.00", (opts & ImGuiColorEditFlags_Float) ? 1 : 0)) opts = (opts & ~ImGuiColorEditFlags__DataTypeMask) | ImGuiColorEditFlags_Float; | ||||
|     } | ||||
|  | ||||
|     if (allow_opt_inputs || allow_opt_datatype) ImGui::Separator(); | ||||
|     if (ImGui::Button("Copy as..", ImVec2(-1,0))) | ||||
|         ImGui::OpenPopup("Copy"); | ||||
|     if (ImGui::BeginPopup("Copy")) | ||||
|     if (allow_opt_inputs || allow_opt_datatype) | ||||
|         Separator(); | ||||
|     if (Button("Copy as..", ImVec2(-1,0))) | ||||
|         OpenPopup("Copy"); | ||||
|     if (BeginPopup("Copy")) | ||||
|     { | ||||
|         int cr = IM_F32_TO_INT8_SAT(col[0]), cg = IM_F32_TO_INT8_SAT(col[1]), cb = IM_F32_TO_INT8_SAT(col[2]), ca = (flags & ImGuiColorEditFlags_NoAlpha) ? 255 : IM_F32_TO_INT8_SAT(col[3]); | ||||
|         char buf[64]; | ||||
|         sprintf(buf, "(%.3ff, %.3ff, %.3ff, %.3ff)", col[0], col[1], col[2], (flags & ImGuiColorEditFlags_NoAlpha) ? 1.0f : col[3]); | ||||
|         if (ImGui::Selectable(buf)) | ||||
|             ImGui::SetClipboardText(buf); | ||||
|         if (Selectable(buf)) | ||||
|             SetClipboardText(buf); | ||||
|         sprintf(buf, "(%d,%d,%d,%d)", cr, cg, cb, ca); | ||||
|         if (ImGui::Selectable(buf)) | ||||
|             ImGui::SetClipboardText(buf); | ||||
|         if (Selectable(buf)) | ||||
|             SetClipboardText(buf); | ||||
|         if (flags & ImGuiColorEditFlags_NoAlpha) | ||||
|             sprintf(buf, "0x%02X%02X%02X", cr, cg, cb); | ||||
|         else | ||||
|             sprintf(buf, "0x%02X%02X%02X%02X", cr, cg, cb, ca); | ||||
|         if (ImGui::Selectable(buf)) | ||||
|             ImGui::SetClipboardText(buf); | ||||
|         ImGui::EndPopup(); | ||||
|         if (Selectable(buf)) | ||||
|             SetClipboardText(buf); | ||||
|         EndPopup(); | ||||
|     } | ||||
|  | ||||
|     g.ColorEditOptions = opts; | ||||
|     ImGui::EndPopup(); | ||||
|     EndPopup(); | ||||
| } | ||||
|  | ||||
| static void ColorPickerOptionsPopup(ImGuiColorEditFlags flags, float* ref_col) | ||||
| @@ -9392,7 +9393,7 @@ bool ImGui::ColorEdit4(const char* label, float col[4], ImGuiColorEditFlags flag | ||||
|  | ||||
|     // Context menu: display and modify options (before defaults are applied) | ||||
|     if (!(flags & ImGuiColorEditFlags_NoOptions)) | ||||
|         ColorEditOptionsPopup(flags, col); | ||||
|         ColorEditOptionsPopup(col, flags); | ||||
|   | ||||
|     // Read stored options | ||||
|     if (!(flags & ImGuiColorEditFlags__InputsMask)) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user