wxWindow* ctrl,
const wxPGCell& cell,
const wxPGCell& oCell,
- bool WXUNUSED(unspecified) ) const
+ bool unspecified ) const
{
// Get old editor appearance
wxTextCtrl* tc = NULL;
}
}
+ // Do not make the mistake of calling GetClassDefaultAttributes()
+ // here. It is static, while GetDefaultAttributes() is virtual
+ // and the correct one to use.
wxVisualAttributes vattrs = ctrl->GetDefaultAttributes();
// Foreground colour
}
// Also call the old SetValueToUnspecified()
- SetValueToUnspecified(property, ctrl);
+ if ( unspecified )
+ SetValueToUnspecified(property, ctrl);
}
void wxPGEditor::SetValueToUnspecified( wxPGProperty* WXUNUSED(property),
const wxSize& sz,
long extraStyle ) const
{
+ // Since it is not possible (yet) to create a read-only combo box in
+ // the same sense that wxTextCtrl is read-only, simply do not create
+ // the control in this case.
+ if ( property->HasFlag(wxPG_PROP_READONLY) )
+ return NULL;
+
const wxPGChoices& choices = property->GetChoices();
wxString defString;
int index = property->GetChoiceSelection();
static void DrawSimpleCheckBox( wxDC& dc, const wxRect& rect, int box_hei,
- int state, const wxColour& lineCol )
+ int state )
{
// Box rectangle.
wxRect r(rect.x+wxPG_XBEFORETEXT,rect.y+((rect.height-box_hei)/2),
box_hei,box_hei);
- wxColour useCol = lineCol;
+ wxColour useCol = dc.GetTextForeground();
if ( state & wxSCB_STATE_UNSPECIFIED )
{
dc.SetPen( bgcol );
dc.DrawRectangle( rect );
- wxColour txcol = GetForegroundColour();
+ dc.SetTextForeground(GetForegroundColour());
int state = m_state;
if ( !(state & wxSCB_STATE_UNSPECIFIED) &&
GetFont().GetWeight() == wxBOLD )
state |= wxSCB_STATE_BOLD;
- DrawSimpleCheckBox(dc,rect,m_boxHeight,state,txcol);
+ DrawSimpleCheckBox(dc, rect, m_boxHeight, state);
}
void wxSimpleCheckBox::OnLeftClick( wxMouseEvent& event )
const wxPoint& pos,
const wxSize& size ) const
{
+ if ( property->HasFlag(wxPG_PROP_READONLY) )
+ return NULL;
+
wxPoint pt = pos;
pt.x -= wxPG_XBEFOREWIDGET;
wxSize sz = size;
const wxString& WXUNUSED(text) ) const
{
int state = wxSCB_STATE_UNCHECKED;
- wxColour rectCol = dc.GetTextForeground();
if ( !property->IsValueUnspecified() )
{
state |= wxSCB_STATE_UNSPECIFIED;
}
- DrawSimpleCheckBox(dc, rect, dc.GetCharHeight(), state, rectCol);
+ DrawSimpleCheckBox(dc, rect, dc.GetCharHeight(), state);
}
void wxPGCheckBoxEditor::UpdateControl( wxPGProperty* property,