00001 #ifndef IONFLUX_TOOLS_CAIRO_PATTERN
00002 #define IONFLUX_TOOLS_CAIRO_PATTERN
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 "cairo.h"
00030 #include "ionflux/ManagedObject.hpp"
00031 #include "ionflux/CairoMatrix.hpp"
00032
00033 namespace Ionflux
00034 {
00035
00036 namespace Tools
00037 {
00038
00039 namespace Cairo
00040 {
00041
00050 class Pattern
00051 : public Ionflux::Tools::ManagedObject
00052 {
00053 private:
00054
00055 protected:
00057 cairo_pattern_t* cairoPattern;
00058
00059 public:
00064 Pattern();
00065
00072 Pattern(const Pattern& initPattern);
00073
00080 Pattern(cairo_pattern_t* initPattern);
00081
00086 virtual ~Pattern();
00087
00092 virtual void reference();
00093
00098 virtual void destroy();
00099
00106 virtual cairo_status_t status();
00107
00114 virtual void setMatrix(const cairo_matrix_t* matrix);
00115
00122 virtual void getMatrix(cairo_matrix_t* matrix);
00123
00130 virtual void setMatrix(const Matrix& matrix);
00131
00138 virtual void getMatrix(Matrix& matrix);
00139
00148 virtual Pattern& operator=(const Pattern& newCairoPattern);
00149
00158 virtual Pattern& operator=(cairo_pattern_t* newCairoPattern);
00159
00166 virtual void setCairoPattern(cairo_pattern_t* newCairoPattern);
00167
00172 virtual cairo_pattern_t* getCairoPattern() const;
00173 };
00174
00175 }
00176
00177 }
00178
00179 }
00180
00184 #endif