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:
parent
b7346a70cf
commit
6a6c0a8bda
@ -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
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma implementation "utils.h"
|
||||
#pragma implementation "utilscmn.h"
|
||||
#endif
|
||||
|
||||
// For compilers that support precompilation, includes "wx.h".
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
115
src/msw/dc.cpp
115
src/msw/dc.cpp
@ -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);
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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) \
|
||||
|
@ -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();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user