]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/tbarbase.cpp
use best size instead of hard coded 80*26 in SetSize(wxSIZE_AUTO)
[wxWidgets.git] / src / common / tbarbase.cpp
index 36d6474ab45ae3fa164bab440c962b7a42baa312..d2243fedf2cd3b1f25719b798484aaa997b5dff1 100644 (file)
@@ -63,6 +63,9 @@ IMPLEMENT_DYNAMIC_CLASS(wxToolBarToolBase, wxObject)
 
 bool wxToolBarToolBase::Enable(bool enable)
 {
+    if ( m_enabled == enable )
+        return false;
+
     m_enabled = enable;
 
     return true;
@@ -72,6 +75,9 @@ bool wxToolBarToolBase::Toggle(bool toggle)
 {
     wxASSERT_MSG( CanBeToggled(), _T("can't toggle this tool") );
 
+    if ( m_toggled == toggle )
+        return false;
+
     m_toggled = toggle;
 
     return true;
@@ -80,6 +86,8 @@ bool wxToolBarToolBase::Toggle(bool toggle)
 bool wxToolBarToolBase::SetToggle(bool toggle)
 {
     wxItemKind kind = toggle ? wxITEM_CHECK : wxITEM_NORMAL;
+    if ( m_kind == kind )
+        return false;
 
     m_kind = kind;
 
@@ -88,6 +96,9 @@ bool wxToolBarToolBase::SetToggle(bool toggle)
 
 bool wxToolBarToolBase::SetShortHelp(const wxString& help)
 {
+    if ( m_shortHelpString == help )
+        return false;
+
     m_shortHelpString = help;
 
     return true;
@@ -95,6 +106,9 @@ bool wxToolBarToolBase::SetShortHelp(const wxString& help)
 
 bool wxToolBarToolBase::SetLongHelp(const wxString& help)
 {
+    if ( m_longHelpString == help )
+        return false;
+
     m_longHelpString = help;
 
     return true;
@@ -607,6 +621,12 @@ void wxToolBarBase::UpdateWindowUI(long flags)
 {
     wxWindowBase::UpdateWindowUI(flags);
 
+    // There is no sense in updating the toolbar UI
+    // if the parent window is about to get destroyed
+    wxWindow *tlw = wxGetTopLevelParent( this );
+    if (tlw && wxPendingDelete.Member( tlw ))
+        return;
+
     wxEvtHandler* evtHandler = GetEventHandler() ;
 
     for ( wxToolBarToolsList::compatibility_iterator node = m_tools.GetFirst();