X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fdialog_color.cpp;h=6953a75488338f6f7b1e2d9f669fc6a6114e92c0;hb=c09ee2ffb936c48edffbce2f86813a72592f724b;hp=de8f64d692a224fe4417a1259f3e4ccb88fa5262;hpb=ce408de81ca266b1f334ee9bc6c8fb7ba1492ed4;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/dialog_color.cpp b/synfig-studio/trunk/src/gtkmm/dialog_color.cpp index de8f64d..6953a75 100644 --- a/synfig-studio/trunk/src/gtkmm/dialog_color.cpp +++ b/synfig-studio/trunk/src/gtkmm/dialog_color.cpp @@ -1,8 +1,8 @@ /* === S Y N F I G ========================================================= */ -/*! \file dialog_gradient.cpp +/*! \file dialog_color.cpp ** \brief Template File ** -** $Id: dialog_color.cpp,v 1.1.1.1 2005/01/07 03:34:36 darco Exp $ +** $Id$ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley @@ -31,20 +31,13 @@ #include "dialog_color.h" #include "widget_color.h" -#include -#include -#include #include -#include -#include -#include "widget_color.h" -#include #include -#include -#include -#include +#include #include "app.h" +#include "general.h" + #endif /* === U S I N G =========================================================== */ @@ -63,39 +56,20 @@ using namespace studio; /* === M E T H O D S ======================================================= */ Dialog_Color::Dialog_Color(): - Dialog(_("Colors"),false,true), - dialog_settings(this,"color"), + Dialog(_("Colors"), false, true), + dialog_settings(this, "color"), busy_(false) -// adjustment_pos(0,0.0,1.0,0.001,0.001,0.001) { set_type_hint(Gdk::WINDOW_TYPE_HINT_UTILITY); - // Setup the buttons - //Gtk::Button *ok_button(manage(new class Gtk::Button(Gtk::StockID("gtk-ok")))); - //ok_button->show(); - //add_action_widget(*ok_button,2); - //ok_button->signal_clicked().connect(sigc::mem_fun(*this, &Dialog_Color::on_ok_pressed)); - - //Gtk::Button *apply_button(manage(new class Gtk::Button(Gtk::StockID("gtk-apply")))); - //apply_button->show(); - //add_action_widget(*apply_button,1); - //apply_button->signal_clicked().connect(sigc::mem_fun(*this, &Dialog_Color::on_apply_pressed)); - - Gtk::Button *cancel_button(manage(new class Gtk::Button(Gtk::StockID("gtk-close")))); - cancel_button->show(); - add_action_widget(*cancel_button,0); - cancel_button->signal_clicked().connect(sigc::hide_return(sigc::mem_fun(*this, &Dialog_Color::on_close_pressed))); - signal_delete_event().connect(sigc::hide(sigc::mem_fun(*this, &Dialog_Color::on_close_pressed))); - - Gtk::Table* table(manage(new Gtk::Table(2,2,false))); - get_vbox()->pack_start(*table); - - widget_color=manage(new Widget_ColorEdit()); - widget_color->signal_value_changed().connect(sigc::mem_fun(*this,&studio::Dialog_Color::on_color_changed)); - //widget_color->signal_activate().connect(sigc::mem_fun(*this,&studio::Dialog_Color::on_color_changed)); - table->attach(*widget_color, 0, 1, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0); - add_accel_group(App::ui_manager()->get_accel_group()); + create_color_edit_widget(); + create_set_color_button("synfig-set_outline_color", _("Set as Outline"), 0, + sigc::mem_fun(*this, &Dialog_Color::on_set_oc_pressed)); + create_set_color_button("synfig-set_fill_color", _("Set as Fill"), 1, + sigc::mem_fun(*this, &Dialog_Color::on_set_fc_pressed)); + create_close_button(); + add_accel_group(App::ui_manager()->get_accel_group()); show_all_children(); } @@ -104,34 +78,78 @@ Dialog_Color::~Dialog_Color() } void -Dialog_Color::reset() +Dialog_Color::create_color_edit_widget() { - signal_edited_.clear(); + color_edit_widget = manage(new Widget_ColorEdit()); + color_edit_widget->signal_value_changed().connect(sigc::mem_fun(*this, + &studio::Dialog_Color::on_color_changed)); + get_vbox()->pack_start(*color_edit_widget); } -bool -Dialog_Color::on_close_pressed() +void +Dialog_Color::create_set_color_button(const char *stock_id, + const Glib::ustring& tip_text, int index, + const sigc::slot0& callback) { -// signal_edited_(get_color()); - busy_=false; - grab_focus(); - reset(); - hide(); - return true; + Gtk::Button *set_color_button = manage(new Gtk::Button()); + Gtk::Image *set_color_icon = manage(new Gtk::Image(Gtk::StockID(stock_id), + Gtk::IconSize::IconSize(Gtk::ICON_SIZE_BUTTON))); + set_color_button->add(*set_color_icon); + set_color_icon->show(); + tooltips.set_tip(*set_color_button, tip_text); + set_color_button->show(); + add_action_widget(*set_color_button, index); + set_color_button->signal_clicked().connect(callback); } void -Dialog_Color::on_apply_pressed() +Dialog_Color::create_close_button() { - busy_=true; - signal_edited_(get_color()); - busy_=false; + Gtk::Button *close_button(manage(new Gtk::Button(Gtk::StockID("gtk-close")))); + close_button->show(); + add_action_widget(*close_button, 2); + close_button->signal_clicked().connect(sigc::hide_return(sigc::mem_fun(*this, + &Dialog_Color::on_close_pressed))); + signal_delete_event().connect(sigc::hide(sigc::mem_fun(*this, + &Dialog_Color::on_close_pressed))); } void Dialog_Color::on_color_changed() { - busy_=true; + busy_ = true; signal_edited_(get_color()); - busy_=false; + busy_ = false; +} + +void +Dialog_Color::on_set_oc_pressed() +{ + busy_ = true; + synfigapp::Main::set_outline_color(get_color()); + busy_ = false; +} + +void +Dialog_Color::on_set_fc_pressed() +{ + busy_ = true; + synfigapp::Main::set_fill_color(get_color()); + busy_ = false; +} + +bool +Dialog_Color::on_close_pressed() +{ + busy_ = false; + grab_focus(); + reset(); + hide(); + return true; +} + +void +Dialog_Color::reset() +{ + signal_edited_.clear(); }