Prevent compiler warnings about unused parameters.
[synfig.git] / synfig-studio / trunk / src / gtkmm / widget_coloredit.cpp
index 282c493..ac85260 100644 (file)
@@ -2,7 +2,7 @@
 /*!    \file widget_coloredit.cpp
 **     \brief Template File
 **
-**     $Id: widget_coloredit.cpp,v 1.1.1.1 2005/01/07 03:34:37 darco Exp $
+**     $Id$
 **
 **     \legal
 **     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
@@ -114,7 +114,7 @@ ColorSlider::adjust_color(Type type, Color &color, float amount)
 }
 
 bool
-ColorSlider::redraw(GdkEventExpose*bleh)
+ColorSlider::redraw(GdkEventExpose */*bleh*/)
 {
        Color color(color_);
 
@@ -343,6 +343,17 @@ Widget_ColorEdit::Widget_ColorEdit():
                ATTACH_SPIN_BUTTON(1,G);
                SLIDER_ROW(2,B,_("Blue"));
                ATTACH_SPIN_BUTTON(2,B);
+
+               hex_color_label = manage(new Gtk::Label(_("HTML code"), 0.0, 0.5));
+               hex_color_label->set_use_markup(false);
+               hex_color_label->set_use_underline(false);
+               hex_color_label->set_attributes(attr_list);
+               table->attach(*hex_color_label, 0, 1, 7, 8, Gtk::SHRINK, Gtk::SHRINK, 0, 0);
+
+               hex_color = manage(new Gtk::Entry());
+               hex_color->set_width_chars(8);
+               hex_color->signal_activate().connect(sigc::mem_fun(*this,&studio::Widget_ColorEdit::on_hex_edited));
+               table->attach(*hex_color, 0, 1, 8, 9, Gtk::SHRINK, Gtk::SHRINK, 0, 0);
        }
        {
                Gtk::Table* table(yuv_table);
@@ -408,6 +419,16 @@ Widget_ColorEdit::on_slider_moved(ColorSlider::Type type, float amount)
 }
 
 void
+Widget_ColorEdit::on_hex_edited()
+{
+       Color color(get_value_raw());
+       String s = hex_color->get_text();
+       color.set_hex(s);
+       set_value(color);
+       signal_value_changed_();
+}
+
+void
 Widget_ColorEdit::on_value_changed()
 {
        if(hold_signals)
@@ -424,6 +445,7 @@ Widget_ColorEdit::on_value_changed()
        slider_HUE->set_color(color);
        slider_SAT->set_color(color);
        slider_A->set_color(color);
+       hex_color->set_text(color.get_hex());
        widget_color.set_value(color);
 
        activate();
@@ -488,6 +510,7 @@ Widget_ColorEdit::set_value(const synfig::Color &data)
        slider_HUE->set_color(color);
        slider_SAT->set_color(color);
        slider_A->set_color(color);
+       hex_color->set_text(color.get_hex());
        widget_color.set_value(color);
 
        hold_signals=false;
@@ -502,14 +525,12 @@ Widget_ColorEdit::get_value_raw()
                color.set_r(gamma_out(R_adjustment.get_value()/100.0f));
                color.set_g(gamma_out(G_adjustment.get_value()/100.0f));
                color.set_b(gamma_out(B_adjustment.get_value()/100.0f));
-               assert(color.is_valid());
        }
        else
        {
                color.set_r(R_adjustment.get_value()/100);
                color.set_g(G_adjustment.get_value()/100);
                color.set_b(B_adjustment.get_value()/100);
-               assert(color.is_valid());
        }
        color.set_a(A_adjustment.get_value()/100);
        assert(color.is_valid());