From: Stefan Csomor Date: Thu, 31 Jul 2008 10:04:51 +0000 (+0000) Subject: pen and brush are platform neutral on osx X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/ee5f85517a99a5181d9d2fdec95cb35161bec964?ds=inline;hp=ad66316ffbcfd10a4fb448116371d27db3613d17 pen and brush are platform neutral on osx git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54876 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/osx/carbon/brush.cpp b/src/osx/carbon/brush.cpp deleted file mode 100644 index d7ec6a3369..0000000000 --- a/src/osx/carbon/brush.cpp +++ /dev/null @@ -1,192 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: src/mac/carbon/brush.cpp -// Purpose: wxBrush -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// RCS-ID: $Id$ -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#include "wx/wxprec.h" - -#include "wx/brush.h" - -#ifndef WX_PRECOMP - #include "wx/utils.h" -#endif - -#include "wx/osx/private.h" - -IMPLEMENT_DYNAMIC_CLASS(wxBrush, wxGDIObject) - -class WXDLLEXPORT wxBrushRefData: public wxGDIRefData -{ -public: - wxBrushRefData(const wxColour& colour = wxNullColour, wxBrushStyle style = wxBRUSHSTYLE_SOLID); - wxBrushRefData(const wxBitmap& stipple); - wxBrushRefData(const wxBrushRefData& data); - virtual ~wxBrushRefData(); - - bool operator==(const wxBrushRefData& data) const; - - const wxColour& GetColour() const { return m_colour; } - wxBrushStyle GetStyle() const { return m_style; } - wxBitmap *GetStipple() { return &m_stipple; } - - void SetColour(const wxColour& colour) { m_colour = colour; } - void SetStyle(wxBrushStyle style) { m_style = style; } - void SetStipple(const wxBitmap& stipple) { DoSetStipple(stipple); } - -protected: - void DoSetStipple(const wxBitmap& stipple); - - wxBitmap m_stipple; - wxColour m_colour; - wxBrushStyle m_style; -}; - -#define M_BRUSHDATA ((wxBrushRefData *)m_refData) - -wxBrushRefData::wxBrushRefData(const wxColour& colour, wxBrushStyle style) - : m_colour(colour), m_style( style ) -{ -} - -wxBrushRefData::wxBrushRefData(const wxBitmap& stipple) -{ - DoSetStipple( stipple ); -} - -wxBrushRefData::wxBrushRefData(const wxBrushRefData& data) - : wxGDIRefData() , - m_stipple(data.m_stipple), - m_colour(data.m_colour), - m_style(data.m_style) -{ -} - -wxBrushRefData::~wxBrushRefData() -{ -} - -bool wxBrushRefData::operator==(const wxBrushRefData& data) const -{ - return m_style == data.m_style && - m_colour == data.m_colour && - m_stipple.IsSameAs(data.m_stipple); -} - -void wxBrushRefData::DoSetStipple(const wxBitmap& stipple) -{ - m_stipple = stipple; - m_style = stipple.GetMask() ? wxBRUSHSTYLE_STIPPLE_MASK_OPAQUE : wxBRUSHSTYLE_STIPPLE; -} -// -// -// - -wxBrush::wxBrush() -{ -} - -wxBrush::~wxBrush() -{ -} - -wxBrush::wxBrush(const wxColour& col, wxBrushStyle style) -{ - m_refData = new wxBrushRefData( col, style ); -} - -#if FUTURE_WXWIN_COMPATIBILITY_3_0 -wxBrush::wxBrush(const wxColour& col, int style) -{ - m_refData = new wxBrushRefData(col, (wxBrushStyle)style); -} -#endif - -wxBrush::wxBrush(const wxBitmap& stipple) -{ - m_refData = new wxBrushRefData( stipple ); -} - -// ---------------------------------------------------------------------------- -// wxBrush house keeping stuff -// ---------------------------------------------------------------------------- - -bool wxBrush::operator==(const wxBrush& brush) const -{ - const wxBrushRefData *brushData = (wxBrushRefData *)brush.m_refData; - - // an invalid brush is considered to be only equal to another invalid brush - return m_refData ? (brushData && *M_BRUSHDATA == *brushData) : !brushData; -} - -wxGDIRefData *wxBrush::CreateGDIRefData() const -{ - return new wxBrushRefData; -} - -wxGDIRefData *wxBrush::CloneGDIRefData(const wxGDIRefData *data) const -{ - return new wxBrushRefData(*(const wxBrushRefData *)data); -} - -// ---------------------------------------------------------------------------- -// wxBrush accessors -// ---------------------------------------------------------------------------- - -wxColour wxBrush::GetColour() const -{ - wxCHECK_MSG( Ok(), wxNullColour, _T("invalid brush") ); - - return M_BRUSHDATA->GetColour(); -} - -wxBrushStyle wxBrush::GetStyle() const -{ - wxCHECK_MSG( Ok(), wxBRUSHSTYLE_INVALID, _T("invalid brush") ); - - return M_BRUSHDATA->GetStyle(); -} - -wxBitmap *wxBrush::GetStipple() const -{ - wxCHECK_MSG( Ok(), NULL, _T("invalid brush") ); - - return M_BRUSHDATA->GetStipple(); -} - -// ---------------------------------------------------------------------------- -// wxBrush setters -// ---------------------------------------------------------------------------- - -void wxBrush::SetColour(const wxColour& col) -{ - AllocExclusive(); - - M_BRUSHDATA->SetColour(col); -} - -void wxBrush::SetColour(unsigned char r, unsigned char g, unsigned char b) -{ - AllocExclusive(); - - M_BRUSHDATA->SetColour(wxColour(r, g, b)); -} - -void wxBrush::SetStyle(wxBrushStyle style) -{ - AllocExclusive(); - - M_BRUSHDATA->SetStyle(style); -} - -void wxBrush::SetStipple(const wxBitmap& stipple) -{ - AllocExclusive(); - - M_BRUSHDATA->SetStipple(stipple); -} diff --git a/src/osx/carbon/pen.cpp b/src/osx/carbon/pen.cpp deleted file mode 100644 index 260f1abc82..0000000000 --- a/src/osx/carbon/pen.cpp +++ /dev/null @@ -1,308 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: src/mac/carbon/pen.cpp -// Purpose: wxPen -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// RCS-ID: $Id$ -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#include "wx/wxprec.h" - -#include "wx/pen.h" - -#ifndef WX_PRECOMP - #include "wx/utils.h" -#endif - -IMPLEMENT_DYNAMIC_CLASS(wxPen, wxGDIObject) - -class WXDLLEXPORT wxPenRefData : public wxGDIRefData -{ -public: - wxPenRefData(); - wxPenRefData(const wxPenRefData& data); - virtual ~wxPenRefData(); - - wxPenRefData& operator=(const wxPenRefData& data); - - 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 != wxPENSTYLE_STIPPLE || m_stipple.IsSameAs(data.m_stipple)) && - (m_style != wxPENSTYLE_USER_DASH || - (m_nbDash == data.m_nbDash && - memcmp(m_dash, data.m_dash, m_nbDash*sizeof(wxDash)) == 0)); - } - -protected: - int m_width; - wxPenStyle m_style; - wxPenJoin m_join ; - wxPenCap m_cap ; - wxBitmap m_stipple ; - int m_nbDash ; - wxDash * m_dash ; - wxColour m_colour; - /* TODO: implementation - WXHPEN m_hPen; - */ - - friend class WXDLLIMPEXP_FWD_CORE wxPen; -}; - -wxPenRefData::wxPenRefData() -{ - m_style = wxPENSTYLE_SOLID; - m_width = 1; - m_join = wxJOIN_ROUND ; - m_cap = wxCAP_ROUND ; - m_nbDash = 0 ; - m_dash = 0 ; -} - -wxPenRefData::wxPenRefData(const wxPenRefData& data) -: wxGDIRefData() -{ - m_style = data.m_style; - m_width = data.m_width; - m_join = data.m_join; - m_cap = data.m_cap; - m_nbDash = data.m_nbDash; - m_dash = data.m_dash; - m_colour = data.m_colour; -} - -wxPenRefData::~wxPenRefData() -{ -} - -// Pens - -#define M_PENDATA ((wxPenRefData *)m_refData) - -wxPen::wxPen() -{ -} - -wxPen::~wxPen() -{ -} - -// Should implement Create -wxPen::wxPen(const wxColour& col, int Width, wxPenStyle Style) -{ - m_refData = new wxPenRefData; - - M_PENDATA->m_colour = col; - M_PENDATA->m_width = Width; - M_PENDATA->m_style = Style; - M_PENDATA->m_join = wxJOIN_ROUND ; - M_PENDATA->m_cap = wxCAP_ROUND ; - M_PENDATA->m_nbDash = 0 ; - M_PENDATA->m_dash = 0 ; - - RealizeResource(); -} - -#if FUTURE_WXWIN_COMPATIBILITY_3_0 -wxPen::wxPen(const wxColour& col, int Width, int Style) -{ - m_refData = new wxPenRefData; - - M_PENDATA->m_colour = col; - M_PENDATA->m_width = Width; - M_PENDATA->m_style = (wxPenStyle)Style; - M_PENDATA->m_join = wxJOIN_ROUND ; - M_PENDATA->m_cap = wxCAP_ROUND ; - M_PENDATA->m_nbDash = 0 ; - M_PENDATA->m_dash = 0 ; - - RealizeResource(); -} -#endif - -wxPen::wxPen(const wxBitmap& stipple, int Width) -{ - m_refData = new wxPenRefData; - - M_PENDATA->m_stipple = stipple; - M_PENDATA->m_width = Width; - M_PENDATA->m_style = wxPENSTYLE_STIPPLE; - M_PENDATA->m_join = wxJOIN_ROUND ; - M_PENDATA->m_cap = wxCAP_ROUND ; - M_PENDATA->m_nbDash = 0 ; - M_PENDATA->m_dash = 0 ; - - RealizeResource(); -} - -wxGDIRefData *wxPen::CreateGDIRefData() const -{ - return new wxPenRefData; -} - -wxGDIRefData *wxPen::CloneGDIRefData(const wxGDIRefData *data) const -{ - return new wxPenRefData(*wx_static_cast(const wxPenRefData *, data)); -} - -bool wxPen::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; -} - -wxColour wxPen::GetColour() const -{ - wxCHECK_MSG( Ok(), wxNullColour, wxT("invalid pen") ); - - return M_PENDATA->m_colour; -} - -int wxPen::GetWidth() const -{ - wxCHECK_MSG( Ok(), -1, wxT("invalid pen") ); - - return M_PENDATA->m_width; -} - -wxPenStyle wxPen::GetStyle() const -{ - wxCHECK_MSG( Ok(), wxPENSTYLE_INVALID, wxT("invalid pen") ); - - return M_PENDATA->m_style; -} - -wxPenJoin wxPen::GetJoin() const -{ - wxCHECK_MSG( Ok(), wxJOIN_INVALID, wxT("invalid pen") ); - - return M_PENDATA->m_join; -} - -wxPenCap wxPen::GetCap() const -{ - wxCHECK_MSG( Ok(), wxCAP_INVALID, wxT("invalid pen") ); - - return M_PENDATA->m_cap; -} - -int wxPen::GetDashes(wxDash **ptr) const -{ - wxCHECK_MSG( Ok(), -1, wxT("invalid pen") ); - - *ptr = M_PENDATA->m_dash; - return M_PENDATA->m_nbDash; -} - -wxBitmap *wxPen::GetStipple() const -{ - wxCHECK_MSG( Ok(), NULL, wxT("invalid pen") ); - - return &M_PENDATA->m_stipple; -} - -void wxPen::Unshare() -{ - // Don't change shared data - if (!m_refData) - { - m_refData = new wxPenRefData(); - } - else - { - wxPenRefData* ref = new wxPenRefData(*(wxPenRefData*)m_refData); - UnRef(); - m_refData = ref; - } -} - -void wxPen::SetColour(const wxColour& col) -{ - Unshare(); - - M_PENDATA->m_colour = col; - - RealizeResource(); -} - -void wxPen::SetColour(unsigned char r, unsigned char g, unsigned char b) -{ - Unshare(); - - M_PENDATA->m_colour.Set(r, g, b); - - RealizeResource(); -} - -void wxPen::SetWidth(int Width) -{ - Unshare(); - - M_PENDATA->m_width = Width; - - RealizeResource(); -} - -void wxPen::SetStyle(wxPenStyle Style) -{ - Unshare(); - - M_PENDATA->m_style = Style; - - RealizeResource(); -} - -void wxPen::SetStipple(const wxBitmap& Stipple) -{ - Unshare(); - - M_PENDATA->m_stipple = Stipple; - M_PENDATA->m_style = wxPENSTYLE_STIPPLE; - - RealizeResource(); -} - -void wxPen::SetDashes(int nb_dashes, const wxDash *Dash) -{ - Unshare(); - - M_PENDATA->m_nbDash = nb_dashes; - M_PENDATA->m_dash = (wxDash *)Dash; - - RealizeResource(); -} - -void wxPen::SetJoin(wxPenJoin Join) -{ - Unshare(); - - M_PENDATA->m_join = Join; - - RealizeResource(); -} - -void wxPen::SetCap(wxPenCap Cap) -{ - Unshare(); - - M_PENDATA->m_cap = Cap; - - RealizeResource(); -} - -bool wxPen::RealizeResource() -{ - // nothing to do here for mac - return true; -}