Removed redundant auto-setting code in wxDC; corrected utilscmn.cpp pragma;

added inlines using wxPoint/wxSize/wxRect in dc.h.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@189 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
1998-07-08 15:52:22 +00:00
parent b7346a70cf
commit 6a6c0a8bda
13 changed files with 254 additions and 162 deletions

View File

@@ -2,7 +2,19 @@
wxWindows 2.0 for Windows Change Log wxWindows 2.0 for Windows Change Log
------------------------------------ ------------------------------------
Alpha 12, July ??1998 Alpha 13, July 8th 1998
-----------------------
- Implemented wxPoint as identical to POINT on Windows, and
altered wxDC wxPoint functions to use wxPoint directly in
Windows functions, for efficiency.
- Cured wxASSERT bug in wxStatusBar95.
- #ifdefed out some bits in oleutils.cpp for compilers that
don't support it.
- Added some operators to wxPoint, wxSize.
- Added inline wxDC functions using wxPoint, wxSize, wxRect.
Alpha 12, July 7th 1998
----------------------- -----------------------
- Added wxApp::GetComCtl32Version, and wxTB_FLAT style, so can - Added wxApp::GetComCtl32Version, and wxTB_FLAT style, so can

View File

@@ -65,42 +65,54 @@ typedef enum {
#endif #endif
} _standard_cursors_t; } _standard_cursors_t;
class WXDLLEXPORT wxSize: public wxObject class WXDLLEXPORT wxSize
{ {
public: public:
long x; long x;
long y; long y;
inline wxSize(void) { x = 0; y = 0; } inline wxSize() { x = 0; y = 0; }
inline wxSize(long xx, long yy) { x = xx; y = yy; } inline wxSize(long xx, long yy) { x = xx; y = yy; }
inline wxSize(const wxSize& sz) { x = sz.x; y = sz.y; } inline wxSize(const wxSize& sz) { x = sz.x; y = sz.y; }
inline void operator = (const wxSize& sz) { x = sz.x; y = sz.y; } inline void operator = (const wxSize& sz) { x = sz.x; y = sz.y; }
inline wxSize operator + (const wxSize& sz) { return wxSize(x + sz.x, y + sz.y); }
inline wxSize operator - (const wxSize& sz) { return wxSize(x - sz.x, y - sz.y); }
inline void Set(long xx, long yy) { x = xx; y = yy; } inline void Set(long xx, long yy) { x = xx; y = yy; }
inline long GetX() const { return x; } inline long GetX() const { return x; }
inline long GetY() const { return y; } inline long GetY() const { return y; }
}; };
// Point // Point
class WXDLLEXPORT wxRealPoint: public wxObject class WXDLLEXPORT wxRealPoint
{ {
DECLARE_DYNAMIC_CLASS(wxRealPoint)
public: public:
double x; double x;
double y; double y;
inline wxRealPoint(void) { x = 0.0; y = 0.0; }; inline wxRealPoint() { x = 0.0; y = 0.0; };
inline wxRealPoint(double the_x, double the_y) { x = the_x; y = the_y; }; inline wxRealPoint(double _x, double _y) { x = _x; y = _y; };
inline wxRealPoint operator + (const wxRealPoint& pt) { return wxRealPoint(x + pt.x, y + pt.y); }
inline wxRealPoint operator - (const wxRealPoint& pt) { return wxRealPoint(x - pt.x, y - pt.y); }
inline void operator = (const wxRealPoint& pt) { x = pt.x; y = pt.y; } inline void operator = (const wxRealPoint& pt) { x = pt.x; y = pt.y; }
}; };
class WXDLLEXPORT wxPoint: public wxObject class WXDLLEXPORT wxPoint
{ {
DECLARE_DYNAMIC_CLASS(wxPoint)
public: public:
#if defined(__WINDOWS__) && !defined(__WIN32__)
int x;
int y;
#else
long x; long x;
long y; long y;
inline wxPoint(void) { x = 0; y = 0; }; #endif
inline wxPoint() { x = 0; y = 0; };
wxPoint(long the_x, long the_y) { x = the_x; y = the_y; }; wxPoint(long the_x, long the_y) { x = the_x; y = the_y; };
wxPoint(const wxPoint& pt) { x = pt.x; y = pt.y; };
inline void operator = (const wxPoint& pt) { x = pt.x; y = pt.y; } inline void operator = (const wxPoint& pt) { x = pt.x; y = pt.y; }
inline wxPoint operator + (const wxPoint& pt) { return wxPoint(x + pt.x, y + pt.y); }
inline wxPoint operator - (const wxPoint& pt) { return wxPoint(x - pt.x, y - pt.y); }
}; };
#if WXWIN_COMPATIBILITY #if WXWIN_COMPATIBILITY
@@ -108,31 +120,31 @@ class WXDLLEXPORT wxPoint: public wxObject
#define wxRectangle wxRect #define wxRectangle wxRect
#endif #endif
class WXDLLEXPORT wxRect : public wxObject { class WXDLLEXPORT wxRect
DECLARE_DYNAMIC_CLASS(wxRect) {
public: public:
wxRect(void) ; wxRect() ;
wxRect(long x, long y, long w, long h); wxRect(long x, long y, long w, long h);
wxRect(const wxPoint& topLeft, const wxPoint& bottomRight); wxRect(const wxPoint& topLeft, const wxPoint& bottomRight);
wxRect(const wxPoint& pos, const wxSize& size); wxRect(const wxPoint& pos, const wxSize& size);
wxRect(const wxRect& rect); wxRect(const wxRect& rect);
inline long GetX(void) const { return x; } inline long GetX() const { return x; }
inline void SetX(long X) { x = X; } inline void SetX(long X) { x = X; }
inline long GetY(void) const { return y; } inline long GetY() const { return y; }
inline void SetY(long Y) { y = Y; } inline void SetY(long Y) { y = Y; }
inline long GetWidth() const { return width; } inline long GetWidth() const { return width; }
inline void SetWidth(long w) { width = w; } inline void SetWidth(long w) { width = w; }
inline long GetHeight() const { return height; } inline long GetHeight() const { return height; }
inline void SetHeight(long h) { height = h; } inline void SetHeight(long h) { height = h; }
inline wxPoint GetPosition(void) { return wxPoint(x, y); } inline wxPoint GetPosition() { return wxPoint(x, y); }
inline wxSize GetSize(void) { return wxSize(width, height); } inline wxSize GetSize() { return wxSize(width, height); }
inline long GetLeft(void) const { return x; } inline long GetLeft() const { return x; }
inline long GetTop(void) const { return y; } inline long GetTop() const { return y; }
inline long GetBottom(void) const { return y + height; } inline long GetBottom() const { return y + height; }
inline long GetRight(void) const { return x + width; } inline long GetRight() const { return x + width; }
wxRect& operator = (const wxRect& rect); wxRect& operator = (const wxRect& rect);
bool operator == (const wxRect& rect); bool operator == (const wxRect& rect);
@@ -184,9 +196,9 @@ class WXDLLEXPORT wxPenList: public wxList
{ {
DECLARE_DYNAMIC_CLASS(wxPenList) DECLARE_DYNAMIC_CLASS(wxPenList)
public: public:
inline wxPenList(void) inline wxPenList()
{ } { }
~wxPenList(void); ~wxPenList();
void AddPen(wxPen *pen); void AddPen(wxPen *pen);
void RemovePen(wxPen *pen); void RemovePen(wxPen *pen);
wxPen *FindOrCreatePen(const wxColour& colour, int width, int style); wxPen *FindOrCreatePen(const wxColour& colour, int width, int style);
@@ -197,9 +209,9 @@ class WXDLLEXPORT wxBrushList: public wxList
{ {
DECLARE_DYNAMIC_CLASS(wxBrushList) DECLARE_DYNAMIC_CLASS(wxBrushList)
public: public:
inline wxBrushList(void) inline wxBrushList()
{ } { }
~wxBrushList(void); ~wxBrushList();
void AddBrush(wxBrush *brush); void AddBrush(wxBrush *brush);
void RemoveBrush(wxBrush *brush); void RemoveBrush(wxBrush *brush);
wxBrush *FindOrCreateBrush(const wxColour& colour, int style); wxBrush *FindOrCreateBrush(const wxColour& colour, int style);
@@ -212,9 +224,9 @@ class WXDLLEXPORT wxFontList: public wxList
{ {
DECLARE_DYNAMIC_CLASS(wxFontList) DECLARE_DYNAMIC_CLASS(wxFontList)
public: public:
inline wxFontList(void) inline wxFontList()
{ } { }
~wxFontList(void); ~wxFontList();
void AddFont(wxFont *font); void AddFont(wxFont *font);
void RemoveFont(wxFont *font); void RemoveFont(wxFont *font);
wxFont *FindOrCreateFont(int pointSize, int family, int style, int weight, wxFont *FindOrCreateFont(int pointSize, int family, int style, int weight,
@@ -226,19 +238,19 @@ class WXDLLEXPORT wxColourDatabase: public wxList
DECLARE_CLASS(wxColourDatabase) DECLARE_CLASS(wxColourDatabase)
public: public:
wxColourDatabase(int type); wxColourDatabase(int type);
~wxColourDatabase(void) ; ~wxColourDatabase() ;
// Not const because it may add a name to the database // Not const because it may add a name to the database
wxColour *FindColour(const wxString& colour) ; wxColour *FindColour(const wxString& colour) ;
wxString FindName(const wxColour& colour) const; wxString FindName(const wxColour& colour) const;
void Initialize(void); void Initialize();
}; };
class WXDLLEXPORT wxBitmapList: public wxList class WXDLLEXPORT wxBitmapList: public wxList
{ {
DECLARE_DYNAMIC_CLASS(wxBitmapList) DECLARE_DYNAMIC_CLASS(wxBitmapList)
public: public:
wxBitmapList(void); wxBitmapList();
~wxBitmapList(void); ~wxBitmapList();
void AddBitmap(wxBitmap *bitmap); void AddBitmap(wxBitmap *bitmap);
void RemoveBitmap(wxBitmap *bitmap); void RemoveBitmap(wxBitmap *bitmap);
@@ -302,15 +314,17 @@ WXDLLEXPORT_DATA(extern wxCursor*) wxHOURGLASS_CURSOR;
WXDLLEXPORT_DATA(extern wxCursor*) wxCROSS_CURSOR; WXDLLEXPORT_DATA(extern wxCursor*) wxCROSS_CURSOR;
WXDLLEXPORT_DATA(extern wxColourDatabase*) wxTheColourDatabase; WXDLLEXPORT_DATA(extern wxColourDatabase*) wxTheColourDatabase;
extern void WXDLLEXPORT wxInitializeStockObjects(void); extern void WXDLLEXPORT wxInitializeStockObjects();
extern void WXDLLEXPORT wxDeleteStockObjects(void); extern void WXDLLEXPORT wxDeleteStockObjects();
extern bool WXDLLEXPORT wxColourDisplay(void); extern bool WXDLLEXPORT wxColourDisplay();
// Returns depth of screen // Returns depth of screen
extern int WXDLLEXPORT wxDisplayDepth(void); extern int WXDLLEXPORT wxDisplayDepth();
#define wxGetDisplayDepth wxDisplayDepth
extern void WXDLLEXPORT wxDisplaySize(int *width, int *height); extern void WXDLLEXPORT wxDisplaySize(int *width, int *height);
extern wxSize WXDLLEXPORT wxGetDisplaySize();
extern void WXDLLEXPORT wxSetCursor(const wxCursor& cursor); extern void WXDLLEXPORT wxSetCursor(const wxCursor& cursor);

View File

@@ -33,25 +33,114 @@ public:
inline void wxDC::BeginDrawing(void) {} inline void wxDC::BeginDrawing(void) {}
inline void wxDC::EndDrawing(void) {} inline void wxDC::EndDrawing(void) {}
virtual void FloodFill(long x1, long y1, wxColour *col, int style=wxFLOOD_SURFACE) ; virtual void FloodFill(long x1, long y1, const wxColour& col, int style=wxFLOOD_SURFACE) ;
inline void FloodFill(const wxPoint& pt, const wxColour& col, int style=wxFLOOD_SURFACE)
{
FloodFill(pt.x, pt.y, col, style);
}
virtual bool GetPixel(long x1, long y1, wxColour *col) const ; virtual bool GetPixel(long x1, long y1, wxColour *col) const ;
inline bool GetPixel(const wxPoint& pt, wxColour *col) const
{
return GetPixel(pt.x, pt.y, col);
}
virtual void DrawLine(long x1, long y1, long x2, long y2); virtual void DrawLine(long x1, long y1, long x2, long y2);
inline void DrawLine(const wxPoint& pt1, const wxPoint& pt2)
{
DrawLine(pt1.x, pt1.y, pt2.x, pt2.y);
}
virtual void CrossHair(long x, long y) ; virtual void CrossHair(long x, long y) ;
virtual void CrossHair(const wxPoint& pt)
{
CrossHair(pt.x, pt.y);
}
virtual void DrawArc(long x1,long y1,long x2,long y2,double xc, double yc); virtual void DrawArc(long x1,long y1,long x2,long y2,double xc, double yc);
inline void DrawArc(const wxPoint& pt1, const wxPoint& pt2, double xc, double yc)
{
DrawArc(pt1.x, pt1.y, pt2.x, pt2.y, xc, yc);
}
virtual void DrawEllipticArc (long x, long y, long w, long h, double sa, double ea); virtual void DrawEllipticArc (long x, long y, long w, long h, double sa, double ea);
virtual void DrawEllipticArc (const wxPoint& pt, const wxSize& sz, double sa, double ea)
{
DrawEllipticArc(pt.x, pt.y, sz.x, sz.y, sa, ea);
}
virtual void DrawPoint(long x, long y); virtual void DrawPoint(long x, long y);
inline void DrawPoint(const wxPoint& pt)
{
DrawPoint(pt.x, pt.y);
}
virtual void DrawLines(int n, wxPoint points[], long xoffset = 0, long yoffset = 0); virtual void DrawLines(int n, wxPoint points[], long xoffset = 0, long yoffset = 0);
virtual void DrawPolygon(int n, wxPoint points[], long xoffset = 0, long yoffset = 0, int fillStyle=wxODDEVEN_RULE); virtual void DrawPolygon(int n, wxPoint points[], long xoffset = 0, long yoffset = 0, int fillStyle=wxODDEVEN_RULE);
virtual void DrawRectangle(long x, long y, long width, long height); virtual void DrawRectangle(long x, long y, long width, long height);
inline void DrawRectangle(const wxPoint& pt, const wxSize& sz)
{
DrawRectangle(pt.x, pt.y, sz.x, sz.y);
}
inline void DrawRectangle(const wxRect& rect)
{
DrawRectangle(rect.x, rect.y, rect.width, rect.height);
}
virtual void DrawRoundedRectangle(long x, long y, long width, long height, double radius = 20.0); virtual void DrawRoundedRectangle(long x, long y, long width, long height, double radius = 20.0);
inline void DrawRoundedRectangle(const wxPoint& pt, const wxSize& sz, double radius = 20.0)
{
DrawRoundedRectangle(pt.x, pt.y, sz.x, sz.y, radius);
}
inline void DrawRoundedRectangle(const wxRect& rect, double radius = 20.0)
{
DrawRoundedRectangle(rect.x, rect.y, rect.width, rect.height, radius);
}
virtual void DrawEllipse(long x, long y, long width, long height); virtual void DrawEllipse(long x, long y, long width, long height);
inline void DrawEllipse(const wxPoint& pt, const wxSize& sz)
{
DrawEllipse(pt.x, pt.y, sz.x, sz.y);
}
inline void DrawEllipse(const wxRect& rect)
{
DrawEllipse(rect.x, rect.y, rect.width, rect.height);
}
virtual void DrawIcon(const wxIcon& icon, long x, long y); virtual void DrawIcon(const wxIcon& icon, long x, long y);
inline void DrawIcon(const wxIcon& icon, const wxPoint& pt)
{
DrawIcon(icon, pt.x, pt.y);
}
inline void DrawPoint(wxPoint& point) { DrawPoint(point.x, point.y); }
virtual void DrawLines(wxList *list, long xoffset = 0, long yoffset = 0);
virtual void DrawPolygon(wxList *list, long xoffset = 0, long yoffset = 0, int fillStyle=wxODDEVEN_RULE);
virtual void DrawText(const wxString& text, long x, long y, bool use16bit = FALSE);
inline void DrawText(const wxString& text, const wxPoint& pt, bool use16bit = FALSE)
{
DrawText(text, pt.x, pt.y, use16bit);
}
virtual bool Blit(long xdest, long ydest, long width, long height,
wxDC *source, long xsrc, long ysrc, int rop = wxCOPY, bool useMask = FALSE);
inline bool Blit(const wxPoint& destPt, const wxSize& sz,
wxDC *source, const wxPoint& srcPt, int rop = wxCOPY, bool useMask = FALSE)
{
return Blit(destPt.x, destPt.y, sz.x, sz.y, source, srcPt.x, srcPt.y, rop, useMask);
}
#if USE_SPLINES
// Splines
// 3-point spline
virtual void DrawSpline(long x1, long y1, long x2, long y2, long x3, long y3);
// Any number of control points - a list of pointers to wxPoints
virtual void DrawSpline(wxList *points);
virtual void DrawSpline(int n, wxPoint points[]);
#endif
virtual void Clear(void); virtual void Clear(void);
virtual void SetFont(const wxFont& font); virtual void SetFont(const wxFont& font);
virtual void SetPen(const wxPen& pen); virtual void SetPen(const wxPen& pen);
@@ -59,14 +148,22 @@ public:
virtual void SetLogicalFunction(int function); virtual void SetLogicalFunction(int function);
virtual void SetBackground(const wxBrush& brush); virtual void SetBackground(const wxBrush& brush);
virtual void SetBackgroundMode(int mode); virtual void SetBackgroundMode(int mode);
virtual void SetClippingRegion(long x, long y, long width, long height); virtual void SetClippingRegion(long x, long y, long width, long height);
inline void SetClippingRegion(const wxPoint& pt, const wxSize& sz)
{
SetClippingRegion(pt.x, pt.y, sz.x, sz.y);
}
inline void SetClippingRegion(const wxRect& rect)
{
SetClippingRegion(rect.x, rect.y, rect.width, rect.height);
}
virtual void SetPalette(const wxPalette& palette); virtual void SetPalette(const wxPalette& palette);
#if WXWIN_COMPATIBILITY #if WXWIN_COMPATIBILITY
virtual inline void SetColourMap(const wxPalette& palette) { SetPalette(palette); }; virtual inline void SetColourMap(const wxPalette& palette) { SetPalette(palette); };
#endif #endif
virtual void DestroyClippingRegion(void); virtual void DestroyClippingRegion(void);
virtual void DrawText(const wxString& text, long x, long y, bool use16bit = FALSE);
virtual long GetCharHeight(void) const; virtual long GetCharHeight(void) const;
virtual long GetCharWidth(void) const; virtual long GetCharWidth(void) const;
virtual void GetTextExtent(const wxString& string, long *x, long *y, virtual void GetTextExtent(const wxString& string, long *x, long *y,
@@ -127,36 +224,9 @@ public:
long ImplLogicalToDeviceXRel(long x) const; long ImplLogicalToDeviceXRel(long x) const;
long ImplLogicalToDeviceYRel(long y) const; long ImplLogicalToDeviceYRel(long y) const;
virtual bool Blit(long xdest, long ydest, long width, long height,
wxDC *source, long xsrc, long ysrc, int rop = wxCOPY, bool useMask = FALSE);
virtual bool CanDrawBitmap(void) const; virtual bool CanDrawBitmap(void) const;
virtual bool CanGetTextExtent(void) const; virtual bool CanGetTextExtent(void) const;
//
// This function is intended to improves drawing, by avoiding to
// repeatly call ::SetPen/::SetBrush. If set to FALSE, these functions
// aren't called when calling ::DrawLine(),...
// Please note that this is YOUR responsability to use it, and do it
// only when you KNOWN that pen/brush isn't changed between 2 calls to
// DrawLine,... !!!
// Note also that in X, we don't test m_autoSetting on brushes, because they
// modify Foreground, as pens. So, convention is:
// - call your SetBrush(), THEN your SetPen, THEN AutoSetTools(FALSE)
// - call DrawLine,...
// [mainly coded for Windows]
inline virtual void AutoSetTools(bool auto_setting) { m_autoSetting = auto_setting ; }
inline virtual void DrawPoint(wxPoint& point) { DrawPoint(point.x, point.y); }
virtual void DrawLines(wxList *list, long xoffset = 0, long yoffset = 0);
virtual void DrawPolygon(wxList *list, long xoffset = 0, long yoffset = 0, int fillStyle=wxODDEVEN_RULE);
#if USE_SPLINES
// Splines
// 3-point spline
virtual void DrawSpline(long x1, long y1, long x2, long y2, long x3, long y3);
// Any number of control points - a list of pointers to wxPoints
virtual void DrawSpline(wxList *points);
virtual void DrawSpline(int n, wxPoint points[]);
#endif
virtual void SetTextForeground(const wxColour& colour); virtual void SetTextForeground(const wxColour& colour);
virtual void SetTextBackground(const wxColour& colour); virtual void SetTextBackground(const wxColour& colour);
inline virtual bool Ok(void) const {return m_ok;}; inline virtual bool Ok(void) const {return m_ok;};
@@ -185,6 +255,11 @@ public:
virtual inline bool GetOptimization(void) { return FALSE; } virtual inline bool GetOptimization(void) { return FALSE; }
virtual void GetClippingBox(long *x,long *y,long *w,long *h) const ; virtual void GetClippingBox(long *x,long *y,long *w,long *h) const ;
inline void GetClippingBox(wxRect& rect) const
{
long x, y, w, h;
GetClippingBox(&x, &y, &w, &h); rect.x = x; rect.y = y; rect.width = w; rect.height = h;
}
virtual void SetRop(WXHDC cdc); virtual void SetRop(WXHDC cdc);
virtual void DoClipping(WXHDC cdc); virtual void DoClipping(WXHDC cdc);
@@ -194,10 +269,6 @@ public:
inline void SetWindow(wxWindow *win) { m_canvas = win; } inline void SetWindow(wxWindow *win) { m_canvas = win; }
inline WXHDC GetHDC(void) const { return m_hDC; } inline WXHDC GetHDC(void) const { return m_hDC; }
inline void SetHDC(WXHDC dc, bool bOwnsDC = FALSE) { m_hDC = dc; m_bOwnsDC = bOwnsDC; } inline void SetHDC(WXHDC dc, bool bOwnsDC = FALSE) { m_hDC = dc; m_bOwnsDC = bOwnsDC; }
inline bool GetAutoSetting(void) const { return m_autoSetting; }
// inline bool GetScaleGDI(void) const { return m_scaleGDI; }
// inline void SetScaleGDI(bool flag) { m_scaleGDI = flag; }
protected: protected:
bool m_colour; bool m_colour;
@@ -238,7 +309,6 @@ protected:
wxColour m_textBackgroundColour; wxColour m_textBackgroundColour;
wxFont m_font; wxFont m_font;
wxPalette m_palette; wxPalette m_palette;
bool m_autoSetting ;
int m_clipX1; int m_clipX1;
int m_clipY1; int m_clipY1;
int m_clipX2; int m_clipX2;

View File

@@ -201,6 +201,13 @@ void MyCanvas::OnDraw(wxDC& dc)
dc.DrawSpline(50, 200, 50, 100, 200, 10); dc.DrawSpline(50, 200, 50, 100, 200, 10);
dc.DrawLine(50, 230, 200, 230); dc.DrawLine(50, 230, 200, 230);
dc.DrawText("This is a test string", 50, 230); dc.DrawText("This is a test string", 50, 230);
wxPoint points[3];
points[0].x = 200; points[0].y = 300;
points[1].x = 100; points[1].y = 400;
points[2].x = 300; points[2].y = 400;
dc.DrawPolygon(3, points);
} }
// This implements a tiny doodling program! Drag the mouse using // This implements a tiny doodling program! Drag the mouse using

View File

@@ -36,17 +36,19 @@
#endif #endif
#if !USE_SHARED_LIBRARY #if !USE_SHARED_LIBRARY
IMPLEMENT_DYNAMIC_CLASS(wxRect, wxObject)
IMPLEMENT_CLASS(wxColourDatabase, wxList) IMPLEMENT_CLASS(wxColourDatabase, wxList)
IMPLEMENT_DYNAMIC_CLASS(wxFontList, wxList) IMPLEMENT_DYNAMIC_CLASS(wxFontList, wxList)
IMPLEMENT_DYNAMIC_CLASS(wxPenList, wxList) IMPLEMENT_DYNAMIC_CLASS(wxPenList, wxList)
IMPLEMENT_DYNAMIC_CLASS(wxBrushList, wxList) IMPLEMENT_DYNAMIC_CLASS(wxBrushList, wxList)
IMPLEMENT_DYNAMIC_CLASS(wxBitmapList, wxList) IMPLEMENT_DYNAMIC_CLASS(wxBitmapList, wxList)
/*
IMPLEMENT_DYNAMIC_CLASS(wxRect, wxObject)
IMPLEMENT_DYNAMIC_CLASS(wxPoint, wxObject) IMPLEMENT_DYNAMIC_CLASS(wxPoint, wxObject)
IMPLEMENT_DYNAMIC_CLASS(wxRealPoint, wxObject) IMPLEMENT_DYNAMIC_CLASS(wxRealPoint, wxObject)
*/
#endif #endif
wxRect::wxRect(void) wxRect::wxRect()
{ {
x = 0; y = 0; width = 0; height = 0; x = 0; y = 0; width = 0; height = 0;
} }
@@ -117,7 +119,7 @@ wxList (type)
{ {
} }
wxColourDatabase::~wxColourDatabase (void) wxColourDatabase::~wxColourDatabase ()
{ {
// Cleanup Colour allocated in Initialize() // Cleanup Colour allocated in Initialize()
wxNode *node = First (); wxNode *node = First ();
@@ -131,7 +133,7 @@ wxColourDatabase::~wxColourDatabase (void)
} }
// Colour database stuff // Colour database stuff
void wxColourDatabase::Initialize (void) void wxColourDatabase::Initialize ()
{ {
// Don't initialize for X: colours are found // Don't initialize for X: colours are found
// in FindColour below. // in FindColour below.
@@ -317,7 +319,7 @@ wxString wxColourDatabase::FindName (const wxColour& colour) const
} }
void void
wxInitializeStockObjects (void) wxInitializeStockObjects ()
{ {
wxTheBrushList = new wxBrushList; wxTheBrushList = new wxBrushList;
wxThePenList = new wxPenList; wxThePenList = new wxPenList;
@@ -371,7 +373,7 @@ wxInitializeStockObjects (void)
} }
void void
wxDeleteStockObjects (void) wxDeleteStockObjects ()
{ {
DELETEP(wxNORMAL_FONT); DELETEP(wxNORMAL_FONT);
DELETEP(wxSMALL_FONT); DELETEP(wxSMALL_FONT);
@@ -413,11 +415,11 @@ wxDeleteStockObjects (void)
DELETEP(wxCROSS_CURSOR); DELETEP(wxCROSS_CURSOR);
} }
wxBitmapList::wxBitmapList (void) wxBitmapList::wxBitmapList ()
{ {
} }
wxBitmapList::~wxBitmapList (void) wxBitmapList::~wxBitmapList ()
{ {
wxNode *node = First (); wxNode *node = First ();
while (node) while (node)
@@ -431,7 +433,7 @@ wxBitmapList::~wxBitmapList (void)
} }
// Pen and Brush lists // Pen and Brush lists
wxPenList::~wxPenList (void) wxPenList::~wxPenList ()
{ {
wxNode *node = First (); wxNode *node = First ();
while (node) while (node)
@@ -486,7 +488,7 @@ wxPen *wxPenList::FindOrCreatePen (const wxString& colour, int width, int style)
return NULL; return NULL;
} }
wxBrushList::~wxBrushList (void) wxBrushList::~wxBrushList ()
{ {
wxNode *node = First (); wxNode *node = First ();
while (node) while (node)
@@ -538,7 +540,7 @@ void wxBrushList::RemoveBrush (wxBrush * brush)
DeleteObject (brush); DeleteObject (brush);
} }
wxFontList::~wxFontList (void) wxFontList::~wxFontList ()
{ {
#ifdef __WINDOWS__ #ifdef __WINDOWS__
wxNode *node = First (); wxNode *node = First ();
@@ -601,3 +603,10 @@ void wxBitmapList::AddBitmap(wxBitmap *bitmap)
void wxBitmapList::RemoveBitmap(wxBitmap *bitmap) void wxBitmapList::RemoveBitmap(wxBitmap *bitmap)
{ DeleteObject(bitmap); } { DeleteObject(bitmap); }
wxSize wxGetDisplaySize()
{
int x, y;
wxDisplaySize(& x, & y);
return wxSize(x, y);
}

View File

@@ -10,7 +10,7 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__ #ifdef __GNUG__
#pragma implementation "utils.h" #pragma implementation "utilscmn.h"
#endif #endif
// For compilers that support precompilation, includes "wx.h". // For compilers that support precompilation, includes "wx.h".

View File

@@ -259,10 +259,12 @@ IMPLEMENT_DYNAMIC_CLASS(wxPenList, wxList)
IMPLEMENT_DYNAMIC_CLASS(wxBrushList, wxList) IMPLEMENT_DYNAMIC_CLASS(wxBrushList, wxList)
IMPLEMENT_DYNAMIC_CLASS(wxBitmapList, wxList) IMPLEMENT_DYNAMIC_CLASS(wxBitmapList, wxList)
/*
#if (!USE_TYPEDEFS) #if (!USE_TYPEDEFS)
IMPLEMENT_DYNAMIC_CLASS(wxPoint, wxObject) IMPLEMENT_DYNAMIC_CLASS(wxPoint, wxObject)
IMPLEMENT_DYNAMIC_CLASS(wxIntPoint, wxObject) IMPLEMENT_DYNAMIC_CLASS(wxIntPoint, wxObject)
#endif #endif
*/
#if defined(wx_x) || (defined(wx_msw) && USE_PORTABLE_FONTS_IN_MSW) #if defined(wx_x) || (defined(wx_msw) && USE_PORTABLE_FONTS_IN_MSW)
IMPLEMENT_DYNAMIC_CLASS(wxFontNameDirectory, wxObject) IMPLEMENT_DYNAMIC_CLASS(wxFontNameDirectory, wxObject)
@@ -338,7 +340,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxProcessEvent, wxEvent)
#include "wx/utils.h" #include "wx/utils.h"
IMPLEMENT_DYNAMIC_CLASS(wxPathList, wxList) IMPLEMENT_DYNAMIC_CLASS(wxPathList, wxList)
IMPLEMENT_DYNAMIC_CLASS(wxRect, wxObject) // IMPLEMENT_DYNAMIC_CLASS(wxRect, wxObject)
#include "wx/process.h" #include "wx/process.h"
IMPLEMENT_DYNAMIC_CLASS(wxProcess, wxEvtHandler) IMPLEMENT_DYNAMIC_CLASS(wxProcess, wxEvtHandler)

View File

@@ -259,10 +259,12 @@ IMPLEMENT_DYNAMIC_CLASS(wxPenList, wxList)
IMPLEMENT_DYNAMIC_CLASS(wxBrushList, wxList) IMPLEMENT_DYNAMIC_CLASS(wxBrushList, wxList)
IMPLEMENT_DYNAMIC_CLASS(wxBitmapList, wxList) IMPLEMENT_DYNAMIC_CLASS(wxBitmapList, wxList)
/*
#if (!USE_TYPEDEFS) #if (!USE_TYPEDEFS)
IMPLEMENT_DYNAMIC_CLASS(wxPoint, wxObject) IMPLEMENT_DYNAMIC_CLASS(wxPoint, wxObject)
IMPLEMENT_DYNAMIC_CLASS(wxIntPoint, wxObject) IMPLEMENT_DYNAMIC_CLASS(wxIntPoint, wxObject)
#endif #endif
*/
#if defined(wx_x) || (defined(wx_msw) && USE_PORTABLE_FONTS_IN_MSW) #if defined(wx_x) || (defined(wx_msw) && USE_PORTABLE_FONTS_IN_MSW)
IMPLEMENT_DYNAMIC_CLASS(wxFontNameDirectory, wxObject) IMPLEMENT_DYNAMIC_CLASS(wxFontNameDirectory, wxObject)
@@ -338,7 +340,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxProcessEvent, wxEvent)
#include "wx/utils.h" #include "wx/utils.h"
IMPLEMENT_DYNAMIC_CLASS(wxPathList, wxList) IMPLEMENT_DYNAMIC_CLASS(wxPathList, wxList)
IMPLEMENT_DYNAMIC_CLASS(wxRect, wxObject) // IMPLEMENT_DYNAMIC_CLASS(wxRect, wxObject)
#include "wx/process.h" #include "wx/process.h"
IMPLEMENT_DYNAMIC_CLASS(wxProcess, wxEvtHandler) IMPLEMENT_DYNAMIC_CLASS(wxProcess, wxEvtHandler)

View File

@@ -253,10 +253,12 @@ IMPLEMENT_DYNAMIC_CLASS(wxPenList, wxList)
IMPLEMENT_DYNAMIC_CLASS(wxBrushList, wxList) IMPLEMENT_DYNAMIC_CLASS(wxBrushList, wxList)
IMPLEMENT_DYNAMIC_CLASS(wxBitmapList, wxList) IMPLEMENT_DYNAMIC_CLASS(wxBitmapList, wxList)
/*
#if (!USE_TYPEDEFS) #if (!USE_TYPEDEFS)
IMPLEMENT_DYNAMIC_CLASS(wxPoint, wxObject) IMPLEMENT_DYNAMIC_CLASS(wxPoint, wxObject)
IMPLEMENT_DYNAMIC_CLASS(wxRealPoint, wxObject) IMPLEMENT_DYNAMIC_CLASS(wxRealPoint, wxObject)
#endif #endif
*/
#include "wx/hash.h" #include "wx/hash.h"
IMPLEMENT_DYNAMIC_CLASS(wxHashTable, wxObject) IMPLEMENT_DYNAMIC_CLASS(wxHashTable, wxObject)
@@ -352,7 +354,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxProcessEvent, wxEvent)
#include "wx/utils.h" #include "wx/utils.h"
IMPLEMENT_DYNAMIC_CLASS(wxPathList, wxList) IMPLEMENT_DYNAMIC_CLASS(wxPathList, wxList)
IMPLEMENT_DYNAMIC_CLASS(wxRect, wxObject) // IMPLEMENT_DYNAMIC_CLASS(wxRect, wxObject)
#include "wx/process.h" #include "wx/process.h"
IMPLEMENT_DYNAMIC_CLASS(wxProcess, wxEvtHandler) IMPLEMENT_DYNAMIC_CLASS(wxProcess, wxEvtHandler)

View File

@@ -70,7 +70,6 @@ wxDC::wxDC(void)
{ {
m_minX = 0; m_minY = 0; m_maxX = 0; m_maxY = 0; m_minX = 0; m_minY = 0; m_maxX = 0; m_maxY = 0;
m_clipping = FALSE; m_clipping = FALSE;
m_autoSetting = FALSE ;
m_filename = ""; m_filename = "";
m_canvas = NULL; m_canvas = NULL;
@@ -319,16 +318,10 @@ void wxDC::Clear(void)
::SetWindowOrgEx((HDC) m_hDC, (int)m_logicalOriginX, (int)m_logicalOriginY, NULL); ::SetWindowOrgEx((HDC) m_hDC, (int)m_logicalOriginX, (int)m_logicalOriginY, NULL);
} }
void wxDC::FloodFill(long x, long y, wxColour *col, int style) void wxDC::FloodFill(long x, long y, const wxColour& col, int style)
{ {
// int xx = (int)x;
// int yy = (int)y;
if (m_brush.Ok() && m_autoSetting)
SetBrush(m_brush);
(void)ExtFloodFill((HDC) m_hDC, XLOG2DEV(x), YLOG2DEV(y), (void)ExtFloodFill((HDC) m_hDC, XLOG2DEV(x), YLOG2DEV(y),
col->GetPixel(), col.GetPixel(),
style==wxFLOOD_SURFACE? style==wxFLOOD_SURFACE?
FLOODFILLSURFACE:FLOODFILLBORDER FLOODFILLSURFACE:FLOODFILLBORDER
); );
@@ -363,9 +356,6 @@ bool wxDC::GetPixel(long x, long y, wxColour *col) const
void wxDC::CrossHair(long x, long y) void wxDC::CrossHair(long x, long y)
{ {
if (m_pen.Ok() && m_autoSetting)
SetPen(m_pen);
// We suppose that our screen is 2000x2000 max. // We suppose that our screen is 2000x2000 max.
long x1 = x-2000; long x1 = x-2000;
long y1 = y-2000; long y1 = y-2000;
@@ -384,10 +374,6 @@ void wxDC::CrossHair(long x, long y)
void wxDC::DrawLine(long x1, long y1, long x2, long y2) void wxDC::DrawLine(long x1, long y1, long x2, long y2)
{ {
// BUGBUG - is this necessary? YES YES YES YEs Yes yes ye....
if (m_pen.Ok() && m_autoSetting)
SetPen(m_pen);
(void)MoveToEx((HDC) m_hDC, XLOG2DEV(x1), YLOG2DEV(y1), NULL); (void)MoveToEx((HDC) m_hDC, XLOG2DEV(x1), YLOG2DEV(y1), NULL);
(void)LineTo((HDC) m_hDC, XLOG2DEV(x2), YLOG2DEV(y2)); (void)LineTo((HDC) m_hDC, XLOG2DEV(x2), YLOG2DEV(y2));
@@ -411,10 +397,6 @@ void wxDC::DrawArc(long x1,long y1,long x2,long y2,double xc,double yc)
return ; return ;
} }
// BUGBUG - is this necessary?
if (m_pen.Ok() && m_autoSetting)
SetPen(m_pen) ;
long xx1 = XLOG2DEV(x1) ; long xx1 = XLOG2DEV(x1) ;
long yy1 = YLOG2DEV(y1) ; long yy1 = YLOG2DEV(y1) ;
long xx2 = XLOG2DEV(x2) ; long xx2 = XLOG2DEV(x2) ;
@@ -430,9 +412,6 @@ void wxDC::DrawArc(long x1,long y1,long x2,long y2,double xc,double yc)
long yyy2 = (long) (yyc+ray); long yyy2 = (long) (yyc+ray);
if (m_brush.Ok() && m_brush.GetStyle() !=wxTRANSPARENT) if (m_brush.Ok() && m_brush.GetStyle() !=wxTRANSPARENT)
{ {
// BUGBUG - is this necessary?
if (m_brush.GetStyle()!=wxTRANSPARENT&&m_autoSetting)
SetBrush(m_brush) ;
Pie((HDC) m_hDC,xxx1,yyy1,xxx2,yyy2, Pie((HDC) m_hDC,xxx1,yyy1,xxx2,yyy2,
xx1,yy1,xx2,yy2) ; xx1,yy1,xx2,yy2) ;
} }
@@ -446,10 +425,6 @@ void wxDC::DrawArc(long x1,long y1,long x2,long y2,double xc,double yc)
void wxDC::DrawPoint(long x, long y) void wxDC::DrawPoint(long x, long y)
{ {
// BUGBUG - is this necessary?
if (m_pen.Ok() && m_autoSetting)
SetPen(m_pen) ;
COLORREF color = 0x00ffffff; COLORREF color = 0x00ffffff;
if (m_pen.Ok()) if (m_pen.Ok())
{ {
@@ -463,54 +438,64 @@ void wxDC::DrawPoint(long x, long y)
void wxDC::DrawPolygon(int n, wxPoint points[], long xoffset, long yoffset,int fillStyle) void wxDC::DrawPolygon(int n, wxPoint points[], long xoffset, long yoffset,int fillStyle)
{ {
// BUGBUG - is this necessary? // Do things less efficiently if we have offsets
if (m_pen.Ok() && m_autoSetting) if (xoffset != 0 || yoffset != 0)
SetPen(m_pen) ; {
POINT *cpoints = new POINT[n]; POINT *cpoints = new POINT[n];
int i; int i;
for (i = 0; i < n; i++) for (i = 0; i < n; i++)
{ {
cpoints[i].x = (int)(XLOG2DEV(points[i].x + xoffset)); cpoints[i].x = (int)(points[i].x + xoffset);
cpoints[i].y = (int)(YLOG2DEV(points[i].y + yoffset)); cpoints[i].y = (int)(points[i].y + yoffset);
CalcBoundingBox(points[i].x + xoffset, points[i].y + yoffset); CalcBoundingBox(cpoints[i].x, cpoints[i].y);
} }
int prev = SetPolyFillMode((HDC) m_hDC,fillStyle==wxODDEVEN_RULE?ALTERNATE:WINDING) ; int prev = SetPolyFillMode((HDC) m_hDC,fillStyle==wxODDEVEN_RULE?ALTERNATE:WINDING) ;
(void)Polygon((HDC) m_hDC, cpoints, n); (void)Polygon((HDC) m_hDC, cpoints, n);
SetPolyFillMode((HDC) m_hDC,prev) ; SetPolyFillMode((HDC) m_hDC,prev) ;
delete[] cpoints; delete[] cpoints;
} }
else
{
int i;
for (i = 0; i < n; i++)
CalcBoundingBox(points[i].x, points[i].y);
int prev = SetPolyFillMode((HDC) m_hDC,fillStyle==wxODDEVEN_RULE?ALTERNATE:WINDING) ;
(void)Polygon((HDC) m_hDC, (POINT*) points, n);
SetPolyFillMode((HDC) m_hDC,prev) ;
}
}
void wxDC::DrawLines(int n, wxPoint points[], long xoffset, long yoffset) void wxDC::DrawLines(int n, wxPoint points[], long xoffset, long yoffset)
{ {
// BUGBUG - is this necessary? // Do things less efficiently if we have offsets
if (m_pen.Ok() && m_autoSetting) if (xoffset != 0 || yoffset != 0)
SetPen(m_pen) ; {
POINT *cpoints = new POINT[n]; POINT *cpoints = new POINT[n];
int i; int i;
for (i = 0; i < n; i++) for (i = 0; i < n; i++)
{ {
cpoints[i].x = (int)(XLOG2DEV(points[i].x + xoffset)); cpoints[i].x = (int)(points[i].x + xoffset);
cpoints[i].y = (int)(YLOG2DEV(points[i].y + yoffset)); cpoints[i].y = (int)(points[i].y + yoffset);
CalcBoundingBox(points[i].x + xoffset, points[i].y + yoffset); CalcBoundingBox(cpoints[i].x, cpoints[i].y);
} }
(void)Polyline((HDC) m_hDC, cpoints, n); (void)Polyline((HDC) m_hDC, cpoints, n);
delete[] cpoints; delete[] cpoints;
} }
else
{
int i;
for (i = 0; i < n; i++)
CalcBoundingBox(points[i].x, points[i].y);
(void)Polyline((HDC) m_hDC, (POINT*) points, n);
}
}
void wxDC::DrawRectangle(long x, long y, long width, long height) void wxDC::DrawRectangle(long x, long y, long width, long height)
{ {
// BUGBUG - is this necessary?
if (m_pen.Ok() && m_autoSetting)
SetPen(m_pen) ;
long x2 = x + width; long x2 = x + width;
long y2 = y + height; long y2 = y + height;
@@ -555,10 +540,6 @@ void wxDC::DrawRectangle(long x, long y, long width, long height)
void wxDC::DrawRoundedRectangle(long x, long y, long width, long height, double radius) void wxDC::DrawRoundedRectangle(long x, long y, long width, long height, double radius)
{ {
// BUGBUG - is this necessary?
if (m_pen.Ok() && m_autoSetting)
SetPen(m_pen) ;
// Now, a negative radius value is interpreted to mean // Now, a negative radius value is interpreted to mean
// 'the proportion of the smallest X or Y dimension' // 'the proportion of the smallest X or Y dimension'
@@ -584,10 +565,6 @@ void wxDC::DrawRoundedRectangle(long x, long y, long width, long height, double
void wxDC::DrawEllipse(long x, long y, long width, long height) void wxDC::DrawEllipse(long x, long y, long width, long height)
{ {
// BUGBUG - is this necessary?
if (m_pen.Ok() && m_autoSetting)
SetPen(m_pen) ;
long x2 = (x+width); long x2 = (x+width);
long y2 = (y+height); long y2 = (y+height);
@@ -600,10 +577,6 @@ void wxDC::DrawEllipse(long x, long y, long width, long height)
// Chris Breeze 20/5/98: first implementation of DrawEllipticArc on Windows // Chris Breeze 20/5/98: first implementation of DrawEllipticArc on Windows
void wxDC::DrawEllipticArc(long x,long y,long w,long h,double sa,double ea) void wxDC::DrawEllipticArc(long x,long y,long w,long h,double sa,double ea)
{ {
// BUGBUG - is this necessary?
if (m_pen.Ok() && m_autoSetting)
SetPen(m_pen) ;
long x2 = (x+w); long x2 = (x+w);
long y2 = (y+h); long y2 = (y+h);

View File

@@ -89,6 +89,7 @@ COMMONOBJS = \
$(COMMDIR)\object.obj \ $(COMMDIR)\object.obj \
$(COMMDIR)\odbc.obj \ $(COMMDIR)\odbc.obj \
$(COMMDIR)\postscrp.obj \ $(COMMDIR)\postscrp.obj \
$(COMMDIR)\process.obj \
$(COMMDIR)\prntbase.obj \ $(COMMDIR)\prntbase.obj \
$(COMMDIR)\resource.obj \ $(COMMDIR)\resource.obj \
$(COMMDIR)\tbarbase.obj \ $(COMMDIR)\tbarbase.obj \
@@ -724,6 +725,11 @@ $(COMMDIR)/postscrp.obj: $*.$(SRCSUFF)
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) $(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<< <<
$(COMMDIR)/process.obj: $*.$(SRCSUFF)
cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<
$(COMMDIR)/prntbase.obj: $*.$(SRCSUFF) $(COMMDIR)/prntbase.obj: $*.$(SRCSUFF)
cl @<< cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) $(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)

View File

@@ -94,6 +94,7 @@ COMMONOBJS = \
$(COMMDIR)/object.$(OBJSUFF) \ $(COMMDIR)/object.$(OBJSUFF) \
$(COMMDIR)/odbc.$(OBJSUFF) \ $(COMMDIR)/odbc.$(OBJSUFF) \
$(COMMDIR)/postscrp.$(OBJSUFF) \ $(COMMDIR)/postscrp.$(OBJSUFF) \
$(COMMDIR)/process.$(OBJSUFF) \
$(COMMDIR)/prntbase.$(OBJSUFF) \ $(COMMDIR)/prntbase.$(OBJSUFF) \
$(COMMDIR)/resource.$(OBJSUFF) \ $(COMMDIR)/resource.$(OBJSUFF) \
$(COMMDIR)/tbarbase.$(OBJSUFF) \ $(COMMDIR)/tbarbase.$(OBJSUFF) \
@@ -113,9 +114,6 @@ COMMONOBJS = \
$(COMMDIR)/datstrm.$(OBJSUFF) \ $(COMMDIR)/datstrm.$(OBJSUFF) \
$(COMMDIR)/extended.$(OBJSUFF) $(COMMDIR)/extended.$(OBJSUFF)
# $(COMMDIR)/wxstrgnu/wxstrgnu.$(OBJSUFF) \
# $(COMMDIR)/wxstrgnu/wxregex.$(OBJSUFF)
MSWOBJS = \ MSWOBJS = \
app.$(OBJSUFF) \ app.$(OBJSUFF) \
bitmap.$(OBJSUFF) \ bitmap.$(OBJSUFF) \

View File

@@ -127,9 +127,6 @@ void wx_draw_open_spline_ps(wxPostScriptDC *dc, wxSpline *s)
{ {
double a, b, c, d, x1, y1, x2, y2, x3, y3; double a, b, c, d, x1, y1, x2, y2, x3, y3;
wxPoint *p, *q; wxPoint *p, *q;
if (dc->GetAutoSetting())
dc->SetPen(* dc->GetPen());
wxNode *node = s->points->First(); wxNode *node = s->points->First();
p = (wxPoint *)node->Data(); p = (wxPoint *)node->Data();