]> git.saurik.com Git - wxWidgets.git/commitdiff
Added wxPropertyGridManager::SetPageSplitterLeft
authorJulian Smart <julian@anthemion.co.uk>
Sun, 18 Mar 2012 20:35:01 +0000 (20:35 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Sun, 18 Mar 2012 20:35:01 +0000 (20:35 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70937 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/propgrid/manager.h
interface/wx/propgrid/manager.h
src/propgrid/manager.cpp

index 39752a122206368d52b288db0448c97285b160b6..77adfd827f9c8a0f86f04ac2ef7baf9b9b0b088f 100644 (file)
@@ -574,6 +574,11 @@ public:
     */
     void SetSplitterLeft( bool subProps = false, bool allPages = true );
 
+    /** Moves splitter as left as possible on an individual page, while still allowing all
+        labels to be shown in full.
+    */
+    void SetPageSplitterLeft(int page, bool subProps = false);
+
     /**
         Sets splitter position on individual page.
 
index 7b5df8516a6c74ac4d10f8fdf26c6bb7ef892018..0391703b0f3ab7238dbdb4d3cafd394c1b525123 100644 (file)
@@ -467,6 +467,11 @@ public:
     */
     void SetSplitterLeft( bool subProps = false, bool allPages = true );
 
+    /** Moves splitter as left as possible on an individual page, while still allowing all
+        labels to be shown in full.
+    */
+    void SetPageSplitterLeft(int page, bool subProps = false);
+
     /**
         Sets splitter position on individual page.
 
index c9252f2172b7dfe3de1a259ba8fd26de1bfa717d..6a1f9fe6e16241f62fb33d37b89b11099271fded 100644 (file)
@@ -1830,6 +1830,27 @@ void wxPropertyGridManager::SetSplitterLeft( bool subProps, bool allPages )
 #endif
 }
 
+void wxPropertyGridManager::SetPageSplitterLeft(int page, bool subProps)
+{
+    wxASSERT_MSG( (page < (int) GetPageCount()),
+                  wxT("SetPageSplitterLeft() has no effect until pages have been added") );
+
+    if (page < (int) GetPageCount())
+    {
+        wxClientDC dc(this);
+        dc.SetFont(m_pPropGrid->GetFont());
+
+        int maxW = m_pState->GetColumnFitWidth(dc, m_arrPages[page]->m_properties, 0, subProps );
+        maxW += m_pPropGrid->m_marginWidth;
+        SetPageSplitterPosition( page, maxW );
+
+#if wxUSE_HEADERCTRL
+        if ( m_showHeader )
+            m_pHeaderCtrl->OnColumWidthsChanged();
+#endif
+    }
+}
+
 // -----------------------------------------------------------------------
 
 void wxPropertyGridManager::OnPropertyGridSelect( wxPropertyGridEvent& event )