X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/94b8ecf1cdefea63f07f9ed2b54a2ad2556ec001..440e5cb2fa76b5a722c14065f5d3e87f499daf33:/src/propgrid/propgridpagestate.cpp diff --git a/src/propgrid/propgridpagestate.cpp b/src/propgrid/propgridpagestate.cpp index 59c3a88a39..311507eb3e 100644 --- a/src/propgrid/propgridpagestate.cpp +++ b/src/propgrid/propgridpagestate.cpp @@ -255,7 +255,7 @@ void wxPropertyGridPageState::InitNonCatMode() wxPGProperty* parent = p->GetParent(); if ( parent->IsCategory() || parent->IsRoot() ) { - m_abcArray->AddChild2(p); + m_abcArray->DoAddChild(p); p->m_parent = &m_regularArray; } } @@ -268,6 +268,15 @@ void wxPropertyGridPageState::InitNonCatMode() void wxPropertyGridPageState::DoClear() { + if ( m_pPropGrid && m_pPropGrid->GetState() == this ) + { + m_pPropGrid->ClearSelection(false); + } + else + { + m_selected = NULL; + } + m_regularArray.Empty(); if ( m_abcArray ) m_abcArray->Empty(); @@ -280,8 +289,6 @@ void wxPropertyGridPageState::DoClear() m_virtualHeight = 0; m_vhCalcPending = 0; - - m_selected = NULL; } // ----------------------------------------------------------------------- @@ -863,7 +870,7 @@ void wxPropertyGridPageState::SetSplitterLeft( bool subProps ) { wxPropertyGrid* pg = GetGrid(); wxClientDC dc(pg); - dc.SetFont(pg->m_font); + dc.SetFont(pg->GetFont()); int maxW = GetColumnFitWidth(dc, m_properties, 0, subProps); @@ -880,7 +887,7 @@ wxSize wxPropertyGridPageState::DoFitColumns( bool WXUNUSED(allowGridResize) ) { wxPropertyGrid* pg = GetGrid(); wxClientDC dc(pg); - dc.SetFont(pg->m_font); + dc.SetFont(pg->GetFont()); int marginWidth = pg->m_marginWidth; int accWid = marginWidth; @@ -940,9 +947,7 @@ void wxPropertyGridPageState::CheckColumnWidths( int widthChange ) // // Column to reduce, if needed. Take last one that exceeds minimum width. - // Except if auto splitter centering is used, in which case use widest. int reduceCol = -1; - int highestColWidth = 0; #ifdef __WXDEBUG__ if ( debug ) @@ -960,18 +965,9 @@ void wxPropertyGridPageState::CheckColumnWidths( int widthChange ) } else { - if ( pg->HasFlag(wxPG_SPLITTER_AUTO_CENTER) ) - { - if ( m_colWidths[i] >= highestColWidth ) - { - highestColWidth = m_colWidths[i]; - reduceCol = i; - } - } - else - { - reduceCol = i; - } + // Always reduce the last column that is larger than minimum size + // (looks nicer, even with auto-centering enabled). + reduceCol = i; } } @@ -1570,16 +1566,18 @@ bool wxPropertyGridPageState::PrepareToAddItem( wxPGProperty* property, } } -#ifdef __WXDEBUG__ +#if wxDEBUG_LEVEL // Warn for identical names in debug mode. if ( BaseGetPropertyByName(property->GetName()) && (!scheduledParent || scheduledParent->IsCategory()) ) { - wxLogError(wxT("wxPropertyGrid: Warning - item with name \"%s\" already exists."), - property->GetName().c_str()); + wxFAIL_MSG(wxString::Format( + "wxPropertyGrid item with name \"%s\" already exists", + property->GetName())); + wxPGGlobalVars->m_warnings++; } -#endif +#endif // wxDEBUG_LEVEL // Make sure nothing is selected. if ( propGrid ) @@ -1659,11 +1657,11 @@ wxPGProperty* wxPropertyGridPageState::DoInsert( wxPGProperty* parent, int index if ( m_abcArray && !property->IsCategory() && (parentIsCategory || parentIsRoot) ) { - m_abcArray->AddChild2( property, -1, false ); + m_abcArray->DoAddChild( property, -1, false ); } // Add to current mode. - parent->AddChild2( property, index, true ); + parent->DoAddChild( property, index, true ); } else { @@ -1671,14 +1669,14 @@ wxPGProperty* wxPropertyGridPageState::DoInsert( wxPGProperty* parent, int index if ( parentIsCategory ) // Parent is category. - parent->AddChild2( property, index, false ); + parent->DoAddChild( property, index, false ); else if ( parentIsRoot ) // Parent is root. - m_regularArray.AddChild2( property, -1, false ); + m_regularArray.DoAddChild( property, -1, false ); // Add to current mode if ( !property->IsCategory() ) - m_abcArray->AddChild2( property, index, true ); + m_abcArray->DoAddChild( property, index, true ); } // category stuff