Allow use of all wxPG colours.
Restore original list of wxPG-specific colours. wxPG-specific colours are added to the colour database when wxColourProperty is created (already existing colours are not overwritten by wxPG ones). This is the backport of r76893 and r76894. See #15597.
This commit is contained in:
@@ -1543,28 +1543,46 @@ bool wxSystemColourProperty::DoSetAttribute( const wxString& name, wxVariant& va
|
|||||||
|
|
||||||
static const wxChar* const gs_cp_es_normcolour_labels[] = {
|
static const wxChar* const gs_cp_es_normcolour_labels[] = {
|
||||||
wxT("Black"),
|
wxT("Black"),
|
||||||
wxT("Red"),
|
wxT("Maroon"),
|
||||||
|
wxT("Navy"),
|
||||||
|
wxT("Purple"),
|
||||||
|
wxT("Teal"),
|
||||||
|
wxT("Gray"),
|
||||||
wxT("Green"),
|
wxT("Green"),
|
||||||
|
wxT("Olive"),
|
||||||
|
wxT("Brown"),
|
||||||
wxT("Blue"),
|
wxT("Blue"),
|
||||||
wxT("Cyan"),
|
wxT("Fuchsia"),
|
||||||
wxT("Magenta"),
|
wxT("Red"),
|
||||||
|
wxT("Orange"),
|
||||||
|
wxT("Silver"),
|
||||||
|
wxT("Lime"),
|
||||||
|
wxT("Aqua"),
|
||||||
wxT("Yellow"),
|
wxT("Yellow"),
|
||||||
wxT("White"),
|
wxT("White"),
|
||||||
wxT("Grey"),
|
|
||||||
wxT("Custom"),
|
wxT("Custom"),
|
||||||
(const wxChar*) NULL
|
(const wxChar*) NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
static const unsigned long gs_cp_es_normcolour_colours[] = {
|
static const unsigned long gs_cp_es_normcolour_colours[] = {
|
||||||
wxPG_COLOUR(0,0,0),
|
wxPG_COLOUR(0,0,0),
|
||||||
wxPG_COLOUR(255,0,0),
|
wxPG_COLOUR(128,0,0),
|
||||||
wxPG_COLOUR(0,255,0),
|
wxPG_COLOUR(0,0,128),
|
||||||
|
wxPG_COLOUR(128,0,128),
|
||||||
|
wxPG_COLOUR(0,128,128),
|
||||||
|
wxPG_COLOUR(128,128,128),
|
||||||
|
wxPG_COLOUR(0,128,0),
|
||||||
|
wxPG_COLOUR(128,128,0),
|
||||||
|
wxPG_COLOUR(166,124,81),
|
||||||
wxPG_COLOUR(0,0,255),
|
wxPG_COLOUR(0,0,255),
|
||||||
wxPG_COLOUR(0,255,255),
|
|
||||||
wxPG_COLOUR(255,0,255),
|
wxPG_COLOUR(255,0,255),
|
||||||
|
wxPG_COLOUR(255,0,0),
|
||||||
|
wxPG_COLOUR(247,148,28),
|
||||||
|
wxPG_COLOUR(192,192,192),
|
||||||
|
wxPG_COLOUR(0,255,0),
|
||||||
|
wxPG_COLOUR(0,255,255),
|
||||||
wxPG_COLOUR(255,255,0),
|
wxPG_COLOUR(255,255,0),
|
||||||
wxPG_COLOUR(255,255,255),
|
wxPG_COLOUR(255,255,255),
|
||||||
wxPG_COLOUR(128,128,128),
|
|
||||||
wxPG_COLOUR(0,0,0)
|
wxPG_COLOUR(0,0,0)
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1580,6 +1598,24 @@ wxColourProperty::wxColourProperty( const wxString& label,
|
|||||||
NULL,
|
NULL,
|
||||||
&gs_wxColourProperty_choicesCache, value )
|
&gs_wxColourProperty_choicesCache, value )
|
||||||
{
|
{
|
||||||
|
wxASSERT_MSG( wxTheColourDatabase, wxT("No colour database") );
|
||||||
|
if ( wxTheColourDatabase )
|
||||||
|
{
|
||||||
|
// Extended colour database with custom PG colours.
|
||||||
|
const wxChar* const* colourLabels = gs_cp_es_normcolour_labels;
|
||||||
|
for ( int i = 0; *colourLabels; colourLabels++, i++ )
|
||||||
|
{
|
||||||
|
wxColour clr = wxTheColourDatabase->Find(*colourLabels);
|
||||||
|
// Use standard wx colour value if its label was found,
|
||||||
|
// otherwise register custom PG colour.
|
||||||
|
if ( !clr.IsOk() )
|
||||||
|
{
|
||||||
|
clr.Set(gs_cp_es_normcolour_colours[i]);
|
||||||
|
wxTheColourDatabase->AddColour(*colourLabels, clr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Init( value );
|
Init( value );
|
||||||
|
|
||||||
m_flags |= wxPG_PROP_TRANSLATE_CUSTOM;
|
m_flags |= wxPG_PROP_TRANSLATE_CUSTOM;
|
||||||
@@ -1616,7 +1652,7 @@ wxString wxColourProperty::ValueToString( wxVariant& value,
|
|||||||
|
|
||||||
wxColour wxColourProperty::GetColour( int index ) const
|
wxColour wxColourProperty::GetColour( int index ) const
|
||||||
{
|
{
|
||||||
return gs_cp_es_normcolour_colours[m_choices.GetValue(index)];
|
return wxColour(gs_cp_es_normcolour_labels[m_choices.GetValue(index)]);
|
||||||
}
|
}
|
||||||
|
|
||||||
wxVariant wxColourProperty::DoTranslateVal( wxColourPropertyValue& v ) const
|
wxVariant wxColourProperty::DoTranslateVal( wxColourPropertyValue& v ) const
|
||||||
|
Reference in New Issue
Block a user