X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b5b208a1796ecf1b9ab267d200705b4f3b4d10e3..b78a53aca02d92b3334b40a94a322d467c75372c:/src/osx/button_osx.cpp diff --git a/src/osx/button_osx.cpp b/src/osx/button_osx.cpp index bb6138b5c4..da30664452 100644 --- a/src/osx/button_osx.cpp +++ b/src/osx/button_osx.cpp @@ -42,8 +42,6 @@ bool IsHelpButtonWithStandardLabel(wxWindowID id, const wxString& label) } // anonymous namespace -IMPLEMENT_DYNAMIC_CLASS(wxButton, wxControl) - BEGIN_EVENT_TABLE(wxButton, wxControl) EVT_ENTER_WINDOW(wxButton::OnEnterWindow) EVT_LEAVE_WINDOW(wxButton::OnLeaveWindow) @@ -58,6 +56,8 @@ bool wxButton::Create(wxWindow *parent, const wxValidator& validator, const wxString& name) { + DontCreatePeer(); + m_marginX = m_marginY = 0; @@ -83,7 +83,6 @@ bool wxButton::Create(wxWindow *parent, : labelOrig; } - m_macIsUserPane = false ; if ( !wxButtonBase::Create(parent, id, pos, size, style, validator, name) ) return false; @@ -91,7 +90,7 @@ bool wxButton::Create(wxWindow *parent, m_labelOrig = m_label = label ; - m_peer = wxWidgetImpl::CreateButton( this, parent, id, label, pos, size, style, GetExtraStyle() ); + SetPeer(wxWidgetImpl::CreateButton( this, parent, id, label, pos, size, style, GetExtraStyle() )); MacPostControlCreate( pos, size ); @@ -126,12 +125,12 @@ wxBitmap wxButton::DoGetBitmap(State which) const void wxButton::DoSetBitmap(const wxBitmap& bitmap, State which) { m_bitmaps[which] = bitmap; - + if ( which == State_Normal ) - m_peer->SetBitmap(bitmap); + GetPeer()->SetBitmap(bitmap); else if ( which == State_Pressed ) { - wxButtonImpl* bi = dynamic_cast (m_peer); + wxButtonImpl* bi = dynamic_cast (GetPeer()); if ( bi ) bi->SetPressedBitmap(bitmap); } @@ -140,10 +139,24 @@ void wxButton::DoSetBitmap(const wxBitmap& bitmap, State which) void wxButton::DoSetBitmapPosition(wxDirection dir) { - m_peer->SetBitmapPosition(dir); + GetPeer()->SetBitmapPosition(dir); InvalidateBestSize(); } +#if wxUSE_MARKUP && wxOSX_USE_COCOA + +bool wxButton::DoSetLabelMarkup(const wxString& markup) +{ + if ( !wxButtonBase::DoSetLabelMarkup(markup) ) + return false; + + GetPeer()->SetLabelMarkup(markup); + + return true; +} + +#endif // wxUSE_MARKUP && wxOSX_USE_COCOA + wxWindow *wxButton::SetDefault() { wxWindow *btnOldDefault = wxButtonBase::SetDefault(); @@ -153,27 +166,27 @@ wxWindow *wxButton::SetDefault() btnOldDefault->GetPeer()->SetDefaultButton( false ); } - m_peer->SetDefaultButton( true ); + GetPeer()->SetDefaultButton( true ); return btnOldDefault; } void wxButton::Command (wxCommandEvent & WXUNUSED(event)) { - m_peer->PerformClick() ; + GetPeer()->PerformClick() ; // ProcessCommand(event); } void wxButton::OnEnterWindow( wxMouseEvent& WXUNUSED(event)) { if ( DoGetBitmap( State_Current ).IsOk() ) - m_peer->SetBitmap( DoGetBitmap( State_Current ) ); + GetPeer()->SetBitmap( DoGetBitmap( State_Current ) ); } void wxButton::OnLeaveWindow( wxMouseEvent& WXUNUSED(event)) { if ( DoGetBitmap( State_Current ).IsOk() ) - m_peer->SetBitmap( DoGetBitmap( State_Normal ) ); + GetPeer()->SetBitmap( DoGetBitmap( State_Normal ) ); } bool wxButton::OSXHandleClicked( double WXUNUSED(timestampsec) ) @@ -190,16 +203,15 @@ bool wxButton::OSXHandleClicked( double WXUNUSED(timestampsec) ) bool wxDisclosureTriangle::Create(wxWindow *parent, wxWindowID id, const wxString& label, const wxPoint& pos, const wxSize& size, long style,const wxValidator& validator, const wxString& name ) -{ - m_macIsUserPane = false ; - +{ + DontCreatePeer(); if ( !wxControl::Create(parent, id, pos, size, style, validator, name) ) return false; - m_peer = wxWidgetImpl::CreateDisclosureTriangle(this, parent, id, label, pos, size, style, GetExtraStyle() ); + SetPeer(wxWidgetImpl::CreateDisclosureTriangle(this, parent, id, label, pos, size, style, GetExtraStyle() )); MacPostControlCreate( pos, size ); - // passing the text in the param doesn't seem to work, so lets do it again + // passing the text in the param doesn't seem to work, so let's do it again SetLabel( label ); return true; @@ -207,12 +219,12 @@ bool wxDisclosureTriangle::Create(wxWindow *parent, wxWindowID id, const wxStrin void wxDisclosureTriangle::SetOpen( bool open ) { - m_peer->SetValue( open ? 1 : 0 ); + GetPeer()->SetValue( open ? 1 : 0 ); } bool wxDisclosureTriangle::IsOpen() const { - return m_peer->GetValue() == 1; + return GetPeer()->GetValue() == 1; } bool wxDisclosureTriangle::OSXHandleClicked( double WXUNUSED(timestampsec) )