mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 05:01:05 +01:00 
			
		
		
		
	ColorEdit, ColorPicker: added ImGuiColorEditFlags_NoAlphaPreview flag (#346). Reorder flags again.
This commit is contained in:
		| @@ -9005,7 +9005,7 @@ void ImGui::ColorTooltip(const char* text, const float col[4], ImGuiColorEditFla | ||||
| { | ||||
|     ImGuiContext& g = *GImGui; | ||||
|  | ||||
|     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]); | ||||
|     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 | ImGuiColorEditFlags_NoAlphaPreview)) ? 255 : IM_F32_TO_INT8_SAT(col[3]); | ||||
|     BeginTooltipEx(true); | ||||
|     ImGuiWindow* window = GetCurrentWindow(); | ||||
|      | ||||
| @@ -9076,11 +9076,11 @@ bool ImGui::ColorButton(const char* desc_id, const ImVec4& col, ImGuiColorEditFl | ||||
|     bool hovered, held; | ||||
|     bool pressed = ButtonBehavior(bb, id, &hovered, &held); | ||||
|     float grid_step = ImMin(g.FontSize, ImMin(size.x, size.y) * 0.5f); | ||||
|     RenderColorRectWithAlphaGrid(bb.Min, bb.Max, GetColorU32(col), grid_step, style.FrameRounding); | ||||
|     RenderColorRectWithAlphaGrid(bb.Min, bb.Max, GetColorU32((flags & (ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_NoAlphaPreview)) ? ImVec4(col.x, col.y, col.z, 1.0f) : col), grid_step, style.FrameRounding); | ||||
|     RenderFrameBorder(bb.Min, bb.Max, style.FrameRounding); | ||||
|  | ||||
|     if (hovered && !(flags & ImGuiColorEditFlags_NoTooltip)) | ||||
|         ColorTooltip(desc_id, &col.x, flags & ImGuiColorEditFlags_NoAlpha); | ||||
|         ColorTooltip(desc_id, &col.x, flags & (ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_NoAlphaPreview)); | ||||
|  | ||||
|     return pressed; | ||||
| } | ||||
|   | ||||
							
								
								
									
										21
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								imgui.h
									
									
									
									
									
								
							| @@ -274,7 +274,7 @@ namespace ImGui | ||||
