]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/tglbtn_osx.cpp
Also update focus rect when changing selection in single selection mode, fixes #11332
[wxWidgets.git] / src / osx / tglbtn_osx.cpp
index a5fa2bc151dc07c407d44a882e3ef235504099bc..a6ec6791411b4930a4953a9329bccd9c1b749fa0 100644 (file)
 
 #include "wx/tglbtn.h"
 #include "wx/osx/private.h"
-// Button
+#include "wx/bmpbuttn.h"    // for wxDEFAULT_BUTTON_MARGIN
 
 // ----------------------------------------------------------------------------
 // macros
 // ----------------------------------------------------------------------------
 
 IMPLEMENT_DYNAMIC_CLASS(wxToggleButton, wxControl)
-DEFINE_EVENT_TYPE(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED)
+wxDEFINE_EVENT( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEvent );
 
 // ============================================================================
 // implementation
@@ -48,26 +48,26 @@ bool wxToggleButton::Create(wxWindow *parent, wxWindowID id,
                             const wxString& name)
 {
     m_macIsUserPane = FALSE ;
-    
+
     if ( !wxControl::Create(parent, id, pos, size, style, validator, name) )
         return false;
-    
+
     m_labelOrig = m_label = label ;
 
     m_peer = wxWidgetImpl::CreateToggleButton( this, parent, id, label, pos, size, style, GetExtraStyle() ) ;
 
     MacPostControlCreate(pos,size) ;
-    
+
   return TRUE;
 }
 
 wxSize wxToggleButton::DoGetBestSize() const
 {
-    int wBtn = 70 ; 
+    int wBtn = 70 ;
     int hBtn = 20 ;
 
     int lBtn = m_label.Length() * 8 + 12 ;
-    if (lBtn > wBtn) 
+    if (lBtn > wBtn)
         wBtn = lBtn;
 
     return wxSize ( wBtn , hBtn ) ;
@@ -89,7 +89,7 @@ void wxToggleButton::Command(wxCommandEvent & event)
    ProcessCommand(event);
 }
 
-bool wxToggleButton::HandleClicked( double timestampsec ) 
+bool wxToggleButton::OSXHandleClicked( double WXUNUSED(timestampsec) )
 {
     wxCommandEvent event(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, m_windowId);
     event.SetInt(GetValue());
@@ -112,16 +112,19 @@ bool wxBitmapToggleButton::Create(wxWindow *parent, wxWindowID id,
                             const wxString& name)
 {
     m_macIsUserPane = FALSE ;
-    
+
     m_bitmap = label;
-    
+
+    m_marginX =
+    m_marginY = wxDEFAULT_BUTTON_MARGIN;
+
     if ( !wxControl::Create(parent, id, pos, size, style, validator, name) )
         return false;
-        
+
     m_peer = wxWidgetImpl::CreateBitmapToggleButton( this, parent, id, label, pos, size, style, GetExtraStyle() ) ;
 
     MacPostControlCreate(pos,size) ;
-    
+
     return TRUE;
 }
 
@@ -129,8 +132,12 @@ wxSize wxBitmapToggleButton::DoGetBestSize() const
 {
     if (!m_bitmap.IsOk())
        return wxSize(20,20);
-       
-    return wxSize ( m_bitmap.GetWidth()+6, m_bitmap.GetHeight()+6 ) ;
+
+    wxSize best;
+    best.x = m_bitmap.GetWidth() + 2 * m_marginX;
+    best.y = m_bitmap.GetHeight() + 2 * m_marginY;
+
+    return best;
 }
 
 void wxBitmapToggleButton::SetValue(bool val)
@@ -149,7 +156,7 @@ void wxBitmapToggleButton::Command(wxCommandEvent & event)
    ProcessCommand(event);
 }
 
-bool wxBitmapToggleButton::HandleClicked( double timestampsec ) 
+bool wxBitmapToggleButton::OSXHandleClicked( double WXUNUSED(timestampsec) )
 {
     wxCommandEvent event(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, m_windowId);
     event.SetInt(GetValue());