Override Do{Freeze,Thaw}() instead of {Freeze,Thaw}() in wxPropGrid code.

{Freeze,Thaw}() themselves are not virtual any more, so overriding them
doesn't really work and it is unnecessary to reimplement the reference
counting already done by the base class anyhow, so override the DoXXX()
versions instead.

Closes #15877.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75640 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2014-01-17 18:56:13 +00:00
parent 726d6f006e
commit fb730c32b4
5 changed files with 28 additions and 59 deletions

View File

@@ -483,12 +483,6 @@ public:
*/
bool IsAnyModified() const;
/**
Returns true if updating is frozen (ie Freeze() called but not yet
Thaw() ).
*/
bool IsFrozen() const { return m_pPropGrid->m_frozen > 0; }
/**
Returns true if any property on given page has been modified by the
user.
@@ -635,9 +629,6 @@ public:
//
void SetId( wxWindowID winid );
virtual void Freeze();
virtual void Thaw();
virtual void SetExtraStyle ( long exStyle );
virtual bool SetFont ( const wxFont& font );
virtual void SetWindowStyleFlag ( long style );
@@ -646,6 +637,9 @@ public:
protected:
virtual wxSize DoGetBestSize() const;
virtual void DoFreeze();
virtual void DoThaw();
//
// Event handlers
//

View File

@@ -1073,12 +1073,6 @@ public:
/** Returns true if any property has been modified by the user. */
bool IsAnyModified() const { return (m_pState->m_anyModified>0); }
/**
Returns true if updating is frozen (ie Freeze() called but not yet
Thaw() ).
*/
bool IsFrozen() const { return (m_frozen>0)?true:false; }
/**
It is recommended that you call this function any time your code causes
wxPropertyGrid's top-level parent to change. wxPropertyGrid's OnIdle()
@@ -1559,8 +1553,6 @@ public:
{ return (m_iFlags & flag) ? true : false; }
void SetInternalFlag( long flag ) { m_iFlags |= flag; }
void ClearInternalFlag( long flag ) { m_iFlags &= ~(flag); }
void IncFrozen() { m_frozen++; }
void DecFrozen() { m_frozen--; }
void OnComboItemPaint( const wxPGComboBox* pCb,
int item,
@@ -1778,12 +1770,12 @@ public:
virtual void Refresh( bool eraseBackground = true,
const wxRect *rect = (const wxRect *) NULL );
virtual bool SetFont( const wxFont& font );
virtual void Freeze();
virtual void SetExtraStyle( long exStyle );
virtual void Thaw();
virtual bool Reparent( wxWindowBase *newParent );
protected:
virtual void DoThaw();
virtual wxSize DoGetBestSize() const;
#ifndef wxPG_ICON_WIDTH
@@ -1934,9 +1926,6 @@ protected:
/** 1 if m_latsCaption is also the bottommost caption. */
//unsigned char m_lastCaptionBottomnest;
/** Set to 1 when graphics frozen. */
unsigned char m_frozen;
unsigned char m_vspacing;
// Used to track when Alt/Ctrl+Key was consumed.

View File

@@ -679,17 +679,17 @@ void wxPropertyGridManager::SetExtraStyle( long exStyle )
// -----------------------------------------------------------------------
void wxPropertyGridManager::Freeze()
void wxPropertyGridManager::DoFreeze()
{
m_pPropGrid->Freeze();
wxWindow::Freeze();
wxWindow::DoFreeze();
}
// -----------------------------------------------------------------------
void wxPropertyGridManager::Thaw()
void wxPropertyGridManager::DoThaw()
{
wxWindow::Thaw();
wxWindow::DoThaw();
m_pPropGrid->Thaw();
}

View File

