Remove .gitignore do nothing is ignored.
[synfig.git] / synfig-studio / trunk / src / gtkmm / widget_defaults.cpp
index 9f8cb7e..e672b8f 100644 (file)
@@ -6,6 +6,8 @@
 **
 **     \legal
 **     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+**  Copyright (c) 2008 Chris Moore
+**  Copyright (c) 2008 Carlos López
 **
 **     This package is free software; you can redistribute it and/or
 **     modify it under the terms of the GNU General Public License as
@@ -43,6 +45,8 @@
 #include "widget_distance.h"
 #include "widget_enum.h"
 
+#include "general.h"
+
 #endif
 
 /* === U S I N G =========================================================== */
@@ -71,14 +75,14 @@ public:
                add_events(Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK);
                add_events(Gdk::BUTTON1_MOTION_MASK);
 
-               synfigapp::Main::signal_foreground_color_changed().connect(sigc::mem_fun(*this,&studio::Widget_Brush::queue_draw));
-               synfigapp::Main::signal_background_color_changed().connect(sigc::mem_fun(*this,&studio::Widget_Brush::queue_draw));
+               synfigapp::Main::signal_outline_color_changed().connect(sigc::mem_fun(*this,&studio::Widget_Brush::queue_draw));
+               synfigapp::Main::signal_fill_color_changed().connect(sigc::mem_fun(*this,&studio::Widget_Brush::queue_draw));
                synfigapp::Main::signal_bline_width_changed().connect(sigc::mem_fun(*this,&studio::Widget_Brush::queue_draw));
                studio::App::signal_instance_selected().connect(sigc::hide(sigc::mem_fun(*this,&studio::Widget_Brush::queue_draw)));
        }
 
        bool
-       redraw(GdkEventExpose*bleh)
+       redraw(GdkEventExpose */*bleh*/)
        {
                Glib::RefPtr<Gdk::GC> gc(Gdk::GC::create(get_window()));
 
@@ -96,11 +100,11 @@ public:
                        RendDesc rend_desc;
                        pixelsize=synfigapp::Main::get_bline_width().get(Distance::SYSTEM_PIXELS,rend_desc);
                }
-               // Fill in the background color
-               render_color_to_window(get_window(),Gdk::Rectangle(0,0,w,h),synfigapp::Main::get_background_color());
+               // Fill in the fill color
+               render_color_to_window(get_window(),Gdk::Rectangle(0,0,w,h),synfigapp::Main::get_fill_color());
 
 /*
-               gc->set_rgb_fg_color(colorconv_synfig2gdk(synfigapp::Main::get_background_color()));
+               gc->set_rgb_fg_color(colorconv_synfig2gdk(synfigapp::Main::get_fill_color()));
                gc->set_line_attributes(1,Gdk::LINE_SOLID,Gdk::CAP_BUTT,Gdk::JOIN_MITER);
                get_window()->draw_rectangle(
                        gc,
@@ -111,7 +115,7 @@ public:
 */
 
                // Draw in the circle
