X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e84ed895ea61258cc5a5f1397ac08d2bd26a1b00..be8ddd37e3435dad37c5502a8d2894ea4cfb71f9:/src/propgrid/editors.cpp diff --git a/src/propgrid/editors.cpp b/src/propgrid/editors.cpp index 69f18565a8..ca489e0740 100644 --- a/src/propgrid/editors.cpp +++ b/src/propgrid/editors.cpp @@ -233,7 +233,7 @@ wxPGWindowList wxPGTextCtrlEditor::CreateControls( wxPropertyGrid* propGrid, // If has children, and limited editing is specified, then don't create. if ( (property->GetFlags() & wxPG_PROP_NOEDITOR) && property->GetChildCount() ) - return (wxWindow*) NULL; + return NULL; if ( !property->IsValueUnspecified() ) text = property->GetValueAsString(property->HasFlag(wxPG_PROP_READONLY) ? @@ -244,7 +244,7 @@ wxPGWindowList wxPGTextCtrlEditor::CreateControls( wxPropertyGrid* propGrid, property->IsKindOf(CLASSINFO(wxStringProperty)) ) flags |= wxTE_PASSWORD; - wxWindow* wnd = propGrid->GenerateEditorTextCtrl(pos,sz,text,(wxWindow*)NULL,flags, + wxWindow* wnd = propGrid->GenerateEditorTextCtrl(pos,sz,text,NULL,flags, property->GetMaxLength()); return wnd; @@ -503,7 +503,7 @@ public: wxPGComboBox() : wxOwnerDrawnComboBox() { - m_dclickProcessor = (wxPGDoubleClickProcessor*) NULL; + m_dclickProcessor = NULL; m_sizeEventCalled = false; } @@ -668,7 +668,7 @@ void wxPropertyGrid::OnComboItemPaint( const wxPGComboBox* pCb, if ( rect.width < 0 ) { wxCoord x, y; - GetTextExtent(text, &x, &y, 0, 0, &m_font); + pCb->GetTextExtent(text, &x, &y, 0, 0); rect.width = cis.x + wxCC_CUSTOM_IMAGE_MARGIN1 + wxCC_CUSTOM_IMAGE_MARGIN2 + 9 + x; } @@ -1051,8 +1051,8 @@ bool wxPGComboBoxEditor::OnEvent( wxPropertyGrid* propGrid, wxWindow* ctrl, wxEvent& event ) const { - wxOwnerDrawnComboBox* cb = (wxOwnerDrawnComboBox*) NULL; - wxWindow* textCtrl = (wxWindow*) NULL; + wxOwnerDrawnComboBox* cb = NULL; + wxWindow* textCtrl = NULL; if ( ctrl ) { @@ -1312,7 +1312,7 @@ wxSimpleCheckBox::~wxSimpleCheckBox() ms_doubleBuffer = NULL; } -wxBitmap* wxSimpleCheckBox::ms_doubleBuffer = (wxBitmap*) NULL; +wxBitmap* wxSimpleCheckBox::ms_doubleBuffer = NULL; void wxSimpleCheckBox::OnPaint( wxPaintEvent& WXUNUSED(event) ) { @@ -1333,7 +1333,7 @@ void wxSimpleCheckBox::OnPaint( wxPaintEvent& WXUNUSED(event) ) int state = m_state; if ( !(state & wxSCB_STATE_UNSPECIFIED) && - m_font.GetWeight() == wxBOLD ) + GetFont().GetWeight() == wxBOLD ) state |= wxSCB_STATE_BOLD; DrawSimpleCheckBox(dc,rect,m_boxHeight,state,txcol); @@ -1633,12 +1633,12 @@ wxWindow* wxPropertyGrid::GenerateEditorTextCtrl( const wxPoint& pos, int maxLen ) { wxWindowID id = wxPG_SUBID1; - wxPGProperty* selected = m_selected; - wxASSERT(selected); + wxPGProperty* prop = m_selected; + wxASSERT(prop); int tcFlags = wxTE_PROCESS_ENTER | extraStyle; - if ( selected->HasFlag(wxPG_PROP_READONLY) ) + if ( prop->HasFlag(wxPG_PROP_READONLY) ) tcFlags |= wxTE_READONLY; wxPoint p(pos.x,pos.y); @@ -1675,14 +1675,12 @@ wxWindow* wxPropertyGrid::GenerateEditorTextCtrl( const wxPoint& pos, SetupTextCtrlValue(value); tc->Create(ctrlParent,id,value, p, s,tcFlags); - wxWindow* ed = tc; - // Center the control vertically if ( !hasSpecialSize ) - FixPosForTextCtrl(ed); + FixPosForTextCtrl(tc); #ifdef __WXMSW__ - ed->Show(); + tc->Show(); if ( secondary ) secondary->Show(); #endif @@ -1691,7 +1689,14 @@ wxWindow* wxPropertyGrid::GenerateEditorTextCtrl( const wxPoint& pos, if ( maxLen > 0 ) tc->SetMaxLength( maxLen ); - return (wxWindow*) ed; + wxVariant attrVal = prop->GetAttribute(wxPG_ATTR_AUTOCOMPLETE); + if ( !attrVal.IsNull() ) + { + wxASSERT(attrVal.GetType() == wxS("arrstring")); + tc->AutoComplete(attrVal.GetArrayString()); + } + + return tc; } // ----------------------------------------------------------------------- @@ -1772,7 +1777,7 @@ wxWindow* wxPropertyGrid::GenerateEditorTextCtrlAndButton( const wxPoint& pos, // There is button Show in GenerateEditorTextCtrl as well but->Show(); #endif - return (wxWindow*) NULL; + return NULL; } wxString text; @@ -1872,11 +1877,10 @@ void wxPGMultiButton::Add( const wxBitmap& bitmap, int id ) { id = GenId(id); wxSize sz = GetSize(); - wxButton* button = new wxBitmapButton( this, id, bitmap, wxPoint(sz.x, 0), wxSize(sz.y, sz.y) ); - m_buttons.push_back(button); - int bw = button->GetSize().x; - SetSize(wxSize(sz.x+bw,sz.y)); - m_buttonsWidth += bw; + wxButton* button = new wxBitmapButton( this, id, bitmap, + wxPoint(sz.x, 0), + wxSize(sz.y, sz.y) ); + DoAddButton( button, sz ); } #endif @@ -1884,7 +1888,14 @@ void wxPGMultiButton::Add( const wxString& label, int id ) { id = GenId(id); wxSize sz = GetSize(); - wxButton* button = new wxButton( this, id, label, wxPoint(sz.x, 0), wxSize(sz.y, sz.y) ); + wxButton* button = new wxButton( this, id, label, wxPoint(sz.x, 0), + wxSize(sz.y, sz.y) ); + DoAddButton( button, sz ); +} + +void wxPGMultiButton::DoAddButton( wxWindow* button, + const wxSize& sz ) +{ m_buttons.push_back(button); int bw = button->GetSize().x; SetSize(wxSize(sz.x+bw,sz.y));