Used wxRegion code from wxX11.

Removed update rect list from wxWindow
(not necessary anymore).
  Simplified and corrected clipping region handling
in wxWindowDC. Stopped wxWindowDC::DoBlit from
destroying the clipping region.
  Simplified wxPaintDC code.
Added wxWindow::DoCreateScrollBar helper function.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20721 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Mattia Barbon
2003-05-24 19:41:05 +00:00
parent 69108ccb4e
commit 148b44a1e7
8 changed files with 166 additions and 788 deletions

View File

@@ -78,7 +78,7 @@ public:
virtual void DestroyClippingRegion();
// Helper function for setting clipping
void SetDCClipping();
void SetDCClipping(WXRegion region);
// implementation from now on
// --------------------------
@@ -150,15 +150,15 @@ protected:
WXGC m_gcBacking;
WXDisplay* m_display;
wxWindow* m_window;
// Current clipping region (incl. paint clip region)
WXRegion m_currentRegion;
WXRegion m_userRegion; // User-defined clipping region
WXPixmap m_pixmap; // Pixmap for drawing on
// Pixmap for drawing on
WXPixmap m_pixmap;
// Last clipping region set on th GC, this is the combination
// of paint clipping region and all user-defined clipping regions
WXRegion m_clipRegion;
// Not sure if we'll need all of these
int m_backgroundPixel;
wxColour m_currentColour;
// int m_currentBkMode;
int m_currentPenWidth ;
int m_currentPenJoin ;
int m_currentPenCap ;

View File

@@ -142,15 +142,8 @@ public:
// (for wxWindowDC and Motif callbacks only)
// -----------------------------------------
// read/write access to the update rect list
const wxRectList& GetUpdateRects() const { return m_updateRects; }
// Adds a recangle to the updates list
void AddUpdateRect(int x, int y, int w, int h)
{ m_updateRects.Append(new wxRect(x, y, w, h)); }
// Empties the m_updateRects list
void ClearUpdateRects();
void AddUpdateRect(int x, int y, int w, int h);
void ClearUpdateRegion() { m_updateRegion.Clear(); }
void SetUpdateRegion(const wxRegion& region) { m_updateRegion = region; }
@@ -189,6 +182,10 @@ protected:
void DoMoveWindowIntr(int x, int y, int width, int height,
int flags);
// helper function, to remove duplicate code, used in wxScrollBar
WXWidget DoCreateScrollBar(WXWidget parent, wxOrientation orientation,
void (*callback)());
public:
WXPixmap GetBackingPixmap() const { return m_backingPixmap; }
void SetBackingPixmap(WXPixmap pixmap) { m_backingPixmap = pixmap; }
@@ -265,9 +262,6 @@ protected:
long m_lastTS; // last timestamp
unsigned m_lastButton:2; // last pressed button
// List of wxRects representing damaged region
wxRectList m_updateRects;
protected:
WXWidget m_mainWidget;
WXWidget m_hScrollBar;

View File

@@ -4,7 +4,7 @@
#if defined(__WXMSW__)
#include "wx/msw/region.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/region.h"
#include "wx/x11/region.h"
#elif defined(__WXGTK__)
#include "wx/gtk/region.h"
#elif defined(__WXX11__)