-               gc->set_rgb_fg_color(colorconv_synfig2gdk(synfigapp::Main::get_foreground_color()));
+               gc->set_rgb_fg_color(colorconv_synfig2gdk(synfigapp::Main::get_outline_color()));
                gc->set_function(Gdk::COPY);
                gc->set_line_attributes(1,Gdk::LINE_SOLID,Gdk::CAP_BUTT,Gdk::JOIN_MITER);
                get_window()->draw_arc(
@@ -168,13 +172,15 @@ public:
                                {
                                        Distance dist(synfigapp::Main::get_bline_width());
 
-                                       if(event->scroll.direction==GDK_SCROLL_UP)
-                                       {
-                                               dist+=DEFAULT_INCREMENT;
-                                       }
-                                       else if(event->scroll.direction==GDK_SCROLL_DOWN)
-                                       {
-                                               dist-=DEFAULT_INCREMENT;
+                                       switch(event->scroll.direction){
+                                               case GDK_SCROLL_UP:
+                                               case GDK_SCROLL_RIGHT:
+                                                       dist+=DEFAULT_INCREMENT;
+                                               break;
+                                               case GDK_SCROLL_DOWN:
+                                               case GDK_SCROLL_LEFT:
+                                                       dist-=DEFAULT_INCREMENT;
+                                               break;
                                        }
                                        synfigapp::Main::set_bline_width(dist);
                                        return true;
@@ -200,21 +206,21 @@ Widget_Defaults::Widget_Defaults()
        {
                Gtk::Table* subtable(manage(new Gtk::Table()));
 
-               // Foreground Color
-               widget_fg_color=manage(new Widget_Color());
-               widget_fg_color->show();
-               widget_fg_color->set_size_request(16,16);
-               widget_fg_color->signal_clicked().connect(sigc::mem_fun(*this,&Widget_Defaults::on_fg_color_clicked));
-               subtable->attach(*widget_fg_color, 0, 2, 0, 2, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
-               tooltips_.set_tip(*widget_fg_color,_("Foreground Color"));
-
-               // Background Color
-               widget_bg_color=manage(new Widget_Color());
-               widget_bg_color->show();
-               widget_bg_color->set_size_request(16,16);
-               widget_bg_color->signal_clicked().connect(sigc::mem_fun(*this,&Widget_Defaults::on_bg_color_clicked));
-               subtable->attach(*widget_bg_color, 1, 3, 1, 3, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
-               tooltips_.set_tip(*widget_bg_color,_("Background Color"));
+               // Outline Color
+               widget_otln_color=manage(new Widget_Color());
+               widget_otln_color->show();
+               widget_otln_color->set_size_request(16,16);
+               widget_otln_color->signal_clicked().connect(sigc::mem_fun(*this,&Widget_Defaults::on_otln_color_clicked));
+               subtable->attach(*widget_otln_color, 0, 4, 0, 4, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
+               tooltips_.set_tip(*widget_otln_color,_("Outline Color"));
+
+               // Fill Color
+               widget_fill_color=manage(new Widget_Color());
+               widget_fill_color->show();
+               widget_fill_color->set_size_request(16,16);
+               widget_fill_color->signal_clicked().connect(sigc::mem_fun(*this,&Widget_Defaults::on_fill_color_clicked));
+               subtable->attach(*widget_fill_color, 3, 7, 3, 7, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
+               tooltips_.set_tip(*widget_fill_color,_("Fill Color"));
 
                Gtk::Image* icon;
 
@@ -230,18 +236,21 @@ Widget_Defaults::Widget_Defaults()
                //button_swap->set_size_request(16/3,16/3);
                dynamic_cast<Gtk::Misc*>(button_swap->get_child())->set_padding(0,0);
                button_swap->signal_clicked().connect(sigc::mem_fun(*this,&Widget_Defaults::on_swap_color_clicked));
-               subtable->attach(*button_swap, 2, 3, 0, 1, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0);
-               tooltips_.set_tip(*button_swap,_("Swap Background and\nForeground Colors"));
+               subtable->attach(*button_swap, 4, 7, 0, 3, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0);
+               tooltips_.set_tip(*button_swap,_("Swap Fill and\nOutline Colors"));
 
                // Reset button
-               Gtk::Button* button_reset(manage(new Gtk::Button("R")));
+               Gtk::Button* button_reset(manage(new Gtk::Button()));
                button_reset->show();
                button_reset->set_relief(Gtk::RELIEF_NONE);
                button_reset->set_border_width(0);
+               icon=manage(new Gtk::Image(Gtk::StockID("synfig-reset_colors"),Gtk::IconSize(1)));
+               icon->show();
+               button_reset->add(*icon);
                dynamic_cast<Gtk::Misc*>(button_reset->get_child())->set_padding(0,0);
                //button_reset->set_size_request(16/3,16/3);
                button_reset->signal_clicked().connect(sigc::mem_fun(*this,&Widget_Defaults::on_reset_color_clicked));
-               subtable->attach(*button_reset, 0,1, 2, 3, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0);
+               subtable->attach(*button_reset, 0, 3, 4, 7, Gtk::SHRINK|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 0, 0);
                tooltips_.set_tip(*button_reset,_("Reset Colors to Black and White"));
 
 
@@ -280,10 +289,10 @@ Widget_Defaults::Widget_Defaults()
        widget_interpolation->set_param_desc(
                ParamDesc("interpolation")
                        .set_hint("enum")
-                       .add_enum_value(INTERPOLATION_TCB,"auto",_("TCB"))
-                       .add_enum_value(INTERPOLATION_CONSTANT,"constant",_("Constant"))
-                       .add_enum_value(INTERPOLATION_HALT,"ease",_("Ease in/out"))
-                       .add_enum_value(INTERPOLATION_LINEAR,"linear",_("Linear"))
+                       .add_enum_value(INTERPOLATION_TCB,"auto",_("_TCB"))
+                       .add_enum_value(INTERPOLATION_CONSTANT,"constant",_("_Constant"))
+                       .add_enum_value(INTERPOLATION_HALT,"ease",_("_Ease In/Out"))
+                       .add_enum_value(INTERPOLATION_LINEAR,"linear",_("_Linear"))
        );
        attach(*widget_interpolation,0, 2, 5, 6, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, 1, 1);
        tooltips_.set_tip(*widget_interpolation,_("Default Interpolation"));
@@ -307,14 +316,14 @@ Widget_Defaults::Widget_Defaults()
        // Signals
        synfigapp::Main::signal_opacity_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::opacity_refresh));
        synfigapp::Main::signal_bline_width_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::bline_width_refresh));
-       synfigapp::Main::signal_foreground_color_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::fg_color_refresh));
-       synfigapp::Main::signal_background_color_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::bg_color_refresh));
+       synfigapp::Main::signal_outline_color_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::otln_color_refresh));
+       synfigapp::Main::signal_fill_color_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::fill_color_refresh));
        synfigapp::Main::signal_gradient_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::gradient_refresh));
        synfigapp::Main::signal_blend_method_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::blend_method_refresh));
        synfigapp::Main::signal_interpolation_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::interpolation_refresh));
 
