00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef FL_CAIRO_H
00024 # define FL_CAIRO_H
00025 # ifdef FLTK_HAVE_CAIRO
00026
00027
00028
00029
00030 # include <FL/Fl_Export.H>
00031
00032 # include <cairo.h>
00033
00046 class FL_EXPORT Fl_Cairo_State {
00047 public:
00048 Fl_Cairo_State() : cc_(0), own_cc_(false), autolink_(false), window_(0), gc_(0) {}
00049
00050
00051 cairo_t* cc() const {return cc_;}
00052 bool autolink() const {return autolink_;}
00053
00061 void cc(cairo_t* c, bool own=true) {
00062 if (cc_ && own_cc_) cairo_destroy(cc_);
00063 cc_=c;
00064 if (!cc_) window_=0;
00065 own_cc_=own;
00066 }
00067 void autolink(bool b);
00068 void window(void* w) {window_=w;}
00069 void* window() const {return window_;}
00070 void gc(void* c) {gc_=c;}
00071 void* gc() const {return gc_;}
00072
00073 private:
00074 cairo_t * cc_;
00075 bool own_cc_;
00076 bool autolink_;
00077
00078 void* window_, *gc_;
00079 };
00080
00083 # endif // FLTK_HAVE_CAIRO
00084 #endif // FL_CAIRO_H
00085
00086
00087
00088