// How many pixels between textctrl and button
#ifdef __WXMAC__
- #define wxPG_TEXTCTRL_AND_BUTTON_SPACING 8
+ #define wxPG_TEXTCTRL_AND_BUTTON_SPACING 4
#else
#define wxPG_TEXTCTRL_AND_BUTTON_SPACING 2
#endif
#define wxPG_NAT_BUTTON_BORDER_X 0
#define wxPG_NAT_BUTTON_BORDER_Y 0
- #define wxPG_TEXTCTRLYADJUST 3
+ #define wxPG_TEXTCTRLYADJUST 0
#else
// defaults
#endif
// for odcombo
+#ifdef __WXMAC__
+#define wxPG_CHOICEXADJUST -3 // required because wxComboCtrl reserves 3pixels for wxTextCtrl's focus ring
+#define wxPG_CHOICEYADJUST -3
+#else
#define wxPG_CHOICEXADJUST 0
#define wxPG_CHOICEYADJUST 0
+#endif
#define ODCB_CUST_PAINT_MARGIN 6 // Number added to image width for SetCustomPaintWidth
{
}
+wxString wxPGEditor::GetName() const
+{
+ return GetClassInfo()->GetClassName();
+}
+
void wxPGEditor::DrawValue( wxDC& dc, const wxRect& rect, wxPGProperty* property, const wxString& text ) const
{
if ( !property->IsValueUnspecified() )
// wxPGTextCtrlEditor
// -----------------------------------------------------------------------
-WX_PG_IMPLEMENT_EDITOR_CLASS(TextCtrl,wxPGTextCtrlEditor,wxPGEditor)
+WX_PG_IMPLEMENT_INTERNAL_EDITOR_CLASS(TextCtrl,wxPGTextCtrlEditor,wxPGEditor)
wxPGWindowList wxPGTextCtrlEditor::CreateControls( wxPropertyGrid* propGrid,
return (wxWindow*) NULL;
if ( !property->IsValueUnspecified() )
- text = property->GetValueString(property->HasFlag(wxPG_PROP_READONLY)?0:wxPG_EDITABLE_VALUE);
+ text = property->GetValueAsString(property->HasFlag(wxPG_PROP_READONLY) ?
+ 0 : wxPG_EDITABLE_VALUE);
int flags = 0;
if ( (property->GetFlags() & wxPG_PROP_PASSWORD) &&
// -----------------------------------------------------------------------
-WX_PG_IMPLEMENT_EDITOR_CLASS(Choice,wxPGChoiceEditor,wxPGEditor)
+WX_PG_IMPLEMENT_INTERNAL_EDITOR_CLASS(Choice,wxPGChoiceEditor,wxPGEditor)
// This is a special enhanced double-click processor class.
else
{
if ( !p->IsValueUnspecified() )
- text = p->GetValueString(0);
+ text = p->GetValueAsString(0);
}
}
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;
// Connect event handling
wxWindowID id = cb->GetId();
propGrid->Connect(id, wxEVT_COMMAND_COMBOBOX_SELECTED,
- wxCommandEventHandler(wxPropertyGrid::OnCustomEditorEvent));
+ wxEventHandler(wxPropertyGrid::OnCustomEditorEvent));
propGrid->Connect(id, wxEVT_COMMAND_TEXT_UPDATED,
- wxCommandEventHandler(wxPropertyGrid::OnCustomEditorEvent));
+ wxEventHandler(wxPropertyGrid::OnCustomEditorEvent));
propGrid->Connect(id, wxEVT_COMMAND_TEXT_ENTER,
- wxCommandEventHandler(wxPropertyGrid::OnCustomEditorEvent));
+ wxEventHandler(wxPropertyGrid::OnCustomEditorEvent));
#ifdef __WXMSW__
cb->Show();
// -----------------------------------------------------------------------
-WX_PG_IMPLEMENT_EDITOR_CLASS(ComboBox,wxPGComboBoxEditor,wxPGChoiceEditor)
+WX_PG_IMPLEMENT_INTERNAL_EDITOR_CLASS(ComboBox,
+ wxPGComboBoxEditor,
+ wxPGChoiceEditor)
void wxPGComboBoxEditor::UpdateControl( wxPGProperty* property, wxWindow* ctrl ) const
{
wxOwnerDrawnComboBox* cb = (wxOwnerDrawnComboBox*)ctrl;
- cb->SetValue(property->GetValueString(wxPG_EDITABLE_VALUE));
+ cb->SetValue(property->GetValueAsString(wxPG_EDITABLE_VALUE));
// TODO: If string matches any selection, then select that.
}
// -----------------------------------------------------------------------
-// This simpler implement_editor macro doesn't define class body.
-WX_PG_IMPLEMENT_EDITOR_CLASS(ChoiceAndButton,wxPGChoiceAndButtonEditor,wxPGChoiceEditor)
+WX_PG_IMPLEMENT_INTERNAL_EDITOR_CLASS(ChoiceAndButton,
+ wxPGChoiceAndButtonEditor,
+ wxPGChoiceEditor)
wxPGWindowList wxPGChoiceAndButtonEditor::CreateControls( wxPropertyGrid* propGrid,
ch_sz.x -= wxPG_TEXTCTRL_AND_BUTTON_SPACING;
#endif
- wxWindow* ch = wxPG_EDITOR(Choice)->CreateControls(propGrid,property,
+ wxWindow* ch = wxPGEditor_Choice->CreateControls(propGrid,property,
pos,ch_sz).m_primary;
#ifdef __WXMSW__
// wxPGTextCtrlAndButtonEditor
// -----------------------------------------------------------------------
-
-// This simpler implement_editor macro doesn't define class body.
-WX_PG_IMPLEMENT_EDITOR_CLASS(TextCtrlAndButton,wxPGTextCtrlAndButtonEditor,wxPGTextCtrlEditor)
+WX_PG_IMPLEMENT_INTERNAL_EDITOR_CLASS(TextCtrlAndButton,
+ wxPGTextCtrlAndButtonEditor,
+ wxPGTextCtrlEditor)
wxPGWindowList wxPGTextCtrlAndButtonEditor::CreateControls( wxPropertyGrid* propGrid,
#if wxPG_INCLUDE_CHECKBOX
-WX_PG_IMPLEMENT_EDITOR_CLASS(CheckBox,wxPGCheckBoxEditor,wxPGEditor)
+WX_PG_IMPLEMENT_INTERNAL_EDITOR_CLASS(CheckBox,
+ wxPGCheckBoxEditor,
+ wxPGEditor)
// state argument: 0x01 = set if checked
// Need to reduce width of text control on Mac
#if defined(__WXMAC__)
- s.x -= 8;
+ s.x -= 8;
#endif
// Take button into acccount
#endif
SetupTextCtrlValue(value);
tc->Create(ctrlParent,id,value, p, s,tcFlags);
-
+
wxWindow* ed = tc;
// Center the control vertically
// Connect event handling
id = ed->GetId();
this->Connect(id, wxEVT_COMMAND_TEXT_UPDATED,
- wxCommandEventHandler(wxPropertyGrid::OnCustomEditorEvent));
+ wxEventHandler(wxPropertyGrid::OnCustomEditorEvent));
this->Connect(id, wxEVT_COMMAND_TEXT_ENTER,
- wxCommandEventHandler(wxPropertyGrid::OnCustomEditorEvent));
+ wxEventHandler(wxPropertyGrid::OnCustomEditorEvent));
return (wxWindow*) ed;
}
// Connect event handling
id = but->GetId();
this->Connect(id, wxEVT_COMMAND_BUTTON_CLICKED,
- wxCommandEventHandler(wxPropertyGrid::OnCustomEditorEvent));
+ wxEventHandler(wxPropertyGrid::OnCustomEditorEvent));
return but;
}
wxString text;
if ( !property->IsValueUnspecified() )
- text = property->GetValueString(property->HasFlag(wxPG_PROP_READONLY)?0:wxPG_EDITABLE_VALUE);
+ text = property->GetValueAsString(property->HasFlag(wxPG_PROP_READONLY)?0:wxPG_EDITABLE_VALUE);
return GenerateEditorTextCtrl(pos,sz,text,but,property->m_maxLen);
}
Move( pos.x + m_fullEditorSize.x - m_buttonsWidth, pos.y );
// Connect event handling
- for ( int i=0; i<GetCount(); i++ )
+ for ( unsigned int i=0; i<GetCount(); i++ )
{
wxWindowID id = GetButtonId(i);
propGrid->Connect(id, wxEVT_COMMAND_BUTTON_CLICKED,
- wxCommandEventHandler(wxPropertyGrid::OnCustomEditorEvent));
+ wxEventHandler(wxPropertyGrid::OnCustomEditorEvent));
}
}