// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
+#include "wx/pen.h"
+
#ifndef WX_PRECOMP
#include <stdio.h>
#include "wx/list.h"
#include "wx/utils.h"
#include "wx/app.h"
- #include "wx/pen.h"
#include "wx/log.h"
#endif
}
m_vLineBundle.lColor = (LONG)vPmColour;
m_vLineBundle.usMixMode = FM_OVERPAINT;
+ if (M_PENDATA->m_nWidth < 1)
+ M_PENDATA->m_nWidth = 1;
m_vLineBundle.fxWidth = M_PENDATA->m_nWidth;
m_vLineBundle.lGeomWidth = M_PENDATA->m_nWidth;
m_vLineBundle.usType = uLineType;
return false;
} // end of wxPen::RealizeResource
-WXHANDLE wxPen::GetResourceHandle()
+WXHANDLE wxPen::GetResourceHandle() const
{
if (!M_PENDATA)
return 0;
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;
int nWidth
)
{
- Unshare();
+ AllocExclusive();
M_PENDATA->m_nWidth = nWidth;
RealizeResource();
} // end of wxPen::SetWidth
int nStyle
)
{
- Unshare();
+ AllocExclusive();
M_PENDATA->m_nStyle = nStyle;
RealizeResource();
} // end of wxPen::SetStyle
const wxBitmap& rStipple
)
{
- Unshare();
+ AllocExclusive();
M_PENDATA->m_vStipple = rStipple;
M_PENDATA->m_nStyle = wxSTIPPLE;
RealizeResource();
int nJoin
)
{
- Unshare();
+ AllocExclusive();
M_PENDATA->m_nJoin = nJoin;
RealizeResource();
} // end of wxPen::SetJoin
int nCap
)
{
- Unshare();
+ AllocExclusive();
M_PENDATA->m_nCap = nCap;
RealizeResource();
} // end of wxPen::SetCap