replace wxBitmap::SetPixbuf() with wxBitmap ctor taking pixbuf

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71006 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Paul Cornett 2012-03-25 23:33:18 +00:00
parent b05875c977
commit 54195d23c2
5 changed files with 19 additions and 31 deletions

View File

@ -68,6 +68,7 @@ public:
wxBitmap( const wxImage& image, int depth = wxBITMAP_SCREEN_DEPTH ) wxBitmap( const wxImage& image, int depth = wxBITMAP_SCREEN_DEPTH )
{ (void)CreateFromImage(image, depth); } { (void)CreateFromImage(image, depth); }
#endif // wxUSE_IMAGE #endif // wxUSE_IMAGE
wxBitmap(GdkPixbuf* pixbuf);
virtual ~wxBitmap(); virtual ~wxBitmap();
bool Create(int width, int height, int depth = wxBITMAP_SCREEN_DEPTH); bool Create(int width, int height, int depth = wxBITMAP_SCREEN_DEPTH);
@ -108,7 +109,6 @@ public:
void SetHeight( int height ); void SetHeight( int height );
void SetWidth( int width ); void SetWidth( int width );
void SetDepth( int depth ); void SetDepth( int depth );
void SetPixbuf(GdkPixbuf* pixbuf);
GdkPixmap *GetPixmap() const; GdkPixmap *GetPixmap() const;
bool HasPixmap() const; bool HasPixmap() const;

View File

@ -4,7 +4,7 @@
// Author: Jens Lody and Teodor Petrov // Author: Jens Lody and Teodor Petrov
// Modified by: // Modified by:
// Created: 2012-03-23 // Created: 2012-03-23
// RCS-ID: $Id:$ // RCS-ID: $Id$
// Copyright: (c) 2012 Jens Lody <jens@codeblocks.org> // Copyright: (c) 2012 Jens Lody <jens@codeblocks.org>
// and Teodor Petrov // and Teodor Petrov
// Licence: wxWindows licence // Licence: wxWindows licence
@ -119,8 +119,7 @@ wxRect DrawCloseButton(wxDC& dc,
int xthickness = style_button->xthickness; int xthickness = style_button->xthickness;
int ythickness = style_button->ythickness; int ythickness = style_button->ythickness;
wxBitmap bmp; wxBitmap bmp(gtk_widget_render_icon(widget, GTK_STOCK_CLOSE, GTK_ICON_SIZE_SMALL_TOOLBAR, "tab"));
bmp.SetPixbuf(gtk_widget_render_icon(widget, GTK_STOCK_CLOSE, GTK_ICON_SIZE_SMALL_TOOLBAR, "tab"));
if(bmp.GetWidth() != s_CloseIconSize || bmp.GetHeight() != s_CloseIconSize) if(bmp.GetWidth() != s_CloseIconSize || bmp.GetHeight() != s_CloseIconSize)
{ {

View File

@ -259,7 +259,7 @@ wxIconBundle DoCreateIconBundle(const char *stockid,
continue; continue;
wxIcon icon; wxIcon icon;
icon.SetPixbuf(pixbuf); icon.CopyFromBitmap(wxBitmap(pixbuf));
bundle.AddIcon(icon); bundle.AddIcon(icon);
} }
@ -296,11 +296,7 @@ wxBitmap wxGTK2ArtProvider::CreateBitmap(const wxArtID& id,
} }
} }
wxBitmap bmp; return wxBitmap(pixbuf);
if (pixbuf != NULL)
bmp.SetPixbuf(pixbuf);
return bmp;
} }
wxIconBundle wxIconBundle

View File

@ -309,6 +309,18 @@ wxBitmap::wxBitmap(const char* const* bits)
} }
} }
wxBitmap::wxBitmap(GdkPixbuf* pixbuf)
{
if (pixbuf)
{
wxBitmapRefData* bmpData = new wxBitmapRefData(
gdk_pixbuf_get_width(pixbuf), gdk_pixbuf_get_height(pixbuf),
gdk_pixbuf_get_n_channels(pixbuf) * 8);
m_refData = bmpData;
bmpData->m_pixbuf = pixbuf;
}
}
wxBitmap::~wxBitmap() wxBitmap::~wxBitmap()
{ {
} }
@ -679,10 +691,7 @@ bool wxBitmap::LoadFile( const wxString &name, wxBitmapType type )
{ {
wxUnusedVar(type); // The type is detected automatically by GDK. wxUnusedVar(type); // The type is detected automatically by GDK.
UnRef(); *this = wxBitmap(gdk_pixbuf_new_from_file(name.fn_str(), NULL));
GdkPixbuf* pixbuf = gdk_pixbuf_new_from_file(name.fn_str(), NULL);
if (pixbuf)
SetPixbuf(pixbuf);
} }
return IsOk(); return IsOk();
@ -802,22 +811,6 @@ bool wxBitmap::HasPixbuf() const
return M_BMPDATA->m_pixbuf != NULL; return M_BMPDATA->m_pixbuf != NULL;
} }
void wxBitmap::SetPixbuf(GdkPixbuf* pixbuf)
{
UnRef();
if (!pixbuf)
return;
int depth = -1;
if (gdk_pixbuf_get_has_alpha(pixbuf))
depth = 32;
m_refData = new wxBitmapRefData(
gdk_pixbuf_get_width(pixbuf), gdk_pixbuf_get_height(pixbuf), depth);
M_BMPDATA->m_pixbuf = pixbuf;
}
void wxBitmap::PurgeOtherRepresentations(wxBitmap::Representation keep) void wxBitmap::PurgeOtherRepresentations(wxBitmap::Representation keep)
{ {
if (keep == Pixmap && HasPixbuf()) if (keep == Pixmap && HasPixbuf())

View File

@ -224,7 +224,7 @@ wxBitmap wxBitmapComboBox::GetItemBitmap(unsigned int n) const
if ( pixbuf ) if ( pixbuf )
{ {
g_object_ref( pixbuf ); g_object_ref( pixbuf );
bitmap.SetPixbuf( pixbuf ); bitmap = wxBitmap(pixbuf);
} }
g_value_unset( &value ); g_value_unset( &value );
} }