X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e9576ca53db96b462ed4c0b4bdf47d64c40203e4..d109c5849ed117966311a44875c97ae3d77b44e5:/src/mac/carbon/statbmp.cpp diff --git a/src/mac/carbon/statbmp.cpp b/src/mac/carbon/statbmp.cpp index a67c558465..69b6f8b448 100644 --- a/src/mac/carbon/statbmp.cpp +++ b/src/mac/carbon/statbmp.cpp @@ -1,19 +1,22 @@ ///////////////////////////////////////////////////////////////////////////// // Name: 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" + #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,6 +26,10 @@ IMPLEMENT_DYNAMIC_CLASS(wxStaticBitmap, wxControl) * wxStaticBitmap */ +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, @@ -30,30 +37,43 @@ bool wxStaticBitmap::Create(wxWindow *parent, wxWindowID id, long style, const wxString& name) { - m_messageBitmap = bitmap; SetName(name); - if (parent) parent->AddChild(this); + m_backgroundColour = parent->GetBackgroundColour() ; + m_foregroundColour = parent->GetForegroundColour() ; + + m_bitmap = bitmap; if ( id == -1 ) - m_windowId = (int)NewControlId(); + m_windowId = (int)NewControlId(); else - m_windowId = id; + m_windowId = id; m_windowStyle = style; - // TODO: create static bitmap control - return FALSE; + bool ret = wxControl::Create( parent, id, pos, size, style , wxDefaultValidator , name ); + SetBestSize( size ) ; + + return ret; } -void wxStaticBitmap::SetSize(int x, int y, int width, int height, int sizeFlags) +void wxStaticBitmap::SetBitmap(const wxBitmap& bitmap) { - // TODO + m_bitmap = bitmap; + InvalidateBestSize(); + SetSize(GetBestSize()); + Refresh() ; } -void wxStaticBitmap::SetBitmap(const wxBitmap& bitmap) +void wxStaticBitmap::OnPaint( wxPaintEvent& WXUNUSED(event) ) { - m_messageBitmap = bitmap; + wxPaintDC dc(this); + PrepareDC(dc); + + dc.DrawBitmap( m_bitmap , 0 , 0 , TRUE ) ; +} - // TODO: redraw bitmap +wxSize wxStaticBitmap::DoGetBestSize() const +{ + return DoGetSizeFromClientSize( wxSize( m_bitmap.GetWidth() , m_bitmap.GetHeight() ) ) ; }