X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3b211af1687424ed9f3583d9d1ec901cd7d95715..7d6d76d0939750ff6c8f7e938e125ead70c9d188:/src/propgrid/editors.cpp diff --git a/src/propgrid/editors.cpp b/src/propgrid/editors.cpp index a9ab7a67a2..fb60bdaa5f 100644 --- a/src/propgrid/editors.cpp +++ b/src/propgrid/editors.cpp @@ -68,7 +68,7 @@ // 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 @@ -123,7 +123,7 @@ #define wxPG_NAT_BUTTON_BORDER_X 0 #define wxPG_NAT_BUTTON_BORDER_Y 0 - #define wxPG_TEXTCTRLYADJUST 3 + #define wxPG_TEXTCTRLYADJUST 0 #else // defaults @@ -142,8 +142,13 @@ #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 @@ -162,6 +167,11 @@ wxPGEditor::~wxPGEditor() { } +wxString wxPGEditor::GetName() const +{ + return GetClassInfo()->GetClassName(); +} + void wxPGEditor::DrawValue( wxDC& dc, const wxRect& rect, wxPGProperty* property, const wxString& text ) const { if ( !property->IsValueUnspecified() ) @@ -209,7 +219,7 @@ bool wxPGEditor::CanContainCustomImage() const // wxPGTextCtrlEditor // ----------------------------------------------------------------------- -WX_PG_IMPLEMENT_EDITOR_CLASS(TextCtrl,wxPGTextCtrlEditor,wxPGEditor) +WX_PG_IMPLEMENT_INTERNAL_EDITOR_CLASS(TextCtrl,wxPGTextCtrlEditor,wxPGEditor) wxPGWindowList wxPGTextCtrlEditor::CreateControls( wxPropertyGrid* propGrid, @@ -226,7 +236,8 @@ 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) && @@ -386,7 +397,7 @@ wxPGTextCtrlEditor::~wxPGTextCtrlEditor() { } // ----------------------------------------------------------------------- -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. @@ -610,7 +621,7 @@ void wxPropertyGrid::OnComboItemPaint( wxPGCustomComboControl* pCc, else { if ( !p->IsValueUnspecified() ) - text = p->GetValueString(0); + text = p->GetValueAsString(0); } } @@ -669,7 +680,7 @@ void wxPropertyGrid::OnComboItemPaint( wxPGCustomComboControl* pCc, 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; @@ -861,11 +872,11 @@ wxWindow* wxPGChoiceEditor::CreateControlsBase( wxPropertyGrid* propGrid, // 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(); @@ -1002,13 +1013,15 @@ wxPGChoiceEditor::~wxPGChoiceEditor() { } // ----------------------------------------------------------------------- -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. } @@ -1081,8 +1094,9 @@ wxPGComboBoxEditor::~wxPGComboBoxEditor() { } // ----------------------------------------------------------------------- -// 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, @@ -1113,7 +1127,7 @@ wxPGWindowList wxPGChoiceAndButtonEditor::CreateControls( wxPropertyGrid* propGr 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__ @@ -1131,9 +1145,9 @@ wxPGChoiceAndButtonEditor::~wxPGChoiceAndButtonEditor() { } // 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, @@ -1158,7 +1172,9 @@ wxPGTextCtrlAndButtonEditor::~wxPGTextCtrlAndButtonEditor() { } #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 @@ -1642,7 +1658,7 @@ wxWindow* wxPropertyGrid::GenerateEditorTextCtrl( const wxPoint& pos, // Need to reduce width of text control on Mac #if defined(__WXMAC__) - s.x -= 8; + s.x -= 8; #endif // Take button into acccount @@ -1670,7 +1686,7 @@ wxWindow* wxPropertyGrid::GenerateEditorTextCtrl( const wxPoint& pos, #endif SetupTextCtrlValue(value); tc->Create(ctrlParent,id,value, p, s,tcFlags); - + wxWindow* ed = tc; // Center the control vertically @@ -1690,9 +1706,9 @@ wxWindow* wxPropertyGrid::GenerateEditorTextCtrl( const wxPoint& pos, // 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; } @@ -1758,7 +1774,7 @@ wxWindow* wxPropertyGrid::GenerateEditorButton( const wxPoint& pos, const wxSize // Connect event handling id = but->GetId(); this->Connect(id, wxEVT_COMMAND_BUTTON_CLICKED, - wxCommandEventHandler(wxPropertyGrid::OnCustomEditorEvent)); + wxEventHandler(wxPropertyGrid::OnCustomEditorEvent)); return but; } @@ -1786,7 +1802,7 @@ wxWindow* wxPropertyGrid::GenerateEditorTextCtrlAndButton( const wxPoint& pos, 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); } @@ -1862,11 +1878,11 @@ void wxPGMultiButton::Finalize( wxPropertyGrid* propGrid, const wxPoint& pos ) Move( pos.x + m_fullEditorSize.x - m_buttonsWidth, pos.y ); // Connect event handling - for ( int i=0; iConnect(id, wxEVT_COMMAND_BUTTON_CLICKED, - wxCommandEventHandler(wxPropertyGrid::OnCustomEditorEvent)); + wxEventHandler(wxPropertyGrid::OnCustomEditorEvent)); } }