X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftags%2Fsynfigstudio_0_61_03%2Fsynfig-studio%2Fsrc%2Fgtkmm%2Fwidget_gradient.h;fp=synfig-studio%2Ftags%2Fsynfigstudio_0_61_03%2Fsynfig-studio%2Fsrc%2Fgtkmm%2Fwidget_gradient.h;h=4215bbbefece81a63c9dac773b5d3e9e75bf57c5;hb=da707947f2c5d17050f34debe532902971af6f60;hp=0000000000000000000000000000000000000000;hpb=761e5fbff7ec410ef90050e3125dd21cf11182a9;p=synfig.git diff --git a/synfig-studio/tags/synfigstudio_0_61_03/synfig-studio/src/gtkmm/widget_gradient.h b/synfig-studio/tags/synfigstudio_0_61_03/synfig-studio/src/gtkmm/widget_gradient.h new file mode 100644 index 0000000..4215bbb --- /dev/null +++ b/synfig-studio/tags/synfigstudio_0_61_03/synfig-studio/src/gtkmm/widget_gradient.h @@ -0,0 +1,102 @@ +/* === S Y N F I G ========================================================= */ +/*! \file widget_gradient.h +** \brief Template Header +** +** $Id: widget_gradient.h,v 1.1.1.1 2005/01/07 03:34:37 darco Exp $ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_STUDIO_WIDGET_GRADIENT_H +#define __SYNFIG_STUDIO_WIDGET_GRADIENT_H + +/* === H E A D E R S ======================================================= */ + +#include +#include + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace studio { + +void render_gradient_to_window(const Glib::RefPtr& window,const Gdk::Rectangle& ca,const synfig::Gradient &gradient); + +class Widget_Gradient : public Gtk::DrawingArea +{ + sigc::signal signal_value_changed_; + sigc::signal signal_clicked_; + + sigc::signal signal_cpoint_selected_; + + synfig::Gradient gradient_; + + bool editable_; + + bool changed_; + + synfig::Gradient::CPoint selected_cpoint; + + void popup_menu(float x); + + void insert_cpoint(float x); + + void remove_cpoint(float x); + +public: + + Widget_Gradient(); + + ~Widget_Gradient(); + + sigc::signal& signal_value_changed() { return signal_value_changed_; } + sigc::signal& signal_clicked() { return signal_clicked_; } + + sigc::signal& signal_cpoint_selected() { return signal_cpoint_selected_; } + + void set_value(const synfig::Gradient& x); + + const synfig::Gradient& get_value()const { return gradient_; } + + void set_editable(bool x=true) { editable_=x; } + + bool get_editable()const { return editable_; } + + + + void set_selected_cpoint(const synfig::Gradient::CPoint &x); + + const synfig::Gradient::CPoint& get_selected_cpoint() { return selected_cpoint; } + + void update_cpoint(const synfig::Gradient::CPoint &x); + + + + bool redraw(GdkEventExpose*bleh=NULL); + + bool on_event(GdkEvent *event); +}; // END of class BlackLevelSelector + +}; // END of namespace studio + +/* === E N D =============================================================== */ + +#endif