further routing into wxApp
[wxWidgets.git] / include / wx / imagpng.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/imagpng.h
3 // Purpose: wxImage PNG handler
4 // Author: Robert Roebling
5 // RCS-ID: $Id$
6 // Copyright: (c) Robert Roebling
7 // Licence: wxWindows licence
8 /////////////////////////////////////////////////////////////////////////////
9
10 #ifndef _WX_IMAGPNG_H_
11 #define _WX_IMAGPNG_H_
12
13 #include "wx/defs.h"
14
15 //-----------------------------------------------------------------------------
16 // wxPNGHandler
17 //-----------------------------------------------------------------------------
18
19 #if wxUSE_LIBPNG
20
21 #include "wx/image.h"
22 #include "wx/versioninfo.h"
23
24 #define wxIMAGE_OPTION_PNG_FORMAT wxT("PngFormat")
25 #define wxIMAGE_OPTION_PNG_BITDEPTH wxT("PngBitDepth")
26 #define wxIMAGE_OPTION_PNG_FILTER wxT("PngF")
27 #define wxIMAGE_OPTION_PNG_COMPRESSION_LEVEL wxT("PngZL")
28 #define wxIMAGE_OPTION_PNG_COMPRESSION_MEM_LEVEL wxT("PngZM")
29 #define wxIMAGE_OPTION_PNG_COMPRESSION_STRATEGY wxT("PngZS")
30 #define wxIMAGE_OPTION_PNG_COMPRESSION_BUFFER_SIZE wxT("PngZB")
31
32 enum
33 {
34 wxPNG_TYPE_COLOUR = 0,
35 wxPNG_TYPE_GREY = 2,
36 wxPNG_TYPE_GREY_RED = 3,
37 wxPNG_TYPE_PALETTE = 4
38 };
39
40 class WXDLLIMPEXP_CORE wxPNGHandler: public wxImageHandler
41 {
42 public:
43 inline wxPNGHandler()
44 {
45 m_name = wxT("PNG file");
46 m_extension = wxT("png");
47 m_type = wxBITMAP_TYPE_PNG;
48 m_mime = wxT("image/png");
49 }
50
51 static wxVersionInfo GetLibraryVersionInfo();
52
53 #if wxUSE_STREAMS
54 virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=true, int index=-1 );
55 virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=true );
56 protected:
57 virtual bool DoCanRead( wxInputStream& stream );
58 #endif
59
60 private:
61 DECLARE_DYNAMIC_CLASS(wxPNGHandler)
62 };
63
64 #endif
65 // wxUSE_LIBPNG
66
67 #endif
68 // _WX_IMAGPNG_H_
69