// -----------------------------------------------------------------------
-bool operator == (const wxFont&, const wxFont&)
-{
- return false;
-}
-
// Implement dynamic class for type value.
IMPLEMENT_DYNAMIC_CLASS(wxColourPropertyValue, wxObject)
wxWindowID id = wnd2->GetId();
wnd2->Connect( id, wxEVT_SCROLL_LINEUP,
- wxCommandEventHandler(wxPropertyGrid::OnCustomEditorEvent),
+ wxEventHandler(wxPropertyGrid::OnCustomEditorEvent),
NULL, propgrid );
wnd2->Connect( id, wxEVT_SCROLL_LINEDOWN,
- wxCommandEventHandler(wxPropertyGrid::OnCustomEditorEvent),
+ wxEventHandler(wxPropertyGrid::OnCustomEditorEvent),
NULL, propgrid );
// Let's add validator to make sure only numbers can be entered
wnd1->SetValidator(validator);
wnd1->Connect( wnd1->GetId(), wxEVT_KEY_DOWN,
- wxCommandEventHandler(wxPropertyGrid::OnCustomEditorEvent),
+ wxEventHandler(wxPropertyGrid::OnCustomEditorEvent),
NULL, propgrid );
return wxPGWindowList(wnd1, wnd2);
// (all relevenat wxTextCtrl, wxComboBox and wxButton events are
// already connected)
ctrl->Connect( wxPG_SUBID1, wxEVT_DATE_CHANGED,
- wxCommandEventHandler(wxPropertyGrid::OnCustomEditorEvent),
+ wxEventHandler(wxPropertyGrid::OnCustomEditorEvent),
NULL, propgrid );
#ifdef __WXMSW__
if ( cpv.m_type < wxPG_COLOUR_WEB_BASE )
{
- if ( m_choices.HasValues() )
- ind = GetIndexForValue(cpv.m_type);
- else
- ind = ColToInd(col);
+ ind = GetIndexForValue(cpv.m_type);
}
else
{
}
wxString wxSystemColourProperty::ValueToString( wxVariant& value,
- int WXUNUSED(argFlags) ) const
+ int argFlags ) const
{
wxColourPropertyValue val = GetVal(&value);
- return ColourToString(val.m_colour, m_choices.Index(val.m_type));
+ int index;
+
+ if ( argFlags & wxPG_VALUE_IS_CURRENT )
+ {
+ // GetIndex() only works reliably if wxPG_VALUE_IS_CURRENT flag is set,
+ // but we should use it whenever possible.
+ index = GetIndex();
+
+ // If custom colour was selected, use invalid index, so that
+ // ColourToString() will return properly formatted colour text.
+ if ( index == GetCustomColourIndex() )
+ index = wxNOT_FOUND;
+ }
+ else
+ {
+ index = m_choices.Index(val.m_type);
+ }
+
+ return ColourToString(val.m_colour, index);
}
bool wxSystemColourProperty::IntToValue( wxVariant& variant, int number, int WXUNUSED(argFlags) ) const
{
int index = number;
- int type = GetValueForIndex(index);
- bool hasValue = m_choices[index].HasValue();
-
- if ( ( hasValue && type == wxPG_COLOUR_CUSTOM ) ||
- ( !hasValue && (index == (int)GetCustomColourIndex() &&
- !(m_flags & wxPG_PROP_HIDE_CUSTOM_COLOUR))
- )
- )
+ int type = m_choices.GetValue(index);
+
+ if ( type == wxPG_COLOUR_CUSTOM )
{
QueryColourFromUser(variant);
}
if ( res && GetIndex() >= 0 )
{
val.m_type = GetIndex();
- if ( val.m_type >= 0 && val.m_type < m_choices.GetCount() && m_choices[val.m_type].HasValue() )
+ if ( val.m_type >= 0 && val.m_type < m_choices.GetCount() )
val.m_type = m_choices[val.m_type].GetValue();
// Get proper colour for type.
wxColour wxColourProperty::GetColour( int index ) const
{
- if ( !m_choices.HasValue(index) )
- {
- wxASSERT( index < (int)GetItemCount() );
- return gs_cp_es_normcolour_colours[index];
- }
return gs_cp_es_normcolour_colours[m_choices.GetValue(index)];
}
void wxMultiChoiceProperty::OnSetValue()
{
- GenerateValueAsString(&m_display);
+ GenerateValueAsString(m_value, &m_display);
}
wxString wxMultiChoiceProperty::ValueToString( wxVariant& value,
return m_display;
wxString s;
- GenerateValueAsString(&s);
+ GenerateValueAsString(value, &s);
return s;
}
-void wxMultiChoiceProperty::GenerateValueAsString( wxString* target ) const
+void wxMultiChoiceProperty::GenerateValueAsString( wxVariant& value,
+ wxString* target ) const
{
wxArrayString strings;
- if ( m_value.GetType() == wxPG_VARIANT_TYPE_ARRSTRING )
- strings = m_value.GetArrayString();
+ if ( value.GetType() == wxPG_VARIANT_TYPE_ARRSTRING )
+ strings = value.GetArrayString();
wxString& tempStr = *target;
unsigned int i;