-       fg_color_refresh();
-       bg_color_refresh();
+       otln_color_refresh();
+       fill_color_refresh();
        gradient_refresh();
        blend_method_refresh();
        opacity_refresh();
@@ -325,8 +334,8 @@ Widget_Defaults::Widget_Defaults()
        add_events(Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK);
        add_events(Gdk::BUTTON1_MOTION_MASK);
 
-       synfigapp::Main::signal_foreground_color_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::queue_draw));
-       synfigapp::Main::signal_background_color_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::queue_draw));
+       synfigapp::Main::signal_outline_color_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::queue_draw));
+       synfigapp::Main::signal_fill_color_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::queue_draw));
        synfigapp::Main::signal_gradient_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::queue_draw));
        synfigapp::Main::signal_bline_width_changed().connect(sigc::mem_fun(*this,&studio::Widget_Defaults::queue_draw));
 
@@ -339,9 +348,9 @@ Widget_Defaults::Widget_Defaults()
 
        if(App::dialog_color)
        {
-               App::dialog_color->set_color(synfigapp::Main::get_foreground_color());
+               App::dialog_color->set_color(synfigapp::Main::get_outline_color());
                App::dialog_color->reset();
-               App::dialog_color->signal_edited().connect(sigc::mem_fun(synfigapp::Main::set_foreground_color));
+               App::dialog_color->signal_edited().connect(sigc::mem_fun(synfigapp::Main::set_outline_color));
        }
 */
 }
@@ -351,15 +360,15 @@ Widget_Defaults::~Widget_Defaults()
 }
 
 void
-Widget_Defaults::fg_color_refresh()
+Widget_Defaults::otln_color_refresh()
 {
-       widget_fg_color->set_value(synfigapp::Main::get_foreground_color());
+       widget_otln_color->set_value(synfigapp::Main::get_outline_color());
 }
 
 void
-Widget_Defaults::bg_color_refresh()
+Widget_Defaults::fill_color_refresh()
 {
-       widget_bg_color->set_value(synfigapp::Main::get_background_color());
+       widget_fill_color->set_value(synfigapp::Main::get_fill_color());
 }
 
 void
@@ -417,22 +426,22 @@ Widget_Defaults::on_bline_width_changed()
 }
 
 void
-Widget_Defaults::on_fg_color_clicked()
+Widget_Defaults::on_otln_color_clicked()
 {
-       // Left click on foreground
-       App::dialog_color->set_color(synfigapp::Main::get_foreground_color());
+       // Left click on outline color
+       App::dialog_color->set_color(synfigapp::Main::get_outline_color());
        App::dialog_color->reset();
-       App::dialog_color->signal_edited().connect(sigc::ptr_fun(synfigapp::Main::set_foreground_color));
+       App::dialog_color->signal_edited().connect(sigc::ptr_fun(synfigapp::Main::set_outline_color));
        App::dialog_color->present();
 }
 
 void
