]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/bitmap.cpp
fix for non precomp
[wxWidgets.git] / src / gtk / bitmap.cpp
index b72abe13b583251468babc02ed9932fb52b5354c..cb358da34a5ddfef0f123431535cd47055acf920 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        bitmap.cpp
+// Name:        src/gtk/bitmap.cpp
 // Purpose:
 // Author:      Robert Roebling
 // RCS-ID:      $Id$
 #include "wx/dcmemory.h"
 #include "wx/app.h"
 
-#ifdef __WXGTK20__
 #include "wx/rawbmp.h"
     // need this to get gdk_image_new_bitmap()
     #define GDK_ENABLE_BROKEN
-#endif
 
 #include <gdk/gdk.h>
 #include <gtk/gtk.h>
 #include <gdk/gdkx.h>
 
-#ifdef __WXGTK20__
-    #include <gdk/gdkimage.h>
-#else // GTK+ 1.2
-    #include <gdk/gdkrgb.h>
-#endif // GTK+ 2.0/1.2
+#include <gdk/gdkimage.h>
 
 #include "wx/math.h"
 
@@ -71,11 +65,13 @@ wxMask::wxMask( const wxBitmap& bitmap, const wxColour& colour )
     Create( bitmap, colour );
 }
 
+#if wxUSE_PALETTE
 wxMask::wxMask( const wxBitmap& bitmap, int paletteIndex )
 {
     m_bitmap = (GdkBitmap *) NULL;
     Create( bitmap, paletteIndex );
 }
