]> git.saurik.com Git - wxWidgets.git/commitdiff
Removed redundant auto-setting code in wxDC; corrected utilscmn.cpp pragma;
authorJulian Smart <julian@anthemion.co.uk>
Wed, 8 Jul 1998 15:52:22 +0000 (15:52 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Wed, 8 Jul 1998 15:52:22 +0000 (15:52 +0000)
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

13 files changed:
docs/msw/changes.txt
include/wx/gdicmn.h
include/wx/msw/dc.h
samples/mdi/mdi.cpp
src/common/gdicmn.cpp
src/common/utilscmn.cpp
src/gtk/data.cpp
src/gtk1/data.cpp
src/msw/data.cpp
src/msw/dc.cpp
src/msw/makefile.dos
src/msw/makefile.g95
src/msw/xfspline.inc

index f97796ec2c773a9111fe2f75ab0a6b7417c5148d..a11165c1e24ce8a0e8d9080d57f8efe6816b927e 100644 (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
index b196db82ff8b7b00348a0b47ad3fe436bcaf6d15..dec74b5bb9136c100f0423cf702b0e82ff0ed79f 100644 (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);
 
index 5392a19a3b3212e8c19d2cbfe9120b38e705af17..1b4c0457a2b3b8c4bacf29f12cdfdff19789ef3a 100644 (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;
index c9d49661ea2fd0d208647ddabe57367f9dc7d63c..588f0260bdc053d45102b20612ca35222b90b01a 100644 (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
index 2624cdbcca96139b12077f8814f611e1323f4c27..7ab3528f6c5fb413c3d2000707bdf43c6d311d7d 100644 (file)
 #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);
+}
+
index 349d6f04a0755b47f164a4e6b9c80324b2d326ee..196f506ae727910acf8f3dc14a3fdb5e51791973 100644 (file)
@@ -10,7 +10,7 @@
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
-#pragma implementation "utils.h"
+#pragma implementation "utilscmn.h"
 #endif
 
 // For compilers that support precompilation, includes "wx.h".
index 88bab2cde4aed5ce50fa296c433d5ef384a14536..42facd4ae83e0c4ba483c11da8e44d9df103e288 100644 (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)
index 88bab2cde4aed5ce50fa296c433d5ef384a14536..42facd4ae83e0c4ba483c11da8e44d9df103e288 100644 (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)
index 12a7c6672bb489eae9b2dcd8c7e803f960eaf61f..fc65da6e174abf6c37268a1ca52229c139279647 100644 (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)
index 0dd99fee23ccd76ed636514278afe0858a7ad914..ccafc052025a73b4bb22198a2d20ce8a227499fd 100644 (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);
 
index 4f06021518defda5ffd40944a1fe206c0ba1f785..a22b97f133a54c161f89660d112a4ebd7f6e2487 100644 (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)
index 7d18bfb64491dceca042d3be547737228501cacd..fb2ed351f8735e99903d420e9d5db84d0ecabf91 100644 (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) \
index 3c827f5409e44dd32882dd5d94db40e5db42d549..792cf3e23fe76b069fdabf16fd7772ba72cb1440 100644 (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();