X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/519cb848a8f4c91c73421bb75314754284e593a4..98ec9dbebc5584ba1b903d314b25e8c562891483:/src/mac/statbmp.cpp?ds=sidebyside diff --git a/src/mac/statbmp.cpp b/src/mac/statbmp.cpp index 721c254234..35e918d469 100644 --- a/src/mac/statbmp.cpp +++ b/src/mac/statbmp.cpp @@ -10,10 +10,13 @@ ///////////////////////////////////////////////////////////////////////////// #ifdef __GNUG__ -#pragma implementation "statbmp.h" + #pragma implementation "statbmp.h" #endif +#include "wx/defs.h" + #include "wx/statbmp.h" +#include "wx/dcclient.h" #if !USE_SHARED_LIBRARY IMPLEMENT_DYNAMIC_CLASS(wxStaticBitmap, wxControl) @@ -23,21 +26,24 @@ IMPLEMENT_DYNAMIC_CLASS(wxStaticBitmap, wxControl) * wxStaticBitmap */ -BEGIN_EVENT_TABLE(wxStaticBitmap, wxControl) +BEGIN_EVENT_TABLE(wxStaticBitmap, wxStaticBitmapBase) EVT_PAINT(wxStaticBitmap::OnPaint) END_EVENT_TABLE() bool wxStaticBitmap::Create(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, const wxPoint& pos, - const wxSize& size, + const wxSize& s, long style, const wxString& name) { - m_messageBitmap = bitmap; SetName(name); - if (parent) parent->AddChild(this); + wxSize size = s ; + + m_backgroundColour = parent->GetBackgroundColour() ; + m_foregroundColour = parent->GetForegroundColour() ; + m_bitmap = bitmap; if ( id == -1 ) m_windowId = (int)NewControlId(); else @@ -45,8 +51,9 @@ bool wxStaticBitmap::Create(wxWindow *parent, wxWindowID id, m_windowStyle = style; - bool ret = wxControl::Create( parent, id, pos, size, style , name ); - + bool ret = wxControl::Create( parent, id, pos, size, style , wxDefaultValidator , name ); + SetBestSize( size ) ; + return ret; } @@ -57,15 +64,24 @@ void wxStaticBitmap::SetSize(int x, int y, int width, int height, int sizeFlags) void wxStaticBitmap::SetBitmap(const wxBitmap& bitmap) { - m_messageBitmap = bitmap; - + m_bitmap = bitmap; Refresh() ; + SetBestSize(wxSize(bitmap.GetWidth(), bitmap.GetHeight())); } + void wxStaticBitmap::OnPaint( wxPaintEvent &event ) { wxPaintDC dc(this); PrepareDC(dc); - dc.SetPalette( *m_messageBitmap.GetPalette() ) ; - dc.DrawBitmap( m_messageBitmap , 0 , 0 ) ; + + dc.DrawBitmap( m_bitmap , 0 , 0 , TRUE ) ; +} + +wxSize wxStaticBitmap::DoGetBestSize() const +{ + if ( m_bitmap.Ok() ) + return wxSize(m_bitmap.GetWidth(), m_bitmap.GetHeight()); + else + return wxSize(16, 16); // completely arbitrary }