1. wxApp::ProcessPendingEvents() is now common, added appcmn.cpp and

regenerated the makefiles. wxPostEvent() should work for wxGTK too (untested)
2. long -> wxCoord change for wxGTK and wxMSW, use
   wxUSE_COMPATIBLE_COORD_TYPES to get the old behaviour
3. wxHTML compilation fixes (for !wxUSE_HTML case)
4. a couple of handy macros in thread.h added


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4054 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
1999-10-18 15:14:52 +00:00
parent 72dd34b5dc
commit 72cdf4c9b3
54 changed files with 1356 additions and 1230 deletions

View File

@@ -31,14 +31,6 @@
#include "wx/list.h" // we use wxList in inline functions
// ---------------------------------------------------------------------------
// types
// ---------------------------------------------------------------------------
// type which should be used (whenever possible, i.e. as long as it doesn't
// break compatibility) for screen coordinates
typedef int wxCoord;
// ---------------------------------------------------------------------------
// global variables
// ---------------------------------------------------------------------------
@@ -92,65 +84,69 @@ public:
// graphic primitives
// ------------------
void FloodFill(long x, long y, const wxColour& col,
int style = wxFLOOD_SURFACE)
void FloodFill(wxCoord x, wxCoord y, const wxColour& col,
int style = wxFLOOD_SURFACE)
{ DoFloodFill(x, y, col, style); }
void FloodFill(const wxPoint& pt, const wxColour& col,
int style = wxFLOOD_SURFACE)
int style = wxFLOOD_SURFACE)
{ DoFloodFill(pt.x, pt.y, col, style); }
bool GetPixel(long x, long y, wxColour *col) const
bool GetPixel(wxCoord x, wxCoord y, wxColour *col) const
{ return DoGetPixel(x, y, col); }
bool GetPixel(const wxPoint& pt, wxColour *col) const
{ return DoGetPixel(pt.x, pt.y, col); }
void DrawLine(long x1, long y1, long x2, long y2)
void DrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2)
{ DoDrawLine(x1, y1, x2, y2); }
void DrawLine(const wxPoint& pt1, const wxPoint& pt2)
{ DoDrawLine(pt1.x, pt1.y, pt2.x, pt2.y); }
void CrossHair(long x, long y)
void CrossHair(wxCoord x, wxCoord y)
{ DoCrossHair(x, y); }
void CrossHair(const wxPoint& pt)
{ DoCrossHair(pt.x, pt.y); }
void DrawArc(long x1, long y1, long x2, long y2, long xc, long yc)
void DrawArc(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2,
wxCoord xc, wxCoord yc)
{ DoDrawArc(x1, y1, x2, y2, xc, yc); }
void DrawArc(const wxPoint& pt1, const wxPoint& pt2, const wxPoint& centre)
{ DoDrawArc(pt1.x, pt1.y, pt2.x, pt2.y, centre.x, centre.y); }
void DrawEllipticArc(long x, long y, long w, long h, double sa, double ea)
void DrawEllipticArc(wxCoord x, wxCoord y, wxCoord w, wxCoord h,
double sa, double ea)
{ DoDrawEllipticArc(x, y, w, h, sa, ea); }
void DrawEllipticArc(const wxPoint& pt, const wxSize& sz,
double sa, double ea)
{ DoDrawEllipticArc(pt.x, pt.y, sz.x, sz.y, sa, ea); }
void DrawPoint(long x, long y)
void DrawPoint(wxCoord x, wxCoord y)
{ DoDrawPoint(x, y); }
void DrawPoint(const wxPoint& pt)
{ DoDrawPoint(pt.x, pt.y); }
void DrawLines(int n, wxPoint points[], long xoffset = 0, long yoffset = 0)
void DrawLines(int n, wxPoint points[],
wxCoord xoffset = 0, wxCoord yoffset = 0)
{ DoDrawLines(n, points, xoffset, yoffset); }
void DrawLines(const wxList *list, long xoffset = 0, long yoffset = 0);
void DrawLines(const wxList *list,
wxCoord xoffset = 0, wxCoord yoffset = 0);
void DrawPolygon(int n, wxPoint points[],
long xoffset = 0, long yoffset = 0,
wxCoord xoffset = 0, wxCoord yoffset = 0,
int fillStyle = wxODDEVEN_RULE)
{ DoDrawPolygon(n, points, xoffset, yoffset, fillStyle); }
void DrawPolygon(const wxList *list,
long xoffset = 0, long yoffset = 0,
wxCoord xoffset = 0, wxCoord yoffset = 0,
int fillStyle = wxODDEVEN_RULE);
void DrawRectangle(long x, long y, long width, long height)
void DrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height)
{ DoDrawRectangle(x, y, width, height); }
void DrawRectangle(const wxPoint& pt, const wxSize& sz)
{ DoDrawRectangle(pt.x, pt.y, sz.x, sz.y); }
void DrawRectangle(const wxRect& rect)
{ DoDrawRectangle(rect.x, rect.y, rect.width, rect.height); }
void DrawRoundedRectangle(long x, long y, long width, long height,
void DrawRoundedRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height,
double radius)
{ DoDrawRoundedRectangle(x, y, width, height, radius); }
void DrawRoundedRectangle(const wxPoint& pt, const wxSize& sz,
@@ -159,33 +155,34 @@ public:
void DrawRoundedRectangle(const wxRect& r, double radius)
{ DoDrawRoundedRectangle(r.x, r.y, r.width, r.height, radius); }
void DrawCircle(long x, long y, long radius)
void DrawCircle(wxCoord x, wxCoord y, wxCoord radius)
{ DoDrawEllipse(x - radius, y - radius, 2*radius, 2*radius); }
void DrawEllipse(long x, long y, long width, long height)
void DrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord height)
{ DoDrawEllipse(x, y, width, height); }
void DrawEllipse(const wxPoint& pt, const wxSize& sz)
{ DoDrawEllipse(pt.x, pt.y, sz.x, sz.y); }
void DrawEllipse(const wxRect& rect)
{ DoDrawEllipse(rect.x, rect.y, rect.width, rect.height); }
void DrawIcon(const wxIcon& icon, long x, long y)
void DrawIcon(const wxIcon& icon, wxCoord x, wxCoord y)
{ DoDrawIcon(icon, x, y); }
void DrawIcon(const wxIcon& icon, const wxPoint& pt)
{ DoDrawIcon(icon, pt.x, pt.y); }
void DrawBitmap(const wxBitmap &bmp, long x, long y, bool useMask = FALSE)
void DrawBitmap(const wxBitmap &bmp, wxCoord x, wxCoord y,
bool useMask = FALSE)
{ DoDrawBitmap(bmp, x, y, useMask); }
void DrawBitmap(const wxBitmap &bmp, const wxPoint& pt,
bool useMask = FALSE)
{ DoDrawBitmap(bmp, pt.x, pt.y, useMask); }
void DrawText(const wxString& text, long x, long y)
void DrawText(const wxString& text, wxCoord x, wxCoord y)
{ DoDrawText(text, x, y); }
void DrawText(const wxString& text, const wxPoint& pt)
{ DoDrawText(text, pt.x, pt.y); }
bool Blit(long xdest, long ydest, long width, long height,
wxDC *source, long xsrc, long ysrc,
bool Blit(wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord height,
wxDC *source, wxCoord xsrc, wxCoord ysrc,
int rop = wxCOPY, bool useMask = FALSE)
{
return DoBlit(xdest, ydest, width, height,
@@ -200,8 +197,10 @@ public:
}
#if wxUSE_SPLINES
// TODO: this API needs fixing (wxPointList, why (!const) "wxList *"?)
void DrawSpline(long x1, long y1, long x2, long y2, long x3, long y3);
// TODO: this API needs fixing (wxPointList, why (!const) "wxList *"?)
void DrawSpline(wxCoord x1, wxCoord y1,
wxCoord x2, wxCoord y2,
wxCoord x3, wxCoord y3);
void DrawSpline(int n, wxPoint points[]);
void DrawSpline(wxList *points) { DoDrawSpline(points); }
@@ -231,7 +230,7 @@ public:
// clipping region
// ---------------
void SetClippingRegion(long x, long y, long width, long height)
void SetClippingRegion(wxCoord x, wxCoord y, wxCoord width, wxCoord height)
{ DoSetClippingRegion(x, y, width, height); }
void SetClippingRegion(const wxPoint& pt, const wxSize& sz)
{ DoSetClippingRegion(pt.x, pt.y, sz.x, sz.y); }
@@ -242,7 +241,7 @@ public:
virtual void DestroyClippingRegion() = 0;
void GetClippingBox(long *x, long *y, long *w, long *h) const
void GetClippingBox(wxCoord *x, wxCoord *y, wxCoord *w, wxCoord *h) const
{ DoGetClippingBox(x, y, w, h); }
void GetClippingBox(wxRect& rect) const
{ DoGetClippingBox(&rect.x, &rect.y, &rect.width, &rect.height); }
@@ -250,13 +249,14 @@ public:
// text extent
// -----------
virtual long GetCharHeight() const = 0;
virtual long GetCharWidth() const = 0;
virtual void GetTextExtent(const wxString& string,
long *x, long *y,
long *descent = NULL,
long *externalLeading = NULL,
wxFont *theFont = NULL) const = 0;
virtual wxCoord GetCharHeight() const = 0;
virtual wxCoord GetCharWidth() const = 0;
void GetTextExtent(const wxString& string,
wxCoord *x, wxCoord *y,
wxCoord *descent = NULL,
wxCoord *externalLeading = NULL,
wxFont *theFont = NULL) const
{ DoGetTextExtent(string, x, y, descent, externalLeading, theFont); }
// size and resolution
// -------------------
@@ -288,14 +288,14 @@ public:
// This group of functions does actual conversion of the input, as you'd
// expect.
long DeviceToLogicalX(long x) const;
long DeviceToLogicalY(long y) const;
long DeviceToLogicalXRel(long x) const;
long DeviceToLogicalYRel(long y) const;
long LogicalToDeviceX(long x) const;
long LogicalToDeviceY(long y) const;
long LogicalToDeviceXRel(long x) const;
long LogicalToDeviceYRel(long y) const;
wxCoord DeviceToLogicalX(wxCoord x) const;
wxCoord DeviceToLogicalY(wxCoord y) const;
wxCoord DeviceToLogicalXRel(wxCoord x) const;
wxCoord DeviceToLogicalYRel(wxCoord y) const;
wxCoord LogicalToDeviceX(wxCoord x) const;
wxCoord LogicalToDeviceY(wxCoord y) const;
wxCoord LogicalToDeviceXRel(wxCoord x) const;
wxCoord LogicalToDeviceYRel(wxCoord y) const;
// query DC capabilities
// ---------------------
@@ -356,17 +356,17 @@ public:
m_logicalScaleY = y;
}
void GetLogicalOrigin(long *x, long *y) const
void GetLogicalOrigin(wxCoord *x, wxCoord *y) const
{ DoGetLogicalOrigin(x, y); }
wxPoint GetLogicalOrigin() const
{ long x, y; DoGetLogicalOrigin(&x, &y); return wxPoint(x, y); }
virtual void SetLogicalOrigin(long x, long y) = 0;
{ wxCoord x, y; DoGetLogicalOrigin(&x, &y); return wxPoint(x, y); }
virtual void SetLogicalOrigin(wxCoord x, wxCoord y) = 0;
void GetDeviceOrigin(long *x, long *y) const
void GetDeviceOrigin(wxCoord *x, wxCoord *y) const
{ DoGetDeviceOrigin(x, y); }
wxPoint GetDeviceOrigin() const
{ long x, y; DoGetDeviceOrigin(&x, &y); return wxPoint(x, y); }
virtual void SetDeviceOrigin(long x, long y) = 0;
{ wxCoord x, y; DoGetDeviceOrigin(&x, &y); return wxPoint(x, y); }
virtual void SetDeviceOrigin(wxCoord x, wxCoord y) = 0;
virtual void SetAxisOrientation(bool xLeftRight, bool yBottomUp) = 0;
@@ -383,23 +383,66 @@ public:
// bounding box
// ------------
virtual void CalcBoundingBox(long x, long y)
virtual void CalcBoundingBox(wxCoord x, wxCoord y)
{
if (x < m_minX) m_minX = x;
if (y < m_minY) m_minY = y;
if (x > m_maxX) m_maxX = x;
if (y > m_maxY) m_maxY = y;
if ( x < m_minX ) m_minX = x;
if ( y < m_minY ) m_minY = y;
if ( x > m_maxX ) m_maxX = x;
if ( y > m_maxY ) m_maxY = y;
}
// Get the final bounding box of the PostScript or Metafile picture.
long MinX() const { return m_minX; }
long MaxX() const { return m_maxX; }
long MinY() const { return m_minY; }
long MaxY() const { return m_maxY; }
wxCoord MinX() const { return m_minX; }
wxCoord MaxX() const { return m_maxX; }
wxCoord MinY() const { return m_minY; }
wxCoord MaxY() const { return m_maxY; }
// misc old functions
// ------------------
// for compatibility with the old code when wxCoord was long everywhere
#ifndef __WIN16__
void GetTextExtent(const wxString& string,
long *x, long *y,
long *descent = NULL,
long *externalLeading = NULL,
wxFont *theFont = NULL) const
{
wxCoord x2, y2, descent2, externalLeading2;
DoGetTextExtent(string, &x2, &y2,
&descent2, &externalLeading2,
theFont);
if ( x )
*x = x2;
if ( y )
*y = y2;
if ( descent )
*descent = descent2;
if ( externalLeading )
*externalLeading = externalLeading2;
}
void GetLogicalOrigin(long *x, long *y) const
{
wxCoord x2, y2;
DoGetLogicalOrigin(&x2, &y2);
if ( x )
*x = x2;
if ( y )
*y = y2;
}
void GetDeviceOrigin(long *x, long *y) const
{
wxCoord x2, y2;
DoGetDeviceOrigin(&x2, &y2);
if ( x )
*x = x2;
if ( y )
*y = y2;
}
#endif // !Win16
#if WXWIN_COMPATIBILITY
virtual void SetColourMap(const wxPalette& palette) { SetPalette(palette); }
void GetTextExtent(const wxString& string, float *x, float *y,
@@ -411,57 +454,59 @@ public:
protected:
// the pure virtual functions which should be implemented by wxDC
virtual void DoFloodFill(long x, long y, const wxColour& col,
virtual void DoFloodFill(wxCoord x, wxCoord y, const wxColour& col,
int style = wxFLOOD_SURFACE) = 0;
virtual bool DoGetPixel(long x, long y, wxColour *col) const = 0;
virtual bool DoGetPixel(wxCoord x, wxCoord y, wxColour *col) const = 0;
virtual void DoDrawPoint(long x, long y) = 0;
virtual void DoDrawLine(long x1, long y1, long x2, long y2) = 0;
virtual void DoDrawPoint(wxCoord x, wxCoord y) = 0;
virtual void DoDrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2) = 0;
virtual void DoDrawArc(long x1, long y1,
long x2, long y2,
long xc, long yc) = 0;
virtual void DoDrawEllipticArc(long x, long y, long w, long h,
virtual void DoDrawArc(wxCoord x1, wxCoord y1,
wxCoord x2, wxCoord y2,
wxCoord xc, wxCoord yc) = 0;
virtual void DoDrawEllipticArc(wxCoord x, wxCoord y, wxCoord w, wxCoord h,
double sa, double ea) = 0;
virtual void DoDrawRectangle(long x, long y, long width, long height) = 0;
virtual void DoDrawRoundedRectangle(long x, long y,
long width, long height,
virtual void DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height) = 0;
virtual void DoDrawRoundedRectangle(wxCoord x, wxCoord y,
wxCoord width, wxCoord height,
double radius) = 0;
virtual void DoDrawEllipse(long x, long y, long width, long height) = 0;
virtual void DoDrawEllipse(wxCoord x, wxCoord y,
wxCoord width, wxCoord height) = 0;
virtual void DoCrossHair(long x, long y) = 0;
virtual void DoCrossHair(wxCoord x, wxCoord y) = 0;
virtual void DoDrawIcon(const wxIcon& icon, long x, long y) = 0;
virtual void DoDrawBitmap(const wxBitmap &bmp, long x, long y,
virtual void DoDrawIcon(const wxIcon& icon, wxCoord x, wxCoord y) = 0;
virtual void DoDrawBitmap(const wxBitmap &bmp, wxCoord x, wxCoord y,
bool useMask = FALSE) = 0;
virtual void DoDrawText(const wxString& text, long x, long y) = 0;
virtual void DoDrawText(const wxString& text, wxCoord x, wxCoord y) = 0;
virtual bool DoBlit(long xdest, long ydest, long width, long height,
wxDC *source, long xsrc, long ysrc,
virtual bool DoBlit(wxCoord xdest, wxCoord ydest,
wxCoord width, wxCoord height,
wxDC *source, wxCoord xsrc, wxCoord ysrc,
int rop = wxCOPY, bool useMask = FALSE) = 0;
virtual void DoGetSize(int *width, int *height) const = 0;
virtual void DoGetSizeMM(int* width, int* height) const = 0;
virtual void DoDrawLines(int n, wxPoint points[],
long xoffset, long yoffset) = 0;
wxCoord xoffset, wxCoord yoffset) = 0;
virtual void DoDrawPolygon(int n, wxPoint points[],
long xoffset, long yoffset,
wxCoord xoffset, wxCoord yoffset,
int fillStyle = wxODDEVEN_RULE) = 0;
virtual void DoSetClippingRegionAsRegion(const wxRegion& region) = 0;
virtual void DoSetClippingRegion(long x, long y,
long width, long height) = 0;
virtual void DoSetClippingRegion(wxCoord x, wxCoord y,
wxCoord width, wxCoord height) = 0;
// FIXME are these functions really different?
virtual void DoGetClippingRegion(long *x, long *y,
long *w, long *h)
virtual void DoGetClippingRegion(wxCoord *x, wxCoord *y,
wxCoord *w, wxCoord *h)
{ DoGetClippingBox(x, y, w, h); }
virtual void DoGetClippingBox(long *x, long *y,
long *w, long *h) const
virtual void DoGetClippingBox(wxCoord *x, wxCoord *y,
wxCoord *w, wxCoord *h) const
{
if ( m_clipping )
{
@@ -476,18 +521,24 @@ protected:
}
}
virtual void DoGetLogicalOrigin(long *x, long *y) const
virtual void DoGetLogicalOrigin(wxCoord *x, wxCoord *y) const
{
if ( x ) *x = m_logicalOriginX;
if ( y ) *y = m_logicalOriginY;
}
virtual void DoGetDeviceOrigin(long *x, long *y) const
virtual void DoGetDeviceOrigin(wxCoord *x, wxCoord *y) const
{
if ( x ) *x = m_deviceOriginX;
if ( y ) *y = m_deviceOriginY;
}
virtual void DoGetTextExtent(const wxString& string,
wxCoord *x, wxCoord *y,
wxCoord *descent = NULL,
wxCoord *externalLeading = NULL,
wxFont *theFont = NULL) const = 0;
#if wxUSE_SPLINES
virtual void DoDrawSpline(wxList *points) = 0;
#endif
@@ -503,8 +554,8 @@ protected:
// TODO short descriptions of what exactly they are would be nice...
long m_logicalOriginX, m_logicalOriginY;
long m_deviceOriginX, m_deviceOriginY;
wxCoord m_logicalOriginX, m_logicalOriginY;
wxCoord m_deviceOriginX, m_deviceOriginY;
double m_logicalScaleX, m_logicalScaleY;
double m_userScaleX, m_userScaleY;
@@ -514,8 +565,8 @@ protected:
int m_signX, m_signY;
// bounding and clipping boxes
long m_minX, m_minY, m_maxX, m_maxY;
long m_clipX1, m_clipY1, m_clipX2, m_clipY2;
wxCoord m_minX, m_minY, m_maxX, m_maxY;
wxCoord m_clipX1, m_clipY1, m_clipX2, m_clipY2;
int m_logicalFunction;
int m_backgroundMode;