]> git.saurik.com Git - wxWidgets.git/commitdiff
wxBitmap::LoadFile and SaveFile now uses wxImage's methods in case there is no wxBitm...
authorVáclav Slavík <vslavik@fastmail.fm>
Wed, 17 Nov 1999 22:33:52 +0000 (22:33 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Wed, 17 Nov 1999 22:33:52 +0000 (22:33 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4604 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/bitmap.tex
src/gtk/bitmap.cpp
src/gtk1/bitmap.cpp
src/motif/bitmap.cpp
src/msw/bitmap.cpp

index eb20bd2cef254add19087d503f88f753feb09191..91ff93aba1c2543fdf8c411608d51ea75cb61c2d 100644 (file)
@@ -96,7 +96,11 @@ Its meaning is determined by the {\it type} parameter.}
 The validity of these flags depends on the platform and wxWindows configuration.
 If all possible wxWindows settings are used, the Windows platform supports BMP file, BMP resource,
 XPM data, and XPM. Under wxGTK, the available formats are BMP file, XPM data, XPM file, and PNG file.
-Under wxMotif, the available formats are XBM data, XBM file, XPM data, XPM file.}
+Under wxMotif, the available formats are XBM data, XBM file, XPM data, XPM file.
+
+In addition, wxBitmap can read all formats that \helpref{wxImage}{wximage} can 
+(wxBITMAP\_TYPE\_JPEG, wxBITMAP\_TYPE\_PNG, wxBITMAP\_TYPE\_GIF, wxBITMAP\_TYPE\_PCX, wxBITMAP\_TYPE\_PNM).
+(Of course you must have wxImage handlers loaded.) }
 
 \wxheading{Remarks}
 
@@ -356,7 +360,11 @@ The meaning of {\it name} is determined by the {\it type} parameter.}
 \twocolitem{{\bf wxBITMAP\_TYPE\_XPM}}{Load an XPM bitmap file.}
 \end{twocollist}
 
-The validity of these flags depends on the platform and wxWindows configuration.}
+The validity of these flags depends on the platform and wxWindows configuration.
+
+In addition, wxBitmap can read all formats that \helpref{wxImage}{wximage} can 
+(wxBITMAP\_TYPE\_JPEG, wxBITMAP\_TYPE\_PNG, wxBITMAP\_TYPE\_GIF, wxBITMAP\_TYPE\_PCX, wxBITMAP\_TYPE\_PNM).
+(Of course you must have wxImage handlers loaded.) }
 
 \wxheading{Return value}
 
@@ -415,7 +423,11 @@ Saves a bitmap in the named file.
 \twocolitem{{\bf wxBITMAP\_TYPE\_XPM}}{Save an XPM bitmap file.}
 \end{twocollist}
 
-The validity of these flags depends on the platform and wxWindows configuration.}
+The validity of these flags depends on the platform and wxWindows configuration.
+
+In addition, wxBitmap can save all formats that \helpref{wxImage}{wximage} can 
+(wxBITMAP\_TYPE\_JPEG, wxBITMAP\_TYPE\_PNG).
+(Of course you must have wxImage handlers loaded.) }
 
 \docparam{palette}{An optional palette used for saving the bitmap.}
 % TODO: this parameter should
