00001
00021
00022
00023
00024
00025 #ifndef __SYNFIG_STUDIO_DIALOG_GRADIENT_H
00026 #define __SYNFIG_STUDIO_DIALOG_GRADIENT_H
00027
00028
00029
00030 #include <gtk/gtk.h>
00031 #include <gtkmm/adjustment.h>
00032 #include <gtkmm/table.h>
00033 #include <gtkmm/button.h>
00034 #include <gtkmm/dialog.h>
00035 #include <gtkmm/drawingarea.h>
00036 #include <gtkmm/optionmenu.h>
00037 #include <gtkmm/checkbutton.h>
00038
00039 #include <synfig/gamma.h>
00040 #include <synfig/time.h>
00041
00042 #include "widget_gradient.h"
00043 #include "widget_coloredit.h"
00044
00045 #include <synfigapp/value_desc.h>
00046 #include <synfig/time.h>
00047
00048 #include "dialogsettings.h"
00049
00050
00051
00052
00053
00054
00055
00056 namespace Gtk { class Menu; class SpinButton; class Adjustment; };
00057
00058 namespace synfigapp {
00059 class CanvasInterface;
00060 };
00061
00062 namespace studio {
00063
00064 class Widget_Gradient;
00065 class Widget_ColorEdit;
00066
00067 class Dialog_Gradient : public Gtk::Dialog
00068 {
00069 DialogSettings dialog_settings;
00070
00071 Gtk::SpinButton *spinbutton_pos;
00072
00073 Gtk::Adjustment adjustment_pos;
00074
00075
00076 sigc::signal<void,synfig::Gradient> signal_edited_;
00077
00078 sigc::connection value_changed_connection;
00079
00080 void on_ok_pressed();
00081 void on_apply_pressed();
00082 void on_grab_pressed();
00083
00084 void on_cpoint_selected(synfig::Gradient::CPoint x);
00085 void on_values_adjusted();
00086
00087 Widget_Gradient* widget_gradient;
00088 Widget_ColorEdit* widget_color;
00089 Gtk::Button *grab_button;
00090
00091 void on_changed();
00092
00093 public:
00094
00095 sigc::signal<void,synfig::Gradient>& signal_edited() { return signal_edited_; }
00096
00097 void set_gradient(const synfig::Gradient& x);
00098
00099 const synfig::Gradient& get_gradient()const { return widget_gradient->get_value(); }
00100
00101 void grab_button_set_sensitive(bool sensitive) { grab_button->set_sensitive(sensitive); }
00102
00103 void reset();
00104
00105
00106 Dialog_Gradient();
00107 ~Dialog_Gradient();
00110 void edit(const synfigapp::ValueDesc &x, etl::handle<synfigapp::CanvasInterface> canvas_interface, synfig::Time time=0);
00111 };
00112
00113 };
00114
00115
00116
00117 #endif