]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/imagbmp.h
fixed bug with the caret positioning after SetValue() introduced by the last commit
[wxWidgets.git] / include / wx / imagbmp.h
index 8fc5d9a82049df14917bf89e75a1cf7e9d49280a..81661e1510e23939e23c2b24a1d0d3a10b265a0a 100644 (file)
 
 #include "wx/image.h"
 
-//-----------------------------------------------------------------------------
-// wxBMPHandler
-//-----------------------------------------------------------------------------
+// defines for saving the BMP file in different formats, Bits Per Pixel
+// USE: wximage.SetOption( wxBMP_FORMAT, wxBMP_xBPP );
+#define wxBMP_FORMAT wxString(_T("wxBMP_FORMAT"))
 
-class WXDLLEXPORT wxBMPHandler: public wxImageHandler
+enum
 {
-  DECLARE_DYNAMIC_CLASS(wxBMPHandler)
+    wxBMP_24BPP        = 24, // default, do not need to set
+    //wxBMP_16BPP      = 16, // wxQuantize can only do 236 colors?
+    wxBMP_8BPP         =  8, // 8bpp, quantized colors
+    wxBMP_8BPP_GREY    =  9, // 8bpp, rgb averaged to greys
+    wxBMP_8BPP_GRAY    =  wxBMP_8BPP_GREY,
+    wxBMP_8BPP_RED     = 10, // 8bpp, red used as greyscale
+    wxBMP_8BPP_PALETTE = 11, // 8bpp, use the wxImage's palette
+    wxBMP_4BPP         =  4, // 4bpp, quantized colors
+    wxBMP_1BPP         =  1, // 1bpp, quantized "colors"
+    wxBMP_1BPP_BW      =  2  // 1bpp, black & white from red
+};
 
+// ----------------------------------------------------------------------------
+// wxBMPHandler
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxBMPHandler : public wxImageHandler
+{
 public:
+    wxBMPHandler()
+    {
+        m_name = _T("BMP file");
+        m_extension = _T("bmp");
+        m_type = wxBITMAP_TYPE_BMP;
+        m_mime = _T("image/bmp");
+    };
+
+#if wxUSE_STREAMS
+
+  virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE );
+  virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE, int index=0 );
+  virtual bool DoCanRead( wxInputStream& stream );
+                                
+protected:
+  bool SaveDib(wxImage *image, wxOutputStream& stream, bool verbose, bool IsBmp, bool IsMask);
+  bool DoLoadDib (wxImage * image, int width, int height, int bpp, int ncolors, int comp,
+                off_t bmpOffset, wxInputStream& stream,
+                bool verbose, bool IsBmp, bool hasPalette  ) ;
+  bool LoadDib( wxImage *image, wxInputStream& stream, bool verbose, bool IsBmp  ) ;
 
-  inline wxBMPHandler()
-  {
-      m_name = "BMP file";
-      m_extension = "bmp";
-      m_type = wxBITMAP_TYPE_BMP;
-      m_mime = "image/bmp";
-  };
+#endif // wxUSE_STREAMS
+
+private:
+     DECLARE_DYNAMIC_CLASS(wxBMPHandler)
+};
+
+
+// ----------------------------------------------------------------------------
+// wxICOHandler
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxICOHandler : public wxBMPHandler
+{
+public:
+    wxICOHandler()
+    {
+        m_name = _T("ICO file");
+        m_extension = _T("ico");
+        m_type = wxBITMAP_TYPE_ICO;
+        m_mime = _T("image/icon");
+    };
 
 #if wxUSE_STREAMS
+
+  virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE );
   virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE, int index=0 );
   virtual bool DoCanRead( wxInputStream& stream );
-#endif
+                
+#endif // wxUSE_STREAMS
+
+private:
+    DECLARE_DYNAMIC_CLASS(wxBMPHandler)
 };