X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c4fee2531a15c650bfd7f9f1db7ca02551e4cfd8..b96a56e60e65e17704fc66ae9cdbb2444ac987d8:/src/propgrid/editors.cpp?ds=sidebyside diff --git a/src/propgrid/editors.cpp b/src/propgrid/editors.cpp index 140e0ff596..433a16112d 100644 --- a/src/propgrid/editors.cpp +++ b/src/propgrid/editors.cpp @@ -983,6 +983,12 @@ wxWindow* wxPGChoiceEditor::CreateControlsBase( wxPropertyGrid* propGrid, 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(); @@ -1394,12 +1400,12 @@ const int wxSCB_SETVALUE_CYCLE = 2; 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 ) { @@ -1523,14 +1529,14 @@ void wxSimpleCheckBox::OnPaint( wxPaintEvent& WXUNUSED(event) ) 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 ) @@ -1577,6 +1583,9 @@ wxPGWindowList wxPGCheckBoxEditor::CreateControls( wxPropertyGrid* propGrid, 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; @@ -1620,7 +1629,6 @@ void wxPGCheckBoxEditor::DrawValue( wxDC& dc, const wxRect& rect, const wxString& WXUNUSED(text) ) const { int state = wxSCB_STATE_UNCHECKED; - wxColour rectCol = dc.GetTextForeground(); if ( !property->IsValueUnspecified() ) { @@ -1633,7 +1641,7 @@ void wxPGCheckBoxEditor::DrawValue( wxDC& dc, const wxRect& rect, state |= wxSCB_STATE_UNSPECIFIED; } - DrawSimpleCheckBox(dc, rect, dc.GetCharHeight(), state, rectCol); + DrawSimpleCheckBox(dc, rect, dc.GetCharHeight(), state); } void wxPGCheckBoxEditor::UpdateControl( wxPGProperty* property,