// build initial index
unsigned int i;
for (i = 1; i < initial_size+1; i++)
- m_hash.Add( wxUIntToPtr(i) );
+ m_hash.Add( wxDataViewItem(wxUIntToPtr(i)) );
m_nextFreeID = initial_size + 1;
}
// build initial index
unsigned int i;
for (i = 1; i < new_size+1; i++)
- m_hash.Add( wxUIntToPtr(i) );
+ m_hash.Add( wxDataViewItem(wxUIntToPtr(i)) );
m_nextFreeID = new_size + 1;
unsigned int id = m_nextFreeID;
m_nextFreeID++;
- m_hash.Insert( wxUIntToPtr(id), 0 );
wxDataViewItem item( wxUIntToPtr(id) );
+ m_hash.Insert( item, 0 );
ItemAdded( wxDataViewItem(0), item );
}
unsigned int id = m_nextFreeID;
m_nextFreeID++;
- m_hash.Insert( wxUIntToPtr(id), before );
wxDataViewItem item( wxUIntToPtr(id) );
+ m_hash.Insert( item, before );
ItemAdded( wxDataViewItem(0), item );
}
unsigned int id = m_nextFreeID;
m_nextFreeID++;
- m_hash.Add( wxUIntToPtr(id) );
wxDataViewItem item( wxUIntToPtr(id) );
+ m_hash.Add( item );
ItemAdded( wxDataViewItem(0), item );
}
return wxPtrToUInt(item.GetID())-1;
// assert for not found
- return (unsigned int) m_hash.Index( item.GetID() );
+ return (unsigned int) m_hash.Index( item );
}
wxDataViewItem wxDataViewIndexListModel::GetItem( unsigned int row ) const
DestroyEditControl();
- if (!Validate(value))
- return false;
-
+ bool isValid = Validate(value);
unsigned int col = GetOwner()->GetModelColumn();
- dv_ctrl->GetModel()->ChangeValue(value, m_item, col);
// Now we should send Editing Done event
wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE, dv_ctrl->GetId() );
event.SetDataViewColumn( GetOwner() );
event.SetModel( dv_ctrl->GetModel() );
event.SetItem( m_item );
+ event.SetValue( value );
+ event.SetColumn( col );
+ event.SetEditCanceled( !isValid );
event.SetEventObject( dv_ctrl );
dv_ctrl->GetEventHandler()->ProcessEvent( event );
- return true;
+ if ( isValid && event.IsAllowed() )
+ {
+ dv_ctrl->GetModel()->ChangeValue(value, m_item, col);
+ return true;
+ }
+
+ return false;
}
void wxDataViewRendererBase::PrepareForItem(const wxDataViewModel *model,
wxDataViewTreeStoreNodeList::compatibility_iterator node = parent_node->GetChildren().Item( pos );
if (node)
- return node->GetData();
+ return wxDataViewItem(node->GetData());
return wxDataViewItem(0);
}
void wxDataViewTreeStore::DeleteAllItems()
{
- DeleteChildren(m_root);
+ DeleteChildren(wxDataViewItem(m_root));
}
void