added wxWindow::Freeze/Thaw(), implemented them for wxGTK::wxTextCtrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11176 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -466,6 +466,20 @@ implements the following methods:\par
|
|||||||
Sizes the window so that it fits around its subwindows. This function won't do
|
Sizes the window so that it fits around its subwindows. This function won't do
|
||||||
anything if there are no subwindows.
|
anything if there are no subwindows.
|
||||||
|
|
||||||
|
\membersection{wxWindow::Freeze}\label{wxwindowfreeze}
|
||||||
|
|
||||||
|
\func{virtual void}{Freeze}{\void}
|
||||||
|
|
||||||
|
Freezes the window or, in other words, prevents any updates from taking place
|
||||||
|
on screen, the window is not redrawn at all. \helpref{Thaw}{wxwindowthaw} must
|
||||||
|
be called to reenable window redrawing.
|
||||||
|
|
||||||
|
This method is useful for visual appearance optimization (for example, it
|
||||||
|
is a good idea to use it before inserting large amount of text into a
|
||||||
|
wxTextCtrl under wxGTK) but is not implemented on all platforms nor for all
|
||||||
|
controls so it is mostly just a hint to wxWindows and not a mandatory
|
||||||
|
directive.
|
||||||
|
|
||||||
\membersection{wxWindow::GetBackgroundColour}\label{wxwindowgetbackgroundcolour}
|
\membersection{wxWindow::GetBackgroundColour}\label{wxwindowgetbackgroundcolour}
|
||||||
|
|
||||||
\constfunc{virtual wxColour}{GetBackgroundColour}{\void}
|
\constfunc{virtual wxColour}{GetBackgroundColour}{\void}
|
||||||
@@ -2441,6 +2455,13 @@ needed if Show() is called immediately after the frame creation.
|
|||||||
|
|
||||||
\helpref{wxWindow::IsShown}{wxwindowisshown}
|
\helpref{wxWindow::IsShown}{wxwindowisshown}
|
||||||
|
|
||||||
|
\membersection{wxWindow::Thaw}\label{wxwindowthaw}
|
||||||
|
|
||||||
|
\func{virtual void}{Thaw}{\void}
|
||||||
|
|
||||||
|
Reenables window updating after a previous call to
|
||||||
|
\helpref{Freeze}{wxwindowfreeze}.
|
||||||
|
|
||||||
\membersection{wxWindow::TransferDataFromWindow}\label{wxwindowtransferdatafromwindow}
|
\membersection{wxWindow::TransferDataFromWindow}\label{wxwindowtransferdatafromwindow}
|
||||||
|
|
||||||
\func{virtual bool}{TransferDataFromWindow}{\void}
|
\func{virtual bool}{TransferDataFromWindow}{\void}
|
||||||
|
@@ -143,6 +143,11 @@ public:
|
|||||||
|
|
||||||
void SetModified() { m_modified = TRUE; }
|
void SetModified() { m_modified = TRUE; }
|
||||||
|
|
||||||
|
// GTK+ textctrl is so dumb that you need to freeze/thaw it manually to
|
||||||
|
// avoid horrible flicker/scrolling back and forth
|
||||||
|
virtual void Freeze();
|
||||||
|
virtual void Thaw();
|
||||||
|
|
||||||
// wxGTK-specific: called recursively by Enable,
|
// wxGTK-specific: called recursively by Enable,
|
||||||
// to give widgets an oppprtunity to correct their colours after they
|
// to give widgets an oppprtunity to correct their colours after they
|
||||||
// have been changed by Enable
|
// have been changed by Enable
|
||||||
|
@@ -143,6 +143,11 @@ public:
|
|||||||
|
|
||||||
void SetModified() { m_modified = TRUE; }
|
void SetModified() { m_modified = TRUE; }
|
||||||
|
|
||||||
|
// GTK+ textctrl is so dumb that you need to freeze/thaw it manually to
|
||||||
|
// avoid horrible flicker/scrolling back and forth
|
||||||
|
virtual void Freeze();
|
||||||
|
virtual void Thaw();
|
||||||
|
|
||||||
// wxGTK-specific: called recursively by Enable,
|
// wxGTK-specific: called recursively by Enable,
|
||||||
// to give widgets an oppprtunity to correct their colours after they
|
// to give widgets an oppprtunity to correct their colours after they
|
||||||
// have been changed by Enable
|
// have been changed by Enable
|
||||||
|
@@ -519,6 +519,12 @@ public:
|
|||||||
// clear the window entirely
|
// clear the window entirely
|
||||||
virtual void Clear() = 0;
|
virtual void Clear() = 0;
|
||||||
|
|
||||||
|
// freeze the window: don't redraw it until it is thawed
|
||||||
|
virtual void Freeze() { }
|
||||||
|
|
||||||
|
// thaw the window: redraw it after it had been frozen
|
||||||
|
virtual void Thaw() { }
|
||||||
|
|
||||||
// adjust DC for drawing on this window
|
// adjust DC for drawing on this window
|
||||||
virtual void PrepareDC( wxDC & WXUNUSED(dc) ) { }
|
virtual void PrepareDC( wxDC & WXUNUSED(dc) ) { }
|
||||||
|
|
||||||
|
@@ -1290,3 +1290,19 @@ wxSize wxTextCtrl::DoGetBestSize() const
|
|||||||
wxSize ret( wxControl::DoGetBestSize() );
|
wxSize ret( wxControl::DoGetBestSize() );
|
||||||
return wxSize(80, ret.y);
|
return wxSize(80, ret.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxTextCtrl::Freeze()
|
||||||
|
{
|
||||||
|
if ( HasFlag(wxTE_MULTILINE) )
|
||||||
|
{
|
||||||
|
gtk_text_freeze(GTK_TEXT(m_text));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxTextCtrl::Thaw()
|
||||||
|
{
|
||||||
|
if ( HasFlag(wxTE_MULTILINE) )
|
||||||
|
{
|
||||||
|
gtk_text_thaw(GTK_TEXT(m_text));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -1290,3 +1290,19 @@ wxSize wxTextCtrl::DoGetBestSize() const
|
|||||||
wxSize ret( wxControl::DoGetBestSize() );
|
wxSize ret( wxControl::DoGetBestSize() );
|
||||||
return wxSize(80, ret.y);
|
return wxSize(80, ret.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxTextCtrl::Freeze()
|
||||||
|
{
|
||||||
|
if ( HasFlag(wxTE_MULTILINE) )
|
||||||
|
{
|
||||||
|
gtk_text_freeze(GTK_TEXT(m_text));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxTextCtrl::Thaw()
|
||||||
|
{
|
||||||
|
if ( HasFlag(wxTE_MULTILINE) )
|
||||||
|
{
|
||||||
|
gtk_text_thaw(GTK_TEXT(m_text));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user