Add scrollbars, fix crash, leak less memory.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37731 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -181,6 +181,10 @@ public:
|
|||||||
virtual bool AssociateModel( wxDataViewListModel *model );
|
virtual bool AssociateModel( wxDataViewListModel *model );
|
||||||
virtual bool AppendColumn( wxDataViewColumn *col );
|
virtual bool AppendColumn( wxDataViewColumn *col );
|
||||||
|
|
||||||
|
private:
|
||||||
|
friend class wxDataViewCtrlDC;
|
||||||
|
GtkWidget *m_treeview;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DECLARE_DYNAMIC_CLASS(wxDataViewCtrl)
|
DECLARE_DYNAMIC_CLASS(wxDataViewCtrl)
|
||||||
DECLARE_NO_COPY_CLASS(wxDataViewCtrl)
|
DECLARE_NO_COPY_CLASS(wxDataViewCtrl)
|
||||||
|
@@ -343,7 +343,7 @@ wxgtk_list_store_iter_next (GtkTreeModel *tree_model,
|
|||||||
if (n == -1)
|
if (n == -1)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
if (n >= (int) list_store->model->GetNumberOfRows())
|
if (n >= (int) list_store->model->GetNumberOfRows()-1)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
iter->user_data = (gpointer) ++n;
|
iter->user_data = (gpointer) ++n;
|
||||||
@@ -908,7 +908,7 @@ class wxDataViewCtrlDC: public wxWindowDC
|
|||||||
public:
|
public:
|
||||||
wxDataViewCtrlDC( wxDataViewCtrl *window )
|
wxDataViewCtrlDC( wxDataViewCtrl *window )
|
||||||
{
|
{
|
||||||
GtkWidget *widget = window->GetHandle();
|
GtkWidget *widget = window->m_treeview;
|
||||||
// Set later
|
// Set later
|
||||||
m_window = NULL;
|
m_window = NULL;
|
||||||
|
|
||||||
@@ -1144,7 +1144,15 @@ bool wxDataViewCtrl::Create(wxWindow *parent, wxWindowID id,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_widget = gtk_tree_view_new();
|
m_widget = gtk_scrolled_window_new (NULL, NULL);
|
||||||
|
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (m_widget), GTK_SHADOW_IN);
|
||||||
|
|
||||||
|
m_treeview = gtk_tree_view_new();
|
||||||
|
gtk_container_add (GTK_CONTAINER (m_widget), m_treeview);
|
||||||
|
|
||||||
|
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (m_widget),
|
||||||
|
GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
|
||||||
|
gtk_widget_show (m_treeview);
|
||||||
|
|
||||||
m_parent->DoAddChild( this );
|
m_parent->DoAddChild( this );
|
||||||
|
|
||||||
@@ -1166,7 +1174,8 @@ bool wxDataViewCtrl::AssociateModel( wxDataViewListModel *model )
|
|||||||
|
|
||||||
model->SetNotifier( notifier );
|
model->SetNotifier( notifier );
|
||||||
|
|
||||||
gtk_tree_view_set_model( GTK_TREE_VIEW(m_widget), GTK_TREE_MODEL(gtk_store) );
|
gtk_tree_view_set_model( GTK_TREE_VIEW(m_treeview), GTK_TREE_MODEL(gtk_store) );
|
||||||
|
g_object_unref( gtk_store );
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -1178,7 +1187,7 @@ bool wxDataViewCtrl::AppendColumn( wxDataViewColumn *col )
|
|||||||
|
|
||||||
GtkTreeViewColumn *column = (GtkTreeViewColumn *)col->GetGtkHandle();
|
GtkTreeViewColumn *column = (GtkTreeViewColumn *)col->GetGtkHandle();
|
||||||
|
|
||||||
gtk_tree_view_append_column( GTK_TREE_VIEW(m_widget), column );
|
gtk_tree_view_append_column( GTK_TREE_VIEW(m_treeview), column );
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user