00001
00002
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
00030
00031 #ifndef Fl_Pixmap_H
00032 #define Fl_Pixmap_H
00033 # include "Fl_Image.H"
00034
00035 class Fl_Widget;
00036 struct Fl_Menu_Item;
00037
00038
00039 # if defined(__sgi) && !defined(_COMPILER_VERSION)
00040 # define explicit
00041 # endif // __sgi && !_COMPILER_VERSION
00042
00047 class FL_EXPORT Fl_Pixmap : public Fl_Image {
00048 friend class Fl_Quartz_Graphics_Driver;
00049 friend class Fl_GDI_Graphics_Driver;
00050 friend class Fl_Xlib_Graphics_Driver;
00051 void copy_data();
00052 void delete_data();
00053 void set_data(const char * const *p);
00054
00055 protected:
00056
00057 void measure();
00058
00059 public:
00060
00061 int alloc_data;
00062
00063 private:
00064
00065 #if defined(__APPLE__) || defined(WIN32)
00066 void *id_;
00067 void *mask_;
00068 #else
00069 unsigned id_;
00070 unsigned mask_;
00071 #endif // __APPLE__ || WIN32
00072
00073 public:
00074
00076 explicit Fl_Pixmap(char * const * D) : Fl_Image(-1,0,1), alloc_data(0), id_(0), mask_(0) {set_data((const char*const*)D); measure();}
00078 explicit Fl_Pixmap(uchar* const * D) : Fl_Image(-1,0,1), alloc_data(0), id_(0), mask_(0) {set_data((const char*const*)D); measure();}
00080 explicit Fl_Pixmap(const char * const * D) : Fl_Image(-1,0,1), alloc_data(0), id_(0), mask_(0) {set_data((const char*const*)D); measure();}
00082 explicit Fl_Pixmap(const uchar* const * D) : Fl_Image(-1,0,1), alloc_data(0), id_(0), mask_(0) {set_data((const char*const*)D); measure();}
00083 virtual ~Fl_Pixmap();
00084 virtual Fl_Image *copy(int W, int H);
00085 Fl_Image *copy() { return copy(w(), h()); }
00086 virtual void color_average(Fl_Color c, float i);
00087 virtual void desaturate();
00088 virtual void draw(int X, int Y, int W, int H, int cx=0, int cy=0);
00089 void draw(int X, int Y) {draw(X, Y, w(), h(), 0, 0);}
00090 virtual void label(Fl_Widget*w);
00091 virtual void label(Fl_Menu_Item*m);
00092 virtual void uncache();
00093 };
00094
00095 #endif
00096
00097
00098
00099