]> git.saurik.com Git - wxWidgets.git/blobdiff - src/propgrid/manager.cpp
support for @2x notation for wxBITMAP_TYPE_PNG (non-resource) on retina displays
[wxWidgets.git] / src / propgrid / manager.cpp
index 1b4bf21bb0b269530e625a101bb57098815d9fa0..99d6e145fc3fc67d09709e0194dc1ebd1acb33a5 100644 (file)
@@ -346,7 +346,7 @@ private:
 
     virtual bool ProcessEvent( wxEvent& event )
     {
-        if ( event.IsKindOf(CLASSINFO(wxHeaderCtrlEvent)) )
+        if ( event.IsKindOf(wxCLASSINFO(wxHeaderCtrlEvent)) )
         {
             wxHeaderCtrlEvent& hcEvent =
                 static_cast<wxHeaderCtrlEvent&>(event);
@@ -355,7 +355,7 @@ private:
             int col = hcEvent.GetColumn();
             int evtType = event.GetEventType();
 
-            if ( evtType == wxEVT_COMMAND_HEADER_RESIZING )
+            if ( evtType == wxEVT_HEADER_RESIZING )
             {
                 int colWidth = hcEvent.GetWidth();
 
@@ -367,7 +367,7 @@ private:
 
                 return true;
             }
-            else if ( evtType == wxEVT_COMMAND_HEADER_BEGIN_RESIZE )
+            else if ( evtType == wxEVT_HEADER_BEGIN_RESIZE )
             {
                 // Never allow column resize if layout is static
                 if ( m_manager->HasFlag(wxPG_STATIC_SPLITTER) )
@@ -380,7 +380,7 @@ private:
 
                 return true;
             }
-            else if ( evtType == wxEVT_COMMAND_HEADER_END_RESIZE )
+            else if ( evtType == wxEVT_HEADER_END_RESIZE )
             {
                 pg->SendEvent(wxEVT_PG_COL_END_DRAG,
                               NULL, NULL, 0,
@@ -745,12 +745,14 @@ bool wxPropertyGridManager::DoSelectPage( int index )
             return false;
     }
 
+#if wxUSE_TOOLBAR
     wxPropertyGridPage* prevPage;
 
     if ( m_selPage >= 0 )
         prevPage = GetPage(m_selPage);
     else
         prevPage = m_emptyPage;
+#endif
 
     wxPropertyGridPage* nextPage;
 
@@ -986,7 +988,7 @@ wxPropertyGridPage* wxPropertyGridManager::InsertPage( int index,
         state->InitNonCatMode();
     }
 
-    if ( label.length() )
+    if ( !label.empty() )
     {
         wxASSERT_MSG( !pageObj->m_label.length(),
                       wxT("If page label is given in constructor, empty label must be given in AddPage"));
@@ -1030,7 +1032,7 @@ wxPropertyGridPage* wxPropertyGridManager::InsertPage( int index,
 
             // Connect to toolbar button events.
             Connect(pageObj->m_toolId,
-                    wxEVT_COMMAND_TOOL_CLICKED,
+                    wxEVT_TOOL,
                     wxCommandEventHandler(
                         wxPropertyGridManager::OnToolbarClick));
 
@@ -1513,11 +1515,11 @@ void wxPropertyGridManager::RecreateControls()
                 m_pToolbar->Realize();
 
                 Connect(m_categorizedModeToolId,
-                        wxEVT_COMMAND_TOOL_CLICKED,
+                        wxEVT_TOOL,
                         wxCommandEventHandler(
                             wxPropertyGridManager::OnToolbarClick));
                 Connect(m_alphabeticModeToolId,
-                        wxEVT_COMMAND_TOOL_CLICKED,
+                        wxEVT_TOOL,
                         wxCommandEventHandler(
                             wxPropertyGridManager::OnToolbarClick));
             }
@@ -1821,7 +1823,7 @@ void wxPropertyGridManager::SetSplitterLeft( bool subProps, bool allPages )
         }
 
         if ( highest > 0 )
-            m_pPropGrid->SetSplitterPosition( highest );
+            SetSplitterPosition( highest );
     }
 
 #if wxUSE_HEADERCTRL
@@ -1830,6 +1832,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 )
@@ -1885,6 +1908,11 @@ void wxPropertyGridManager::OnResize( wxSizeEvent& WXUNUSED(event) )
             }
         }
     }
+
+#if wxUSE_HEADERCTRL
+    if ( m_showHeader )
+        m_pHeaderCtrl->OnColumWidthsChanged();
+#endif
 }
 
 // -----------------------------------------------------------------------
@@ -1982,7 +2010,7 @@ void wxPropertyGridManager::OnMouseClick( wxMouseEvent &event )
 
 void wxPropertyGridManager::OnMouseUp( wxMouseEvent &event )
 {
-    // No event type check - basicly calling this method should
+    // No event type check - basically calling this method should
     // just stop dragging.
 
     if ( m_dragStatus >= 1 )