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;
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
gtk_window_set_keep_above( GTK_WINDOW(dialog), TRUE );
static int x = 0, y = 0;

View File

@@ -985,16 +985,16 @@ void ImGuiVisitor::visit (AlphaFilter& f)
static DialogToolkit::ColorPickerDialog colordialog;
// 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
ImGui::ColorButton("##colorchromakey", *(ImVec4*)&color );
ImGui::ColorEdit3("Chromakey Color", color, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoLabel) ;
// offer to pick color
ImGui::SameLine(0, IMGUI_SAME_LINE);
ImGui::SetNextItemWidth(IMGUI_RIGHT_ALIGN);
if ( ImGui::Button( ICON_FA_EYE_DROPPER " Pick", ImVec2(IMGUI_RIGHT_ALIGN, 0)) ){
colordialog.setRGB( std::make_tuple(color.x, color.y, color.z) );
if ( ImGui::Button( ICON_FA_EYE_DROPPER " Open selector", ImVec2(IMGUI_RIGHT_ALIGN, 0)) ){
colordialog.setRGB( std::make_tuple(color[0], color[1], color[2]) );
colordialog.open();
}
ImGui::SameLine(0, IMGUI_SAME_LINE);