X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/deb2fec01e097102e2799d7d0797f66dbae4f0c4..ddc8c2e3abd656601dfba93ea1eab42aeeaededf:/include/wx/image.h diff --git a/include/wx/image.h b/include/wx/image.h index 53618a1e19..e4d78863ab 100644 --- a/include/wx/image.h +++ b/include/wx/image.h @@ -21,7 +21,7 @@ #include "wx/bitmap.h" #if wxUSE_STREAMS - #include "wx/stream.h" +# include "wx/stream.h" #endif //----------------------------------------------------------------------------- @@ -36,6 +36,15 @@ class WXDLLEXPORT wxPNGHandler; class WXDLLEXPORT wxJPEGHandler; #endif class WXDLLEXPORT wxBMPHandler; +#if wxUSE_GIF +class WXDLLEXPORT wxGIFHandler; +#endif +#if wxUSE_PNM +class WXDLLEXPORT wxPNMHandler; +#endif +#if wxUSE_PCX +class WXDLLEXPORT wxPCXHandler; +#endif class WXDLLEXPORT wxImage; //----------------------------------------------------------------------------- @@ -52,6 +61,9 @@ public: #if wxUSE_STREAMS virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE ); virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE ); + + virtual bool CanRead( wxInputStream& stream ); + virtual bool CanRead( const wxString& name ); #endif inline void SetName(const wxString& name) { m_name = name; } @@ -93,6 +105,10 @@ public: #if wxUSE_STREAMS virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE ); virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE ); + virtual bool CanRead( wxInputStream& stream ); +private: + // hiding base class virtuals again! + inline bool CanRead( const wxString& name ) { return(wxImageHandler::CanRead(name)); }; #endif }; #endif @@ -119,6 +135,10 @@ public: #if wxUSE_STREAMS virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE ); virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE ); + virtual bool CanRead( wxInputStream& stream ); +private: + // hiding base class virtuals again! + inline bool CanRead( const wxString& name ) { return(wxImageHandler::CanRead(name)); }; #endif }; #endif @@ -143,6 +163,10 @@ public: #if wxUSE_STREAMS virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE ); + virtual bool CanRead( wxInputStream& stream ); +private: + // hiding base class virtuals again! + inline bool CanRead( const wxString& name ) { return(wxImageHandler::CanRead(name)); }; #endif }; @@ -150,6 +174,8 @@ public: // wxGIFHandler //----------------------------------------------------------------------------- +#if wxUSE_GIF + class WXDLLEXPORT wxGIFHandler : public wxImageHandler { DECLARE_DYNAMIC_CLASS(wxGIFHandler) @@ -167,8 +193,70 @@ public: #if wxUSE_STREAMS virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE ); virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE ); + virtual bool CanRead( wxInputStream& stream ); +private: + // hiding base class virtuals again! + inline bool CanRead( const wxString& name ) { return(wxImageHandler::CanRead(name)); }; +#endif +}; +#endif + +//----------------------------------------------------------------------------- +// wxPNMHandler +//----------------------------------------------------------------------------- + +#if wxUSE_PNM +class WXDLLEXPORT wxPNMHandler : public wxImageHandler +{ + DECLARE_DYNAMIC_CLASS(wxPNMHandler) + +public: + + inline wxPNMHandler() + { + m_name = "PNM file"; + m_extension = "pnm"; + m_type = wxBITMAP_TYPE_PNM; + m_mime = "image/pnm"; + }; + +#if wxUSE_STREAMS + virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE ); + virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE ); + virtual bool CanRead( wxInputStream& stream ); +private: + // hiding base class virtuals again! + inline bool CanRead( const wxString& name ) { return(wxImageHandler::CanRead(name)); }; #endif }; +#endif + +//----------------------------------------------------------------------------- +// wxPCXHandler +//----------------------------------------------------------------------------- + +#if wxUSE_PCX +class WXDLLEXPORT wxPCXHandler : public wxImageHandler +{ + DECLARE_DYNAMIC_CLASS(wxPCXHandler) + +public: + + inline wxPCXHandler() + { + m_name = "PCX file"; + m_extension = "pcx"; + m_type = wxBITMAP_TYPE_PCX; + m_mime = "image/pcx"; + }; + +#if wxUSE_STREAMS + virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE ); + virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE ); + virtual bool CanRead( wxInputStream& stream ); +#endif +}; +#endif //----------------------------------------------------------------------------- // wxImage @@ -200,6 +288,9 @@ public: void Create( int width, int height ); void Destroy(); + // return the new image with size width*height + wxImage GetSubImage( const wxRect& ) const; + // return the new image with size width*height wxImage Scale( int width, int height ) const; @@ -265,13 +356,15 @@ public: static void CleanUpHandlers(); static void InitStandardHandlers(); - + protected: static wxList sm_handlers; }; +extern void wxInitAllImageHandlers(); + #endif // _WX_IMAGE_H_