]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/slider.cpp
wxPaletteBase introduction. wxPalette::GetColoursCount() in interface of all platform...
[wxWidgets.git] / src / mac / carbon / slider.cpp
index 1d66db39e0fa44be37107384c42ae1b7d9a1c24f..79f83f1b52ebbe378e69f8555950cb34fae5b1c5 100644 (file)
@@ -124,9 +124,14 @@ bool wxSlider::Create(wxWindow *parent, wxWindowID id,
 
 wxSlider::~wxSlider()
 {
-    delete m_macMinimumStatic ;
-    delete m_macMaximumStatic ;
-    delete m_macValueStatic ;
+    // this is a special case, as we had to add windows as siblings we are 
+    // responsible for their disposal, but only if we are not part of a DestroyAllChildren
+    if ( m_parent && m_parent->IsBeingDeleted() == false )
+    {
+        delete m_macMinimumStatic ;
+        delete m_macMaximumStatic ;
+        delete m_macValueStatic ;
+    }
 }
 
 int wxSlider::GetValue() const
@@ -291,17 +296,17 @@ wxInt32 wxSlider::MacControlHit( WXEVENTHANDLERREF handler , WXEVENTREF mevent )
 
 /* This is overloaded in wxSlider so that the proper width/height will always be used
 * for the slider different values would cause redrawing and mouse detection problems */
-void wxSlider::SetSizeHints( int minW, int minH,
-                            int maxW , int maxH ,
-                            int incW , int incH )
+void wxSlider::DoSetSizeHints( int minW, int minH,
+                               int maxW , int maxH ,
+                               int incW , int incH )
 {
     wxSize size = GetBestSize();
 
     if(GetWindowStyle() & wxSL_VERTICAL) {
-        wxWindow::SetSizeHints(size.x, minH, size.x, maxH, incW, incH);
+        wxWindow::DoSetSizeHints(size.x, minH, size.x, maxH, incW, incH);
     }
     else {
-        wxWindow::SetSizeHints(minW, size.y, maxW, size.y, incW, incH);
+        wxWindow::DoSetSizeHints(minW, size.y, maxW, size.y, incW, incH);
     }
 }