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
#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
#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);
{
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);
{
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);
{
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,
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);
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);
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);
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,
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;};
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);
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;
wxColour m_textBackgroundColour;
wxFont m_font;
wxPalette m_palette;
- bool m_autoSetting ;
int m_clipX1;
int m_clipY1;
int m_clipX2;
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
#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;
}
{
}
-wxColourDatabase::~wxColourDatabase (void)
+wxColourDatabase::~wxColourDatabase ()
{
// Cleanup Colour allocated in Initialize()
wxNode *node = First ();
}
// Colour database stuff
-void wxColourDatabase::Initialize (void)
+void wxColourDatabase::Initialize ()
{
// Don't initialize for X: colours are found
// in FindColour below.
}
void
-wxInitializeStockObjects (void)
+wxInitializeStockObjects ()
{
wxTheBrushList = new wxBrushList;
wxThePenList = new wxPenList;
}
void
-wxDeleteStockObjects (void)
+wxDeleteStockObjects ()
{
DELETEP(wxNORMAL_FONT);
DELETEP(wxSMALL_FONT);
DELETEP(wxCROSS_CURSOR);
}
-wxBitmapList::wxBitmapList (void)
+wxBitmapList::wxBitmapList ()
{
}
-wxBitmapList::~wxBitmapList (void)
+wxBitmapList::~wxBitmapList ()
{
wxNode *node = First ();
while (node)
}
// Pen and Brush lists
-wxPenList::~wxPenList (void)
+wxPenList::~wxPenList ()
{
wxNode *node = First ();
while (node)
return NULL;
}
-wxBrushList::~wxBrushList (void)
+wxBrushList::~wxBrushList ()
{
wxNode *node = First ();
while (node)
DeleteObject (brush);
}
-wxFontList::~wxFontList (void)
+wxFontList::~wxFontList ()
{
#ifdef __WINDOWS__
wxNode *node = First ();
void wxBitmapList::RemoveBitmap(wxBitmap *bitmap)
{ DeleteObject(bitmap); }
+wxSize wxGetDisplaySize()
+{
+ int x, y;
+ wxDisplaySize(& x, & y);
+ return wxSize(x, y);
+}
+
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
-#pragma implementation "utils.h"
+#pragma implementation "utilscmn.h"
#endif
// For compilers that support precompilation, includes "wx.h".
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)
#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)
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)
#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)
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)
#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)
{
m_minX = 0; m_minY = 0; m_maxX = 0; m_maxY = 0;
m_clipping = FALSE;
- m_autoSetting = FALSE ;
m_filename = "";
m_canvas = 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),
- col->GetPixel(),
+ col.GetPixel(),
style==wxFLOOD_SURFACE?
FLOODFILLSURFACE:FLOODFILLBORDER
);
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;
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));
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) ;
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) ;
}
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())
{
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;
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'
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);
// 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);
$(COMMDIR)\object.obj \
$(COMMDIR)\odbc.obj \
$(COMMDIR)\postscrp.obj \
+ $(COMMDIR)\process.obj \
$(COMMDIR)\prntbase.obj \
$(COMMDIR)\resource.obj \
$(COMMDIR)\tbarbase.obj \
$(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)
$(COMMDIR)/object.$(OBJSUFF) \
$(COMMDIR)/odbc.$(OBJSUFF) \
$(COMMDIR)/postscrp.$(OBJSUFF) \
+ $(COMMDIR)/process.$(OBJSUFF) \
$(COMMDIR)/prntbase.$(OBJSUFF) \
$(COMMDIR)/resource.$(OBJSUFF) \
$(COMMDIR)/tbarbase.$(OBJSUFF) \
$(COMMDIR)/datstrm.$(OBJSUFF) \
$(COMMDIR)/extended.$(OBJSUFF)
-# $(COMMDIR)/wxstrgnu/wxstrgnu.$(OBJSUFF) \
-# $(COMMDIR)/wxstrgnu/wxregex.$(OBJSUFF)
-
MSWOBJS = \
app.$(OBJSUFF) \
bitmap.$(OBJSUFF) \
{
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();