index 0918af170798ebde32349770366c4f7902f89feb..33b1a1f286d2783345252629c3a2dc7b12c2a70b 100644 (file)
@@ -332,7 +332,7 @@ bool wxBitmap::SaveFile( const wxString &name, int type, wxPalette *WXUNUSED(pal
 {
     wxCHECK_MSG( Ok(), FALSE, wxT("invalid bitmap") );
 
-    if (type == wxBITMAP_TYPE_PNG)
+    // Try to save the bitmap via wxImage handlers:
     {
         wxImage image( *this );
         if (image.Ok()) return image.SaveFile( name, type );
@@ -365,20 +365,13 @@ bool wxBitmap::LoadFile( const wxString &name, int type )
         gdk_window_get_size( M_BMPDATA->m_pixmap, &(M_BMPDATA->m_width), &(M_BMPDATA->m_height) );
         M_BMPDATA->m_bpp = gdk_window_get_visual( parent )->depth;
     }
-    else if (type == wxBITMAP_TYPE_PNG)
+    else // try if wxImage can load it
     {
         wxImage image;
-        image.LoadFile( name, type );
+        if (!image.LoadFile( name, type )) return FALSE;
         if (image.Ok()) *this = image.ConvertToBitmap();
+        else return FALSE;
     }
-    else if (type == wxBITMAP_TYPE_BMP)
-    {
-        wxImage image;
-        image.LoadFile( name, type );
-        if (image.Ok()) *this = image.ConvertToBitmap();
-    }
-    else
-        return FALSE;
 
     return TRUE;
 }
index 0918af170798ebde32349770366c4f7902f89feb..33b1a1f286d2783345252629c3a2dc7b12c2a70b 100644 (file)
@@ -332,7 +332,7 @@ bool wxBitmap::SaveFile( const wxString &name, int type, wxPalette *WXUNUSED(pal
 {
     wxCHECK_MSG( Ok(), FALSE, wxT("invalid bitmap") );
 
-    if (type == wxBITMAP_TYPE_PNG)
+    // Try to save the bitmap via wxImage handlers:
     {
         wxImage image( *this );
         if (image.Ok()) return image.SaveFile( name, type );
@@ -365,20 +365,13 @@ bool wxBitmap::LoadFile( const wxString &name, int type )
         gdk_window_get_size( M_BMPDATA->m_pixmap, &(M_BMPDATA->m_width), &(M_BMPDATA->m_height) );
         M_BMPDATA->m_bpp = gdk_window_get_visual( parent )->depth;
     }
-    else if (type == wxBITMAP_TYPE_PNG)
+    else // try if wxImage can load it
     {
         wxImage image;
-        image.LoadFile( name, type );
+        if (!image.LoadFile( name, type )) return FALSE;
         if (image.Ok()) *this = image.ConvertToBitmap();
+        else return FALSE;
     }
-    else if (type == wxBITMAP_TYPE_BMP)
-    {
-        wxImage image;
-        image.LoadFile( name, type );
-        if (image.Ok()) *this = image.ConvertToBitmap();
-    }
-    else
-        return FALSE;
 
     return TRUE;
 }
index 58bc1cc259dbc6dce2d7fc0721030632a81fe7b3..45f0cf6d0f3fd2771bfe217fc342c61a18e0680c 100644 (file)
@@ -21,6 +21,7 @@
 #include "wx/log.h"
 #include "wx/control.h"
 #include "wx/dcmemory.h"
+#include "wx/image.h"
 
 #include <Xm/Xm.h>
 
@@ -197,9 +198,14 @@ bool wxBitmap::LoadFile(const wxString& filename, long type)
     wxBitmapHandler *handler = FindHandler(type);
 
     if ( handler == NULL ) {
-        wxLogWarning("%s: no bitmap handler for type %d defined.", (const char*) filename, type);
-
-        return FALSE;
+        wxImage image;
+        if (!image.LoadFile( filename, type )) return FALSE;
+        if (image.Ok()) 
+        {
+            *this = image.ConvertToBitmap();
+            return TRUE;
+        }
+        else return FALSE;
     }
 
     return handler->LoadFile(this, filename, type, -1, -1);
@@ -226,10 +232,10 @@ bool wxBitmap::SaveFile(const wxString& filename, int type, const wxPalette *pal
 {
     wxBitmapHandler *handler = FindHandler(type);
 
-    if ( handler == NULL ) {
-        wxLogWarning("no bitmap handler for type %d defined.", type);
-
-        return FALSE;
+    if ( handler == NULL ) { // try wxImage
+        wxImage image( *this );
+        if (image.Ok()) return image.SaveFile( filename, type );
+        else return FALSE;
     }
 
     return handler->SaveFile(this, filename, type, palette);
index 6cd926cc5f29b20cf8bd904618d3c2cafbfa578b..ab37c081e3e0b05304211844da1a67a546f311a4 100644 (file)
@@ -44,6 +44,7 @@
 #include "wx/log.h"
 
 #include "wx/msw/dib.h"
+#include "wx/image.h"
 
 // ----------------------------------------------------------------------------
 // macros
@@ -278,9 +279,14 @@ bool wxBitmap::LoadFile(const wxString& filename, long type)
   wxBitmapHandler *handler = FindHandler(type);
 
   if ( handler == NULL ) {
-    wxLogWarning(wxT("no bitmap handler for type %d defined."), type);
-
-    return FALSE;
+    wxImage image;
+    if (!image.LoadFile( filename, type )) return FALSE;
+    if (image.Ok()) 
+    {
+        *this = image.ConvertToBitmap();
+        return TRUE;
+    }
+    else return FALSE;
   }
 
   return handler->LoadFile(this, filename, type, -1, -1);
@@ -307,10 +313,10 @@ bool wxBitmap::SaveFile(const wxString& filename, int type, const wxPalette *pal
 {
   wxBitmapHandler *handler = FindHandler(type);
 
-  if ( handler == NULL ) {
-    wxLogWarning(wxT("no bitmap handler for type %d defined."), type);
-
-    return FALSE;
+  if ( handler == NULL ) { // try wxImage
+    wxImage image( *this );
+    if (image.Ok()) return image.SaveFile( filename, type );
+    else return FALSE;
   }
 
   return handler->SaveFile(this, filename, type, palette);