else
s = property->GetDisplayedString();
- tc->SetValue(s);
-}
+ tc->SetValue(s);
+ // Update font boldness
+ wxPropertyGrid* pg = property->GetGrid();
+ if ( pg->HasFlag(wxPG_BOLD_MODIFIED) )
+ {
+ if ( property->HasFlag(wxPG_PROP_MODIFIED) )
+ tc->SetFont(pg->GetCaptionFont());
+ else
+ tc->SetFont(pg->GetFont());
+
+#if defined(__WXMSW__) && !defined(__WXWINCE__)
+ ::SendMessage(GetHwndOf(tc), EM_SETMARGINS, EC_LEFTMARGIN | EC_RIGHTMARGIN, MAKELONG(0, 0));
+#endif
+ }
+}
// Provided so that, for example, ComboBox editor can use the same code
// (multiple inheritance would get way too messy).
name ) )
return false;
- m_dclickProcessor = new wxPGDoubleClickProcessor(this, GetGrid()->GetSelection() );
+ m_dclickProcessor = new
+ wxPGDoubleClickProcessor( this, GetGrid()->GetSelection() );
PushEventHandler(m_dclickProcessor);
return true;
}
- virtual void OnDrawItem( wxDC& dc, const wxRect& rect, int item, int flags ) const
+ virtual void OnDrawItem( wxDC& dc,
+ const wxRect& rect,
+ int item,
+ int flags ) const
{
wxPropertyGrid* pg = GetGrid();
- pg->OnComboItemPaint((wxPGCustomComboControl*)this,item,dc,(wxRect&)rect,flags);
+ pg->OnComboItemPaint( this, item, &dc, (wxRect&)rect, flags );
}
+
virtual wxCoord OnMeasureItem( size_t item ) const
{
wxPropertyGrid* pg = GetGrid();
wxRect rect;
rect.x = -1;
rect.width = 0;
- pg->OnComboItemPaint((wxPGCustomComboControl*)this,item,*((wxDC*)NULL),rect,0);
+ pg->OnComboItemPaint( this, item, NULL, rect, 0 );
return rect.height;
}
wxPropertyGrid* GetGrid() const
{
- wxPropertyGrid* pg = wxDynamicCast(GetParent()->GetParent(),wxPropertyGrid);
+ wxPropertyGrid* pg = wxDynamicCast(GetParent()->GetParent(),
+ wxPropertyGrid);
wxASSERT(pg);
return pg;
}
wxRect rect;
rect.x = -1;
rect.width = -1;
- pg->OnComboItemPaint((wxPGCustomComboControl*)this,item,*((wxDC*)NULL),rect,0);
+ pg->OnComboItemPaint( this, item, NULL, rect, 0 );
return rect.width;
}
- virtual void PositionTextCtrl( int WXUNUSED(textCtrlXAdjust), int WXUNUSED(textCtrlYAdjust) )
+ virtual void PositionTextCtrl( int WXUNUSED(textCtrlXAdjust),
+ int WXUNUSED(textCtrlYAdjust) )
{
wxPropertyGrid* pg = GetGrid();
wxOwnerDrawnComboBox::PositionTextCtrl(
- wxPG_TEXTCTRLXADJUST - (wxPG_XBEFOREWIDGET+wxPG_CONTROL_MARGIN+1) - 1,
+ wxPG_TEXTCTRLXADJUST -
+ (wxPG_XBEFOREWIDGET+wxPG_CONTROL_MARGIN+1) - 1,
pg->GetSpacingY() + 2
);
}
};
-void wxPropertyGrid::OnComboItemPaint( wxPGCustomComboControl* pCc,
+void wxPropertyGrid::OnComboItemPaint( const wxPGComboBox* pCb,
int item,
- wxDC& dc,
+ wxDC* pDc,
wxRect& rect,
int flags )
{
- wxPGComboBox* pCb = (wxPGComboBox*)pCc;
-
// Sanity check
wxASSERT( IsKindOf(CLASSINFO(wxPropertyGrid)) );
if ( (flags & wxODCB_PAINTING_CONTROL) )
paintdata.m_choiceItem = -1;
- if ( &dc )
- dc.SetBrush(*wxWHITE_BRUSH);
+ if ( pDc )
+ pDc->SetBrush(*wxWHITE_BRUSH);
if ( rect.x >= 0 )
{
//
// DrawItem call
+ wxDC& dc = *pDc;
wxPoint pt(rect.x + wxPG_CONTROL_MARGIN - wxPG_CHOICEXADJUST - 1,
rect.y + 1);
- int renderFlags = 0;
+ int renderFlags = wxPGCellRenderer::DontUseCellColours;
if ( flags & wxODCB_PAINTING_CONTROL )
renderFlags |= wxPGCellRenderer::Control;
+ else
+ renderFlags |= wxPGCellRenderer::ChoicePopup;
if ( flags & wxODCB_PAINTING_SELECTED )
renderFlags |= wxPGCellRenderer::Selected;
{
//
// MeasureItem call
+ wxDC& dc = *pDc;
p->OnCustomPaint( dc, rect, paintdata );
rect.height = paintdata.m_drawnHeight + 2;
else
cb->SetSelection( -1 );
- // Connect event handling
- wxWindowID id = cb->GetId();
- propGrid->Connect(id, wxEVT_COMMAND_COMBOBOX_SELECTED,
- wxCommandEventHandler(wxPropertyGrid::OnCustomEditorEvent));
- propGrid->Connect(id, wxEVT_COMMAND_TEXT_UPDATED,
- wxCommandEventHandler(wxPropertyGrid::OnCustomEditorEvent));
- propGrid->Connect(id, wxEVT_COMMAND_TEXT_ENTER,
- wxCommandEventHandler(wxPropertyGrid::OnCustomEditorEvent));
-
#ifdef __WXMSW__
cb->Show();
#endif
wxPropertyGrid* propGrid = (wxPropertyGrid*) GetParent()->GetParent();
wxASSERT( propGrid->IsKindOf(CLASSINFO(wxPropertyGrid)) );
- propGrid->OnCustomEditorEvent(evt);
+ propGrid->HandleCustomEditorEvent(evt);
}
cb->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW));
- cb->Connect( wxPG_SUBID1, wxEVT_LEFT_DOWN,
- (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction)
- &wxPropertyGrid::OnCustomEditorEvent, NULL, propGrid );
-
- cb->Connect( wxPG_SUBID1, wxEVT_LEFT_DCLICK,
- (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction)
- &wxPropertyGrid::OnCustomEditorEvent, NULL, propGrid );
-
if ( property->GetChoiceSelection() > 0 &&
!property->IsValueUnspecified() )
cb->m_state = 1;
void wxPropertyGrid::CorrectEditorWidgetPosY()
{
+ if ( m_selColumn == -1 )
+ return;
+
if ( m_selected && (m_wndEditor || m_wndEditor2) )
{
wxRect r = GetEditorWidgetRect(m_selected, m_selColumn);
if ( maxLen > 0 )
tc->SetMaxLength( maxLen );
- // Connect event handling
- id = ed->GetId();
- this->Connect(id, wxEVT_COMMAND_TEXT_UPDATED,
- wxCommandEventHandler(wxPropertyGrid::OnCustomEditorEvent));
- this->Connect(id, wxEVT_COMMAND_TEXT_ENTER,
- wxCommandEventHandler(wxPropertyGrid::OnCustomEditorEvent));
-
return (wxWindow*) ed;
}
if ( selected->HasFlag(wxPG_PROP_READONLY) )
but->Disable();
- // Connect event handling
- id = but->GetId();
- this->Connect(id, wxEVT_COMMAND_BUTTON_CLICKED,
- wxCommandEventHandler(wxPropertyGrid::OnCustomEditorEvent));
-
return but;
}
SetBackgroundColour(pg->GetCellBackgroundColour());
}
-void wxPGMultiButton::Finalize( wxPropertyGrid* propGrid, const wxPoint& pos )
+void wxPGMultiButton::Finalize( wxPropertyGrid* WXUNUSED(propGrid),
+ const wxPoint& pos )
{
Move( pos.x + m_fullEditorSize.x - m_buttonsWidth, pos.y );
-
- // Connect event handling
- for ( unsigned int i=0; i<GetCount(); i++ )
- {
- wxWindowID id = GetButtonId(i);
- propGrid->Connect(id, wxEVT_COMMAND_BUTTON_CLICKED,
- wxCommandEventHandler(wxPropertyGrid::OnCustomEditorEvent));
- }
}
int wxPGMultiButton::GenId( int id ) const