%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Name:        gupdlock.tex
%% Purpose:     wxGridUpdateLocker documentation
%% Author:      Evgeniy Tarassov
%% Created:     2007-03-15
%% RCS-ID:      $Id$
%% Copyright:   (c) 2007 TT-Solutions SARL
%% License:     wxWindows license
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{\class{wxGridUpdateLocker}}\label{wxgridupdatelocker}

This small class can be used to prevent \helpref{wxGrid}{wxgrid} from redrawing
during its lifetime by calling \helpref{wxGrid::BeginBatch}{wxgridbeginbatch}
in its constructor and \helpref{wxGrid::EndBatch}{wxgridendbatch} in its
destructor. It is typically used in a function performing several operations
with a grid which would otherwise result in flicker. For example:

{\small
\begin{verbatim}
    void MyFrame::Foo()
    {
        m_grid = new wxGrid(this, ...);

        wxGridUpdateLocker noUpdates(m_grid);
        m_grid->AppendColumn();
        ... many other operations with m_grid...
        m_grid->AppendRow();

        // destructor called, grid refreshed
    }
\end{verbatim}
}

Using this class is easier and safer than calling 
\helpref{BeginBatch}{wxgridbeginbatch} and \helpref{EndBatch}{wxgridendbatch}
because you don't risk not to call the latter (due to an exception for example).

\wxheading{Derived from}

None.

\wxheading{Include files}

<wx/grid.h>


\latexignore{\rtfignore{\wxheading{Members}}}


\membersection{wxGridUpdateLocker::wxGridUpdateLocker}\label{wxgridupdatelockerctor}

\func{}{wxGridUpdateLocker}{\param{wxGrid *}{grid = \NULL}}

Creates an object preventing the updates of the specified \arg{grid}. The
parameter could be \NULL in which case nothing is done. If \arg{grid} is
non-\NULL then the grid must exist for longer than wxGridUpdateLocker object
itself.

The default constructor could be followed by a call to 
\helpref{wxGridUpdateLocker::Create}{wxgridupdatelockercreate} to set the
grid object later.



\membersection{wxGridUpdateLocker::\destruct{wxGridUpdateLocker}}\label{wxgridupdatelockerdtor}

\func{}{\destruct{wxGridUpdateLocker}}{\void}

Destructor reenables updates for the grid this object is associated with.



\membersection{wxGridUpdateLocker::Create}\label{wxgridupdatelockercreate}

\func{void}{Create}{\param{wxGrid* }{grid}}

This method can be called if the object had been constructed using the default
constructor. It must not be called more than once.


