]> git.saurik.com Git - wxWidgets.git/commitdiff
untangling dc and gc
authorStefan Csomor <csomor@advancedconcepts.ch>
Sat, 21 Oct 2006 12:37:42 +0000 (12:37 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Sat, 21 Oct 2006 12:37:42 +0000 (12:37 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42193 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

12 files changed:
include/wx/dc.h
include/wx/dcgraph.h [new file with mode: 0755]
include/wx/graphics.h
include/wx/mac/carbon/dc.h
src/aui/dockart.cpp
src/common/dcbase.cpp
src/mac/carbon/dcclient.cpp
src/mac/carbon/dcmemory.cpp
src/mac/carbon/dcprint.cpp
src/mac/carbon/dcscreen.cpp
src/mac/carbon/metafile.cpp
src/mac/carbon/renderer.cpp

index 8cee8f3fb75d8d9822f1c0198617fbe99caad539..a5784f471ccc4528f8c8b64f90846762d4e42198 100644 (file)
@@ -856,6 +856,10 @@ private:
     #include "wx/os2/dc.h"
 #endif
 
+#if wxUSE_GRAPHICS_CONTEXT
+    #include "wx/dcgraph.h"
+#endif
+
 // ----------------------------------------------------------------------------
 // helper class: you can use it to temporarily change the DC text colour and
 // restore it automatically when the object goes out of scope
diff --git a/include/wx/dcgraph.h b/include/wx/dcgraph.h
new file mode 100755 (executable)
index 0000000..894e33e
--- /dev/null
@@ -0,0 +1,181 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        wx/graphdc.h
+// Purpose:     graphics context device bridge header
+// Author:      Stefan Csomor
+// Modified by:
+// Created:
+// Copyright:   (c) Stefan Csomor
+// RCS-ID:      $Id$
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_GRAPHICS_DC_H_
+#define _WX_GRAPHICS_DC_H_
+
+#if wxUSE_GRAPHICS_CONTEXT
+
+#include "wx/geometry.h"
+#include "wx/dynarray.h"
+
+class WXDLLEXPORT wxGraphicsContext;
+class WXDLLEXPORT wxWindowDC;
+
+
+#ifdef __WXMAC__
+#define wxGCDC wxDC
+#endif
+
+class WXDLLEXPORT wxGCDC: 
+#ifdef __WXMAC__
+       public wxDCBase
+#else
+       public wxDC
+#endif
+{
+    DECLARE_DYNAMIC_CLASS(wxGCDC)
+    DECLARE_NO_COPY_CLASS(wxGCDC)
+
+public:
+    wxGCDC(const wxWindowDC& dc);
+    wxGCDC();
+    virtual ~wxGCDC();
+
+    void Init();
+
+
+    // implement base class pure virtuals
+    // ----------------------------------
+
+    virtual void Clear();
+
+    virtual bool StartDoc( const wxString& WXUNUSED(message) ) { return true; }
+    virtual void EndDoc(void) {}
+
+    virtual void StartPage(void) {}
+    virtual void EndPage(void) {}
+
+    virtual void SetFont(const wxFont& font);
+    virtual void SetPen(const wxPen& pen);
+    virtual void SetBrush(const wxBrush& brush);
+    virtual void SetBackground(const wxBrush& brush);
+    virtual void SetBackgroundMode(int mode);
+    virtual void SetPalette(const wxPalette& palette);
+
+    virtual void DestroyClippingRegion();
+
+    virtual wxCoord GetCharHeight() const;
+    virtual wxCoord GetCharWidth() const;
+
+    virtual bool CanDrawBitmap() const;
+    virtual bool CanGetTextExtent() const;
+    virtual int GetDepth() const;
+    virtual wxSize GetPPI() const;
+
+    virtual void SetMapMode(int mode);
+    virtual void SetUserScale(double x, double y);
+
+    virtual void SetLogicalScale(double x, double y);
+    virtual void SetLogicalOrigin(wxCoord x, wxCoord y);
+    virtual void SetDeviceOrigin(wxCoord x, wxCoord y);
+    virtual void SetAxisOrientation(bool xLeftRight, bool yBottomUp);
+    virtual void SetLogicalFunction(int function);
+
+    virtual void SetTextForeground(const wxColour& colour);
+    virtual void SetTextBackground(const wxColour& colour);
+
+    virtual void ComputeScaleAndOrigin();
+
+    wxGraphicsContext* GetGraphicContext() { return m_graphicContext; }
+       virtual void SetGraphicsContext( wxGraphicsContext* ctx )
+               { delete m_graphicContext; m_graphicContext = ctx; }
+protected:
+    // the true implementations
+    virtual bool DoFloodFill(wxCoord x, wxCoord y, const wxColour& col,
+        int style = wxFLOOD_SURFACE);
+
+    virtual void DoGradientFillLinear(const wxRect& rect,
+        const wxColour& initialColour,
+        const wxColour& destColour,
+        wxDirection nDirection = wxEAST);
+
+    virtual void DoGradientFillConcentric(const wxRect& rect,
+        const wxColour& initialColour,
+        const wxColour& destColour,
+        const wxPoint& circleCenter);
+
+    virtual bool DoGetPixel(wxCoord x, wxCoord y, wxColour *col) const;
+
+    virtual void DoDrawPoint(wxCoord x, wxCoord y);
+
+#if wxUSE_SPLINES
+    virtual void DoDrawSpline(wxList *points);
+#endif
+
+    virtual void DoDrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2);
+
+    virtual void DoDrawArc(wxCoord x1, wxCoord y1,
+        wxCoord x2, wxCoord y2,
+        wxCoord xc, wxCoord yc);
+
+    virtual void DoDrawCheckMark(wxCoord x, wxCoord y,
+        wxCoord width, wxCoord height);
+
+    virtual void DoDrawEllipticArc(wxCoord x, wxCoord y, wxCoord w, wxCoord h,
+        double sa, double ea);
+
+    virtual void DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
+    virtual void DoDrawRoundedRectangle(wxCoord x, wxCoord y,
+        wxCoord width, wxCoord height,
+        double radius);
+    virtual void DoDrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
+
+    virtual void DoCrossHair(wxCoord x, wxCoord y);
+
+    virtual void DoDrawIcon(const wxIcon& icon, wxCoord x, wxCoord y);
+    virtual void DoDrawBitmap(const wxBitmap &bmp, wxCoord x, wxCoord y,
+        bool useMask = false);
+
+    virtual void DoDrawText(const wxString& text, wxCoord x, wxCoord y);
+    virtual void DoDrawRotatedText(const wxString& text, wxCoord x, wxCoord y,
+        double angle);
+
+    virtual bool DoBlit(wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord height,
+        wxDC *source, wxCoord xsrc, wxCoord ysrc,
+        int rop = wxCOPY, bool useMask = false, wxCoord xsrcMask = -1, wxCoord ysrcMask = -1);
+
+    virtual void DoGetSize(int *,int *) const;
+    virtual void DoGetSizeMM(int* width, int* height) const;
+
+    virtual void DoDrawLines(int n, wxPoint points[],
+        wxCoord xoffset, wxCoord yoffset);
+    virtual void DoDrawPolygon(int n, wxPoint points[],
+        wxCoord xoffset, wxCoord yoffset,
+        int fillStyle = wxODDEVEN_RULE);
+    virtual void DoDrawPolyPolygon(int n, int count[], wxPoint points[],
+        wxCoord xoffset, wxCoord yoffset,
+        int fillStyle);
+
+    virtual void DoSetClippingRegionAsRegion(const wxRegion& region);
+    virtual void DoSetClippingRegion(wxCoord x, wxCoord y,
+        wxCoord width, wxCoord height);
+
+    virtual void DoGetTextExtent(const wxString& string,
+        wxCoord *x, wxCoord *y,
+        wxCoord *descent = NULL,
+        wxCoord *externalLeading = NULL,
+        wxFont *theFont = NULL) const;
+
+    virtual bool DoGetPartialTextExtents(const wxString& text, wxArrayInt& widths) const;
+
+protected:
+    // scaling variables
+    double       m_mm_to_pix_x, m_mm_to_pix_y;
+       
+       double m_formerScaleX, m_formerScaleY;
+
+    wxGraphicsContext* m_graphicContext;
+};
+
+#endif
+
+#endif // _WX_GRAPHICS_DC_H_
index ec11a4a2f0fff11fbc65ce4b67a54c85e4a163d5..1c748a249db1bba436ba06ea5cf027c0bdc7abdc 100755 (executable)
 #ifndef _WX_GRAPHICS_H_
 #define _WX_GRAPHICS_H_
 
+#if wxUSE_GRAPHICS_CONTEXT
+
 #include "wx/geometry.h"
 #include "wx/dynarray.h"
-#include "wx/dc.h"
 
 class WXDLLEXPORT wxWindowDC;
 
-#if wxUSE_GRAPHICS_CONTEXT
-
 /*
  * notes about the graphics context apis
  *
@@ -262,162 +261,6 @@ public:
     DECLARE_NO_COPY_CLASS(wxGraphicsContext)
 };
 
-#ifdef __WXMAC__
-#define wxGCDC wxDC
-#endif
-
-class WXDLLEXPORT wxGCDC: 
-#ifdef __WXMAC__
-       public wxDCBase
-#else
-       public wxDC
 #endif
-{
-    DECLARE_DYNAMIC_CLASS(wxGCDC)
-    DECLARE_NO_COPY_CLASS(wxGCDC)
-
-public:
-    wxGCDC(const wxWindowDC& dc);
-    wxGCDC();
-    virtual ~wxGCDC();
-
-    void Init();
-
-
-    // implement base class pure virtuals
-    // ----------------------------------
-
-    virtual void Clear();
-
-    virtual bool StartDoc( const wxString& WXUNUSED(message) ) { return true; }
-    virtual void EndDoc(void) {}
-
-    virtual void StartPage(void) {}
-    virtual void EndPage(void) {}
-
-    virtual void SetFont(const wxFont& font);
-    virtual void SetPen(const wxPen& pen);
-    virtual void SetBrush(const wxBrush& brush);
-    virtual void SetBackground(const wxBrush& brush);
-    virtual void SetBackgroundMode(int mode);
-    virtual void SetPalette(const wxPalette& palette);
-
-    virtual void DestroyClippingRegion();
-
-    virtual wxCoord GetCharHeight() const;
-    virtual wxCoord GetCharWidth() const;
-
-    virtual bool CanDrawBitmap() const;
-    virtual bool CanGetTextExtent() const;
-    virtual int GetDepth() const;
-    virtual wxSize GetPPI() const;
-
-    virtual void SetMapMode(int mode);
-    virtual void SetUserScale(double x, double y);
-
-    virtual void SetLogicalScale(double x, double y);
-    virtual void SetLogicalOrigin(wxCoord x, wxCoord y);
-    virtual void SetDeviceOrigin(wxCoord x, wxCoord y);
-    virtual void SetAxisOrientation(bool xLeftRight, bool yBottomUp);
-    virtual void SetLogicalFunction(int function);
-
-    virtual void SetTextForeground(const wxColour& colour);
-    virtual void SetTextBackground(const wxColour& colour);
-
-    virtual void ComputeScaleAndOrigin();
-
-    wxGraphicsContext* GetGraphicsContext() { return m_graphicContext; }
-    virtual void SetGraphicsContext( wxGraphicsContext* ctx )
-               { delete m_graphicContext; m_graphicContext = ctx; }
-protected:
-    // the true implementations
-    virtual bool DoFloodFill(wxCoord x, wxCoord y, const wxColour& col,
-        int style = wxFLOOD_SURFACE);
-
-    virtual void DoGradientFillLinear(const wxRect& rect,
-        const wxColour& initialColour,
-        const wxColour& destColour,
-        wxDirection nDirection = wxEAST);
 
-    virtual void DoGradientFillConcentric(const wxRect& rect,
-        const wxColour& initialColour,
-        const wxColour& destColour,
-        const wxPoint& circleCenter);
-
-    virtual bool DoGetPixel(wxCoord x, wxCoord y, wxColour *col) const;
-
-    virtual void DoDrawPoint(wxCoord x, wxCoord y);
-
-#if wxUSE_SPLINES
-    virtual void DoDrawSpline(wxList *points);
-#endif
-
-    virtual void DoDrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2);
-
-    virtual void DoDrawArc(wxCoord x1, wxCoord y1,
-        wxCoord x2, wxCoord y2,
-        wxCoord xc, wxCoord yc);
-
-    virtual void DoDrawCheckMark(wxCoord x, wxCoord y,
-        wxCoord width, wxCoord height);
-
-    virtual void DoDrawEllipticArc(wxCoord x, wxCoord y, wxCoord w, wxCoord h,
-        double sa, double ea);
-
-    virtual void DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
-    virtual void DoDrawRoundedRectangle(wxCoord x, wxCoord y,
-        wxCoord width, wxCoord height,
-        double radius);
-    virtual void DoDrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
-
-    virtual void DoCrossHair(wxCoord x, wxCoord y);
-
-    virtual void DoDrawIcon(const wxIcon& icon, wxCoord x, wxCoord y);
-    virtual void DoDrawBitmap(const wxBitmap &bmp, wxCoord x, wxCoord y,
-        bool useMask = false);
-
-    virtual void DoDrawText(const wxString& text, wxCoord x, wxCoord y);
-    virtual void DoDrawRotatedText(const wxString& text, wxCoord x, wxCoord y,
-        double angle);
-
-    virtual bool DoBlit(wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord height,
-        wxDC *source, wxCoord xsrc, wxCoord ysrc,
-        int rop = wxCOPY, bool useMask = false, wxCoord xsrcMask = -1, wxCoord ysrcMask = -1);
-
-    virtual void DoGetSize(int *,int *) const;
-    virtual void DoGetSizeMM(int* width, int* height) const;
-
-    virtual void DoDrawLines(int n, wxPoint points[],
-        wxCoord xoffset, wxCoord yoffset);
-    virtual void DoDrawPolygon(int n, wxPoint points[],
-        wxCoord xoffset, wxCoord yoffset,
-        int fillStyle = wxODDEVEN_RULE);
-    virtual void DoDrawPolyPolygon(int n, int count[], wxPoint points[],
-        wxCoord xoffset, wxCoord yoffset,
-        int fillStyle);
-
-    virtual void DoSetClippingRegionAsRegion(const wxRegion& region);
-    virtual void DoSetClippingRegion(wxCoord x, wxCoord y,
-        wxCoord width, wxCoord height);
-
-    virtual void DoGetTextExtent(const wxString& string,
-        wxCoord *x, wxCoord *y,
-        wxCoord *descent = NULL,
-        wxCoord *externalLeading = NULL,
-        wxFont *theFont = NULL) const;
-
-    virtual bool DoGetPartialTextExtents(const wxString& text, wxArrayInt& widths) const;
-
-protected:
-    // scaling variables
-    double       m_mm_to_pix_x, m_mm_to_pix_y;
-       
-       double m_formerScaleX, m_formerScaleY;
-
-    wxGraphicsContext* m_graphicContext;
-};
-
-#endif
-
-#endif
-    // _WX_GRID_H_BASE_
+#endif // _WX_GRAPHICS_H_
index c0e60d151d6ff4dab2e7b2f502b45e83a749d4b7..29565e6d135504c18ea5515414801debfaf29c2a 100644 (file)
 
 class wxMacPortStateHelper;
 
-#if wxUSE_GRAPHICS_CONTEXT
-
-#include "wx/graphics.h"
-
-#else
+#if !wxUSE_GRAPHICS_CONTEXT
 
 class WXDLLEXPORT wxGraphicPath
 {
index ac6b8826d33dd0e13dbfadd072b2e27a34e961f2..1eab5042d2a609048efc924d169a457ef3f6bdb1 100644 (file)
@@ -36,6 +36,7 @@
 
 #ifdef __WXMAC__
 #include "wx/mac/private.h"
+#include "wx/graphics.h"
 #endif
 
 #ifdef __WXGTK__
index 77b5894fb923029e24ce2ac954b064505ee068f5..6367f5ec2876b7db931f89f7ec8819069061cd5d 100644 (file)
@@ -1162,6 +1162,7 @@ void wxDCBase::CalculateEllipticPoints( wxList* points,
 
 #include "wx/mac/private.h"
 #include "wx/toplevel.h"
+#include "wx/graphics.h"
 
 class wxOverlayImpl
 {
index 2904d9a27dce58bfe335f2850f1c4644ceed458f..73d0d4d301c058a9fe96fcc60c3be923f48412ff 100644 (file)
@@ -23,6 +23,7 @@
     #include "wx/region.h"
 #endif
 
+#include "wx/graphics.h"
 #include "wx/mac/private.h"
 
 //-----------------------------------------------------------------------------
index 393e0a23c223b2e270165bf465fe8117e676e393..541ad66c4e8c1b7d7520b1015c64a86396f5a769 100644 (file)
@@ -12,6 +12,7 @@
 #include "wx/wxprec.h"
 
 #include "wx/dcmemory.h"
+#include "wx/graphics.h"
 
 #include "wx/mac/private.h"
 
index f1d1a2f8806b573009871aa0d3e764dea14ab955..ad07cc2d94631ec8f226f1addf89976d3fe95557 100644 (file)
@@ -27,6 +27,7 @@
 
 #include "wx/mac/uma.h"
 #include "wx/mac/private/print.h"
+#include "wx/graphics.h"
 
 IMPLEMENT_CLASS(wxPrinterDC, wxDC)
 
index 2468ce77dbb7b7d9dc2699f13eb8e945bba95266..4c985b910fbe0b01f09be400e8e7ba78ffde1d0a 100644 (file)
@@ -14,6 +14,7 @@
 #include "wx/dcscreen.h"
 
 #include "wx/mac/uma.h"
+#include "wx/graphics.h"
 
 IMPLEMENT_DYNAMIC_CLASS(wxScreenDC, wxWindowDC)
 
index 1e8a5e6dd18faf60a938bccb75123c33f9de411f..a99899b188ea162fd52d3d47a398fc8b1f3354ab 100644 (file)
@@ -25,6 +25,7 @@
 #include "wx/metafile.h"
 #include "wx/clipbrd.h"
 #include "wx/mac/private.h"
+#include "wx/graphics.h"
 
 #include <stdio.h>
 #include <string.h>
index b44cd2cd788ab9f31a848c76fad6982711d73dea..c9c3904f5c60c0213397bc58018868e177b92c9f 100644 (file)
@@ -26,6 +26,7 @@
 #endif
 
 #include "wx/renderer.h"
+#include "wx/graphics.h"
 #include "wx/mac/uma.h"