]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/toolbar.cpp
added trailing slash
[wxWidgets.git] / src / mac / carbon / toolbar.cpp
index 33c9c9db5731d6235dfa0ff387a806d941b31a1f..e445850c6061701dd81c7ea39f88fe257868801d 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     04/01/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Stefan Csomor
-// Licence:     The wxWidgets licence
+// Licence:     The wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
@@ -66,6 +66,7 @@ public:
 
     void SetSize(const wxSize& size) ;
     void SetPosition( const wxPoint& position ) ;
+    
     wxSize GetSize() const
     {
         if ( IsControl() )
@@ -88,6 +89,7 @@ public:
     {
         return wxPoint(m_x, m_y);
     }    
+    bool DoEnable( bool enable ) ;
 private :
     void Init() 
     {
@@ -159,6 +161,28 @@ DEFINE_ONE_SHOT_HANDLER_GETTER( wxMacToolBarToolEventHandler )
 // wxToolBarTool
 // ----------------------------------------------------------------------------
 
+bool wxToolBarTool::DoEnable(bool enable)
+{
+    if ( IsControl() )
+    {
+        GetControl()->Enable( enable ) ;
+    }
+    else if ( IsButton() )
+    {
+#if TARGET_API_MAC_OSX
+        if ( enable )
+            EnableControl( m_controlHandle ) ;
+        else
+            DisableControl( m_controlHandle ) ;
+#else
+        if ( enable )
+            ActivateControl( m_controlHandle ) ;
+        else
+            DeactivateControl( m_controlHandle ) ;
+#endif
+    }
+    return true ;
+}
 void wxToolBarTool::SetSize(const wxSize& size)
 {
     if ( IsControl() )
@@ -240,8 +264,6 @@ wxToolBarTool::wxToolBarTool(wxToolBar *tbar,
         GetEventTypeCount(eventList), eventList, this,NULL);
         
     UMAShowControl( m_controlHandle ) ;
-    if ( !IsEnabled() )
-        DisableControl( m_controlHandle ) ;
 
     if ( CanBeToggled() && IsToggled() )
         ::SetControl32BitValue( m_controlHandle , 1 ) ;
@@ -313,7 +335,7 @@ bool wxToolBar::Realize()
     int maxToolHeight = 0;
 
     // Find the maximum tool width and height
-    wxToolBarToolsList::Node *node = m_tools.GetFirst();
+    wxToolBarToolsList::compatibility_iterator node = m_tools.GetFirst();
     while ( node )
     {
         wxToolBarTool *tool = (wxToolBarTool *)node->GetData();
@@ -377,6 +399,7 @@ bool wxToolBar::Realize()
     }
     
     SetSize( maxWidth, maxHeight );
+    InvalidateBestSize();
     
     return TRUE;
 }
@@ -411,7 +434,7 @@ void wxToolBar::MacSuperChangedPosition()
 
 wxToolBarToolBase *wxToolBar::FindToolForPosition(wxCoord x, wxCoord y) const
 {
-    wxToolBarToolsList::Node *node = m_tools.GetFirst();
+    wxToolBarToolsList::compatibility_iterator node = m_tools.GetFirst();
     while (node)
     {
         wxToolBarTool *tool = (wxToolBarTool *)node->GetData() ;
@@ -442,18 +465,7 @@ void wxToolBar::DoEnableTool(wxToolBarToolBase *t, bool enable)
     if (!IsShown())
         return ;
 
-    wxToolBarTool *tool = (wxToolBarTool *)t;
-    if ( tool->IsControl() )
-    {
-        tool->GetControl()->Enable( enable ) ;
-    }
-    else if ( tool->IsButton() )
-    {
-        if ( enable )
-            UMAActivateControl( (ControlRef) tool->GetControlHandle() ) ;
-        else
-            UMADeactivateControl( (ControlRef) tool->GetControlHandle() ) ;
-    }
+    ((wxToolBarTool*)t)->DoEnable( enable ) ;
 }
 
 void wxToolBar::DoToggleTool(wxToolBarToolBase *t, bool toggle)
@@ -473,6 +485,7 @@ bool wxToolBar::DoInsertTool(size_t WXUNUSED(pos),
 {
     // nothing special to do here - we relayout in Realize() later
     tool->Attach(this);
+    InvalidateBestSize();
 
     return TRUE;
 }
@@ -484,7 +497,7 @@ void wxToolBar::DoSetToggle(wxToolBarToolBase *WXUNUSED(tool), bool WXUNUSED(tog
 
 bool wxToolBar::DoDeleteTool(size_t WXUNUSED(pos), wxToolBarToolBase *tool)
 {
-    wxToolBarToolsList::Node *node;
+    wxToolBarToolsList::compatibility_iterator node;
     for ( node = m_tools.GetFirst(); node; node = node->GetNext() )
     {
         wxToolBarToolBase *tool2 = node->GetData();
@@ -519,6 +532,7 @@ bool wxToolBar::DoDeleteTool(size_t WXUNUSED(pos), wxToolBarToolBase *tool)
         tool2->SetPosition( pt ) ;
     }
     
+    InvalidateBestSize();
     return TRUE ;
 }