]> git.saurik.com Git - wxWidgets.git/commitdiff
Correctly determine best wxPropertyGrid width.
authorVadim Zeitlin <vadim@wxwidgets.org>
Mon, 31 Aug 2009 21:28:25 +0000 (21:28 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Mon, 31 Aug 2009 21:28:25 +0000 (21:28 +0000)
Improve wxPropertyGrid::DoGetBestSize() to correctly determine the window
width by using the sum of columns widths.

Also correct wxPropertyGridPageState::GetColumnFitWidth() to account for the
bitmaps.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61796 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/propgrid/propgrid.cpp
src/propgrid/propgridpagestate.cpp

index 45fd19645c054381774efaea8268da6926d55049..6f8ad9737990eab98764c8fc8d906d838c2e3973 100644 (file)
@@ -1130,7 +1130,15 @@ wxSize wxPropertyGrid::DoGetBestSize() const
                     10
                    );
 
-    const wxSize sz = wxSize(60, lineHeight*numLines + 40);
+    wxClientDC dc(const_cast<wxPropertyGrid *>(this));
+    int width = m_marginWidth;
+    for ( unsigned int i = 0; i < m_pState->m_colWidths.size(); i++ )
+    {
+        width += m_pState->GetColumnFitWidth(dc, m_pState->DoGetRoot(), i, true);
+    }
+
+    const wxSize sz = wxSize(width, lineHeight*numLines + 40);
+
     CacheBestSize(sz);
     return sz;
 }
index 8f5d8a0325b968c6258406a94dab782994ea0b4f..d95efe3fb90384caf9215e26a092232a8412d55b 100644 (file)
@@ -768,8 +768,10 @@ int wxPropertyGridPageState::GetColumnFitWidth(wxClientDC& dc,
             if ( col == 0 )
                 w += ( ((int)p->m_depth-1) * pg->m_subgroup_extramargin );
 
-            //
-            // TODO: Add bitmap support.
+            // account for the bitmap
+            if ( col == 1 )
+                w += p->GetImageOffset(pg->GetImageRect(p, -1).GetWidth());
+
 
             w += (wxPG_XBEFORETEXT*2);