X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ad81651f00edc6f489d9b6a0839d316a964fd521..2cf3a6d7bef6f20bea35062dd3d4dbf0aec9efb5:/src/mac/carbon/statbmp.cpp diff --git a/src/mac/carbon/statbmp.cpp b/src/mac/carbon/statbmp.cpp index 8bd5fecb71..7aad88f18a 100644 --- a/src/mac/carbon/statbmp.cpp +++ b/src/mac/carbon/statbmp.cpp @@ -1,27 +1,31 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: statbmp.cpp +// Name: src/mac/carbon/statbmp.cpp // Purpose: wxStaticBitmap -// Author: AUTHOR +// Author: Stefan Csomor // Modified by: -// Created: ??/??/98 +// Created: 1998-01-01 // RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence +// Copyright: (c) Stefan Csomor +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "statbmp.h" -#endif +#include "wx/wxprec.h" + +#if wxUSE_STATBMP #include "wx/statbmp.h" +#ifndef WX_PRECOMP + #include "wx/dcclient.h" +#endif + IMPLEMENT_DYNAMIC_CLASS(wxStaticBitmap, wxControl) /* * wxStaticBitmap */ -BEGIN_EVENT_TABLE(wxStaticBitmap, wxControl) +BEGIN_EVENT_TABLE(wxStaticBitmap, wxStaticBitmapBase) EVT_PAINT(wxStaticBitmap::OnPaint) END_EVENT_TABLE() @@ -37,45 +41,46 @@ bool wxStaticBitmap::Create(wxWindow *parent, wxWindowID id, m_backgroundColour = parent->GetBackgroundColour() ; m_foregroundColour = parent->GetForegroundColour() ; - m_messageBitmap = bitmap; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); + m_bitmap = bitmap; + if ( id == wxID_ANY ) + m_windowId = (int)NewControlId(); else - m_windowId = id; + m_windowId = id; m_windowStyle = style; - bool ret = wxControl::Create( parent, id, pos, size, style , name ); - - SetSizeOrDefault() ; - - return ret; -} + bool ret = wxControl::Create( parent, id, pos, size, style , wxDefaultValidator , name ); + SetBestSize( size ) ; -void wxStaticBitmap::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - wxControl::SetSize( x , y , width , height , sizeFlags ) ; + return ret; } void wxStaticBitmap::SetBitmap(const wxBitmap& bitmap) { - m_messageBitmap = bitmap; - SetSizeOrDefault(); + m_bitmap = bitmap; + InvalidateBestSize(); + SetSize(GetBestSize()); + Refresh() ; } -void wxStaticBitmap::OnPaint( wxPaintEvent &event ) + +void wxStaticBitmap::OnPaint( wxPaintEvent& WXUNUSED(event) ) { wxPaintDC dc(this); PrepareDC(dc); - dc.SetPalette( *m_messageBitmap.GetPalette() ) ; - dc.DrawBitmap( m_messageBitmap , 0 , 0 ) ; + + if (m_bitmap.Ok()) + { + dc.DrawBitmap( m_bitmap , 0 , 0 , TRUE ) ; + } } wxSize wxStaticBitmap::DoGetBestSize() const { - if ( m_messageBitmap.Ok() ) - return wxSize(m_messageBitmap.GetWidth(), m_messageBitmap.GetHeight()); - else - return wxSize(16, 16); // completely arbitrary + if ( m_bitmap.Ok() ) + return DoGetSizeFromClientSize( wxSize(m_bitmap.GetWidth(), m_bitmap.GetHeight()) ); + + // this is completely arbitrary + return DoGetSizeFromClientSize( wxSize(16, 16) ); } +#endif