-Widget_Defaults::on_bg_color_clicked()
+Widget_Defaults::on_fill_color_clicked()
 {
-       // Left click on background
-       App::dialog_color->set_color(synfigapp::Main::get_background_color());
+       // Left click on fill color
+       App::dialog_color->set_color(synfigapp::Main::get_fill_color());
        App::dialog_color->reset();
-       App::dialog_color->signal_edited().connect(sigc::ptr_fun(synfigapp::Main::set_background_color));
+       App::dialog_color->signal_edited().connect(sigc::ptr_fun(synfigapp::Main::set_fill_color));
        App::dialog_color->present();
 }
 
@@ -445,8 +454,8 @@ Widget_Defaults::on_swap_color_clicked()
 void
 Widget_Defaults::on_reset_color_clicked()
 {
-       synfigapp::Main::set_background_color(Color::white());
-       synfigapp::Main::set_foreground_color(Color::black());
+       synfigapp::Main::set_fill_color(Color::white());
+       synfigapp::Main::set_outline_color(Color::black());
 }
 
 void
@@ -455,6 +464,7 @@ Widget_Defaults::on_gradient_clicked()
        App::dialog_gradient->set_gradient(synfigapp::Main::get_gradient());
        App::dialog_gradient->reset();
        App::dialog_gradient->signal_edited().connect(sigc::ptr_fun(synfigapp::Main::set_gradient));
+       App::dialog_gradient->grab_button_set_sensitive(false);
        App::dialog_gradient->present();
 }
 
@@ -468,8 +478,8 @@ Widget_Defaults::redraw(GdkEventExpose*bleh)
        const int w(get_width());
        const int size=std::min(h-GRADIENT_HEIGHT,w);
 
-       render_color_to_window(get_window(),Gdk::Rectangle(size/4,size/4,size/4*3-1,size/4*3-1),synfigapp::Main::get_background_color());
-       render_color_to_window(get_window(),Gdk::Rectangle(0,0,size/4*3-1,size/4*3-1),synfigapp::Main::get_foreground_color());
+       render_color_to_window(get_window(),Gdk::Rectangle(size/4,size/4,size/4*3-1,size/4*3-1),synfigapp::Main::get_fill_color());
+       render_color_to_window(get_window(),Gdk::Rectangle(0,0,size/4*3-1,size/4*3-1),synfigapp::Main::get_outline_color());
        render_gradient_to_window(get_window(),Gdk::Rectangle(0,h-GRADIENT_HEIGHT,w,GRADIENT_HEIGHT-1),synfigapp::Main::get_gradient());
 
 
@@ -520,19 +530,19 @@ Widget_Defaults::on_event(GdkEvent *event)
                        {
                                if(x<size*3/4 && y<size*3/4)
                                {
-                                       // Left click on foreground
-                                       App::dialog_color->set_color(synfigapp::Main::get_foreground_color());
+                                       // Left click on outline coloe
+                                       App::dialog_color->set_color(synfigapp::Main::get_outline_color());
                                        App::dialog_color->reset();
-                                       App::dialog_color->signal_edited().connect(sigc::mem_fun(synfigapp::Main::set_foreground_color));
+                                       App::dialog_color->signal_edited().connect(sigc::mem_fun(synfigapp::Main::set_outline_color));
                                        App::dialog_color->present();
                                        return true;
                                }
                                if(x>size*3/4 && y>size/4)
                                {
-                                       // Left click on background
-                                       App::dialog_color->set_color(synfigapp::Main::get_background_color());
+                                       // Left click on fill color
+                                       App::dialog_color->set_color(synfigapp::Main::get_fill_color());
                                        App::dialog_color->reset();
-                                       App::dialog_color->signal_edited().connect(sigc::mem_fun(synfigapp::Main::set_background_color));
+                                       App::dialog_color->signal_edited().connect(sigc::mem_fun(synfigapp::Main::set_fill_color));
                                        App::dialog_color->present();
                                        return true;
                                }