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
------------------------------------
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

View File

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

View File

@ -33,25 +33,114 @@ public:
inline void wxDC::BeginDrawing(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 ;
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);
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(const wxPoint& pt)
{
CrossHair(pt.x, pt.y);
}
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 (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);
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 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);
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);
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);
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);
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 SetFont(const wxFont& font);
virtual void SetPen(const wxPen& pen);
@ -59,14 +148,22 @@ public:
virtual void SetLogicalFunction(int function);
virtual void SetBackground(const wxBrush& brush);
virtual void SetBackgroundMode(int mode);
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);
#if WXWIN_COMPATIBILITY
virtual inline void SetColourMap(const wxPalette& palette) { SetPalette(palette); };
#endif
virtual void DestroyClippingRegion(void);
virtual void DrawText(const wxString& text, long x, long y, bool use16bit = FALSE);
virtual long GetCharHeight(void) const;
virtual long GetCharWidth(void) const;
virtual void GetTextExtent(const wxString& string, long *x, long *y,
@ -127,36 +224,9 @@ public:
long ImplLogicalToDeviceXRel(long x) 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 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 SetTextBackground(const wxColour& colour);
inline virtual bool Ok(void) const {return m_ok;};
@ -185,6 +255,11 @@ public:
virtual inline bool GetOptimization(void) { return FALSE; }
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 DoClipping(WXHDC cdc);
@ -194,10 +269,6 @@ public:
inline void SetWindow(wxWindow *win) { m_canvas = win; }
inline WXHDC GetHDC(void) const { return m_hDC; }
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:
bool m_colour;
@ -238,7 +309,6 @@ protected:
wxColour m_textBackgroundColour;
wxFont m_font;
wxPalette m_palette;
bool m_autoSetting ;
int m_clipX1;
int m_clipY1;
int m_clipX2;

View File

@ -201,6 +201,13 @@ void MyCanvas::OnDraw(wxDC& dc)
dc.DrawSpline(50, 200, 50, 100, 200, 10);
dc.DrawLine(50, 230, 200, 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

View File

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

View File

@ -10,7 +10,7 @@
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation "utils.h"
#pragma implementation "utilscmn.h"
#endif
// 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(wxBitmapList, wxList)
/*
#if (!USE_TYPEDEFS)
IMPLEMENT_DYNAMIC_CLASS(wxPoint, wxObject)
IMPLEMENT_DYNAMIC_CLASS(wxIntPoint, wxObject)
#endif
*/
#if defined(wx_x) || (defined(wx_msw) && USE_PORTABLE_FONTS_IN_MSW)
IMPLEMENT_DYNAMIC_CLASS(wxFontNameDirectory, wxObject)
@ -338,7 +340,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxProcessEvent, wxEvent)
#include "wx/utils.h"
IMPLEMENT_DYNAMIC_CLASS(wxPathList, wxList)
IMPLEMENT_DYNAMIC_CLASS(wxRect, wxObject)
// IMPLEMENT_DYNAMIC_CLASS(wxRect, wxObject)
#include "wx/process.h"
IMPLEMENT_DYNAMIC_CLASS(wxProcess, wxEvtHandler)

View File

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

View File

@ -253,10 +253,12 @@ IMPLEMENT_DYNAMIC_CLASS(wxPenList, wxList)
IMPLEMENT_DYNAMIC_CLASS(wxBrushList, wxList)
IMPLEMENT_DYNAMIC_CLASS(wxBitmapList, wxList)
/*
#if (!USE_TYPEDEFS)
IMPLEMENT_DYNAMIC_CLASS(wxPoint, wxObject)
IMPLEMENT_DYNAMIC_CLASS(wxRealPoint, wxObject)
#endif
*/
#include "wx/hash.h"
IMPLEMENT_DYNAMIC_CLASS(wxHashTable, wxObject)
@ -352,7 +354,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxProcessEvent, wxEvent)
#include "wx/utils.h"
IMPLEMENT_DYNAMIC_CLASS(wxPathList, wxList)
IMPLEMENT_DYNAMIC_CLASS(wxRect, wxObject)
// IMPLEMENT_DYNAMIC_CLASS(wxRect, wxObject)
#include "wx/process.h"
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_clipping = FALSE;
m_autoSetting = FALSE ;
m_filename = "";
m_canvas = NULL;
@ -319,16 +318,10 @@ void wxDC::Clear(void)
::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),
col->GetPixel(),
col.GetPixel(),
style==wxFLOOD_SURFACE?
FLOODFILLSURFACE:FLOODFILLBORDER
);
@ -363,9 +356,6 @@ bool wxDC::GetPixel(long x, long y, wxColour *col) const
void wxDC::CrossHair(long x, long y)
{
if (m_pen.Ok() && m_autoSetting)
SetPen(m_pen);
// We suppose that our screen is 2000x2000 max.
long x1 = x-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)
{
// 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)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 ;
}
// BUGBUG - is this necessary?
if (m_pen.Ok() && m_autoSetting)
SetPen(m_pen) ;
long xx1 = XLOG2DEV(x1) ;
long yy1 = YLOG2DEV(y1) ;
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);
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,
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)
{
// BUGBUG - is this necessary?
if (m_pen.Ok() && m_autoSetting)
SetPen(m_pen) ;
COLORREF color = 0x00ffffff;
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)
{
// BUGBUG - is this necessary?
if (m_pen.Ok() && m_autoSetting)
SetPen(m_pen) ;
POINT *cpoints = new POINT[n];
int i;
for (i = 0; i < n; i++)
// Do things less efficiently if we have offsets
if (xoffset != 0 || yoffset != 0)
{
cpoints[i].x = (int)(XLOG2DEV(points[i].x + xoffset));
cpoints[i].y = (int)(YLOG2DEV(points[i].y + yoffset));
POINT *cpoints = new POINT[n];
int i;
for (i = 0; i < n; i++)
{
cpoints[i].x = (int)(points[i].x + xoffset);
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) ;
(void)Polygon((HDC) m_hDC, cpoints, n);
SetPolyFillMode((HDC) m_hDC,prev) ;
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, cpoints, n);
SetPolyFillMode((HDC) m_hDC,prev) ;
delete[] cpoints;
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)
{
// BUGBUG - is this necessary?
if (m_pen.Ok() && m_autoSetting)
SetPen(m_pen) ;
POINT *cpoints = new POINT[n];
int i;
for (i = 0; i < n; i++)
// Do things less efficiently if we have offsets
if (xoffset != 0 || yoffset != 0)
{
cpoints[i].x = (int)(XLOG2DEV(points[i].x + xoffset));
cpoints[i].y = (int)(YLOG2DEV(points[i].y + yoffset));
POINT *cpoints = new POINT[n];
int i;
for (i = 0; i < n; i++)
{
cpoints[i].x = (int)(points[i].x + xoffset);
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);
delete[] cpoints;
}
else
{
int i;
for (i = 0; i < n; i++)
CalcBoundingBox(points[i].x, points[i].y);
(void)Polyline((HDC) m_hDC, cpoints, n);
delete[] cpoints;
(void)Polyline((HDC) m_hDC, (POINT*) points, n);
}
}
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 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)
{
// BUGBUG - is this necessary?
if (m_pen.Ok() && m_autoSetting)
SetPen(m_pen) ;
// Now, a negative radius value is interpreted to mean
// '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)
{
// BUGBUG - is this necessary?
if (m_pen.Ok() && m_autoSetting)
SetPen(m_pen) ;
long x2 = (x+width);
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
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 y2 = (y+h);

View File

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

View File

@ -94,6 +94,7 @@ COMMONOBJS = \
$(COMMDIR)/object.$(OBJSUFF) \
$(COMMDIR)/odbc.$(OBJSUFF) \
$(COMMDIR)/postscrp.$(OBJSUFF) \
$(COMMDIR)/process.$(OBJSUFF) \
$(COMMDIR)/prntbase.$(OBJSUFF) \
$(COMMDIR)/resource.$(OBJSUFF) \
$(COMMDIR)/tbarbase.$(OBJSUFF) \
@ -113,9 +114,6 @@ COMMONOBJS = \
$(COMMDIR)/datstrm.$(OBJSUFF) \
$(COMMDIR)/extended.$(OBJSUFF)
# $(COMMDIR)/wxstrgnu/wxstrgnu.$(OBJSUFF) \
# $(COMMDIR)/wxstrgnu/wxregex.$(OBJSUFF)
MSWOBJS = \
app.$(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;
wxPoint *p, *q;
if (dc->GetAutoSetting())
dc->SetPen(* dc->GetPen());
wxNode *node = s->points->First();
p = (wxPoint *)node->Data();