X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4bfd0ed55289f57f549fad4d5b8a94aae133b3c4..90e15296e9208a869efcc96329597fa3bf263d26:/src/common/datavcmn.cpp diff --git a/src/common/datavcmn.cpp b/src/common/datavcmn.cpp index 34e2123b6c..949ffa233f 100644 --- a/src/common/datavcmn.cpp +++ b/src/common/datavcmn.cpp @@ -22,6 +22,7 @@ #include "wx/choice.h" #include "wx/weakref.h" +#include "wx/vector.h" #ifndef WX_PRECOMP #include "wx/dc.h" @@ -895,6 +896,30 @@ const wxDataViewModel* wxDataViewCtrlBase::GetModel() const return m_model; } +void wxDataViewCtrlBase::ExpandAncestors( const wxDataViewItem & item ) +{ + if (!m_model) return; + + if (!item.IsOk()) return; + + wxVector parentChain; + + // at first we get all the parents of the selected item + wxDataViewItem parent = m_model->GetParent(item); + while (parent.IsOk()) + { + parentChain.push_back(parent); + parent = m_model->GetParent(parent); + } + + // then we expand the parents, starting at the root + while (!parentChain.empty()) + { + Expand(parentChain.back()); + parentChain.pop_back(); + } +} + wxDataViewColumn * wxDataViewCtrlBase::AppendTextColumn( const wxString &label, unsigned int model_column, wxDataViewCellMode mode, int width, wxAlignment align, int flags ) @@ -1275,7 +1300,7 @@ bool wxDataViewSpinRenderer::GetValue( wxVariant &value ) const // wxDataViewChoiceRenderer // ------------------------------------- -#ifndef __WXGTK20__ +#if defined(wxHAS_GENERIC_DATAVIEWCTRL) || defined(__WXMAC__) wxDataViewChoiceRenderer::wxDataViewChoiceRenderer( const wxArrayString& choices, wxDataViewCellMode mode, int alignment ) : wxDataViewCustomRenderer(wxT("string"), mode, alignment )