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
This commit is contained in:
@@ -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)
|
||||
|
@@ -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
|
||||
|
@@ -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)
|
||||
|
@@ -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;
|
||||
};
|
||||
|
||||
|
@@ -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);
|
||||
};
|
||||
|
||||
class WXDLLEXPORT wxMetafileDC: public wxDC
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxMetafileDC)
|
||||
|
||||
public:
|
||||
// Don't supply origin and extent
|
||||
// Supply them to wxMakeMetaFilePlaceable instead.
|
||||
wxMetafileDC(const wxString& file = wxEmptyString);
|
||||
|
||||
// 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);
|
||||
|
||||
virtual ~wxMetafileDC(void);
|
||||
|
||||
// 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;
|
||||
|
||||
// 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; }
|
||||
|
||||
protected:
|
||||
virtual wxGDIRefData *CreateGDIRefData() const;
|
||||
virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const;
|
||||
};
|
||||
|
||||
class WXDLLEXPORT wxMetafileDCImpl: public wxPMDCImpl
|
||||
{
|
||||
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:
|
||||
#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(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)
|
||||
: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)
|
||||
: wxDC(new wxMetafileDCImpl( this, file, xext, yext, xorg, yorg ))
|
||||
{ }
|
||||
|
||||
wxMetafile *GetMetafile() const
|
||||
{ return ((wxMetafileDCImpl*)m_pimpl)->GetMetaFile(); }
|
||||
|
||||
virtual ~wxMetafileDC(void)
|
||||
{ delete m_pimpl; }
|
||||
|
||||
// Should be called at end of drawing
|
||||
virtual wxMetafile *Close(void)
|
||||
{ return ((wxMetafileDCImpl*)m_pimpl)->Close(); }
|
||||
|
||||
inline void SetMetaFile(wxMetafile *mf)
|
||||
{ ((wxMetafileDCImpl*)m_pimpl)->SetMetaFile(mf); }
|
||||
|
||||
private:
|
||||
DECLARE_CLASS(wxMetafileDC)
|
||||
DECLARE_NO_COPY_CLASS(wxMetafileDC)
|
||||
};
|
||||
|
||||
/*
|
||||
|
@@ -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
|
||||
|
@@ -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);
|
||||
|
@@ -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_
|
||||
|
Reference in New Issue
Block a user