]> git.saurik.com Git - wxWidgets.git/commitdiff
make wxPenRefData private
authorPaul Cornett <paulcor@bullseye.com>
Sat, 10 Mar 2007 23:04:18 +0000 (23:04 +0000)
committerPaul Cornett <paulcor@bullseye.com>
Sat, 10 Mar 2007 23:04:18 +0000 (23:04 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44744 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/msw/pen.h
src/msw/pen.cpp

index a93635e41145a7e5e42556abc3b3a5ec908d1dab..aa50b49cf6c8a4bbffdf69daf798c1b4a60b68a3 100644 (file)
 #define _WX_PEN_H_
 
 #include "wx/gdiobj.h"
 #define _WX_PEN_H_
 
 #include "wx/gdiobj.h"
-#include "wx/bitmap.h"
-#include "wx/colour.h"
-
-typedef WXDWORD wxMSWDash;
-
-class WXDLLEXPORT wxPen;
-
-// VZ: this class should be made private
-class WXDLLEXPORT wxPenRefData : public wxGDIRefData
-{
-public:
-    wxPenRefData();
-    wxPenRefData(const wxPenRefData& data);
-    virtual ~wxPenRefData();
-
-    bool operator==(const wxPenRefData& data) const
-    {
-        // we intentionally don't compare m_hPen fields here
-        return m_style == data.m_style &&
-               m_width == data.m_width &&
-               m_join == data.m_join &&
-               m_cap == data.m_cap &&
-               m_colour == data.m_colour &&
-               (m_style != wxSTIPPLE || m_stipple.IsSameAs(data.m_stipple)) &&
-               (m_style != wxUSER_DASH ||
-                (m_nbDash == data.m_nbDash &&
-                    memcmp(m_dash, data.m_dash, m_nbDash*sizeof(wxDash)) == 0));
-    }
-
-protected:
-    int           m_width;
-    int           m_style;
-    int           m_join;
-    int           m_cap;
-    wxBitmap      m_stipple;
-    int           m_nbDash;
-    wxDash *      m_dash;
-    wxColour      m_colour;
-    WXHPEN        m_hPen;
-
-private:
-    friend class WXDLLEXPORT wxPen;
-
-    // Cannot use
-    //  DECLARE_NO_COPY_CLASS(wxPenRefData)
-    // because copy constructor is explicitly declared above;
-    // but no copy assignment operator is defined, so declare
-    // it private to prevent the compiler from defining it:
-    wxPenRefData& operator=(const wxPenRefData&);
-};
-
-#define M_PENDATA ((wxPenRefData *)m_refData)
-#define wxPENDATA(x) ((wxPenRefData *)(x).m_refData)
+#include "wx/gdicmn.h"
 
 // ----------------------------------------------------------------------------
 // Pen
 
 // ----------------------------------------------------------------------------
 // Pen
@@ -79,14 +27,7 @@ public:
     wxPen(const wxBitmap& stipple, int width);
     virtual ~wxPen();
 
     wxPen(const wxBitmap& stipple, int width);
     virtual ~wxPen();
 
-    bool operator==(const wxPen& pen) const
-    {
-        const wxPenRefData *penData = (wxPenRefData *)pen.m_refData;
-
-        // an invalid pen is only equal to another invalid pen
-        return m_refData ? penData && *M_PENDATA == *penData : !penData;
-    }
-
+    bool operator==(const wxPen& pen) const;
     bool operator!=(const wxPen& pen) const { return !(*this == pen); }
 
     virtual bool Ok() const { return IsOk(); }
     bool operator!=(const wxPen& pen) const { return !(*this == pen); }
 
     virtual bool Ok() const { return IsOk(); }
@@ -103,20 +44,15 @@ public:
     void SetJoin(int join);
     void SetCap(int cap);
 
     void SetJoin(int join);
     void SetCap(int cap);
 
-    wxColour& GetColour() const { return (M_PENDATA ? M_PENDATA->m_colour : wxNullColour); };
-    int GetWidth() const { return (M_PENDATA ? M_PENDATA->m_width : 0); };
-    int GetStyle() const { return (M_PENDATA ? M_PENDATA->m_style : 0); };
-    int GetJoin() const { return (M_PENDATA ? M_PENDATA->m_join : 0); };
-    int GetCap() const { return (M_PENDATA ? M_PENDATA->m_cap : 0); };
-    int GetDashes(wxDash **ptr) const
-    {
-        *ptr = (M_PENDATA ? (wxDash*)M_PENDATA->m_dash : (wxDash*) NULL);
-        return (M_PENDATA ? M_PENDATA->m_nbDash : 0);
-    }
-    wxDash* GetDash() const { return (M_PENDATA ? (wxDash*)M_PENDATA->m_dash : (wxDash*)NULL); };
-    inline int GetDashCount() const { return (M_PENDATA ? M_PENDATA->m_nbDash : 0); };
-
-    inline wxBitmap *GetStipple() const { return (M_PENDATA ? (& M_PENDATA->m_stipple) : (wxBitmap*) NULL); };
+    wxColour& GetColour() const;
+    int GetWidth() const;
+    int GetStyle() const;
+    int GetJoin() const;
+    int GetCap() const;
+    int GetDashes(wxDash** ptr) const;
+    wxDash* GetDash() const;
+    int GetDashCount() const;
+    wxBitmap* GetStipple() const;
 
     // Internal
     bool RealizeResource();
 
     // Internal
     bool RealizeResource();
index 75fe263992d0aac4464d1c78a517e372f8e42281..7c22229a90d9c47a83f0df25fd5dcd46e90d3cdf 100644 (file)
 #include "wx/pen.h"
 
 #ifndef WX_PRECOMP
 #include "wx/pen.h"
 
 #ifndef WX_PRECOMP
-    #include <stdio.h>
-    #include "wx/list.h"
+    #include "wx/bitmap.h"
     #include "wx/utils.h"
     #include "wx/utils.h"
-    #include "wx/app.h"
 #endif
 
 #include "wx/msw/private.h"
 
 #endif
 
 #include "wx/msw/private.h"
 
+typedef WXDWORD wxMSWDash;
+
 static int wx2msPenStyle(int wx_style);
 
 static int wx2msPenStyle(int wx_style);
 
-IMPLEMENT_DYNAMIC_CLASS(wxPen, wxGDIObject)
+#define M_PENDATA ((wxPenRefData*)m_refData)
+
+class WXDLLEXPORT wxPenRefData : public wxGDIRefData
+{
+public:
+    wxPenRefData();
+    wxPenRefData(const wxPenRefData& data);
+    virtual ~wxPenRefData();
+
+    bool operator==(const wxPenRefData& data) const
+    {
+        // we intentionally don't compare m_hPen fields here
+        return m_style == data.m_style &&
+               m_width == data.m_width &&
+               m_join == data.m_join &&
+               m_cap == data.m_cap &&
+               m_colour == data.m_colour &&
+               (m_style != wxSTIPPLE || m_stipple.IsSameAs(data.m_stipple)) &&
+               (m_style != wxUSER_DASH ||
+                (m_nbDash == data.m_nbDash &&
+                    memcmp(m_dash, data.m_dash, m_nbDash*sizeof(wxDash)) == 0));
+    }
+
+    int           m_width;
+    int           m_style;
+    int           m_join;
+    int           m_cap;
+    wxBitmap      m_stipple;
+    int           m_nbDash;
+    wxDash *      m_dash;
+    wxColour      m_colour;
+    WXHPEN        m_hPen;
+
+    DECLARE_NO_ASSIGN_CLASS(wxPenRefData)
+};
 
 wxPenRefData::wxPenRefData()
 {
 
 wxPenRefData::wxPenRefData()
 {
@@ -63,6 +97,8 @@ wxPenRefData::~wxPenRefData()
 
 // Pens
 
 
 // Pens
 
+IMPLEMENT_DYNAMIC_CLASS(wxPen, wxGDIObject)
+
 wxPen::wxPen()
 {
 }
 wxPen::wxPen()
 {
 }
@@ -106,6 +142,14 @@ wxPen::wxPen(const wxBitmap& stipple, int Width)
     RealizeResource();
 }
 
     RealizeResource();
 }
 
+bool wxPen::operator==(const wxPen& pen) const
+{
+    const wxPenRefData *penData = wx_static_cast(const wxPenRefData*, pen.m_refData);
+
+    // an invalid pen is only equal to another invalid pen
+    return m_refData ? penData && *M_PENDATA == *penData : !penData;
+}
+
 bool wxPen::RealizeResource()
 {
    if ( !M_PENDATA || M_PENDATA->m_hPen )
 bool wxPen::RealizeResource()
 {
    if ( !M_PENDATA || M_PENDATA->m_hPen )
@@ -354,6 +398,64 @@ void wxPen::SetCap(int Cap)
     RealizeResource();
 }
 
     RealizeResource();
 }
 
+wxColour& wxPen::GetColour() const
+{
+    return m_refData ? M_PENDATA->m_colour : wxNullColour;
+}
+
+int wxPen::GetWidth() const
+{
+    return m_refData ? M_PENDATA->m_width : 0;
+}
+
+int wxPen::GetStyle() const
+{
+    return m_refData ? M_PENDATA->m_style : 0;
+}
+
+int wxPen::GetJoin() const
+{
+    return m_refData ? M_PENDATA->m_join : 0;
+}
+
+int wxPen::GetCap() const
+{
+    return m_refData ? M_PENDATA->m_cap : 0;
+}
+
+int wxPen::GetDashes(wxDash** ptr) const
+{
+    *ptr = NULL;
+    int count = 0;
+    if (m_refData)
+    {
+        *ptr = M_PENDATA->m_dash;
+        count = M_PENDATA->m_nbDash;
+    }
+    return count;
+}
+
+wxDash* wxPen::GetDash() const
+{
+    wxDash* dash = NULL;
+    if (m_refData)
+        dash = M_PENDATA->m_dash;
+    return dash;
+}
+
+int wxPen::GetDashCount() const
+{
+    return m_refData ? M_PENDATA->m_nbDash : 0;
+}
+
+wxBitmap* wxPen::GetStipple() const
+{
+    wxBitmap* bitmap = NULL;
+    if (m_refData)
+        bitmap = &M_PENDATA->m_stipple;
+    return bitmap;
+}
+
 int wx2msPenStyle(int wx_style)
 {
 #if !defined(__WXMICROWIN__) && !defined(__WXWINCE__)
 int wx2msPenStyle(int wx_style)
 {
 #if !defined(__WXMICROWIN__) && !defined(__WXWINCE__)