X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d3b9f782ef3949f583e8ac53795d36787f044fc3..0646084eb258e28101c2cc3dc0173f665c2dfa2d:/src/common/cmndata.cpp diff --git a/src/common/cmndata.cpp b/src/common/cmndata.cpp index 2fd075f47e..46c8b1f9d8 100644 --- a/src/common/cmndata.cpp +++ b/src/common/cmndata.cpp @@ -24,6 +24,8 @@ #pragma hdrstop #endif +#if wxUSE_PRINTING_ARCHITECTURE + #include "wx/cmndata.h" #ifndef WX_PRECOMP @@ -38,16 +40,8 @@ #include "wx/gdicmn.h" #endif -#include "wx/tokenzr.h" #include "wx/prntbase.h" #include "wx/printdlg.h" - -#if wxUSE_FONTDLG - #include "wx/fontdlg.h" -#endif // wxUSE_FONTDLG - -#if wxUSE_PRINTING_ARCHITECTURE - #include "wx/paper.h" @@ -55,133 +49,10 @@ IMPLEMENT_DYNAMIC_CLASS(wxPrintData, wxObject) IMPLEMENT_DYNAMIC_CLASS(wxPrintDialogData, wxObject) IMPLEMENT_DYNAMIC_CLASS(wxPageSetupDialogData, wxObject) -#endif // wxUSE_PRINTING_ARCHITECTURE - -IMPLEMENT_DYNAMIC_CLASS(wxFontData, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxColourData, wxObject) - // ============================================================================ // implementation // ============================================================================ -// ---------------------------------------------------------------------------- -// wxColourData -// ---------------------------------------------------------------------------- - -wxColourData::wxColourData() -{ - m_chooseFull = false; - m_dataColour.Set(0,0,0); - // m_custColours are wxNullColours initially -} - -wxColourData::wxColourData(const wxColourData& data) - : wxObject() -{ - (*this) = data; -} - -wxColourData::~wxColourData() -{ -} - -void wxColourData::SetCustomColour(int i, const wxColour& colour) -{ - wxCHECK_RET( i >= 0 && i < NUM_CUSTOM, _T("custom colour index out of range") ); - - m_custColours[i] = colour; -} - -wxColour wxColourData::GetCustomColour(int i) const -{ - wxCHECK_MSG( i >= 0 && i < NUM_CUSTOM, wxColour(0,0,0), - _T("custom colour index out of range") ); - - return m_custColours[i]; -} - -wxColourData& wxColourData::operator=(const wxColourData& data) -{ - 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; -} - -// ---------------------------------------------------------------------------- -// [de]serialization -// ---------------------------------------------------------------------------- - -// separator used between different fields -static const char wxCOL_DATA_SEP = ','; - -wxString wxColourData::ToString() const -{ - wxString str(m_chooseFull ? '1' : '0'); - - for ( int i = 0; i < NUM_CUSTOM; i++ ) - { - str += wxCOL_DATA_SEP; - - const wxColour& clr = m_custColours[i]; - if ( clr.IsOk() ) - str += clr.GetAsString(wxC2S_HTML_SYNTAX); - } - - return str; -} - -bool wxColourData::FromString(const wxString& str) -{ - 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++) - { - token = tokenizer.GetNextToken(); - if (token.empty()) - m_custColours[i] = wxNullColour; - else - success = m_custColours[i].Set(token); - } - return success; -} - -// ---------------------------------------------------------------------------- -// Font data -// ---------------------------------------------------------------------------- - -wxFontData::wxFontData() -{ - // Intialize colour to black. - m_fontColour = wxNullColour; - - m_showHelp = false; - m_allowSymbols = true; - m_enableEffects = true; - m_minSize = 0; - m_maxSize = 0; - - m_encoding = wxFONTENCODING_SYSTEM; -} - -wxFontData::~wxFontData() -{ -} - -#if wxUSE_FONTDLG - -wxFontDialogBase::~wxFontDialogBase() -{ -} - -#endif // wxUSE_FONTDLG - -#if wxUSE_PRINTING_ARCHITECTURE // ---------------------------------------------------------------------------- // Print data // ---------------------------------------------------------------------------- @@ -223,11 +94,7 @@ wxPrintData::wxPrintData(const wxPrintData& printData) void wxPrintData::SetPrivData( char *privData, int len ) { - if (m_privData) - { - delete [] m_privData; - m_privData = NULL; - } + wxDELETEA(m_privData); m_privDataLen = len; if (m_privDataLen > 0) { @@ -287,11 +154,7 @@ wxPrintData& wxPrintData::operator=(const wxPrintData& data) m_nativeData = data.GetNativeData(); m_nativeData->m_ref++; - if (m_privData) - { - delete [] m_privData; - m_privData = NULL; - } + wxDELETEA(m_privData); m_privDataLen = data.GetPrivDataLen(); if (m_privDataLen > 0) { @@ -307,7 +170,7 @@ bool wxPrintData::IsOk() const { m_nativeData->TransferFrom( *this ); - return m_nativeData->Ok(); + return m_nativeData->IsOk(); } // ---------------------------------------------------------------------------- @@ -524,9 +387,12 @@ void wxPageSetupDialogData::CalculatePaperSizeFromId() wxSize sz = wxThePrintPaperDatabase->GetSize(m_printData.GetPaperId()); - // sz is in 10ths of a mm, while paper size is in mm - m_paperSize.x = sz.x / 10; - m_paperSize.y = sz.y / 10; + if (sz != wxSize(0, 0)) + { + // sz is in 10ths of a mm, while paper size is in mm + m_paperSize.x = sz.x / 10; + m_paperSize.y = sz.y / 10; + } } #endif // wxUSE_PRINTING_ARCHITECTURE