Move wxColourData and wxFontData into separate files.
This eliminates a linking dependency that would drag in the printing code for any program that used wxColourDialog or wxFontDialog (which is currently all of them, due to more link dependencies...) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66615 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
108
src/common/colourdata.cpp
Normal file
108
src/common/colourdata.cpp
Normal file
@@ -0,0 +1,108 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: src/common/colourdata.cpp
|
||||
// Author: Julian Smart
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) Julian Smart
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "wx/wxprec.h"
|
||||
|
||||
#ifdef __BORLANDC__
|
||||
#pragma hdrstop
|
||||
#endif
|
||||
|
||||
#if wxUSE_COLOURDLG || wxUSE_COLOURPICKERCTRL
|
||||
|
||||
#include "wx/colourdata.h"
|
||||
#include "wx/tokenzr.h"
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxColourData
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxColourData, wxObject)
|
||||
|
||||
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, wxT("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),
|
||||
wxT("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] = wxColour();
|
||||
else
|
||||
success = m_custColours[i].Set(token);
|
||||
}
|
||||
return success;
|
||||
}
|
||||
#endif // wxUSE_COLOURDLG || wxUSE_COLOURPICKERCTRL
|
Reference in New Issue
Block a user