Improved UI for Color Picker

This commit is contained in:
Bruno Herbelin
2023-02-21 11:46:56 +01:00
parent f5df923c51
commit 0670550521
2 changed files with 8 additions and 4 deletions

View File

@@ -682,6 +682,10 @@ std::tuple<float, float, float> openColorDialog( std::tuple<float, float, float>
color.alpha = 1.f; color.alpha = 1.f;
gtk_color_chooser_set_rgba( GTK_COLOR_CHOOSER(dialog), &color ); gtk_color_chooser_set_rgba( GTK_COLOR_CHOOSER(dialog), &color );
// no alpha, with editor for picking color
gtk_color_chooser_set_use_alpha( GTK_COLOR_CHOOSER(dialog), false);
g_object_set( GTK_WINDOW(dialog), "show-editor", TRUE, NULL );
// prepare dialog // prepare dialog
gtk_window_set_keep_above( GTK_WINDOW(dialog), TRUE ); gtk_window_set_keep_above( GTK_WINDOW(dialog), TRUE );
static int x = 0, y = 0; static int x = 0, y = 0;

View File

@@ -985,16 +985,16 @@ void ImGuiVisitor::visit (AlphaFilter& f)
static DialogToolkit::ColorPickerDialog colordialog; static DialogToolkit::ColorPickerDialog colordialog;
// read color from filter // read color from filter
ImVec4 color = ImVec4(filter_parameters["Red"], filter_parameters["Green"], filter_parameters["Blue"], 1.f); float color[3] = {filter_parameters["Red"], filter_parameters["Green"], filter_parameters["Blue"]};
// show color // show color
ImGui::ColorButton("##colorchromakey", *(ImVec4*)&color ); ImGui::ColorEdit3("Chromakey Color", color, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoLabel) ;
// offer to pick color // offer to pick color
ImGui::SameLine(0, IMGUI_SAME_LINE); ImGui::SameLine(0, IMGUI_SAME_LINE);
ImGui::SetNextItemWidth(IMGUI_RIGHT_ALIGN); ImGui::SetNextItemWidth(IMGUI_RIGHT_ALIGN);
if ( ImGui::Button( ICON_FA_EYE_DROPPER " Pick", ImVec2(IMGUI_RIGHT_ALIGN, 0)) ){ if ( ImGui::Button( ICON_FA_EYE_DROPPER " Open selector", ImVec2(IMGUI_RIGHT_ALIGN, 0)) ){
colordialog.setRGB( std::make_tuple(color.x, color.y, color.z) ); colordialog.setRGB( std::make_tuple(color[0], color[1], color[2]) );
colordialog.open(); colordialog.open();
} }
ImGui::SameLine(0, IMGUI_SAME_LINE); ImGui::SameLine(0, IMGUI_SAME_LINE);