X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/afebb87be1467f24f4ffe5e8cca2a94acc5248c8..0766270090c5f6635f036d8310ba9ec6027fc9c2:/src/common/datavcmn.cpp diff --git a/src/common/datavcmn.cpp b/src/common/datavcmn.cpp index 0b287e6a5b..9a21003099 100644 --- a/src/common/datavcmn.cpp +++ b/src/common/datavcmn.cpp @@ -307,35 +307,34 @@ bool wxDataViewIndexListModel::IsContainer( const wxDataViewItem &item ) const return false; } -wxDataViewItem wxDataViewIndexListModel::GetFirstChild( const wxDataViewItem &parent ) const +unsigned int wxDataViewIndexListModel::GetChildren( const wxDataViewItem &item, wxDataViewItemArray &children ) const { - if (!parent.IsOk()) - { - if (m_hash.GetCount() == 0) - return wxDataViewItem(0); - - return wxDataViewItem( m_hash[0]); - } + if (item.IsOk()) + return 0; - return wxDataViewItem(0); + children = m_hash; + + return m_hash.GetCount(); } -wxDataViewItem wxDataViewIndexListModel::GetNextSibling( const wxDataViewItem &item ) const -{ - if (!item.IsOk()) - return wxDataViewItem(0); +//----------------------------------------------------------------------------- +// wxDataViewIconText +//----------------------------------------------------------------------------- + +IMPLEMENT_DYNAMIC_CLASS(wxDataViewIconText,wxObject) - int pos = m_hash.Index( item.GetID() ); - if ((pos == wxNOT_FOUND) || (pos == (int) (m_hash.GetCount()-1))) - return wxDataViewItem(0); +IMPLEMENT_VARIANT_OBJECT(wxDataViewIconText) - return wxDataViewItem( m_hash[pos+1] ); +bool operator == (const wxDataViewIconText &one, const wxDataViewIconText &two) +{ + if (one.GetText() != two.GetText()) return false; + if (one.IsSameAs(two)) return false; + return true; } // --------------------------------------------------------- // wxDataViewRendererBase // --------------------------------------------------------- -static wxDataViewItem g_item; IMPLEMENT_ABSTRACT_CLASS(wxDataViewRendererBase, wxObject) @@ -378,7 +377,6 @@ bool wxDataViewRendererBase::StartEditing( const wxDataViewItem &item, wxRect la event.SetDataViewColumn( GetOwner() ); event.SetModel( GetOwner()->GetOwner()->GetModel() ); event.SetItem( item ); - g_item = item; GetOwner()->GetOwner()->GetEventHandler()->ProcessEvent( event ); return true; @@ -415,7 +413,7 @@ bool wxDataViewRendererBase::FinishEditing() wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE, GetOwner()->GetOwner()->GetId() ); event.SetDataViewColumn( GetOwner() ); event.SetModel( GetOwner()->GetOwner()->GetModel() ); - event.SetItem( g_item ); + event.SetItem( m_item ); GetOwner()->GetOwner()->GetEventHandler()->ProcessEvent( event ); return true; @@ -601,6 +599,17 @@ wxDataViewCtrlBase::AppendTextColumn( const wxString &label, unsigned int model_ return ret; } +wxDataViewColumn * +wxDataViewCtrlBase::AppendIconTextColumn( const wxString &label, unsigned int model_column, + wxDataViewCellMode mode, int width, wxAlignment align, int flags ) +{ + wxDataViewColumn *ret = new wxDataViewColumn( label, + new wxDataViewIconTextRenderer( wxT("wxDataViewIconText"), mode, (int)align ), + model_column, width, align, flags ); + AppendColumn( ret ); + return ret; +} + wxDataViewColumn * wxDataViewCtrlBase::AppendToggleColumn( const wxString &label, unsigned int model_column, wxDataViewCellMode mode, int width, wxAlignment align, int flags ) @@ -657,6 +666,17 @@ wxDataViewCtrlBase::AppendTextColumn( const wxBitmap &label, unsigned int model_ return ret; } +wxDataViewColumn * +wxDataViewCtrlBase::AppendIconTextColumn( const wxBitmap &label, unsigned int model_column, + wxDataViewCellMode mode, int width, wxAlignment align, int flags ) +{ + wxDataViewColumn *ret = new wxDataViewColumn( label, + new wxDataViewIconTextRenderer( wxT("wxDataViewIconText"), mode, (int)align ), + model_column, width, align, flags ); + AppendColumn( ret ); + return ret; +} + wxDataViewColumn * wxDataViewCtrlBase::AppendToggleColumn( const wxBitmap &label, unsigned int model_column, wxDataViewCellMode mode, int width, wxAlignment align, int flags )