added a tiny class to call Freeze/Thaw in ctor/dtor

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37842 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2006-03-07 01:50:21 +00:00
parent c81c9392fa
commit 9d3cb3f369
3 changed files with 107 additions and 0 deletions

37
include/wx/wupdlock.h Normal file
View File

@@ -0,0 +1,37 @@
///////////////////////////////////////////////////////////////////////////////
// Name: wx/wupdlock.h
// Purpose: wxWindowUpdateLocker prevents window redrawing
// Author: Vadim Zeitlin
// Created: 2006-03-06
// RCS-ID: $Id$
// Copyright: (c) 2006 Vadim Zeitlin <vadim@wxwindows.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_WUPDLOCK_H_
#define _WX_WUPDLOCK_H_
#include "wx/window.h"
// ----------------------------------------------------------------------------
// wxWindowUpdateLocker prevents updates to the window during its lifetime
// ----------------------------------------------------------------------------
class wxWindowUpdateLocker
{
public:
// create an object preventing updates of the given window (which must have
// a lifetime at least as great as ours)
wxWindowUpdateLocker(wxWindow *win) : m_win(win) { win->Freeze(); }
// dtor thaws the window to permit updates again
~wxWindowUpdateLocker() { m_win->Thaw(); }
private:
wxWindow *m_win;
DECLARE_NO_COPY_CLASS(wxWindowUpdateLocker)
};
#endif // _WX_WUPDLOCK_H_