X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d15694e8cad1d44087323bd568ca33ff5b354f2c..cc4d5638c66a409e421420ed7110917755a66788:/src/osx/button_osx.cpp diff --git a/src/osx/button_osx.cpp b/src/osx/button_osx.cpp index 7867f9f5ae..e604d21483 100644 --- a/src/osx/button_osx.cpp +++ b/src/osx/button_osx.cpp @@ -4,7 +4,6 @@ // Author: Stefan Csomor // Modified by: // Created: 1998-01-01 -// RCS-ID: $Id$ // Copyright: (c) Stefan Csomor // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -42,11 +41,6 @@ bool IsHelpButtonWithStandardLabel(wxWindowID id, const wxString& label) } // anonymous namespace -BEGIN_EVENT_TABLE(wxButton, wxControl) - EVT_ENTER_WINDOW(wxButton::OnEnterWindow) - EVT_LEAVE_WINDOW(wxButton::OnLeaveWindow) -END_EVENT_TABLE() - bool wxButton::Create(wxWindow *parent, wxWindowID id, const wxString& labelOrig, @@ -56,23 +50,23 @@ bool wxButton::Create(wxWindow *parent, const wxValidator& validator, const wxString& name) { - DontCreatePeer(); - - m_marginX = - m_marginY = 0; - // FIXME: this hack is needed because we're called from // wxBitmapButton::Create() with this style and we currently use a // different wxWidgetImpl method (CreateBitmapButton() rather than // CreateButton()) for creating bitmap buttons, but we really ought // to unify the creation of buttons of all kinds and then remove // this check - if ( style & wxBU_NOTEXT ) + if ( style & wxBU_NOTEXT && !ShouldCreatePeer() ) { return wxControl::Create(parent, id, pos, size, style, validator, name); } + DontCreatePeer(); + + m_marginX = + m_marginY = 0; + wxString label; // Ignore the standard label for help buttons if possible, they use "?" @@ -105,58 +99,12 @@ void wxButton::SetLabel(const wxString& label) return; } - if ( HasFlag(wxBU_NOTEXT) ) - { - // just store the label internally but don't really use it for the - // button - m_labelOrig = - m_label = label; - return; - } - - wxButtonBase::SetLabel(label); -} - -wxBitmap wxButton::DoGetBitmap(State which) const -{ - return m_bitmaps[which]; -} - -void wxButton::DoSetBitmap(const wxBitmap& bitmap, State which) -{ - m_bitmaps[which] = bitmap; - - if ( which == State_Normal ) - GetPeer()->SetBitmap(bitmap); - else if ( which == State_Pressed ) - { - wxButtonImpl* bi = dynamic_cast (GetPeer()); - if ( bi ) - bi->SetPressedBitmap(bitmap); - } - InvalidateBestSize(); -} - -void wxButton::DoSetBitmapPosition(wxDirection 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; + wxAnyButton::SetLabel(label); +#if wxOSX_USE_COCOA + OSXUpdateAfterLabelChange(label); +#endif } -#endif // wxUSE_MARKUP && wxOSX_USE_COCOA - wxWindow *wxButton::SetDefault() { wxWindow *btnOldDefault = wxButtonBase::SetDefault(); @@ -177,26 +125,20 @@ void wxButton::Command (wxCommandEvent & WXUNUSED(event)) // ProcessCommand(event); } -void wxButton::OnEnterWindow( wxMouseEvent& WXUNUSED(event)) -{ - if ( DoGetBitmap( State_Current ).IsOk() ) - GetPeer()->SetBitmap( DoGetBitmap( State_Current ) ); -} - -void wxButton::OnLeaveWindow( wxMouseEvent& WXUNUSED(event)) -{ - if ( DoGetBitmap( State_Current ).IsOk() ) - GetPeer()->SetBitmap( DoGetBitmap( State_Normal ) ); -} - bool wxButton::OSXHandleClicked( double WXUNUSED(timestampsec) ) { - wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, m_windowId); + wxCommandEvent event(wxEVT_BUTTON, m_windowId); event.SetEventObject(this); ProcessCommand(event); return true; } +/* static */ +wxSize wxButtonBase::GetDefaultSize() +{ + return wxAnyButton::GetDefaultSize(); +} + //------------------------------------------------------- // wxDisclosureTriangle //------------------------------------------------------- @@ -211,7 +153,7 @@ bool wxDisclosureTriangle::Create(wxWindow *parent, wxWindowID id, const wxStrin 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; @@ -230,7 +172,7 @@ bool wxDisclosureTriangle::IsOpen() const bool wxDisclosureTriangle::OSXHandleClicked( double WXUNUSED(timestampsec) ) { // Just emit button event for now - wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, m_windowId); + wxCommandEvent event(wxEVT_BUTTON, m_windowId); event.SetEventObject(this); ProcessCommand(event);