X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/521f1d8371b4f010e8d8c55b55720eb11ff052e6..cc26010927f5bb12825a32487949d063e6c605fc:/src/propgrid/manager.cpp?ds=sidebyside diff --git a/src/propgrid/manager.cpp b/src/propgrid/manager.cpp index a0b0cd755e..0c1d5a726a 100644 --- a/src/propgrid/manager.cpp +++ b/src/propgrid/manager.cpp @@ -76,7 +76,7 @@ const char wxPropertyGridManagerNameStr[] = "wxPropertyGridManager"; // Categoric Mode Icon -static const char* gs_xpm_catmode[] = { +static const char* const gs_xpm_catmode[] = { "16 16 5 1", ". c none", "B c black", @@ -102,7 +102,7 @@ static const char* gs_xpm_catmode[] = { }; // Alphabetic Mode Icon -static const char* gs_xpm_noncatmode[] = { +static const char* const gs_xpm_noncatmode[] = { "16 16 5 1", ". c none", "B c black", @@ -128,7 +128,7 @@ static const char* gs_xpm_noncatmode[] = { }; // Default Page Icon. -static const char* gs_xpm_defpage[] = { +static const char* const gs_xpm_defpage[] = { "16 16 5 1", ". c none", "B c black", @@ -815,6 +815,9 @@ wxPropertyGridPage* wxPropertyGridManager::InsertPage( int index, pageObj->m_id = m_nextTbInd; + if ( !HasFlag(wxPG_SPLITTER_AUTO_CENTER) ) + pageObj->m_dontCenterSplitter = true; + if ( isPageInserted ) m_arrPages.push_back( pageObj ); @@ -837,7 +840,7 @@ wxPropertyGridPage* wxPropertyGridManager::InsertPage( int index, m_pToolbar->AddTool(m_nextTbInd,label,bmp,label,wxITEM_RADIO); //m_pToolbar->InsertTool(index+3,m_nextTbInd,bmp); else - m_pToolbar->AddTool(m_nextTbInd,label,wxBitmap( (const char**)gs_xpm_defpage ), + m_pToolbar->AddTool(m_nextTbInd,label,wxBitmap(gs_xpm_defpage), label,wxITEM_RADIO); m_nextTbInd++; @@ -1271,10 +1274,10 @@ void wxPropertyGridManager::RecreateControls() wxString desc1(_("Categorized Mode")); wxString desc2(_("Alphabetic Mode")); m_pToolbar->AddTool(baseId+ID_ADVTBITEMSBASE_OFFSET+0, - desc1,wxBitmap ( (const char**)gs_xpm_catmode ), + desc1,wxBitmap (gs_xpm_catmode), desc1,wxITEM_RADIO); m_pToolbar->AddTool(baseId+ID_ADVTBITEMSBASE_OFFSET+1, - desc2,wxBitmap ( (const char**)gs_xpm_noncatmode ), + desc2,wxBitmap (gs_xpm_noncatmode), desc2,wxITEM_RADIO); m_pToolbar->Realize(); } @@ -1548,12 +1551,11 @@ void wxPropertyGridManager::SetSplitterLeft( bool subProps, bool allPages ) maxW += m_pPropGrid->m_marginWidth; if ( maxW > highest ) highest = maxW; + m_pState->m_dontCenterSplitter = true; } if ( highest > 0 ) m_pPropGrid->SetSplitterPosition( highest ); - - m_pPropGrid->m_iFlags |= wxPG_FL_DONT_CENTER_SPLITTER; } } @@ -1575,12 +1577,30 @@ void wxPropertyGridManager::OnResize( wxSizeEvent& WXUNUSED(event) ) { int width, height; - GetClientSize(&width,&height); + GetClientSize(&width, &height); if ( m_width == -12345 ) RecreateControls(); - RecalculatePositions(width,height); + RecalculatePositions(width, height); + + if ( m_pPropGrid && m_pPropGrid->m_parent ) + { + int pgWidth, pgHeight; + m_pPropGrid->GetClientSize(&pgWidth, &pgHeight); + + // Regenerate splitter positions for non-current pages + for ( unsigned int i=0; iGetState() ) + { + page->OnClientWidthChange(pgWidth, + pgWidth - page->m_width, + true); + } + } + } } // ----------------------------------------------------------------------- @@ -1718,9 +1738,8 @@ void wxPropertyGridManager::SetSplitterPosition( int pos, int splitterColumn ) { wxPropertyGridPage* page = GetPage(i); page->DoSetSplitterPosition( pos, splitterColumn, false ); + page->m_isSplitterPreSet = true; } - - m_pPropGrid->SetInternalFlag(wxPG_FL_SPLITTER_PRE_SET); } // -----------------------------------------------------------------------