|     IMGUI_API bool          RadioButton(const char* label, bool active); | ||||
|     IMGUI_API bool          RadioButton(const char* label, int* v, int v_button); | ||||
|     IMGUI_API bool          Combo(const char* label, int* current_item, const char* const* items, int items_count, int height_in_items = -1); | ||||
|     IMGUI_API bool          Combo(const char* label, int* current_item, const char* items_separated_by_zeros, int height_in_items = -1);      // separate items with \0, end item-list with \0\0 | ||||
|     IMGUI_API bool          Combo(const char* label, int* current_item, const char* items_separated_by_zeros, int height_in_items = -1);    // separate items with \0, end item-list with \0\0 | ||||
|     IMGUI_API bool          Combo(const char* label, int* current_item, bool (*items_getter)(void* data, int idx, const char** out_text), void* data, int items_count, int height_in_items = -1); | ||||
|     IMGUI_API bool          ColorButton(const char* desc_id, const ImVec4& col, ImGuiColorEditFlags flags = 0, ImVec2 size = ImVec2(0,0));  // display a colored square/button, hover for details, return true when pressed. | ||||
|     IMGUI_API bool          ColorEdit3(const char* label, float col[3], ImGuiColorEditFlags flags = 0);     // 3-4 components color edition. click on colored squared to open a color picker, right-click for options. Hint: 'float col[3]' function argument is same as 'float* col'. You can pass address of first element out of a contiguous structure, e.g. &myvector.x | ||||
| @@ -661,21 +661,22 @@ enum ImGuiStyleVar_ | ||||
|     ImGuiStyleVar_Count_ | ||||
| }; | ||||
|  | ||||
| // Enumeration for ColorEdit3() / ColorEdit4() / ColorPicker3() / ColorPicker4() | ||||
| // Enumeration for ColorEdit3() / ColorEdit4() / ColorPicker3() / ColorPicker4() / ColorButton() | ||||
| enum ImGuiColorEditFlags_ | ||||
| { | ||||
|     ImGuiColorEditFlags_RGB             = 1 << 0,   // ColorEdit: Default to one among RGB/HSV/HEX. User can still use the options menu to change. ColorPicker: Choose any combination or RGB/HSV/HEX. | ||||
|     ImGuiColorEditFlags_HSV             = 1 << 1,   // " | ||||
|     ImGuiColorEditFlags_HEX             = 1 << 2,   // " | ||||
|     ImGuiColorEditFlags_Float           = 1 << 3,   // ColorEdit, ColorPicker: display values formatted as 0.0f..1.0f floats instead of 0..255 integers. No round-trip of value via integers. | ||||
|     ImGuiColorEditFlags_Float           = 1 << 3,   // ColorEdit, ColorPicker, ColorButton: display values formatted as 0.0f..1.0f floats instead of 0..255 integers. No round-trip of value via integers. | ||||
|     ImGuiColorEditFlags_AlphaBar        = 1 << 4,   // ColorPicker: Show vertical alpha bar/gradient. | ||||
|     ImGuiColorEditFlags_NoAlpha         = 1 << 5,   // ColorEdit, ColorPicker: show/edit Alpha component. | ||||
|     ImGuiColorEditFlags_NoPicker        = 1 << 6,   // ColorEdit: Disable picker when clicking on colored square | ||||
|     ImGuiColorEditFlags_NoOptions       = 1 << 7,   // ColorEdit: Disable toggling options menu when right-clicking colored square | ||||
|     ImGuiColorEditFlags_NoColorSquare   = 1 << 8,   // ColorEdit, ColorPicker: Disable colored square. | ||||
|     ImGuiColorEditFlags_NoInputs        = 1 << 9,   // ColorEdit, ColorPicker: Disable inputs sliders/text widgets, show only the colored square. | ||||
|     ImGuiColorEditFlags_NoTooltip       = 1 << 10,  // ColorEdit, ColorButton: Disable tooltip when hovering the colored square. | ||||
|     ImGuiColorEditFlags_NoLabel         = 1 << 11,  // ColorEdit: Disable display of inline text label (the label is still used in tooltip and picker) | ||||
|     ImGuiColorEditFlags_NoAlpha         = 1 << 5,   // ColorEdit, ColorPicker, ColorButton: completely ignore Alpha component (read 3 components). | ||||
|     ImGuiColorEditFlags_NoAlphaPreview  = 1 << 6,   // ColorEdit, ColorPicker, ColorButton: do not display transparent colors over a checkerboard, always display the preview as opaque. | ||||
|     ImGuiColorEditFlags_NoPicker        = 1 << 7,   // ColorEdit: disable picker when clicking on colored square. | ||||
|     ImGuiColorEditFlags_NoOptions       = 1 << 8,   // ColorEdit: disable toggling options menu when right-clicking on colored square. | ||||
|     ImGuiColorEditFlags_NoColorSquare   = 1 << 9,   // ColorEdit, ColorPicker: disable colored square. | ||||
|     ImGuiColorEditFlags_NoInputs        = 1 << 10,  // ColorEdit, ColorPicker: disable inputs sliders/text widgets, show only the colored square. | ||||
|     ImGuiColorEditFlags_NoTooltip       = 1 << 11,  // ColorEdit, ColorButton: disable tooltip when hovering the colored square. | ||||
|     ImGuiColorEditFlags_NoLabel         = 1 << 12,  // ColorEdit, ColorPicker: disable display of inline text label (the label is still used in tooltip and picker). | ||||
|     ImGuiColorEditFlags_ModeMask_       = ImGuiColorEditFlags_RGB|ImGuiColorEditFlags_HSV|ImGuiColorEditFlags_HEX, | ||||
|     ImGuiColorEditFlags_StoredMask_     = ImGuiColorEditFlags_RGB|ImGuiColorEditFlags_HSV|ImGuiColorEditFlags_HEX|ImGuiColorEditFlags_Float | ||||
| }; | ||||
|   | ||||
| @@ -660,21 +660,27 @@ void ImGui::ShowTestWindow(bool* p_open) | ||||
|  | ||||
|         if (ImGui::TreeNode("Color/Picker Widgets")) | ||||
|         { | ||||
|             static ImVec4 color = ImColor(114, 144, 154); | ||||
|             static ImVec4 color = ImColor(114, 144, 154, 200); | ||||
|  | ||||
|             static bool alpha_preview = true; | ||||
|             ImGui::Checkbox("With Alpha Preview", &alpha_preview); | ||||
|  | ||||
|             ImGui::Text("Color widget:"); | ||||
|             ImGui::SameLine(); ShowHelpMarker("Click on the colored square to open a color picker.\nRight-click on the colored square to show options.\nCTRL+click on individual component to input value.\n"); | ||||
|             ImGui::ColorEdit3("MyColor##1", (float*)&color, ImGuiColorEditFlags_HSV); | ||||
|  | ||||
|             ImGui::Text("Color widget with Alpha:"); | ||||
|             ImGui::ColorEdit4("MyColor##2", (float*)&color); | ||||
|             ImGui::ColorEdit4("MyColor##2", (float*)&color, (alpha_preview ? 0 : ImGuiColorEditFlags_NoAlphaPreview)); | ||||
|  | ||||
|             ImGui::Text("Color widget with Float Display:"); | ||||
|             ImGui::ColorEdit4("MyColor##2f", (float*)&color, ImGuiColorEditFlags_Float); | ||||
|             ImGui::ColorEdit4("MyColor##2f", (float*)&color, ImGuiColorEditFlags_Float | (alpha_preview ? 0 : ImGuiColorEditFlags_NoAlphaPreview)); | ||||
|  | ||||
|             ImGui::Text("Color button with Picker:"); | ||||
|             ImGui::SameLine(); ShowHelpMarker("With the ImGuiColorEditFlags_NoInputs flag you can hide all the slider/text inputs.\nWith the ImGuiColorEditFlags_NoLabel flag you can pass a non-empty label which will only be used for the tooltip and picker popup."); | ||||
|             ImGui::ColorEdit4("MyColor##3", (float*)&color, ImGuiColorEditFlags_NoInputs|ImGuiColorEditFlags_NoLabel|(alpha_preview ? 0 : ImGuiColorEditFlags_NoAlphaPreview)); | ||||
|  | ||||
|             ImGui::Text("Color button only:"); | ||||
|             ImGui::SameLine(); ShowHelpMarker("With the ImGuiColorEditFlags_NoInputs flag you can hide all the slider/text inputs.\nWith the ImGuiColorEditFlags_NoLabel flag you can pass a non-empty label which will only be used for the tooltip and picker popup."); | ||||
|             ImGui::ColorEdit4("MyColor##3", (float*)&color, ImGuiColorEditFlags_NoInputs|ImGuiColorEditFlags_NoLabel); | ||||
|             ImGui::ColorButton("MyColor##3b", *(ImVec4*)&color, (alpha_preview ? 0 : ImGuiColorEditFlags_NoAlphaPreview), ImVec2(80,80)); | ||||
|  | ||||
|             ImGui::Text("Color picker:"); | ||||
|             static bool alpha = false; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user