diff audacious/prefswin.c @ 1186:d7848ff5bbe5 trunk

[svn] - prefswin_page_destroy() code, example will be added to the scrobbler plugin momentarily
author nenolod
date Sun, 11 Jun 2006 23:35:05 -0700
parents 42d4b152c14d
children 35dc5d2a1675
line wrap: on
line diff
--- a/audacious/prefswin.c	Sun Jun 11 23:19:33 2006 -0700
+++ b/audacious/prefswin.c	Sun Jun 11 23:35:05 2006 -0700
@@ -2350,6 +2350,7 @@
         return -1;
     }
 
+    /* Make sure the widgets are visible. */
     gtk_widget_show(container);
     id = gtk_notebook_append_page(GTK_NOTEBOOK(category_notebook), container, NULL);
 
@@ -2370,3 +2371,36 @@
 
     return id;
 }
+
+void
+prefswin_page_destroy(gint id)
+{
+    GtkTreeModel *model;
+    GtkTreeIter iter;
+    GtkTreeView *treeview = GTK_TREE_VIEW(category_treeview);
+    gboolean ret;
+
+    if (category_notebook == NULL || treeview == NULL)
+        return;
+
+    gtk_notebook_remove_page(GTK_NOTEBOOK(category_notebook), id);
+
+    model = gtk_tree_view_get_model(treeview);
+
+    if (model == NULL)
+        return;
+
+    ret = gtk_tree_model_get_iter_first(model, &iter);
+
+    while (ret == TRUE)
+    {
+        gint index = -1;
+
+        gtk_tree_model_get(model, &iter, CATEGORY_VIEW_COL_ID, &index, -1);
+
+        if (index == id)
+            gtk_list_store_remove(GTK_LIST_STORE(model), &iter);
+
+        ret = gtk_tree_model_iter_next(model, &iter);
+    }
+}