*** wxWindows 2.3.3 ***
+New behaviour for wxWindow::Refresh() as it now produces a
+delayed refresh. Call the new wxWindow::Update() to force
+an immediate update.
+
+Support for more SGI hardware (12-bit mode among others).
+
+Changed wxDC::Blit() to honour source DC's logical coordinates.
+
+Implemented wxIdleEvent::RequestMore() for simple background
+tasks (unlike thread work).
+
+Various updates to wxHTML.
+
Some wxFont changes for better mixing of native fonts
and wxFont's accessors.
bool operator != ( const wxRegion& region );
void Clear();
+
+ bool Offset( wxCoord x, wxCoord y );
bool Union( wxCoord x, wxCoord y, wxCoord width, wxCoord height );
bool Union( const wxRect& rect );
bool operator != ( const wxRegion& region );
void Clear();
+
+ bool Offset( wxCoord x, wxCoord y );
bool Union( wxCoord x, wxCoord y, wxCoord width, wxCoord height );
bool Union( const wxRect& rect );
return wxRect( x, y, w, h );
}
+bool wxRegion::Offset( wxCoord x, wxCoord y )
+{
+ if (!m_refData)
+ return FALSE;
+
+ gdk_region_offset( M_REGIONDATA->m_region, x, y );
+
+ return TRUE;
+}
+
bool wxRegion::Empty() const
{
if (!m_refData)
int noUnitsX, int noUnitsY,
int xPos, int yPos, bool noRefresh )
{
- // Update any invalidates areas before the get moved/scrolled.
- Update();
-
int old_x = m_xScrollPixelsPerLine * m_xScrollPosition;
int old_y = m_yScrollPixelsPerLine * m_yScrollPosition;
void wxScrolledWindow::AdjustScrollbars()
{
- // Update any invalidates areas before the get moved/scrolled.
- Update();
-
int w, h;
m_targetWindow->GetClientSize( &w, &h );
int nScrollInc = CalcScrollInc(event);
if (nScrollInc == 0) return;
- // Update any invalidates areas before the get moved/scrolled.
- Update();
-
if (orient == wxHORIZONTAL)
{
int newPos = m_xScrollPosition + nScrollInc;
if (((x_pos == -1) || (x_pos == m_xScrollPosition)) &&
((y_pos == -1) || (y_pos == m_yScrollPosition))) return;
- // Update any invalidates areas before the get moved/scrolled.
- Update();
-
if ((x_pos != -1) && (m_xScrollPixelsPerLine))
{
int max = (int)(m_hAdjust->upper - m_hAdjust->page_size + 0.5);
if (y_pos == m_yScrollPosition)
return;
- // Update any invalidates areas before the get moved/scrolled.
- Update();
-
GtkScrolledWindow *scrolledWindow = GTK_SCROLLED_WINDOW(m_widget);
GtkRange *range = GTK_RANGE(scrolledWindow->vscrollbar);
if (x_pos == m_xScrollPosition)
return;
- // Update any invalidates areas before the get moved/scrolled.
- Update();
-
GtkScrolledWindow *scrolledWindow = GTK_SCROLLED_WINDOW(m_widget);
GtkRange *range = GTK_RANGE(scrolledWindow->hscrollbar);
wxCHECK_RET( m_wxwindow != NULL, wxT("window needs client area for scrolling") );
- // Update any invalidates areas before the get moved/scrolled.
- // We ignore the refresh parameter here because it is meant
- // to control the behaviour AFTER scrolling happens.
- Update();
-
if (orient == wxHORIZONTAL)
{
int max = (int)(m_hAdjust->upper - m_hAdjust->page_size + 0.5);
// No scrolling requested.
if ((dx == 0) && (dy == 0)) return;
+ if (!m_updateRegion.IsEmpty())
+ {
+ m_updateRegion.Offset( dx, dy );
+
+ int cw = 0;
+ int ch = 0;
+ GetClientSize( &cw, &ch );
+ m_updateRegion.Intersect( 0, 0, cw, ch );
+ }
+
#if 1
m_clipPaintRegion = TRUE;
return wxRect( x, y, w, h );
}
+bool wxRegion::Offset( wxCoord x, wxCoord y )
+{
+ if (!m_refData)
+ return FALSE;
+
+ gdk_region_offset( M_REGIONDATA->m_region, x, y );
+
+ return TRUE;
+}
+
bool wxRegion::Empty() const
{
if (!m_refData)
int noUnitsX, int noUnitsY,
int xPos, int yPos, bool noRefresh )
{
- // Update any invalidates areas before the get moved/scrolled.
- Update();
-
int old_x = m_xScrollPixelsPerLine * m_xScrollPosition;
int old_y = m_yScrollPixelsPerLine * m_yScrollPosition;
void wxScrolledWindow::AdjustScrollbars()
{
- // Update any invalidates areas before the get moved/scrolled.
- Update();
-
int w, h;
m_targetWindow->GetClientSize( &w, &h );
int nScrollInc = CalcScrollInc(event);
if (nScrollInc == 0) return;
- // Update any invalidates areas before the get moved/scrolled.
- Update();
-
if (orient == wxHORIZONTAL)
{
int newPos = m_xScrollPosition + nScrollInc;
if (((x_pos == -1) || (x_pos == m_xScrollPosition)) &&
((y_pos == -1) || (y_pos == m_yScrollPosition))) return;
- // Update any invalidates areas before the get moved/scrolled.
- Update();
-
if ((x_pos != -1) && (m_xScrollPixelsPerLine))
{
int max = (int)(m_hAdjust->upper - m_hAdjust->page_size + 0.5);
if (y_pos == m_yScrollPosition)
return;
- // Update any invalidates areas before the get moved/scrolled.
- Update();
-
GtkScrolledWindow *scrolledWindow = GTK_SCROLLED_WINDOW(m_widget);
GtkRange *range = GTK_RANGE(scrolledWindow->vscrollbar);
if (x_pos == m_xScrollPosition)
return;
- // Update any invalidates areas before the get moved/scrolled.
- Update();
-
GtkScrolledWindow *scrolledWindow = GTK_SCROLLED_WINDOW(m_widget);
GtkRange *range = GTK_RANGE(scrolledWindow->hscrollbar);
wxCHECK_RET( m_wxwindow != NULL, wxT("window needs client area for scrolling") );
- // Update any invalidates areas before the get moved/scrolled.
- // We ignore the refresh parameter here because it is meant
- // to control the behaviour AFTER scrolling happens.
- Update();
-
if (orient == wxHORIZONTAL)
{
int max = (int)(m_hAdjust->upper - m_hAdjust->page_size + 0.5);
// No scrolling requested.
if ((dx == 0) && (dy == 0)) return;
+ if (!m_updateRegion.IsEmpty())
+ {
+ m_updateRegion.Offset( dx, dy );
+
+ int cw = 0;
+ int ch = 0;
+ GetClientSize( &cw, &ch );
+ m_updateRegion.Intersect( 0, 0, cw, ch );
+ }
+
#if 1
m_clipPaintRegion = TRUE;