X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/15cac64f7564d48c274c6490774a77bd8c09f808..cc2608047b09f1fedfae027c083a35b1073010a4:/src/common/datavcmn.cpp diff --git a/src/common/datavcmn.cpp b/src/common/datavcmn.cpp index 5f59a20fcf..66982abf7a 100644 --- a/src/common/datavcmn.cpp +++ b/src/common/datavcmn.cpp @@ -18,20 +18,18 @@ #if wxUSE_DATAVIEWCTRL #include "wx/dataview.h" -#include "wx/spinctrl.h" -#include "wx/choice.h" - -#include "wx/weakref.h" -#include "wx/vector.h" #ifndef WX_PRECOMP #include "wx/dc.h" #include "wx/settings.h" #include "wx/log.h" - #include "wx/icon.h" #include "wx/crt.h" #endif +#include "wx/spinctrl.h" +#include "wx/choice.h" +#include "wx/imaglist.h" + const char wxDataViewCtrlNameStr[] = "dataviewCtrl"; @@ -40,13 +38,6 @@ bool operator == (const wxDataViewItem &left, const wxDataViewItem &right) return (left.GetID() == right.GetID() ); } -#ifdef __WXDEBUG__ -void wxDataViewItem::Print(const wxString& text) const -{ - wxPrintf(wxT("item %s: %lu\n"), text.GetData(), wxPtrToUInt(m_id)); -} -#endif - // --------------------------------------------------------- // wxDataViewModelNotifier // --------------------------------------------------------- @@ -235,7 +226,7 @@ void wxDataViewModel::RemoveNotifier( wxDataViewModelNotifier *notifier ) } int wxDataViewModel::Compare( const wxDataViewItem &item1, const wxDataViewItem &item2, - unsigned int column, bool ascending ) + unsigned int column, bool ascending ) const { // sort branches before leaves bool item1_is_container = IsContainer(item1); @@ -318,7 +309,7 @@ wxDataViewIndexListModel::wxDataViewIndexListModel( unsigned int initial_size ) unsigned int i; for (i = 1; i < initial_size+1; i++) m_hash.Add( wxUIntToPtr(i) ); - m_lastIndex = initial_size + 1; + m_nextFreeID = initial_size + 1; } wxDataViewIndexListModel::~wxDataViewIndexListModel() @@ -336,7 +327,8 @@ void wxDataViewIndexListModel::Reset( unsigned int new_size ) unsigned int i; for (i = 1; i < new_size+1; i++) m_hash.Add( wxUIntToPtr(i) ); - m_lastIndex = new_size + 1; + + m_nextFreeID = new_size + 1; wxDataViewModel::Cleared(); } @@ -345,17 +337,22 @@ void wxDataViewIndexListModel::RowPrepended() { m_ordered = false; - unsigned int id = m_lastIndex++; + unsigned int id = m_nextFreeID; + m_nextFreeID++; + m_hash.Insert( wxUIntToPtr(id), 0 ); wxDataViewItem item( wxUIntToPtr(id) ); ItemAdded( wxDataViewItem(0), item ); + } void wxDataViewIndexListModel::RowInserted( unsigned int before ) { m_ordered = false; - unsigned int id = m_lastIndex++; + unsigned int id = m_nextFreeID; + m_nextFreeID++; + m_hash.Insert( wxUIntToPtr(id), before ); wxDataViewItem item( wxUIntToPtr(id) ); ItemAdded( wxDataViewItem(0), item ); @@ -363,7 +360,9 @@ void wxDataViewIndexListModel::RowInserted( unsigned int before ) void wxDataViewIndexListModel::RowAppended() { - unsigned int id = m_lastIndex++; + unsigned int id = m_nextFreeID; + m_nextFreeID++; + m_hash.Add( wxUIntToPtr(id) ); wxDataViewItem item( wxUIntToPtr(id) ); ItemAdded( wxDataViewItem(0), item ); @@ -411,10 +410,7 @@ void wxDataViewIndexListModel::RowValueChanged( unsigned int row, unsigned int c unsigned int wxDataViewIndexListModel::GetRow( const wxDataViewItem &item ) const { if (m_ordered) - { - unsigned int pos = wxPtrToUInt( item.GetID() ); - return pos-1; - } + return wxPtrToUInt(item.GetID())-1; // assert for not found return (unsigned int) m_hash.Index( item.GetID() ); @@ -434,12 +430,12 @@ bool wxDataViewIndexListModel::HasDefaultCompare() const int wxDataViewIndexListModel::Compare(const wxDataViewItem& item1, const wxDataViewItem& item2, unsigned int WXUNUSED(column), - bool ascending) + bool ascending) const { if (m_ordered) { - unsigned int pos1 = wxPtrToUInt(item1.GetID()); - unsigned int pos2 = wxPtrToUInt(item2.GetID()); + unsigned int pos1 = wxPtrToUInt(item1.GetID()); // -1 not needed here + unsigned int pos2 = wxPtrToUInt(item2.GetID()); // -1 not needed here if (ascending) return pos1 - pos2; @@ -502,7 +498,7 @@ unsigned int wxDataViewIndexListModel::GetChildren( const wxDataViewItem &item, wxDataViewVirtualListModel::wxDataViewVirtualListModel( unsigned int initial_size ) { - m_lastIndex = initial_size-1; + m_size = initial_size; } wxDataViewVirtualListModel::~wxDataViewVirtualListModel() @@ -511,41 +507,43 @@ wxDataViewVirtualListModel::~wxDataViewVirtualListModel() void wxDataViewVirtualListModel::Reset( unsigned int new_size ) { - m_lastIndex = new_size-1; + m_size = new_size; wxDataViewModel::Cleared(); } void wxDataViewVirtualListModel::RowPrepended() { - m_lastIndex++; - wxDataViewItem item( NULL ); + m_size++; + wxDataViewItem item( wxUIntToPtr(1) ); ItemAdded( wxDataViewItem(0), item ); } void wxDataViewVirtualListModel::RowInserted( unsigned int before ) { - m_lastIndex++; - wxDataViewItem item( wxUIntToPtr(before) ); + m_size++; + wxDataViewItem item( wxUIntToPtr(before+1) ); ItemAdded( wxDataViewItem(0), item ); } void wxDataViewVirtualListModel::RowAppended() { - m_lastIndex++; - wxDataViewItem item( wxUIntToPtr(m_lastIndex) ); + m_size++; + wxDataViewItem item( wxUIntToPtr(m_size) ); ItemAdded( wxDataViewItem(0), item ); } void wxDataViewVirtualListModel::RowDeleted( unsigned int row ) { - wxDataViewItem item( wxUIntToPtr(row) ); + m_size--; + wxDataViewItem item( wxUIntToPtr(row+1) ); wxDataViewModel::ItemDeleted( wxDataViewItem(0), item ); - m_lastIndex++; } void wxDataViewVirtualListModel::RowsDeleted( const wxArrayInt &rows ) { + m_size -= rows.GetCount(); + wxArrayInt sorted = rows; sorted.Sort( my_sort ); @@ -553,12 +551,10 @@ void wxDataViewVirtualListModel::RowsDeleted( const wxArrayInt &rows ) unsigned int i; for (i = 0; i < sorted.GetCount(); i++) { - wxDataViewItem item( wxUIntToPtr(sorted[i]) ); + wxDataViewItem item( wxUIntToPtr(sorted[i]+1) ); array.Add( item ); } wxDataViewModel::ItemsDeleted( wxDataViewItem(0), array ); - - m_lastIndex -= rows.GetCount(); } void wxDataViewVirtualListModel::RowChanged( unsigned int row ) @@ -573,12 +569,12 @@ void wxDataViewVirtualListModel::RowValueChanged( unsigned int row, unsigned int unsigned int wxDataViewVirtualListModel::GetRow( const wxDataViewItem &item ) const { - return wxPtrToUInt( item.GetID() ); + return wxPtrToUInt( item.GetID() ) -1; } wxDataViewItem wxDataViewVirtualListModel::GetItem( unsigned int row ) const { - return wxDataViewItem( wxUIntToPtr(row) ); + return wxDataViewItem( wxUIntToPtr(row+1) ); } bool wxDataViewVirtualListModel::HasDefaultCompare() const @@ -589,10 +585,10 @@ bool wxDataViewVirtualListModel::HasDefaultCompare() const int wxDataViewVirtualListModel::Compare(const wxDataViewItem& item1, const wxDataViewItem& item2, unsigned int WXUNUSED(column), - bool ascending) + bool ascending) const { - unsigned int pos1 = wxPtrToUInt(item1.GetID()); - unsigned int pos2 = wxPtrToUInt(item2.GetID()); + unsigned int pos1 = wxPtrToUInt(item1.GetID()); // -1 not needed here + unsigned int pos2 = wxPtrToUInt(item2.GetID()); // -1 not needed here if (ascending) return pos1 - pos2; @@ -690,13 +686,30 @@ public: bool wxDataViewRendererBase::StartEditing( const wxDataViewItem &item, wxRect labelRect ) { + wxDataViewCtrl* dv_ctrl = GetOwner()->GetOwner(); + + // Before doing anything we send an event asking if editing of this item is really wanted. + wxDataViewEvent start_event( wxEVT_COMMAND_DATAVIEW_ITEM_START_EDITING, dv_ctrl->GetId() ); + start_event.SetDataViewColumn( GetOwner() ); + start_event.SetModel( dv_ctrl->GetModel() ); + start_event.SetItem( item ); + start_event.SetEventObject( dv_ctrl ); + dv_ctrl->GetEventHandler()->ProcessEvent( start_event ); + if( !start_event.IsAllowed() ) + return false; + m_item = item; // remember for later unsigned int col = GetOwner()->GetModelColumn(); wxVariant value; - GetOwner()->GetOwner()->GetModel()->GetValue( value, item, col ); + dv_ctrl->GetModel()->GetValue( value, item, col ); + + m_editorCtrl = CreateEditorCtrl( dv_ctrl->GetMainWindow(), labelRect, value ); + + // there might be no editor control for the given item + if(!m_editorCtrl) + return false; - m_editorCtrl = CreateEditorCtrl( GetOwner()->GetOwner()->GetMainWindow(), labelRect, value ); (void) new wxKillRef( m_editorCtrl.get() ); wxDataViewEditorCtrlEvtHandler *handler = @@ -711,18 +724,20 @@ bool wxDataViewRendererBase::StartEditing( const wxDataViewItem &item, wxRect la #endif // Now we should send Editing Started event - wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_STARTED, GetOwner()->GetOwner()->GetId() ); + wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_STARTED, dv_ctrl->GetId() ); event.SetDataViewColumn( GetOwner() ); - event.SetModel( GetOwner()->GetOwner()->GetModel() ); + event.SetModel( dv_ctrl->GetModel() ); event.SetItem( item ); - GetOwner()->GetOwner()->GetEventHandler()->ProcessEvent( event ); + event.SetEventObject( dv_ctrl ); + dv_ctrl->GetEventHandler()->ProcessEvent( event ); return true; } void wxDataViewRendererBase::CancelEditing() { - if (!m_editorCtrl) return; + if (!m_editorCtrl) + return; GetOwner()->GetOwner()->GetMainWindow()->SetFocus(); @@ -732,12 +747,15 @@ void wxDataViewRendererBase::CancelEditing() bool wxDataViewRendererBase::FinishEditing() { - if (!m_editorCtrl) return true; + if (!m_editorCtrl) + return true; wxVariant value; GetValueFromEditorCtrl( m_editorCtrl, value ); - GetOwner()->GetOwner()->GetMainWindow()->SetFocus(); + wxDataViewCtrl* dv_ctrl = GetOwner()->GetOwner(); + + dv_ctrl->GetMainWindow()->SetFocus(); m_editorCtrl->Hide(); wxPendingDelete.Append( m_editorCtrl ); @@ -746,15 +764,16 @@ bool wxDataViewRendererBase::FinishEditing() return false; unsigned int col = GetOwner()->GetModelColumn(); - GetOwner()->GetOwner()->GetModel()->SetValue( value, m_item, col ); - GetOwner()->GetOwner()->GetModel()->ValueChanged( m_item, col ); + dv_ctrl->GetModel()->SetValue( value, m_item, col ); + dv_ctrl->GetModel()->ValueChanged( m_item, col ); // Now we should send Editing Done event - wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE, GetOwner()->GetOwner()->GetId() ); + wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE, dv_ctrl->GetId() ); event.SetDataViewColumn( GetOwner() ); - event.SetModel( GetOwner()->GetOwner()->GetModel() ); + event.SetModel( dv_ctrl->GetModel() ); event.SetItem( m_item ); - GetOwner()->GetOwner()->GetEventHandler()->ProcessEvent( event ); + event.SetEventObject( dv_ctrl ); + dv_ctrl->GetEventHandler()->ProcessEvent( event ); return true; } @@ -896,19 +915,14 @@ const wxDataViewModel* wxDataViewCtrlBase::GetModel() const return m_model; } -bool wxDataViewCtrlBase::EnableDragSource( const wxDataFormat &WXUNUSED(format) ) -{ - return false; -} - 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()) @@ -916,7 +930,7 @@ void wxDataViewCtrlBase::ExpandAncestors( const wxDataViewItem & item ) parentChain.push_back(parent); parent = m_model->GetParent(parent); } - + // then we expand the parents, starting at the root while (!parentChain.empty()) { @@ -1217,27 +1231,32 @@ wxDataViewCtrlBase::InsertColumn( unsigned int WXUNUSED(pos), wxDataViewColumn * IMPLEMENT_DYNAMIC_CLASS(wxDataViewEvent,wxNotifyEvent) -wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEvent ) +wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEvent ); + +wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEvent ); +wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSING, wxDataViewEvent ); +wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSED, wxDataViewEvent ); +wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDING, wxDataViewEvent ); +wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDED, wxDataViewEvent ); +wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_STARTED, wxDataViewEvent ); +wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_ITEM_START_EDITING, wxDataViewEvent ); +wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE, wxDataViewEvent ); +wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED, wxDataViewEvent ); + +wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU, wxDataViewEvent ); + +wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_CLICK, wxDataViewEvent ); +wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK, wxDataViewEvent ); +wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_COLUMN_SORTED, wxDataViewEvent ); +wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_COLUMN_REORDERED, wxDataViewEvent ); -wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEvent ) -wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSING, wxDataViewEvent ) -wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSED, wxDataViewEvent ) -wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDING, wxDataViewEvent ) -wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDED, wxDataViewEvent ) -wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_STARTED, wxDataViewEvent ) -wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE, wxDataViewEvent ) -wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED, wxDataViewEvent ) +wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_CACHE_HINT, wxDataViewEvent ); -wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU, wxDataViewEvent ) +wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_ITEM_BEGIN_DRAG, wxDataViewEvent ); +wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_ITEM_DROP_POSSIBLE, wxDataViewEvent ); +wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_ITEM_DROP, wxDataViewEvent ); -wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_CLICK, wxDataViewEvent ) -wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK, wxDataViewEvent ) -wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_COLUMN_SORTED, wxDataViewEvent ) -wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_COLUMN_REORDERED, wxDataViewEvent ) -wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_ITEM_DRAGGABLE, wxDataViewEvent ) -wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_ITEM_GET_DRAG_DATA_SIZE, wxDataViewEvent ) -wxDEFINE_EVENT( wxEVT_COMMAND_DATAVIEW_ITEM_GET_DRAG_DATA, wxDataViewEvent ) // ------------------------------------- // wxDataViewSpinRenderer @@ -1307,7 +1326,7 @@ bool wxDataViewSpinRenderer::GetValue( wxVariant &value ) const // wxDataViewChoiceRenderer // ------------------------------------- -#if defined(wxHAS_GENERIC_DATAVIEWCTRL) || defined(__WXMAC__) +#if defined(wxHAS_GENERIC_DATAVIEWCTRL) || defined(__WXOSX_CARBON__) wxDataViewChoiceRenderer::wxDataViewChoiceRenderer( const wxArrayString& choices, wxDataViewCellMode mode, int alignment ) : wxDataViewCustomRenderer(wxT("string"), mode, alignment ) @@ -1403,13 +1422,13 @@ wxString wxDataViewListStore::GetColumnType( unsigned int pos ) const { return m_cols[pos]; } - + void wxDataViewListStore::AppendItem( const wxVector &values, wxClientData *data ) { wxDataViewListStoreLine *line = new wxDataViewListStoreLine( data ); line->m_values = values; m_data.push_back( line ); - + RowAppended(); } @@ -1418,24 +1437,25 @@ void wxDataViewListStore::PrependItem( const wxVector &values, wxClie wxDataViewListStoreLine *line = new wxDataViewListStoreLine( data ); line->m_values = values; m_data.insert( m_data.begin(), line ); - + RowPrepended(); } -void wxDataViewListStore::InsertItem( unsigned int row, const wxVector &values, wxClientData *data ) +void wxDataViewListStore::InsertItem( unsigned int row, const wxVector &values, + wxClientData *data ) { wxDataViewListStoreLine *line = new wxDataViewListStoreLine( data ); line->m_values = values; m_data.insert( m_data.begin()+row, line ); - + RowInserted( row ); } -void wxDataViewListStore::DeleteItem( unsigned row ) +void wxDataViewListStore::DeleteItem( unsigned int row ) { wxVector::iterator it = m_data.begin() + row; m_data.erase( it ); - + RowDeleted( row ); } @@ -1447,7 +1467,9 @@ void wxDataViewListStore::DeleteAllItems() wxDataViewListStoreLine* line = *it; delete line; } - + + m_data.clear(); + Reset( 0 ); } @@ -1461,7 +1483,7 @@ bool wxDataViewListStore::SetValueByRow( const wxVariant &value, unsigned int ro { wxDataViewListStoreLine *line = m_data[row]; line->m_values[col] = value; - + return true; } @@ -1534,60 +1556,60 @@ bool wxDataViewListCtrl::AppendColumn( wxDataViewColumn *col ) { return AppendColumn( col, "string" ); } - -wxDataViewColumn *wxDataViewListCtrl::AppendTextColumn( const wxString &label, + +wxDataViewColumn *wxDataViewListCtrl::AppendTextColumn( const wxString &label, wxDataViewCellMode mode, int width, wxAlignment align, int flags ) { GetStore()->AppendColumn( wxT("string") ); - + wxDataViewColumn *ret = new wxDataViewColumn( label, new wxDataViewTextRenderer( wxT("string"), mode ), GetStore()->GetColumnCount()-1, width, align, flags ); - + wxDataViewCtrl::AppendColumn( ret ); - + return ret; } -wxDataViewColumn *wxDataViewListCtrl::AppendToggleColumn( const wxString &label, +wxDataViewColumn *wxDataViewListCtrl::AppendToggleColumn( const wxString &label, wxDataViewCellMode mode, int width, wxAlignment align, int flags ) { GetStore()->AppendColumn( wxT("bool") ); - + wxDataViewColumn *ret = new wxDataViewColumn( label, new wxDataViewToggleRenderer( wxT("bool"), mode ), GetStore()->GetColumnCount()-1, width, align, flags ); - + wxDataViewCtrl::AppendColumn( ret ); - + return ret; } -wxDataViewColumn *wxDataViewListCtrl::AppendProgressColumn( const wxString &label, +wxDataViewColumn *wxDataViewListCtrl::AppendProgressColumn( const wxString &label, wxDataViewCellMode mode, int width, wxAlignment align, int flags ) { GetStore()->AppendColumn( wxT("long") ); - + wxDataViewColumn *ret = new wxDataViewColumn( label, new wxDataViewProgressRenderer( wxEmptyString, wxT("long"), mode ), GetStore()->GetColumnCount()-1, width, align, flags ); - + wxDataViewCtrl::AppendColumn( ret ); - + return ret; } -wxDataViewColumn *wxDataViewListCtrl::AppendIconTextColumn( const wxString &label, +wxDataViewColumn *wxDataViewListCtrl::AppendIconTextColumn( const wxString &label, wxDataViewCellMode mode, int width, wxAlignment align, int flags ) { GetStore()->AppendColumn( wxT("wxDataViewIconText") ); - + wxDataViewColumn *ret = new wxDataViewColumn( label, new wxDataViewIconTextRenderer( wxT("wxDataViewIconText"), mode ), GetStore()->GetColumnCount()-1, width, align, flags ); - + wxDataViewCtrl::AppendColumn( ret ); - + return ret; } @@ -1733,11 +1755,11 @@ wxDataViewTreeStore::InsertContainer(const wxDataViewItem& parent, { wxDataViewTreeStoreContainerNode *parent_node = FindContainerNode( parent ); if (!parent_node) return wxDataViewItem(0); - + wxDataViewTreeStoreNode *previous_node = FindNode( previous ); int pos = parent_node->GetChildren().IndexOf( previous_node ); if (pos == wxNOT_FOUND) return wxDataViewItem(0); - + wxDataViewTreeStoreContainerNode *node = new wxDataViewTreeStoreContainerNode( parent_node, text, icon, expanded, data ); parent_node->GetChildren().Insert( (size_t) pos, node ); @@ -1858,7 +1880,7 @@ void wxDataViewTreeStore::DeleteChildren( const wxDataViewItem& item ) void wxDataViewTreeStore::DeleteAllItems() { - // TODO + DeleteChildren(m_root); } void @@ -1942,7 +1964,7 @@ unsigned int wxDataViewTreeStore::GetChildren( const wxDataViewItem &item, wxDat } int wxDataViewTreeStore::Compare( const wxDataViewItem &item1, const wxDataViewItem &item2, - unsigned int WXUNUSED(column), bool WXUNUSED(ascending) ) + unsigned int WXUNUSED(column), bool WXUNUSED(ascending) ) const { wxDataViewTreeStoreNode *node1 = FindNode( item1 ); wxDataViewTreeStoreNode *node2 = FindNode( item2 ); @@ -2049,9 +2071,9 @@ wxDataViewItem wxDataViewTreeCtrl::AppendItem( const wxDataViewItem& parent, icon = m_imageList->GetIcon( iconIndex ); wxDataViewItem res = GetStore()->AppendItem( parent, text, icon, data ); - + GetStore()->ItemAdded( parent, res ); - + return res; } @@ -2063,9 +2085,9 @@ wxDataViewItem wxDataViewTreeCtrl::PrependItem( const wxDataViewItem& parent, icon = m_imageList->GetIcon( iconIndex ); wxDataViewItem res = GetStore()->PrependItem( parent, text, icon, data ); - + GetStore()->ItemAdded( parent, res ); - + return res; } @@ -2077,9 +2099,9 @@ wxDataViewItem wxDataViewTreeCtrl::InsertItem( const wxDataViewItem& parent, con icon = m_imageList->GetIcon( iconIndex ); wxDataViewItem res = GetStore()->InsertItem( parent, previous, text, icon, data ); - + GetStore()->ItemAdded( parent, res ); - + return res; } @@ -2095,9 +2117,9 @@ wxDataViewItem wxDataViewTreeCtrl::PrependContainer( const wxDataViewItem& paren expanded = m_imageList->GetIcon( expandedIndex ); wxDataViewItem res = GetStore()->PrependContainer( parent, text, icon, expanded, data ); - + GetStore()->ItemAdded( parent, res ); - + return res; } @@ -2113,9 +2135,9 @@ wxDataViewItem wxDataViewTreeCtrl::AppendContainer( const wxDataViewItem& parent expanded = m_imageList->GetIcon( expandedIndex ); wxDataViewItem res = GetStore()->AppendContainer( parent, text, icon, expanded, data ); - + GetStore()->ItemAdded( parent, res ); - + return res; } @@ -2131,48 +2153,48 @@ wxDataViewItem wxDataViewTreeCtrl::InsertContainer( const wxDataViewItem& parent expanded = m_imageList->GetIcon( expandedIndex ); wxDataViewItem res = GetStore()->InsertContainer( parent, previous, text, icon, expanded, data ); - + GetStore()->ItemAdded( parent, res ); - + return res; } void wxDataViewTreeCtrl::SetItemText( const wxDataViewItem& item, const wxString &text ) -{ +{ GetStore()->SetItemText(item,text); - + // notify control GetStore()->ValueChanged( item, 0 ); } void wxDataViewTreeCtrl::SetItemIcon( const wxDataViewItem& item, const wxIcon &icon ) -{ +{ GetStore()->SetItemIcon(item,icon); - + // notify control GetStore()->ValueChanged( item, 0 ); } void wxDataViewTreeCtrl::SetItemExpandedIcon( const wxDataViewItem& item, const wxIcon &icon ) -{ +{ GetStore()->SetItemExpandedIcon(item,icon); - + // notify control GetStore()->ValueChanged( item, 0 ); } void wxDataViewTreeCtrl::DeleteItem( const wxDataViewItem& item ) -{ +{ wxDataViewItem parent_item = GetStore()->GetParent( item ); GetStore()->DeleteItem(item); - + // notify control GetStore()->ItemDeleted( parent_item, item ); } void wxDataViewTreeCtrl::DeleteChildren( const wxDataViewItem& item ) -{ +{ wxDataViewTreeStoreContainerNode *node = GetStore()->FindContainerNode( item ); if (!node) return; @@ -2191,9 +2213,9 @@ void wxDataViewTreeCtrl::DeleteChildren( const wxDataViewItem& item ) } void wxDataViewTreeCtrl::DeleteAllItems() -{ +{ GetStore()->DeleteAllItems(); - + GetStore()->Cleared(); } @@ -2205,7 +2227,7 @@ void wxDataViewTreeCtrl::OnExpanded( wxDataViewEvent &event ) if (!container) return; container->SetExpanded( true ); - + GetStore()->ItemChanged( event.GetItem() ); } @@ -2217,7 +2239,7 @@ void wxDataViewTreeCtrl::OnCollapsed( wxDataViewEvent &event ) if (!container) return; container->SetExpanded( false ); - + GetStore()->ItemChanged( event.GetItem() ); }