]> git.saurik.com Git - wxWidgets.git/blobdiff - src/propgrid/propgrid.cpp
Don't assume any particular default size for XRC image lists.
[wxWidgets.git] / src / propgrid / propgrid.cpp
index 3840896e8febedbec30cef374582999c01ca5c7f..e89c12abd44aa815993d7ef00b498ab9ab1e21bf 100644 (file)
@@ -235,6 +235,10 @@ wxPGGlobalVarsClass::~wxPGGlobalVarsClass()
         delete ((wxPGEditor*)vt_it->second);
     }
 
+    // Make sure the global pointers have been reset
+    wxASSERT(wxPG_EDITOR(TextCtrl) == NULL);
+    wxASSERT(wxPG_EDITOR(ChoiceAndButton) == NULL);
+
     delete wxPGProperty::sm_wxPG_LABEL;
 }
 
@@ -1945,6 +1949,7 @@ void wxPropertyGrid::DrawItems( wxDC& dc,
     vx *= wxPG_PIXELS_PER_UNIT;
     vy *= wxPG_PIXELS_PER_UNIT;
 
+    // itemRect is in virtual grid space
     wxRect drawRect(itemsRect->x - vx,
                     itemsRect->y - vy,
                     itemsRect->width,
@@ -1985,8 +1990,9 @@ void wxPropertyGrid::DrawItems( wxDC& dc,
 
         if ( dcPtr )
         {
+            // paintFinishY and drawBottomY are in buffer/physical space
             paintFinishY = DoDrawItems( *dcPtr, itemsRect, isBuffered );
-            int drawBottomY = itemsRect->y + itemsRect->height;
+            int drawBottomY = itemsRect->y + itemsRect->height - vy;
 
             // Clear area beyond last painted property
             if ( paintFinishY < drawBottomY )
@@ -2548,7 +2554,7 @@ wxRect wxPropertyGrid::GetPropertyRect( const wxPGProperty* p1, const wxPGProper
     //
     // Return rect which encloses the given property range
     // (in logical grid coordinates)
-    // 
+    //
 
     int visTop = p1->GetY();
     int visBottom;
@@ -4562,6 +4568,11 @@ void wxPropertyGrid::RecalculateVirtualSize( int forceXPos )
     SetScrollbars( wxPG_PIXELS_PER_UNIT, wxPG_PIXELS_PER_UNIT,
                    xAmount, yAmount, xPos, yPos, true );
 
+    // This may be needed in addition to calling SetScrollbars()
+    // when class inherits from wxScrollHelper instead of
+    // actual wxScrolled<T>.
+    AdjustScrollbars();
+
     // Must re-get size now
     GetClientSize(&width,&height);
 
@@ -5183,7 +5194,7 @@ bool wxPropertyGrid::HandleMouseUp( int x, unsigned int WXUNUSED(y),
         // Disable splitter auto-centering (but only if moved any -
         // otherwise we end up disabling auto-center even after a
         // recentering double-click).
-        int posDiff = abs(m_startingSplitterX - 
+        int posDiff = abs(m_startingSplitterX -
                           GetSplitterPosition(m_draggedSplitter));
 
         if ( posDiff > 1 )