wxDataViewModel* GetDataViewModel() { return m_wx_model; }
GtkWxTreeModel* GetOwner() { return m_owner; }
+
+ bool ItemAdded( const wxDataViewItem &parent, const wxDataViewItem &item );
protected:
void InitTree();
+ wxGtkTreeModelNode *FindNode( const wxDataViewItem &item );
wxGtkTreeModelNode *FindNode( GtkTreeIter *iter );
void BuildBranch( wxGtkTreeModelNode *branch );
}
}
+bool wxGtkTreeModel::ItemAdded( const wxDataViewItem &parent, const wxDataViewItem &item )
+{
+ wxGtkTreeModelNode *parent_node = FindNode( parent );
+ parent_node->Append( new wxGtkTreeModelNode( parent_node, item ) );
+ return true;
+}
+
gboolean wxGtkTreeModel::get_iter( GtkTreeIter *iter, GtkTreePath *path )
{
int depth = gtk_tree_path_get_depth( path );
while (node->GetParent())
{
wxGtkTreeModelNode *parent = node->GetParent();
- int pos = parent->GetChildren().Index( parent );
+ int pos = parent->GetChildren().Index( node );
gtk_tree_path_prepend_index( retval, pos );
return result;
}
+wxGtkTreeModelNode *wxGtkTreeModel::FindNode( const wxDataViewItem &item )
+{
+ wxGtkTreeModelNode *result = wxGtkTreeModel_FindNode( m_root, item );
+
+ if (!result)
+ {
+ wxPrintf( "Not found %d\n", (int) item.GetID() );
+ char *crash = NULL;
+ *crash = 0;
+ }
+
+ return result;
+}
+
//-----------------------------------------------------------------------------
// define new GTK+ class wxGtkRendererRenderer
//-----------------------------------------------------------------------------
bool wxGtkDataViewModelNotifier::ItemAdded( const wxDataViewItem &parent, const wxDataViewItem &item )
{
+ m_wxgtk_model->model->ItemAdded( parent, item );
+
GtkTreeIter iter;
iter.stamp = m_wxgtk_model->stamp;
iter.user_data = (gpointer) item.GetID();
return true;
}
+wxDataViewItem wxDataViewCtrl::GetSelection()
+{
+ GtkTreeSelection *selection = gtk_tree_view_get_selection( GTK_TREE_VIEW(m_treeview) );
+
+ if (m_windowStyle & wxDV_MULTIPLE)
+ {
+ }
+ else
+ {
+ GtkTreeIter iter;
+ if (gtk_tree_selection_get_selected( selection, NULL, &iter ))
+ {
+ wxDataViewItem item( (wxUint32) iter.user_data );
+ return item;
+ }
+ }
+
+ return wxDataViewItem(0);
+}
+
void wxDataViewCtrl::DoSetExpanderColumn()
{
}