+#endif // wxUSE_PALETTE
 
 wxMask::wxMask( const wxBitmap& bitmap )
 {
@@ -182,6 +178,7 @@ bool wxMask::Create( const wxBitmap& bitmap,
     return true;
 }
 
+#if wxUSE_PALETTE
 bool wxMask::Create( const wxBitmap& bitmap, int paletteIndex )
 {
     unsigned char r,g,b;
@@ -193,6 +190,7 @@ bool wxMask::Create( const wxBitmap& bitmap, int paletteIndex )
 
     return Create(bitmap, wxColour(r, g, b));
 }
+#endif // wxUSE_PALETTE
 
 bool wxMask::Create( const wxBitmap& bitmap )
 {
@@ -236,9 +234,7 @@ public:
 
     GdkPixmap      *m_pixmap;
     GdkBitmap      *m_bitmap;
-#ifdef __WXGTK20__
     GdkPixbuf      *m_pixbuf;
-#endif
     wxMask         *m_mask;
     int             m_width;
     int             m_height;
@@ -250,9 +246,7 @@ wxBitmapRefData::wxBitmapRefData()
 {
     m_pixmap = (GdkPixmap *) NULL;
     m_bitmap = (GdkBitmap *) NULL;
-#ifdef __WXGTK20__
     m_pixbuf = (GdkPixbuf *) NULL;
-#endif
     m_mask = (wxMask *) NULL;
     m_width = 0;
     m_height = 0;
@@ -266,12 +260,12 @@ wxBitmapRefData::~wxBitmapRefData()
         gdk_pixmap_unref( m_pixmap );
     if (m_bitmap)
         gdk_bitmap_unref( m_bitmap );
-#ifdef __WXGTK20__
     if (m_pixbuf)
         gdk_pixbuf_unref( m_pixbuf );
-#endif
     delete m_mask;
+#if wxUSE_PALETTE
     delete m_palette;
+#endif // wxUSE_PALETTE
 }
 
 //-----------------------------------------------------------------------------
@@ -315,14 +309,12 @@ bool wxBitmap::Create( int width, int height, int depth )
         M_BMPDATA->m_bitmap = gdk_pixmap_new( wxGetRootWindow()->window, width, height, 1 );
         M_BMPDATA->m_bpp = 1;
     }
-#ifdef __WXGTK20__
     else if (depth == 32)
     {
         M_BMPDATA->m_pixbuf = gdk_pixbuf_new( GDK_COLORSPACE_RGB, true,
                                               8, width, height);
         M_BMPDATA->m_bpp = 32;
     }
-#endif
     else
     {
         M_BMPDATA->m_pixmap = gdk_pixmap_new( wxGetRootWindow()->window, width, height, depth );
@@ -375,7 +367,6 @@ wxBitmap wxBitmap::Rescale( int clipx, int clipy, int clipwidth, int clipheight,
 
     wxBitmap bmp;
 
-#ifdef __WXGTK20__
     if (HasPixbuf())
     {
         bmp.SetWidth(width);
@@ -391,7 +382,6 @@ wxBitmap wxBitmap::Rescale( int clipx, int clipy, int clipwidth, int clipheight,
                          GDK_INTERP_BILINEAR);
     }
     else
-#endif // __WXGTK20__
     {
         GdkImage *img = (GdkImage*) NULL;
         if (GetPixmap())
@@ -465,7 +455,7 @@ wxBitmap wxBitmap::Rescale( int clipx, int clipy, int clipwidth, int clipheight,
                     old_x = x;
                 }
 
-                if (bpp == 1)
+                if ( dst )
                 {
                     if (!pixval)
                     {
@@ -490,14 +480,14 @@ wxBitmap wxBitmap::Rescale( int clipx, int clipy, int clipwidth, int clipheight,
             }
 
             // do not forget the last byte
-            if ((bpp == 1) && (width % 8 != 0))
+            if ( dst && (width % 8 != 0) )
                 dst[h*dstbyteperline+width/8] = outbyte;
         }
 
         gdk_image_destroy( img );
         if (gc) gdk_gc_unref( gc );
 
-        if (bpp == 1)
+        if ( dst )
         {
             bmp = wxBitmap( (const char *)dst, width, height, 1 );
             free( dst );
@@ -581,10 +571,9 @@ bool wxBitmap::CreateFromImage(const wxImage& image, int depth)
     }
     else
     {
-#ifdef __WXGTK20__
         if (image.HasAlpha())
             return CreateFromImageAsPixbuf(image);
-#endif
+
         return CreateFromImageAsPixmap(image);
     }
 }
@@ -929,7 +918,6 @@ bool wxBitmap::CreateFromImageAsPixmap(const wxImage& img)
     return true;
 }
 
-#ifdef __WXGTK20__
 bool wxBitmap::CreateFromImageAsPixbuf(const wxImage& image)
 {
     int width = image.GetWidth();
@@ -972,7 +960,6 @@ bool wxBitmap::CreateFromImageAsPixbuf(const wxImage& image)
 
     return true;
 }
-#endif // __WXGTK20__
 
 wxImage wxBitmap::ConvertToImage() const
 {
@@ -989,7 +976,6 @@ wxImage wxBitmap::ConvertToImage() const
         return wxNullImage;
     }
 
-#ifdef __WXGTK20__
     if (HasPixbuf())
     {
         GdkPixbuf *pixbuf = GetPixbuf();
@@ -1017,7 +1003,6 @@ wxImage wxBitmap::ConvertToImage() const
         }
     }
     else
-#endif // __WXGTK20__
     {
         // the colour used as transparent one in wxImage and the one it is
         // replaced with when it really occurs in the bitmap
@@ -1158,12 +1143,6 @@ wxImage wxBitmap::ConvertToImage() const
     return image;
 }
 
-wxBitmap::wxBitmap( const wxBitmap& bmp )
-        : wxBitmapBase()
-{
-    Ref( bmp );
-}
-
 wxBitmap::wxBitmap( const wxString &filename, wxBitmapType type )
 {
     LoadFile( filename, type );
@@ -1195,14 +1174,6 @@ wxBitmap::~wxBitmap()
 {
 }
 
-wxBitmap& wxBitmap::operator = ( const wxBitmap& bmp )
-{
-    if ( m_refData != bmp.m_refData )
-        Ref( bmp );
-
-    return *this;
-}
-
 bool wxBitmap::operator == ( const wxBitmap& bmp ) const
 {
     return m_refData == bmp.m_refData;
@@ -1217,9 +1188,7 @@ bool wxBitmap::Ok() const
 {
     return (m_refData != NULL) &&
            (
-#ifdef __WXGTK20__
               M_BMPDATA->m_pixbuf ||
-#endif
               M_BMPDATA->m_bitmap || M_BMPDATA->m_pixmap
            );
 }
@@ -1277,19 +1246,17 @@ wxBitmap wxBitmap::GetSubBitmap( const wxRect& rect) const
     wxBitmap ret( rect.width, rect.height, M_BMPDATA->m_bpp );
     wxASSERT_MSG( ret.Ok(), wxT("GetSubBitmap error") );
 
-#ifdef __WXGTK20__
     if (HasPixbuf())
     {
         GdkPixbuf *pixbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB,
                                            gdk_pixbuf_get_has_alpha(GetPixbuf()),
-                                           8, GetWidth(), GetHeight());
+                                           8, rect.width, rect.height);
         ret.SetPixbuf(pixbuf);
         gdk_pixbuf_copy_area(GetPixbuf(),
                              rect.x, rect.y, rect.width, rect.height,
                              pixbuf, 0, 0);
     }
     else
-#endif // __WXGTK20__
     {
         if (ret.GetPixmap())
         {
@@ -1388,6 +1355,7 @@ bool wxBitmap::LoadFile( const wxString &name, wxBitmapType type )
     return true;
 }
 
+#if wxUSE_PALETTE
 wxPalette *wxBitmap::GetPalette() const
 {
     if (!Ok())
@@ -1400,6 +1368,7 @@ void wxBitmap::SetPalette(const wxPalette& WXUNUSED(palette))
 {
     // TODO
 }
+#endif // wxUSE_PALETTE
 
 void wxBitmap::SetHeight( int height )
 {
@@ -1431,9 +1400,7 @@ void wxBitmap::SetPixmap( GdkPixmap *pixmap )
         m_refData = new wxBitmapRefData();
 
     M_BMPDATA->m_pixmap = pixmap;
-#ifdef __WXGTK20__
     PurgeOtherRepresentations(Pixmap);
-#endif
 }
 
 void wxBitmap::SetBitmap( GdkPixmap *bitmap )
@@ -1442,16 +1409,13 @@ void wxBitmap::SetBitmap( GdkPixmap *bitmap )
         m_refData = new wxBitmapRefData();
 
     M_BMPDATA->m_bitmap = bitmap;
-#ifdef __WXGTK20__
     PurgeOtherRepresentations(Pixmap);
-#endif
 }
 
 GdkPixmap *wxBitmap::GetPixmap() const
 {
     wxCHECK_MSG( Ok(), (GdkPixmap *) NULL, wxT("invalid bitmap") );
 
-#ifdef __WXGTK20__
     // create the pixmap on the fly if we use Pixbuf representation:
     if (HasPixbuf() && !HasPixmap())
     {
@@ -1462,7 +1426,6 @@ GdkPixmap *wxBitmap::GetPixmap() const
                                           &M_BMPDATA->m_mask->m_bitmap,
                                           128 /*threshold*/);
     }
-#endif // __WXGTK20__
 
     return M_BMPDATA->m_pixmap;
 }
@@ -1481,7 +1444,6 @@ GdkBitmap *wxBitmap::GetBitmap() const
     return M_BMPDATA->m_bitmap;
 }
 
-#ifdef __WXGTK20__
 GdkPixbuf *wxBitmap::GetPixbuf() const
 {
     wxCHECK_MSG( Ok(), NULL, wxT("invalid bitmap") );
@@ -1561,11 +1523,8 @@ void wxBitmap::PurgeOtherRepresentations(wxBitmap::Representation keep)
     }
 }
 
