comparison src/view_dir_tree.c @ 384:392dd6541d51

Merge parts of view_dir_list/tree constructors/destructors to view_dir.
author zas_
date Wed, 16 Apr 2008 16:54:38 +0000
parents 499d7ba62261
children 5186f8e38cb8
comparison
equal deleted inserted replaced
383:499d7ba62261 384:392dd6541d51
1542 static void vdtree_destroy_cb(GtkWidget *widget, gpointer data) 1542 static void vdtree_destroy_cb(GtkWidget *widget, gpointer data)
1543 { 1543 {
1544 ViewDir *vd = data; 1544 ViewDir *vd = data;
1545 GtkTreeModel *store; 1545 GtkTreeModel *store;
1546 1546
1547 if (vd->popup)
1548 {
1549 g_signal_handlers_disconnect_matched(G_OBJECT(vd->popup), G_SIGNAL_MATCH_DATA,
1550 0, 0, 0, NULL, vd);
1551 gtk_widget_destroy(vd->popup);
1552 }
1553
1554 vdtree_dnd_drop_expand_cancel(vd); 1547 vdtree_dnd_drop_expand_cancel(vd);
1555 vdtree_dnd_drop_scroll_cancel(vd); 1548 vdtree_dnd_drop_scroll_cancel(vd);
1556 widget_auto_scroll_stop(vd->view); 1549 widget_auto_scroll_stop(vd->view);
1557 1550
1558 store = gtk_tree_view_get_model(GTK_TREE_VIEW(vd->view)); 1551 store = gtk_tree_view_get_model(GTK_TREE_VIEW(vd->view));
1559 gtk_tree_model_foreach(store, vdtree_destroy_node_cb, vd); 1552 gtk_tree_model_foreach(store, vdtree_destroy_node_cb, vd);
1560 1553 }
1561 filelist_free(vd->drop_list); 1554
1562 1555 ViewDir *vdtree_new(ViewDir *vd, const gchar *path)
1563 folder_icons_free(vd->pf); 1556 {
1564
1565 g_free(vd->path);
1566 g_free(vd->info);
1567 g_free(vd);
1568 }
1569
1570 ViewDir *vdtree_new(const gchar *path)
1571 {
1572 ViewDir *vd;
1573 GtkTreeStore *store; 1557 GtkTreeStore *store;
1574 GtkTreeSelection *selection; 1558 GtkTreeSelection *selection;
1575 GtkTreeViewColumn *column; 1559 GtkTreeViewColumn *column;
1576 GtkCellRenderer *renderer; 1560 GtkCellRenderer *renderer;
1577 1561
1578 vd = g_new0(ViewDir, 1);
1579 vd->info = g_new0(ViewDirInfoTree, 1); 1562 vd->info = g_new0(ViewDirInfoTree, 1);
1580 vd->type = DIRVIEW_TREE; 1563 vd->type = DIRVIEW_TREE;
1581 1564 vd->widget_destroy_cb = vdtree_destroy_cb;
1582 vd->path = NULL; 1565
1583 vd->click_fd = NULL;
1584
1585 vd->drop_fd = NULL;
1586 vd->drop_list = NULL;
1587 vd->drop_scroll_id = -1;
1588 VDTREE_INFO(vd, drop_expand_id) = -1; 1566 VDTREE_INFO(vd, drop_expand_id) = -1;
1589 1567
1590 vd->popup = NULL;
1591
1592 VDTREE_INFO(vd, busy_ref) = 0; 1568 VDTREE_INFO(vd, busy_ref) = 0;
1593
1594 vd->widget = gtk_scrolled_window_new(NULL, NULL);
1595 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(vd->widget), GTK_SHADOW_IN);
1596 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(vd->widget),
1597 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
1598 g_signal_connect(G_OBJECT(vd->widget), "destroy",
1599 G_CALLBACK(vdtree_destroy_cb), vd);
1600 1569
1601 store = gtk_tree_store_new(4, G_TYPE_POINTER, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_INT); 1570 store = gtk_tree_store_new(4, G_TYPE_POINTER, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_INT);
1602 vd->view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); 1571 vd->view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
1603 g_object_unref(store); 1572 g_object_unref(store);
1604 1573