add_action_widget(*cancel_button,0);
cancel_button->signal_clicked().connect(sigc::mem_fun(*this, &Dialog_Gradient::hide));
- Gtk::Table* table(manage(new Gtk::Table(2,2,false)));
+ set_border_width(12);
+ Gtk::Table* table(manage(new Gtk::Table(3,1,false)));
+ table->set_col_spacings(12);
+ table->set_row_spacings(12);
get_vbox()->pack_start(*table);
widget_gradient=manage(new Widget_Gradient());
//table->attach(*manage(new Gtk::Label(_("Not yet fully implemented"))), 0, 1, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
table->attach(*widget_gradient, 0, 1, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
- widget_color=manage(new Widget_ColorEdit());
- widget_color->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Dialog_Gradient::on_values_adjusted));
- widget_color->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Dialog_Gradient::on_changed));
- widget_color->signal_activated().connect(sigc::mem_fun(*this,&studio::Dialog_Gradient::on_values_adjusted));
+ widget_color=manage(new Gtk::ColorSelection());
+ widget_color->set_has_opacity_control(true);
+ widget_color->signal_color_changed().connect(sigc::mem_fun(*this,&studio::Dialog_Gradient::on_values_adjusted));
+ widget_color->signal_color_changed().connect(sigc::mem_fun(*this,&studio::Dialog_Gradient::on_changed));
+ //widget_color->signal_activated().connect(sigc::mem_fun(*this,&studio::Dialog_Gradient::on_values_adjusted));
table->attach(*widget_color, 0, 1, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
void
Dialog_Gradient::on_cpoint_selected(synfig::Gradient::CPoint x)
{
- widget_color->set_value(x.color);
+ widget_color->set_current_color(studio::colorconv_synfig2gdk(x.color));
+ widget_color->set_current_alpha(x.color.get_a() * 65535);
adjustment_pos.set_value(x.pos);
}
Dialog_Gradient::on_values_adjusted()
{
synfig::Gradient::CPoint x(widget_gradient->get_selected_cpoint());
- x.color=widget_color->get_value();
+ x.color=studio::colorconv_gdk2synfig(widget_color->get_current_color(), widget_color->get_current_alpha() / 65535.0);
x.pos=adjustment_pos.get_value();
widget_gradient->update_cpoint(x);
}