00001 #ifndef IONFLUX_TOOLS_CAIRO_GRADIENT
00002 #define IONFLUX_TOOLS_CAIRO_GRADIENT
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #include "ionflux/color.hpp"
00030 #include "ionflux/CairoPattern.hpp"
00031
00032 namespace Ionflux
00033 {
00034
00035 namespace Tools
00036 {
00037
00038 namespace Cairo
00039 {
00040
00049 class Gradient
00050 : public Pattern
00051 {
00052 private:
00053
00054 protected:
00055
00056 public:
00061 Gradient();
00062
00069 Gradient(const Gradient& initGradient);
00070
00077 Gradient(cairo_pattern_t* initGradient);
00078
00083 virtual ~Gradient();
00084
00094 virtual void addColorStopRgb(double offset, double red, double green,
00095 double blue);
00096
00107 virtual void addColorStopRgba(double offset, double red, double green,
00108 double blue, double alpha);
00109
00117 virtual void addColorStop(double offset, const Ionflux::Tools::Color&
00118 color);
00119
00128 virtual Gradient& operator=(const Gradient& newCairoPattern);
00129
00138 virtual Gradient& operator=(cairo_pattern_t* newCairoPattern);
00139 };
00140
00141 }
00142
00143 }
00144
00145 }
00146
00150 #endif