@@ -373,7 +373,6 @@ void wxPropertyGrid::Init1()
AddActionTrigger( wxPG_ACTION_PRESS_BUTTON, WXK_F4 );
m_coloursCustomized = 0;
m_frozen = 0;
m_doubleBuffer = NULL;
@@ -607,7 +606,7 @@ void wxPropertyGrid::SetWindowStyleFlag( long style )
//
// Autosort enabled
//
if ( !m_frozen )
if ( !IsFrozen() )
PrepareAfterItemsAdded();
else
m_pState->m_itemsAdded = 1;
@@ -648,24 +647,11 @@ void wxPropertyGrid::SetWindowStyleFlag( long style )
// -----------------------------------------------------------------------
void wxPropertyGrid::Freeze()
void wxPropertyGrid::DoThaw()
{
if ( !m_frozen )
if ( !IsFrozen() )
{
wxControl::Freeze();
}
m_frozen++;
}
// -----------------------------------------------------------------------
void wxPropertyGrid::Thaw()
{
m_frozen--;
if ( !m_frozen )
{
wxControl::Thaw();
wxControl::DoThaw();
RecalculateVirtualSize();
Refresh();
@@ -1920,7 +1906,7 @@ void wxPropertyGrid::DrawItems( wxDC& dc,
unsigned int bottomItemY,
const wxRect* itemsRect )
{
if ( m_frozen ||
if ( IsFrozen() ||
m_height < 1 ||
bottomItemY < topItemY ||
!m_pState )
@@ -2028,7 +2014,7 @@ int wxPropertyGrid::DoDrawItems( wxDC& dc,
if ( !lastItem )
lastItem = GetLastItem( wxPG_ITERATE_VISIBLE );
if ( m_frozen || m_height < 1 || firstItem == NULL )
if ( IsFrozen() || m_height < 1 || firstItem == NULL )
return itemsRect->y;
wxCHECK_MSG( !m_pState->m_itemsAdded, itemsRect->y,
@@ -2554,7 +2540,7 @@ wxRect wxPropertyGrid::GetPropertyRect( const wxPGProperty* p1, const wxPGProper
void wxPropertyGrid::DrawItems( const wxPGProperty* p1, const wxPGProperty* p2 )
{
if ( m_frozen )
if ( IsFrozen() )
return;
if ( m_pState->m_itemsAdded )
@@ -2592,7 +2578,7 @@ void wxPropertyGrid::RefreshProperty( wxPGProperty* p )
void wxPropertyGrid::DrawItemAndValueRelated( wxPGProperty* p )
{
if ( m_frozen )
if ( IsFrozen() )
return;
// Draw item, children, and parent too, if it is not category
@@ -2618,7 +2604,7 @@ void wxPropertyGrid::DrawItemAndChildren( wxPGProperty* p )
return;
// do not draw a single item if multiple pending
if ( m_pState->m_itemsAdded || m_frozen )
if ( m_pState->m_itemsAdded || IsFrozen() )
return;
// Update child control.
@@ -2662,7 +2648,7 @@ void wxPropertyGrid::Clear()
RecalculateVirtualSize();
// Need to clear some area at the end
if ( !m_frozen )
if ( !IsFrozen() )
RefreshRect(wxRect(0, 0, m_width, m_height));
}
@@ -2691,7 +2677,7 @@ bool wxPropertyGrid::EnableCategories( bool enable )
if ( !m_pState->EnableCategories(enable) )
return false;
if ( !m_frozen )
if ( !IsFrozen() )
{
if ( m_windowStyle & wxPG_AUTO_SORT )
{
@@ -2763,7 +2749,7 @@ void wxPropertyGrid::SwitchState( wxPropertyGridPageState* pNewState )
// This should refresh as well.
EnableCategories( orig_mode?false:true );
}
else if ( !m_frozen )
else if ( !IsFrozen() )
{
// Refresh, if not frozen.
m_pState->PrepareAfterItemsAdded();
@@ -4029,7 +4015,7 @@ bool wxPropertyGrid::DoSelectProperty( wxPGProperty* p, unsigned int flags )
wxWindow* primaryCtrl = NULL;
// If we are frozen, then just set the values.
if ( m_frozen )
if ( IsFrozen() )
{
m_iFlags &= ~(wxPG_FL_ABNORMAL_EDITOR);
m_editorFocused = 0;
@@ -4341,7 +4327,7 @@ bool wxPropertyGrid::UnfocusEditor()
{
wxPGProperty* selected = GetSelection();
if ( !selected || !m_wndEditor || m_frozen )
if ( !selected || !m_wndEditor || IsFrozen() )
return true;
if ( !CommitChangesFromEditor(0) )
@@ -4463,7 +4449,7 @@ bool wxPropertyGrid::DoExpand( wxPGProperty* p, bool sendEvents )
bool wxPropertyGrid::DoHideProperty( wxPGProperty* p, bool hide, int flags )
{
if ( m_frozen )
if ( IsFrozen() )
return m_pState->DoHideProperty(p, hide, flags);
wxArrayPGProperty selection = m_pState->m_selection; // Must use a copy
@@ -4497,7 +4483,7 @@ void wxPropertyGrid::RecalculateVirtualSize( int forceXPos )
// Don't check for !HasInternalFlag(wxPG_FL_INITIALIZED) here. Otherwise
// virtual size calculation may go wrong.
if ( HasInternalFlag(wxPG_FL_RECALCULATING_VIRTUAL_SIZE) ||
m_frozen ||
IsFrozen() ||
!m_pState )
return;
@@ -4614,7 +4600,7 @@ void wxPropertyGrid::OnResize( wxSizeEvent& event )
m_pState->OnClientWidthChange( width, event.GetSize().x - m_ncWidth, true );
m_ncWidth = event.GetSize().x;
if ( !m_frozen )
if ( !IsFrozen() )
{
if ( m_pState->m_itemsAdded )
PrepareAfterItemsAdded();
@@ -5544,7 +5530,7 @@ void wxPropertyGrid::HandleKeyEvent( wxKeyEvent &event, bool fromChild )
// Handles key event when editor control is not focused.
//
wxCHECK2(!m_frozen, return);
wxCHECK2(!IsFrozen(), return);
// Travelsal between items, collapsing/expanding, etc.
wxPGProperty* selected = GetSelection();

View File

@@ -1494,7 +1494,7 @@ void wxPropertyGridPageState::DoSetPropertyValues( const wxVariantList& list, wx
if ( m_pPropGrid->GetState() == this )
{
origFrozen = m_pPropGrid->m_frozen;
origFrozen = m_pPropGrid->IsFrozen();
if ( !origFrozen ) m_pPropGrid->Freeze();
}