From: Stefan Neis Date: Sat, 12 Jan 2008 15:05:15 +0000 (+0000) Subject: Implemented wxGDIObject::Create/CloneGDIRefData() for the relevant classes. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/4b3f61d14cbc6cc117373d173ecf08fbec4c9a38 Implemented wxGDIObject::Create/CloneGDIRefData() for the relevant classes. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51177 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/os2/bitmap.h b/include/wx/os2/bitmap.h index ff7fccded8..2431cd3360 100644 --- a/include/wx/os2/bitmap.h +++ b/include/wx/os2/bitmap.h @@ -216,7 +216,6 @@ protected: bool CreateFromImage(const wxImage& image, int depth); - virtual wxGDIRefData *CreateGDIRefData() const; virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; private: @@ -343,7 +342,7 @@ public: private: inline virtual bool Load( wxGDIImage* WXUNUSED(pImage) ,const wxString& WXUNUSED(rName) - ,HPS WXUNUSED(hPs) + ,WXHANDLE WXUNUSED(hPs) ,long WXUNUSED(lFlags) ,int WXUNUSED(nDesiredWidth) ,int WXUNUSED(nDesiredHeight) diff --git a/include/wx/os2/brush.h b/include/wx/os2/brush.h index 4d62415e98..cce9af579d 100644 --- a/include/wx/os2/brush.h +++ b/include/wx/os2/brush.h @@ -46,8 +46,6 @@ protected: // Brush class WXDLLEXPORT wxBrush: public wxBrushBase { - DECLARE_DYNAMIC_CLASS(wxBrush) - public: wxBrush(); wxBrush(const wxColour& rCol, int nStyle = wxSOLID); @@ -79,7 +77,13 @@ public: virtual WXHANDLE GetResourceHandle(void) const; bool FreeResource(bool bForce = false); bool IsFree(void) const; - void Unshare(void); + +protected: + virtual wxGDIRefData *CreateGDIRefData() const; + virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; + +private: + DECLARE_DYNAMIC_CLASS(wxBrush) }; // end of CLASS wxBrush #endif diff --git a/include/wx/os2/font.h b/include/wx/os2/font.h index 92e0b22698..02da710482 100644 --- a/include/wx/os2/font.h +++ b/include/wx/os2/font.h @@ -113,7 +113,9 @@ public: protected: virtual void DoSetNativeFontInfo(const wxNativeFontInfo& rInfo); - void Unshare(void); + // implement wxObject virtuals which are used by AllocExclusive() + virtual wxGDIRefData *CreateGDIRefData() const; + virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; private: DECLARE_DYNAMIC_CLASS(wxFont) diff --git a/include/wx/os2/gdiimage.h b/include/wx/os2/gdiimage.h index de43fec73a..98422387cd 100644 --- a/include/wx/os2/gdiimage.h +++ b/include/wx/os2/gdiimage.h @@ -74,7 +74,7 @@ public: WXHCURSOR m_hCursor; }; - UINT m_uId; + unsigned int m_uId; }; // ---------------------------------------------------------------------------- @@ -204,7 +204,7 @@ public: } void SetSize(const wxSize& rSize) { SetSize(rSize.x, rSize.y); } - UINT GetId(void) const + unsigned int GetId(void) const { wxGDIImageRefData* pData; @@ -214,7 +214,7 @@ public: else return pData->m_uId; } // end of WxWinGdi_CGDIImage::GetId - void SetId(UINT uId) + void SetId(unsigned int uId) { wxGDIImageRefData* pData; @@ -231,6 +231,15 @@ protected: virtual wxGDIImageRefData* CreateData() const = 0; virtual wxGDIRefData *CreateGDIRefData() const { return CreateData(); } + // we can't [efficiently] clone objects of this class + virtual wxGDIRefData * + CloneGDIRefData(const wxGDIRefData *WXUNUSED(data)) const + { + wxFAIL_MSG( _T("must be implemented if used") ); + + return NULL; + } + static wxGDIImageHandlerList ms_handlers; }; diff --git a/include/wx/os2/metafile.h b/include/wx/os2/metafile.h index 6a79199a78..03818f44b1 100644 --- a/include/wx/os2/metafile.h +++ b/include/wx/os2/metafile.h @@ -17,6 +17,7 @@ #include "wx/dc.h" #include "wx/gdiobj.h" +#include "wx/os2/dc.h" #if wxUSE_DRAG_AND_DROP #include "wx/dataobj.h" @@ -66,53 +67,76 @@ public: void SetHMETAFILE(WXHANDLE mf) ; inline int GetWindowsMappingMode(void) { return M_METAFILEDATA->m_windowsMappingMode; } void SetWindowsMappingMode(int mm); + +protected: + virtual wxGDIRefData *CreateGDIRefData() const; + virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; }; -class WXDLLEXPORT wxMetafileDC: public wxDC +class WXDLLEXPORT wxMetafileDCImpl: public wxPMDCImpl { - DECLARE_DYNAMIC_CLASS(wxMetafileDC) +public: + wxMetafileDCImpl(wxDC *owner, const wxString& file = wxEmptyString); + wxMetafileDCImpl(wxDC *owner, const wxString& file, + int xext, int yext, int xorg, int yorg); + virtual ~wxMetafileDCImpl(); + + virtual wxMetafile *Close(); + virtual void SetMapMode(int mode); + virtual void DoGetTextExtent(const wxString& string, + wxCoord *x, wxCoord *y, + wxCoord *descent = NULL, + wxCoord *externalLeading = NULL, + const wxFont *theFont = NULL) const; + + // Implementation + wxMetafile *GetMetaFile() const { return m_metaFile; } + void SetMetaFile(wxMetafile *mf) { m_metaFile = mf; } + int GetWindowsMappingMode() const { return m_windowsMappingMode; } + void SetWindowsMappingMode(int mm) { m_windowsMappingMode = mm; } + +protected: + virtual void DoGetSize(int *width, int *height) const; + + int m_windowsMappingMode; + wxMetafile* m_metaFile; +private: + DECLARE_CLASS(wxMetafileDCImpl) + DECLARE_NO_COPY_CLASS(wxMetafileDCImpl) +}; + +class WXDLLEXPORT wxMetafileDC: public wxDC +{ public: // Don't supply origin and extent // Supply them to wxMakeMetaFilePlaceable instead. - wxMetafileDC(const wxString& file = wxEmptyString); + wxMetafileDC(const wxString& file = wxEmptyString) + :wxDC(new wxMetafileDCImpl( this, file )) + { } // Supply origin and extent (recommended). // Then don't need to supply them to wxMakeMetaFilePlaceable. - wxMetafileDC(const wxString& file, int xext, int yext, int xorg, int yorg); + wxMetafileDC(const wxString& file, int xext, int yext, int xorg, int yorg) + : wxDC(new wxMetafileDCImpl( this, file, xext, yext, xorg, yorg )) + { } - virtual ~wxMetafileDC(void); + wxMetafile *GetMetafile() const + { return ((wxMetafileDCImpl*)m_pimpl)->GetMetaFile(); } - // Should be called at end of drawing - virtual wxMetafile *Close(void); - virtual void SetMapMode(int mode); - virtual void GetTextExtent(const wxString& string, long *x, long *y, - long *descent = NULL, long *externalLeading = NULL, - const wxFont *theFont = NULL, bool use16bit = false) const; + virtual ~wxMetafileDC(void) + { delete m_pimpl; } - // Implementation - inline wxMetafile *GetMetaFile(void) const { return m_metaFile; } - inline void SetMetaFile(wxMetafile *mf) { m_metaFile = mf; } - inline int GetWindowsMappingMode(void) const { return m_windowsMappingMode; } - inline void SetWindowsMappingMode(int mm) { m_windowsMappingMode = mm; } + // Should be called at end of drawing + virtual wxMetafile *Close(void) + { return ((wxMetafileDCImpl*)m_pimpl)->Close(); } -protected: - int m_windowsMappingMode; - wxMetafile* m_metaFile; + inline void SetMetaFile(wxMetafile *mf) + { ((wxMetafileDCImpl*)m_pimpl)->SetMetaFile(mf); } private: -#ifndef __WATCOMC__ - // function hiding warning supression - // still required ?? - inline virtual void GetTextExtent( const wxString& string - ,long* width - ,long* height - ,long* descent = NULL - ,long* externalLeading = NULL - ,wxFont* theFont = NULL - ) const - { GetTextExtent( string, width, height, descent, externalLeading, theFont, false);}; -#endif + DECLARE_CLASS(wxMetafileDC) + DECLARE_NO_COPY_CLASS(wxMetafileDC) }; /* diff --git a/include/wx/os2/palette.h b/include/wx/os2/palette.h index ba3109be26..69a8ff18cb 100644 --- a/include/wx/os2/palette.h +++ b/include/wx/os2/palette.h @@ -32,8 +32,6 @@ public: class WXDLLEXPORT wxPalette: public wxPaletteBase { - DECLARE_DYNAMIC_CLASS(wxPalette) - public: wxPalette(); @@ -64,6 +62,13 @@ public: inline WXHPALETTE GetHPALETTE(void) const { return (M_PALETTEDATA ? M_PALETTEDATA->m_hPalette : 0); } void SetHPALETTE(WXHPALETTE hPalette); void SetPS(HPS hPS); + +protected: + virtual wxGDIRefData *CreateGDIRefData() const; + virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; + +private: + DECLARE_DYNAMIC_CLASS(wxPalette) }; // end of CLASS wxPalette #endif diff --git a/include/wx/os2/pen.h b/include/wx/os2/pen.h index 86ce52baf8..30aed3bbe4 100644 --- a/include/wx/os2/pen.h +++ b/include/wx/os2/pen.h @@ -58,7 +58,6 @@ protected: // Pen class WXDLLEXPORT wxPen : public wxGDIObject { - DECLARE_DYNAMIC_CLASS(wxPen) public: wxPen(); wxPen( const wxColour& rColour @@ -124,11 +123,19 @@ public: bool FreeResource(bool bForce = false); virtual WXHANDLE GetResourceHandle(void) const; bool IsFree(void) const; - void Unshare(void); private: LINEBUNDLE m_vLineBundle; AREABUNDLE m_vAreaBundle; + +protected: + virtual wxGDIRefData* CreateGDIRefData() const; + virtual wxGDIRefData* CloneGDIRefData(const wxGDIRefData* data) const; + + // same as FreeResource() + RealizeResource() + bool Recreate(); + + DECLARE_DYNAMIC_CLASS(wxPen) }; // end of CLASS wxPen extern int wx2os2PenStyle(int nWxStyle); diff --git a/include/wx/os2/region.h b/include/wx/os2/region.h index 882315fcec..126deb0937 100644 --- a/include/wx/os2/region.h +++ b/include/wx/os2/region.h @@ -64,8 +64,8 @@ public: void SetPS(HPS hPS); protected: - virtual wxGDIRefData* CreateData(void) const; - virtual wxGDIRefData* CloneData(const wxGDIRefData* pData) const; + virtual wxGDIRefData* CreateGDIRefData(void) const; + virtual wxGDIRefData* CloneGDIRefData(const wxGDIRefData* pData) const; virtual bool DoIsEqual(const wxRegion& region) const; virtual bool DoGetBox(wxCoord& x, wxCoord& y, wxCoord& w, wxCoord& h) const; @@ -82,7 +82,6 @@ protected: class WXDLLEXPORT wxRegionIterator : public wxObject { -DECLARE_DYNAMIC_CLASS(wxRegionIterator); public: wxRegionIterator(); wxRegionIterator(const wxRegion& rRegion); @@ -110,6 +109,8 @@ private: long m_lNumRects; wxRegion m_vRegion; wxRect* m_pRects; + + DECLARE_DYNAMIC_CLASS(wxRegionIterator) }; // end of wxRegionIterator #endif // _WX_OS2_REGION_H_ diff --git a/src/os2/bitmap.cpp b/src/os2/bitmap.cpp index 8b3dbb8fea..8a599bea4d 100644 --- a/src/os2/bitmap.cpp +++ b/src/os2/bitmap.cpp @@ -94,11 +94,6 @@ void wxBitmapRefData::Free() // wxBitmap creation // ---------------------------------------------------------------------------- -wxGDIRefData* wxBitmap::CreateGDIRefData() const -{ - return new wxBitmapRefData; -} - wxGDIRefData* wxBitmap::CloneGDIRefData(const wxGDIRefData* data) const { return new wxBitmapRefData(*wx_static_cast(const wxBitmapRefData *, data)); diff --git a/src/os2/brush.cpp b/src/os2/brush.cpp index 91b77c959e..1fcccdab16 100644 --- a/src/os2/brush.cpp +++ b/src/os2/brush.cpp @@ -234,40 +234,23 @@ bool wxBrush::IsFree() const return (M_BRUSHDATA && (M_BRUSHDATA->m_hBrush == 0)); } // end of wxBrush::IsFree -void wxBrush::Unshare() -{ - // - // Don't change shared data - // - if (!m_refData) - { - m_refData = new wxBrushRefData(); - } - else - { - wxBrushRefData* ref = new wxBrushRefData(*(wxBrushRefData*)m_refData); - UnRef(); - m_refData = ref; - } -} // end of wxBrush::Unshare - void wxBrush::SetColour( const wxColour& rColour ) { - Unshare(); + AllocExclusive(); M_BRUSHDATA->m_vColour = rColour; RealizeResource(); } void wxBrush::SetColour(unsigned char cRed, unsigned char cGreen, unsigned char cBlue) { - Unshare(); + AllocExclusive(); M_BRUSHDATA->m_vColour.Set( cRed, cGreen, cBlue ); RealizeResource(); } // end of wxBrush::SetColour void wxBrush::SetStyle(int nStyle) { - Unshare(); + AllocExclusive(); M_BRUSHDATA->m_nStyle = nStyle; RealizeResource(); } // end of wxBrush::SetStyle @@ -276,7 +259,7 @@ void wxBrush::SetStipple( const wxBitmap& rStipple ) { - Unshare(); + AllocExclusive(); M_BRUSHDATA->m_vStipple = rStipple; RealizeResource(); } // end of wxBrush::SetStipple @@ -285,7 +268,7 @@ void wxBrush::SetPS( HPS hPS ) { - Unshare(); + AllocExclusive(); if (M_BRUSHDATA->m_hBrush) ::GpiDestroyPS(M_BRUSHDATA->m_hBrush); M_BRUSHDATA->m_hBrush = hPS; @@ -304,3 +287,12 @@ bool wxBrush::operator == ( return ( *(wxBrushRefData*)m_refData == *(wxBrushRefData*)brush.m_refData ); } // end of wxBrush::operator == +wxGDIRefData *wxBrush::CreateGDIRefData() const +{ + return new wxBrushRefData; +} + +wxGDIRefData *wxBrush::CloneGDIRefData(const wxGDIRefData *data) const +{ + return new wxBrushRefData(*(const wxBrushRefData *)data); +} diff --git a/src/os2/font.cpp b/src/os2/font.cpp index 4ed240007c..4a97f97c28 100644 --- a/src/os2/font.cpp +++ b/src/os2/font.cpp @@ -931,6 +931,16 @@ wxFont::~wxFont() // here, but we may check that font definition is true // ---------------------------------------------------------------------------- +wxGDIRefData *wxFont::CreateGDIRefData() const +{ + return new wxFontRefData(); +} + +wxGDIRefData *wxFont::CloneGDIRefData(const wxGDIRefData *data) const +{ + return new wxFontRefData(*wx_static_cast(const wxFontRefData *, data)); +} + bool wxFont::RealizeResource() { if ( GetResourceHandle() ) @@ -965,21 +975,6 @@ bool wxFont::IsFree() const return M_FONTDATA && (M_FONTDATA->GetHFONT() == 0); } // end of wxFont::IsFree -void wxFont::Unshare() -{ - // Don't change shared data - if ( !m_refData ) - { - m_refData = new wxFontRefData(); - } - else - { - wxFontRefData* ref = new wxFontRefData(*M_FONTDATA); - UnRef(); - m_refData = ref; - } -} // end of wxFont::Unshare - // ---------------------------------------------------------------------------- // change font attribute: we recreate font when doing it // ---------------------------------------------------------------------------- @@ -988,7 +983,7 @@ void wxFont::SetPointSize( int nPointSize ) { - Unshare(); + AllocExclusive(); M_FONTDATA->SetPointSize(nPointSize); @@ -999,7 +994,7 @@ void wxFont::SetFamily( int nFamily ) { - Unshare(); + AllocExclusive(); M_FONTDATA->SetFamily(nFamily); @@ -1010,7 +1005,7 @@ void wxFont::SetStyle( int nStyle ) { - Unshare(); + AllocExclusive(); M_FONTDATA->SetStyle(nStyle); @@ -1021,7 +1016,7 @@ void wxFont::SetWeight( int nWeight ) { - Unshare(); + AllocExclusive(); M_FONTDATA->SetWeight(nWeight); @@ -1032,7 +1027,7 @@ bool wxFont::SetFaceName( const wxString& rsFaceName ) { - Unshare(); + AllocExclusive(); bool refdataok = M_FONTDATA->SetFaceName(rsFaceName); @@ -1045,7 +1040,7 @@ void wxFont::SetUnderlined( bool bUnderlined ) { - Unshare(); + AllocExclusive(); M_FONTDATA->SetUnderlined(bUnderlined); @@ -1056,7 +1051,7 @@ void wxFont::SetEncoding( wxFontEncoding vEncoding ) { - Unshare(); + AllocExclusive(); M_FONTDATA->SetEncoding(vEncoding); @@ -1067,7 +1062,7 @@ void wxFont::DoSetNativeFontInfo( const wxNativeFontInfo& rInfo ) { - Unshare(); + AllocExclusive(); FreeResource(); @@ -1147,7 +1142,7 @@ void wxFont::SetFM( PFONTMETRICS pFM, int nNumFonts ) void wxFont::SetPS( HPS hPS ) { - Unshare(); + AllocExclusive(); M_FONTDATA->SetPS(hPS); diff --git a/src/os2/metafile.cpp b/src/os2/metafile.cpp index 82709b4ccb..2938562b03 100644 --- a/src/os2/metafile.cpp +++ b/src/os2/metafile.cpp @@ -66,6 +66,16 @@ wxMetafile::~wxMetafile(void) { } +wxGDIRefData *wxMetafile::CreateGDIRefData() const +{ + return new wxMetafileRefData; +} + +wxGDIRefData *wxMetafile::CloneGDIRefData(const wxGDIRefData *data) const +{ + return new wxMetafileRefData(*wx_static_cast(const wxMetafileRefData *, data)); +} + bool wxMetafile::SetClipboard(int width, int height) { #if !wxUSE_CLIPBOARD @@ -122,7 +132,8 @@ void wxMetafile::SetWindowsMappingMode(int mm) // Original constructor that does not takes origin and extent. If you use this, // *DO* give origin/extent arguments to wxMakeMetafilePlaceable. -wxMetafileDC::wxMetafileDC(const wxString& file) +wxMetafileDCImpl::wxMetafileDCImpl(wxDC *owner, const wxString& file) + : wxPMDCImpl(owner) { m_metaFile = NULL; m_minX = 10000; @@ -152,11 +163,12 @@ wxMetafileDC::wxMetafileDC(const wxString& file) // New constructor that takes origin and extent. If you use this, don't // give origin/extent arguments to wxMakeMetafilePlaceable. -wxMetafileDC::wxMetafileDC( const wxString& file, - int WXUNUSED(xext), - int WXUNUSED(yext), - int WXUNUSED(xorg), - int WXUNUSED(yorg) ) +wxMetafileDCImpl::wxMetafileDCImpl( wxDC *owner, const wxString& file, + int WXUNUSED(xext), + int WXUNUSED(yext), + int WXUNUSED(xorg), + int WXUNUSED(yorg) ) + : wxPMDCImpl(owner) { m_minX = 10000; m_minY = 10000; @@ -178,18 +190,17 @@ wxMetafileDC::wxMetafileDC( const wxString& file, SetMapMode(wxMM_TEXT); // NOTE: does not set HDC mapmode (this is correct) } -wxMetafileDC::~wxMetafileDC(void) +wxMetafileDCImpl::~wxMetafileDCImpl(void) { m_hDC = 0; } -void wxMetafileDC::GetTextExtent(const wxString& WXUNUSED(string), - long *WXUNUSED(x), - long *WXUNUSED(y), - long *WXUNUSED(descent), - long *WXUNUSED(externalLeading), - const wxFont *theFont, - bool WXUNUSED(use16bit) ) const +void wxMetafileDCImpl::DoGetTextExtent(const wxString& WXUNUSED(string), + wxCoord *WXUNUSED(x), + wxCoord *WXUNUSED(y), + wxCoord *WXUNUSED(descent), + wxCoord *WXUNUSED(externalLeading), + const wxFont *theFont) const { const wxFont *fontToUse = theFont; if (!fontToUse) @@ -217,7 +228,7 @@ void wxMetafileDC::GetTextExtent(const wxString& WXUNUSED(string), */ } -wxMetafile *wxMetafileDC::Close(void) +wxMetafile *wxMetafileDCImpl::Close(void) { SelectOldObjects(m_hDC); HANDLE mf = 0; // TODO: CloseMetaFile((HDC) m_hDC); @@ -232,7 +243,7 @@ wxMetafile *wxMetafileDC::Close(void) return NULL; } -void wxMetafileDC::SetMapMode(int mode) +void wxMetafileDCImpl::SetMapMode(int mode) { m_mappingMode = mode; diff --git a/src/os2/palette.cpp b/src/os2/palette.cpp index a579c53803..42454c09e2 100644 --- a/src/os2/palette.cpp +++ b/src/os2/palette.cpp @@ -104,6 +104,16 @@ bool wxPalette::Create( int n, return true; } // end of wxPalette::Create +wxGDIRefData *wxPalette::CreateGDIRefData() const +{ + return new wxPaletteRefData; +} + +wxGDIRefData *wxPalette::CloneGDIRefData(const wxGDIRefData *data) const +{ + return new wxPaletteRefData(*wx_static_cast(const wxPaletteRefData *, data)); +} + int wxPalette::GetPixel( unsigned char cRed, unsigned char cGreen, unsigned char cBlue) const diff --git a/src/os2/pen.cpp b/src/os2/pen.cpp index 24d89e39b2..318daf514d 100644 --- a/src/os2/pen.cpp +++ b/src/os2/pen.cpp @@ -327,38 +327,33 @@ bool wxPen::IsFree() const return (M_PENDATA && M_PENDATA->m_hPen == 0); } -void wxPen::Unshare() +wxGDIRefData* wxPen::CreateGDIRefData() const { - // Don't change shared data - if (!m_refData) - { - m_refData = new wxPenRefData(); - } - else - { - wxPenRefData* ref = new wxPenRefData(*(wxPenRefData*)m_refData); - UnRef(); - m_refData = ref; - } -} // end of wxPen::Unshare + return new wxPenRefData; +} + +wxGDIRefData* wxPen::CloneGDIRefData(const wxGDIRefData* data) const +{ + return new wxPenRefData(*wx_static_cast(const wxPenRefData*, data)); +} void wxPen::SetColour( const wxColour& rColour ) { - Unshare(); + AllocExclusive(); M_PENDATA->m_vColour = rColour; RealizeResource(); } // end of wxPen::SetColour void wxPen::SetColour( unsigned char cRed, unsigned char cGreen, unsigned char cBlue) { - Unshare(); + AllocExclusive(); M_PENDATA->m_vColour.Set(cRed, cGreen, cBlue); RealizeResource(); } // end of wxPen::SetColour void wxPen::SetPS( HPS hPS ) { - Unshare(); + AllocExclusive(); if (M_PENDATA->m_hPen) ::GpiDestroyPS(M_PENDATA->m_hPen); M_PENDATA->m_hPen = hPS; @@ -369,7 +364,7 @@ void wxPen::SetWidth( int nWidth ) { - Unshare(); + AllocExclusive(); M_PENDATA->m_nWidth = nWidth; RealizeResource(); } // end of wxPen::SetWidth @@ -378,7 +373,7 @@ void wxPen::SetStyle( int nStyle ) { - Unshare(); + AllocExclusive(); M_PENDATA->m_nStyle = nStyle; RealizeResource(); } // end of wxPen::SetStyle @@ -387,7 +382,7 @@ void wxPen::SetStipple( const wxBitmap& rStipple ) { - Unshare(); + AllocExclusive(); M_PENDATA->m_vStipple = rStipple; M_PENDATA->m_nStyle = wxSTIPPLE; RealizeResource(); @@ -405,7 +400,7 @@ void wxPen::SetJoin( int nJoin ) { - Unshare(); + AllocExclusive(); M_PENDATA->m_nJoin = nJoin; RealizeResource(); } // end of wxPen::SetJoin @@ -414,7 +409,7 @@ void wxPen::SetCap( int nCap ) { - Unshare(); + AllocExclusive(); M_PENDATA->m_nCap = nCap; RealizeResource(); } // end of wxPen::SetCap diff --git a/src/os2/region.cpp b/src/os2/region.cpp index eff2107d60..4e6760d6d7 100644 --- a/src/os2/region.cpp +++ b/src/os2/region.cpp @@ -233,12 +233,12 @@ wxRegion::~wxRegion() { } // end of wxRegion::~wxRegion -wxGDIRefData *wxRegion::CreateData() const +wxGDIRefData *wxRegion::CreateGDIRefData() const { return new wxRegionRefData; } -wxGDIRefData *wxRegion::CloneData(const wxGDIRefData *data) const +wxGDIRefData *wxRegion::CloneGDIRefData(const wxGDIRefData *data) const { return new wxRegionRefData(*(wxRegionRefData *)data); }