change wxDataViewItem id to void*

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47493 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2007-07-16 11:01:05 +00:00
parent 704c349086
commit 9d52aad39a
4 changed files with 42 additions and 40 deletions

View File

@@ -68,19 +68,15 @@ extern WXDLLIMPEXP_DATA_ADV(const wxChar) wxDataViewCtrlNameStr[];
class WXDLLIMPEXP_ADV wxDataViewItem class WXDLLIMPEXP_ADV wxDataViewItem
{ {
public: public:
wxDataViewItem( wxUint32 id = 0 ) wxDataViewItem( void* id = NULL )
{ m_id = id; m_reserved1 = 0; m_reserved2 = NULL; } { m_id = id; }
wxDataViewItem( const wxDataViewItem &item ) wxDataViewItem( const wxDataViewItem &item )
{ m_id = item.m_id; m_reserved1 = item.m_reserved1; m_reserved2 = item.m_reserved2; } { m_id = item.m_id; }
bool IsOk() const { return m_id != 0; } bool IsOk() const { return m_id != NULL; }
wxUint32 GetID() const { return m_id; } void* GetID() const { return m_id; }
public:
wxUint32 m_reserved1;
void* m_reserved2;
private: private:
wxUint32 m_id; void* m_id;
}; };
bool operator == (const wxDataViewItem &left, const wxDataViewItem &right); bool operator == (const wxDataViewItem &left, const wxDataViewItem &right);

View File

@@ -156,8 +156,8 @@ public:
if (m_classicalMusicIsKnownToControl) if (m_classicalMusicIsKnownToControl)
{ {
// notify control // notify control
wxDataViewItem child( child_node->GetID() ); wxDataViewItem child( (void*) child_node->GetID() );
wxDataViewItem parent( m_classical->GetID() ); wxDataViewItem parent( (void*) m_classical->GetID() );
ItemAdded( parent, child ); ItemAdded( parent, child );
} }
} }
@@ -222,7 +222,7 @@ public:
virtual wxDataViewItem GetFirstChild( const wxDataViewItem &parent ) const virtual wxDataViewItem GetFirstChild( const wxDataViewItem &parent ) const
{ {
if (parent.GetID() == 0) if (parent.GetID() == 0)
return wxDataViewItem( m_root->GetID() ); return wxDataViewItem( (void*) m_root->GetID() );
MyMusicModelNode *node = FindNode( parent ); MyMusicModelNode *node = FindNode( parent );
@@ -236,7 +236,7 @@ public:
} }
MyMusicModelNode *first_child = node->GetChildren().Item( 0 ); MyMusicModelNode *first_child = node->GetChildren().Item( 0 );
return wxDataViewItem( first_child->GetID() ); return wxDataViewItem( (void*) first_child->GetID() );
} }
virtual wxDataViewItem GetNextSibling( const wxDataViewItem &item ) const virtual wxDataViewItem GetNextSibling( const wxDataViewItem &item ) const
@@ -254,7 +254,7 @@ public:
return wxDataViewItem(0); return wxDataViewItem(0);
node = parent->GetChildren().Item( pos+1 ); node = parent->GetChildren().Item( pos+1 );
return wxDataViewItem( node->GetID() ); return wxDataViewItem( (void*) node->GetID() );
} }
private: private:
@@ -262,7 +262,7 @@ private:
MyMusicModelNode *FindNodeRec( MyMusicModelNode *node, const wxDataViewItem &item ) const MyMusicModelNode *FindNodeRec( MyMusicModelNode *node, const wxDataViewItem &item ) const
{ {
if (node->GetID() == item.GetID()) if (node->GetID() == (wxUint32) item.GetID())
return node; return node;
size_t count = node->GetChildCount(); size_t count = node->GetChildCount();

View File

@@ -1693,6 +1693,7 @@ void wxDataViewMainWindow::OnRenameTimer()
GetOwner()->CalcScrolledPosition( labelRect.x, labelRect.y, GetOwner()->CalcScrolledPosition( labelRect.x, labelRect.y,
&labelRect.x, &labelRect.y); &labelRect.x, &labelRect.y);
// TODO get wxDataViewItem from m_currentRow
m_currentCol->GetRenderer()->StartEditing( m_currentRow, labelRect ); m_currentCol->GetRenderer()->StartEditing( m_currentRow, labelRect );
} }

