include/variantutils/variantimage.h

Go to the documentation of this file.
00001 
00002 // Name:        variantimage.h
00003 // Purpose:     A variant type supporting an image.
00004 // Author:      Julian Smart
00005 // Modified by:
00006 // Created:     2006-05-11
00007 // RCS-ID:      $$
00008 // Copyright:   (c) Julian Smart
00009 // Licence:     New BSD License
00011 
00012 #ifndef _WX_VARIANTIMAGE_H_
00013 #define _WX_VARIANTIMAGE_H_
00014 
00015 #include "wx/defs.h"
00016 #include "wx/variant.h"
00017 #include "wx/image.h"
00018 
00019 #include "variantutils/variantref.h"
00020 
00021 #include "imageutils/imageblock.h"
00022 
00027 class wxPictureVariantData: public wxClonableVariantData
00028 {
00029 DECLARE_DYNAMIC_CLASS(wxPictureVariantData)
00030 public:
00031 
00032 // Construction & destruction
00033 
00034     wxPictureVariantData() {}
00035     wxPictureVariantData(const wxPictureVariantData& data);
00036     ~wxPictureVariantData() {}
00037 
00038 // OVERRIDEABLES
00039 
00041     virtual wxVariantData* Clone() { return new wxPictureVariantData(*this); }
00042     virtual bool Eq(wxVariantData& data) const;
00043     virtual bool Write(wxString& str) const;
00044     virtual bool Read(wxString& str);
00045 
00046     // What type is it? Return a string name.
00047     virtual wxString GetType() const { return wxT("image"); }
00048 
00049 // NEW OPERATIONS
00050 
00052     wxImageBlock& GetImageBlock() { return m_imageBlock; }
00053     const wxImageBlock& GetImageBlock() const { return m_imageBlock; }
00054     void SetImageBlock(const wxImageBlock& imageBlock) { m_imageBlock = imageBlock; }
00055 
00057     void SetImage(const wxImage& image, int imageType = wxBITMAP_TYPE_JPEG);
00058 
00060     const wxImage& GetImage() const { return m_image; }
00061     wxImage& GetImage() { return m_image; }
00062 
00064     bool MakeImage(bool force = false);
00065 
00066 private:
00067     wxImageBlock    m_imageBlock;
00068     wxImage         m_image;
00069 };
00070 
00071 #if 0
00072 
00078 class wxPictureVariantData: public wxRefCountingVariantData
00079 {
00080 DECLARE_DYNAMIC_CLASS(wxPictureVariantData)
00081 public:
00082 
00083 // Construction & destruction
00084 
00085     wxPictureVariantData() {};
00086     ~wxPictureVariantData() {};
00087 
00088 // OVERRIDEABLES
00089 
00090     // What type is it? Return a string name.
00091     virtual wxString GetType() const { return wxT("image"); }
00092 
00093 // NEW OPERATIONS
00094 
00096     wxImageBlock& GetImageBlock();
00097     const wxImageBlock& GetImageBlock() const;
00098 
00100     void SetImage(const wxImage& image, int imageType = wxBITMAP_TYPE_JPEG);
00101 
00103     const wxImage& GetImage() const;
00104     wxImage& GetImage();
00105 
00107     bool MakeImage(bool force = false);
00108 
00109     virtual wxVariantRefData* CreateVariantRefData() { return new wxVariantPictureRefData(); }
00110 
00111     wxVariantPictureRefData* GetImageRefData() const { return (wxVariantPictureRefData*) GetVariantRefData(); }
00112 
00113 private:
00114 };
00115 
00116 #endif
00117 
00118 // Useful functions
00119 
00120 // Is this variant an image?
00121 bool wxIsImageVariant(const wxVariant& variant);
00122 
00123 // Get the image data
00124 wxPictureVariantData* wxGetImageVariantData(const wxVariant& variant);
00125 
00126 // Create image variant
00127 wxVariant wxCreateImageVariant(const wxString& name = wxEmptyString);
00128 wxVariant wxCreateImageVariant(const wxImage& image, const wxString& name = wxEmptyString);
00129 wxVariant wxCreateImageVariant(const wxImageBlock& imageBlock, const wxString& name = wxEmptyString);
00130 
00131 #endif
00132     // _WX_VARIANTIMAGE_H_

Generated on Wed May 6 19:20:19 2009 for AxTk by  doxygen 1.5.1