X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e6ef9ea4ed13bee3ea5d830270986eab571876e6..f696015cf1e474315b63823d697a5fa0462055b7:/src/common/cmndata.cpp diff --git a/src/common/cmndata.cpp b/src/common/cmndata.cpp index 40e6073529..a9a9c05f8e 100644 --- a/src/common/cmndata.cpp +++ b/src/common/cmndata.cpp @@ -38,6 +38,7 @@ #include "wx/gdicmn.h" #endif +#include "wx/tokenzr.h" #include "wx/prntbase.h" #include "wx/printdlg.h" @@ -49,9 +50,6 @@ #include "wx/paper.h" -#if defined(__WXMAC__) - #include "wx/mac/private/print.h" -#endif IMPLEMENT_DYNAMIC_CLASS(wxPrintData, wxObject) IMPLEMENT_DYNAMIC_CLASS(wxPrintDialogData, wxObject) @@ -78,7 +76,7 @@ wxColourData::wxColourData() } wxColourData::wxColourData(const wxColourData& data) - : wxObject() + : wxObject() { (*this) = data; } @@ -89,26 +87,28 @@ wxColourData::~wxColourData() void wxColourData::SetCustomColour(int i, const wxColour& colour) { - wxCHECK_RET( (i >= 0 && i < WXSIZEOF(m_custColours)), _T("custom colour index out of range") ); + wxCHECK_RET( i >= 0 && i < NUM_CUSTOM, _T("custom colour index out of range") ); m_custColours[i] = colour; } wxColour wxColourData::GetCustomColour(int i) { - wxCHECK_MSG( (i >= 0 && i < WXSIZEOF(m_custColours)), wxColour(0,0,0), + wxCHECK_MSG( i >= 0 && i < NUM_CUSTOM, wxColour(0,0,0), _T("custom colour index out of range") ); return m_custColours[i]; } -void wxColourData::operator=(const wxColourData& data) +wxColourData& wxColourData::operator=(const wxColourData& data) { - for (int i = 0; i < WXSIZEOF(m_custColours); i++) + for ( int i = 0; i < NUM_CUSTOM; i++) m_custColours[i] = data.m_custColours[i]; m_dataColour = data.m_dataColour; m_chooseFull = data.m_chooseFull; + + return *this; } // ---------------------------------------------------------------------------- @@ -122,7 +122,7 @@ wxString wxColourData::ToString() const { wxString str(m_chooseFull ? '1' : '0'); - for ( int i = 0; i < WXSIZEOF(m_custColours); i++ ) + for ( int i = 0; i < NUM_CUSTOM; i++ ) { str += wxCOL_DATA_SEP; @@ -136,43 +136,19 @@ wxString wxColourData::ToString() const bool wxColourData::FromString(const wxString& str) { - wxString token; - int n = -1; // index of the field, -1 corresponds to m_chooseFull - for ( wxString::const_iterator i = str.begin(); i != str.end(); ++i ) + wxStringTokenizer tokenizer(str, wxCOL_DATA_SEP); + wxString token = tokenizer.GetNextToken(); + m_chooseFull = token == '1'; + bool success = m_chooseFull || token == '0'; + for (int i = 0; success && i < NUM_CUSTOM; i++) { - if ( *i == wxCOL_DATA_SEP ) - { - if ( n == -1 ) - { - if ( token == '0' ) - m_chooseFull = false; - else if ( token == '1' ) - m_chooseFull = true; - else // only '0' and '1' are used in ToString() - return false; - } - else // custom colour - { - if ( n == WXSIZEOF(m_custColours) ) - return false; // too many custom colours - - // empty strings are used by ToString() for colours not used - if ( token.empty() ) - m_custColours[n] = wxNullColour; - else if ( !m_custColours[n].Set(token) ) - return false; // invalid colour string - } - - token.clear(); - n++; - } - else // continuation of the current field - { - token += *i; - } + token = tokenizer.GetNextToken(); + if (token.empty()) + m_custColours[i] = wxNullColour; + else + success = m_custColours[i].Set(token); } - - return true; + return success; } // ----------------------------------------------------------------------------