View File

@@ -424,7 +424,7 @@ wxgtk_tree_model_get_value (GtkTreeModel *tree_model,
{ {
wxVariant variant; wxVariant variant;
g_value_init( value, G_TYPE_STRING ); g_value_init( value, G_TYPE_STRING );
wxDataViewItem item( (wxUint32) iter->user_data ); wxDataViewItem item( (void*) iter->user_data );
model->GetValue( variant, item, (unsigned int) column ); model->GetValue( variant, item, (unsigned int) column );
g_value_set_string( value, variant.GetString().utf8_str() ); g_value_set_string( value, variant.GetString().utf8_str() );
@@ -667,7 +667,7 @@ GtkTreePath *wxGtkTreeModel::get_path( GtkTreeIter *iter )
gboolean wxGtkTreeModel::iter_next( GtkTreeIter *iter ) gboolean wxGtkTreeModel::iter_next( GtkTreeIter *iter )
{ {
wxDataViewItem item( (wxUint32) iter->user_data ); wxDataViewItem item( (void*) iter->user_data );
item = m_wx_model->GetNextSibling( item ); item = m_wx_model->GetNextSibling( item );
if (!item.IsOk()) if (!item.IsOk())
return FALSE; return FALSE;
@@ -679,7 +679,7 @@ gboolean wxGtkTreeModel::iter_next( GtkTreeIter *iter )
gboolean wxGtkTreeModel::iter_children( GtkTreeIter *iter, GtkTreeIter *parent ) gboolean wxGtkTreeModel::iter_children( GtkTreeIter *iter, GtkTreeIter *parent )
{ {
wxDataViewItem item( (wxUint32) parent->user_data ); wxDataViewItem item( (void*) parent->user_data );
if (!m_wx_model->HasChildren( item )) if (!m_wx_model->HasChildren( item ))
return FALSE; return FALSE;
@@ -697,14 +697,14 @@ gboolean wxGtkTreeModel::iter_children( GtkTreeIter *iter, GtkTreeIter *parent )
gboolean wxGtkTreeModel::iter_has_child( GtkTreeIter *iter ) gboolean wxGtkTreeModel::iter_has_child( GtkTreeIter *iter )
{ {
wxDataViewItem item( (wxUint32) iter->user_data ); wxDataViewItem item( (void*) iter->user_data );
return m_wx_model->HasChildren( item ); return m_wx_model->HasChildren( item );
} }
gint wxGtkTreeModel::iter_n_children( GtkTreeIter *iter ) gint wxGtkTreeModel::iter_n_children( GtkTreeIter *iter )
{ {
wxDataViewItem item( (wxUint32) iter->user_data ); wxDataViewItem item( (void*) iter->user_data );
if (!m_wx_model->HasChildren( item )) if (!m_wx_model->HasChildren( item ))
return 0; return 0;
@@ -717,8 +717,8 @@ gint wxGtkTreeModel::iter_n_children( GtkTreeIter *iter )
gboolean wxGtkTreeModel::iter_nth_child( GtkTreeIter *iter, GtkTreeIter *parent, gint n ) gboolean wxGtkTreeModel::iter_nth_child( GtkTreeIter *iter, GtkTreeIter *parent, gint n )
{ {
wxUint32 id = 0; void* id = NULL;
if (parent) id = (wxUint32) parent->user_data; if (parent) id = (void*) parent->user_data;
wxDataViewItem item( id ); wxDataViewItem item( id );
if (!m_wx_model->HasChildren( item )) if (!m_wx_model->HasChildren( item ))
@@ -739,7 +739,7 @@ gboolean wxGtkTreeModel::iter_nth_child( GtkTreeIter *iter, GtkTreeIter *parent,
gboolean wxGtkTreeModel::iter_parent( GtkTreeIter *iter, GtkTreeIter *child ) gboolean wxGtkTreeModel::iter_parent( GtkTreeIter *iter, GtkTreeIter *child )
{ {
wxDataViewItem item( (wxUint32) child->user_data ); wxDataViewItem item( (void*) child->user_data );
wxGtkTreeModelNode *node = FindNode( child ); wxGtkTreeModelNode *node = FindNode( child );
node = node->GetParent(); node = node->GetParent();
@@ -786,7 +786,7 @@ wxGtkTreeModelNode *wxGtkTreeModel::FindNode( GtkTreeIter *iter )
if (!iter) if (!iter)
return m_root; return m_root;
wxDataViewItem item( (wxUint32) iter->user_data ); wxDataViewItem item( (void*) iter->user_data );
wxGtkTreeModelNode *result = wxGtkTreeModel_FindNode( m_root, item ); wxGtkTreeModelNode *result = wxGtkTreeModel_FindNode( m_root, item );
@@ -989,10 +989,11 @@ static GtkCellEditable *gtk_wx_cell_renderer_start_editing(
// wxDataViewListModel *model = cell->GetOwner()->GetOwner()->GetModel(); // wxDataViewListModel *model = cell->GetOwner()->GetOwner()->GetModel();
GtkTreePath *treepath = gtk_tree_path_new_from_string( path ); GtkTreePath *treepath = gtk_tree_path_new_from_string( path );
unsigned int model_row = (unsigned int)gtk_tree_path_get_indices (treepath)[0]; // TODO
wxDataViewItem item;
gtk_tree_path_free( treepath ); gtk_tree_path_free( treepath );
cell->StartEditing( model_row, renderrect ); cell->StartEditing( item, renderrect );
return NULL; return NULL;
} }
@@ -1123,7 +1124,8 @@ gtk_wx_cell_renderer_activate(
wxDataViewModel *model = cell->GetOwner()->GetOwner()->GetModel(); wxDataViewModel *model = cell->GetOwner()->GetOwner()->GetModel();
GtkTreePath *treepath = gtk_tree_path_new_from_string( path ); GtkTreePath *treepath = gtk_tree_path_new_from_string( path );
unsigned int model_row = (unsigned int)gtk_tree_path_get_indices (treepath)[0]; // TODO
wxDataViewItem item;
gtk_tree_path_free( treepath ); gtk_tree_path_free( treepath );
unsigned int model_col = cell->GetOwner()->GetModelColumn(); unsigned int model_col = cell->GetOwner()->GetModelColumn();
@@ -1133,7 +1135,7 @@ gtk_wx_cell_renderer_activate(
bool ret = false; bool ret = false;
// activated by <ENTER> // activated by <ENTER>
if (cell->Activate( renderrect, model, model_col, model_row )) if (cell->Activate( renderrect, model, item, model_col ))
ret = true; ret = true;
return ret; return ret;
@@ -1147,16 +1149,16 @@ gtk_wx_cell_renderer_activate(
bool ret = false; bool ret = false;
if (button_event->button == 1) if (button_event->button == 1)
{ {
if (cell->LeftClick( pt, renderrect, model, model_col, model_row )) if (cell->LeftClick( pt, renderrect, model, item, model_col ))
ret = true; ret = true;
// TODO: query system double-click time // TODO: query system double-click time
if (button_event->time - wxrenderer->last_click < 400) if (button_event->time - wxrenderer->last_click < 400)
if (cell->Activate( renderrect, model, model_col, model_row )) if (cell->Activate( renderrect, model, item, model_col ))
ret = true; ret = true;
} }
if (button_event->button == 3) if (button_event->button == 3)
{ {
if (cell->RightClick( pt, renderrect, model, model_col, model_row )) if (cell->RightClick( pt, renderrect, model, item, model_col ))
ret = true; ret = true;
} }
@@ -1452,13 +1454,15 @@ static void wxGtkTextRendererEditedCallback( GtkCellRendererText *renderer,
wxDataViewModel *model = cell->GetOwner()->GetOwner()->GetModel(); wxDataViewModel *model = cell->GetOwner()->GetOwner()->GetModel();
GtkTreePath *path = gtk_tree_path_new_from_string( arg1 ); GtkTreePath *path = gtk_tree_path_new_from_string( arg1 );
unsigned int model_row = (unsigned int)gtk_tree_path_get_indices (path)[0]; GtkTreeIter iter;
// TODO
wxDataViewItem item;
gtk_tree_path_free( path ); gtk_tree_path_free( path );
unsigned int model_col = cell->GetOwner()->GetModelColumn(); unsigned int model_col = cell->GetOwner()->GetModelColumn();
model->SetValue( value, model_col, model_row ); model->SetValue( value, item, model_col );
model->ValueChanged( model_col, model_row ); model->ValueChanged( item, model_col );
} }
IMPLEMENT_CLASS(wxDataViewTextRenderer, wxDataViewRenderer) IMPLEMENT_CLASS(wxDataViewTextRenderer, wxDataViewRenderer)
@@ -1624,13 +1628,14 @@ static void wxGtkToggleRendererToggledCallback( GtkCellRendererToggle *renderer,
wxDataViewModel *model = cell->GetOwner()->GetOwner()->GetModel(); wxDataViewModel *model = cell->GetOwner()->GetOwner()->GetModel();
GtkTreePath *gtk_path = gtk_tree_path_new_from_string( path ); GtkTreePath *gtk_path = gtk_tree_path_new_from_string( path );
unsigned int model_row = (unsigned int)gtk_tree_path_get_indices (gtk_path)[0]; // TODO
wxDataViewItem item;
gtk_tree_path_free( gtk_path ); gtk_tree_path_free( gtk_path );
unsigned int model_col = cell->GetOwner()->GetModelColumn(); unsigned int model_col = cell->GetOwner()->GetModelColumn();
model->SetValue( value, model_col, model_row ); model->SetValue( value, item, model_col );
model->ValueChanged( model_col, model_row ); model->ValueChanged( item, model_col );
} }
IMPLEMENT_CLASS(wxDataViewToggleRenderer, wxDataViewRenderer) IMPLEMENT_CLASS(wxDataViewToggleRenderer, wxDataViewRenderer)
@@ -2004,7 +2009,7 @@ static void wxGtkTreeCellDataFunc( GtkTreeViewColumn *column,
wxDataViewRenderer *cell = (wxDataViewRenderer*) data; wxDataViewRenderer *cell = (wxDataViewRenderer*) data;
wxDataViewItem item( (wxUint32) iter->user_data ); wxDataViewItem item( (void*) iter->user_data );
wxVariant value; wxVariant value;
tree_model->model->GetDataViewModel()->GetValue( value, item, cell->GetOwner()->GetModelColumn() ); tree_model->model->GetDataViewModel()->GetValue( value, item, cell->GetOwner()->GetModelColumn() );
@@ -2507,7 +2512,7 @@ wxDataViewItem wxDataViewCtrl::GetSelection()
GtkTreeIter iter; GtkTreeIter iter;
if (gtk_tree_selection_get_selected( selection, NULL, &iter )) if (gtk_tree_selection_get_selected( selection, NULL, &iter ))
{ {
wxDataViewItem item( (wxUint32) iter.user_data ); wxDataViewItem item( (void*) iter.user_data );
return item; return item;
} }
} }