X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bfbd6dc1921a17bd880d580dd660e8bc478a9391..8471ea90331c42693823ede04ded5fd4d5bf008b:/src/common/ctrlcmn.cpp diff --git a/src/common/ctrlcmn.cpp b/src/common/ctrlcmn.cpp index 479e92c1f5..ec97111188 100644 --- a/src/common/ctrlcmn.cpp +++ b/src/common/ctrlcmn.cpp @@ -6,7 +6,7 @@ // Created: 26.07.99 // RCS-ID: $Id$ // Copyright: (c) wxWindows team -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -17,8 +17,9 @@ // headers // ---------------------------------------------------------------------------- -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "controlbase.h" + #pragma implementation "statbmpbase.h" #endif // For compilers that support precompilation, includes "wx.h". @@ -28,15 +29,45 @@ #pragma hdrstop #endif +#if wxUSE_CONTROLS + #ifndef WX_PRECOMP #include "wx/control.h" #include "wx/log.h" #endif +#if wxUSE_STATBMP + #include "wx/bitmap.h" + #include "wx/statbmp.h" +#endif // wxUSE_STATBMP + // ============================================================================ // implementation // ============================================================================ +wxControlBase::~wxControlBase() +{ + // this destructor is required for Darwin +} + +bool wxControlBase::Create(wxWindow *parent, + wxWindowID id, + const wxPoint &pos, + const wxSize &size, + long style, + const wxValidator& wxVALIDATOR_PARAM(validator), + const wxString &name) +{ + bool ret = wxWindow::Create(parent, id, pos, size, style, name); + +#if wxUSE_VALIDATORS + if ( ret ) + SetValidator(validator); +#endif // wxUSE_VALIDATORS + + return ret; +} + bool wxControlBase::CreateControl(wxWindowBase *parent, wxWindowID id, const wxPoint& pos, @@ -61,9 +92,24 @@ bool wxControlBase::CreateControl(wxWindowBase *parent, // inherit colour and font settings from the parent window void wxControlBase::InheritAttributes() { - SetBackgroundColour(GetParent()->GetBackgroundColour()); - SetForegroundColour(GetParent()->GetForegroundColour()); + if ( ShouldInheritColours() ) + { + wxWindow *parent = GetParent(); + + wxCHECK_RET( parent, _T("a control without parent?") ); + + SetBackgroundColour(parent->GetBackgroundColour()); + SetForegroundColour(parent->GetForegroundColour()); + } + +#ifdef __WXPM__ + // + // All OS/2 ctrls use the small font + // + SetFont(*wxSMALL_FONT); +#else SetFont(GetParent()->GetFont()); +#endif } void wxControlBase::Command(wxCommandEvent& event) @@ -79,17 +125,42 @@ void wxControlBase::InitCommandEvent(wxCommandEvent& event) const switch ( m_clientDataType ) { - case ClientData_Void: + case wxClientData_Void: event.SetClientData(GetClientData()); break; - case ClientData_Object: + case wxClientData_Object: event.SetClientObject(GetClientObject()); break; - case ClientData_None: + case wxClientData_None: // nothing to do ; } } +// ---------------------------------------------------------------------------- +// wxStaticBitmap +// ---------------------------------------------------------------------------- + +#if wxUSE_STATBMP + +wxStaticBitmapBase::~wxStaticBitmapBase() +{ + // this destructor is required for Darwin +} + +wxSize wxStaticBitmapBase::DoGetBestClientSize() const +{ + wxBitmap bmp = GetBitmap(); + if ( bmp.Ok() ) + return wxSize(bmp.GetWidth(), bmp.GetHeight()); + + // this is completely arbitrary + return wxSize(16, 16); +} + +#endif // wxUSE_STATBMP + +#endif // wxUSE_CONTROLS +