/////////////////////////////////////////////////////////////////////////////
-// Name: statbmp.cpp
+// Name: src/gtk/statbmp.cpp
// Purpose:
// Author: Robert Roebling
-// Id: $Id$
// Copyright: (c) 1998 Robert Roebling
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#include "wx/statbmp.h"
-#include "gdk/gdk.h"
-#include "gtk/gtk.h"
+#include <gtk/gtk.h>
//-----------------------------------------------------------------------------
// wxStaticBitmap
//-----------------------------------------------------------------------------
-IMPLEMENT_DYNAMIC_CLASS(wxStaticBitmap,wxControl)
-
wxStaticBitmap::wxStaticBitmap(void)
{
}
const wxPoint &pos, const wxSize &size,
long style, const wxString &name )
{
- m_needParent = TRUE;
-
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
{
m_bitmap = bitmap;
m_widget = gtk_image_new();
+ g_object_ref(m_widget);
- if (bitmap.Ok())
+ if (bitmap.IsOk())
SetBitmap(bitmap);
PostCreation(size);
{
m_bitmap = bitmap;
- if (m_bitmap.Ok())
+ if (m_bitmap.IsOk())
{
- GdkBitmap *mask = (GdkBitmap *) NULL;
- if (m_bitmap.GetMask())
- mask = m_bitmap.GetMask()->GetBitmap();
-
- if (m_bitmap.HasPixbuf())
- {
- gtk_image_set_from_pixbuf(GTK_IMAGE(m_widget),
- m_bitmap.GetPixbuf());
- }
- else
- gtk_image_set_from_pixmap(GTK_IMAGE(m_widget),
- m_bitmap.GetPixmap(), mask);
+ // always use pixbuf, because pixmap mask does not
+ // work with disabled images in some themes
+ gtk_image_set_from_pixbuf(GTK_IMAGE(m_widget), m_bitmap.GetPixbuf());
InvalidateBestSize();
SetSize(GetBestSize());
wxVisualAttributes
wxStaticBitmap::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant))
{
- // TODO: overload to allow using gtk_pixmap_new?
- return GetDefaultAttributesFromGTKWidget(gtk_label_new);
+ return GetDefaultAttributesFromGTKWidget(gtk_image_new());
}
#endif // wxUSE_STATBMP