-#endif // __WXGTK20__
-
 void *wxBitmap::GetRawData(wxPixelDataBase& data, int bpp)
 {
-#ifdef __WXGTK20__
     if (bpp != 32)
         return NULL;
 
@@ -1585,30 +1544,21 @@ void *wxBitmap::GetRawData(wxPixelDataBase& data, int bpp)
     data.m_stride = gdk_pixbuf_get_rowstride( pixbuf );
 
     return gdk_pixbuf_get_pixels( pixbuf );
-#else
-    return NULL;
-#endif
 }
 
-void wxBitmap::UngetRawData(wxPixelDataBase& data)
+void wxBitmap::UngetRawData(wxPixelDataBase& WXUNUSED(data))
 {
 }
 
 
 bool wxBitmap::HasAlpha() const
 {
-#ifdef __WXGTK20__
     return HasPixbuf();
-#else
-    return false;
-#endif
 }
 
 void wxBitmap::UseAlpha()
 {
-#ifdef __WXGTK20__
     GetPixbuf();
-#endif
 }
 
 //-----------------------------------------------------------------------------
@@ -1621,19 +1571,36 @@ wxBitmapHandler::~wxBitmapHandler()
 {
 }
 
-bool wxBitmapHandler::Create(wxBitmap *bitmap, void *data, long type, int width, int height, int depth)
+bool wxBitmapHandler::Create(wxBitmap * WXUNUSED(bitmap),
+                             void * WXUNUSED(data),
+                             long WXUNUSED(type),
+                             int WXUNUSED(width),
+                             int WXUNUSED(height),
+                             int WXUNUSED(depth))
 {
+    wxFAIL_MSG( _T("not implemented") );
+
     return false;
 }
 
-bool wxBitmapHandler::LoadFile(wxBitmap *bitmap, const wxString& name, long flags,
-        int desiredWidth, int desiredHeight)
+bool wxBitmapHandler::LoadFile(wxBitmap * WXUNUSED(bitmap),
+                               const wxString& WXUNUSED(name),
+                               long WXUNUSED(flags),
+                               int WXUNUSED(desiredWidth),
+                               int WXUNUSED(desiredHeight))
 {
+    wxFAIL_MSG( _T("not implemented") );
+
     return false;
 }
 
-bool wxBitmapHandler::SaveFile(const wxBitmap *bitmap, const wxString& name, int type, const wxPalette *palette)
+bool wxBitmapHandler::SaveFile(const wxBitmap * WXUNUSED(bitmap),
+                               const wxString& WXUNUSED(name),
+                               int WXUNUSED(type),
+                               const wxPalette * WXUNUSED(palette))
 {
+    wxFAIL_MSG( _T("not implemented") );
+
     return false;
 }
 
@@ -1641,5 +1608,3 @@ bool wxBitmapHandler::SaveFile(const wxBitmap *bitmap, const wxString& name, int
 {
     // TODO: Insert handler based on GdkPixbufs handler later
 }
-
-