diff options
Diffstat (limited to 'widgets')
-rw-r--r-- | widgets/misc/ChangeLog | 6 | ||||
-rw-r--r-- | widgets/misc/e-multi-config-dialog.c | 65 |
2 files changed, 15 insertions, 56 deletions
diff --git a/widgets/misc/ChangeLog b/widgets/misc/ChangeLog index 7127146d30..015432eb1d 100644 --- a/widgets/misc/ChangeLog +++ b/widgets/misc/ChangeLog @@ -1,5 +1,11 @@ 2002-03-12 Christopher James Lahey <clahey@ximian.com> + * e-multi-config-dialog.c: Removed Page struct. + (e_multi_config_dialog_add_page): Select the initial row after + appending to the model. + +2002-03-12 Christopher James Lahey <clahey@ximian.com> + * e-multi-config-dialog.c (init): Use Use e_table_memory_store instead of e_table_memory_callbacks. Use e_cell_vbox to include a pixbuf cell and a text cell. diff --git a/widgets/misc/e-multi-config-dialog.c b/widgets/misc/e-multi-config-dialog.c index df773f90f1..59b008f378 100644 --- a/widgets/misc/e-multi-config-dialog.c +++ b/widgets/misc/e-multi-config-dialog.c @@ -41,13 +41,6 @@ static GnomeDialogClass *parent_class = NULL; -struct _Page { - char *title; - char *description; - GdkPixbuf *icon; - EConfigPage *page_widget; -}; -typedef struct _Page Page; struct _EMultiConfigDialogPrivate { GSList *pages; @@ -106,38 +99,6 @@ update_buttons (EMultiConfigDialog *dialog) /* Page handling. */ -static Page * -page_new (const char *title, - const char *description, - GdkPixbuf *icon, - EConfigPage *page_widget) -{ - Page *new; - - new = g_new (Page, 1); - new->title = g_strdup (title); - new->description = g_strdup (description); - new->icon = icon; - new->page_widget = page_widget; - - if (icon != NULL) - gdk_pixbuf_ref (icon); - - return new; -} - -static void -page_free (Page *page) -{ - g_free (page->title); - g_free (page->description); - - if (page->icon != NULL) - gdk_pixbuf_unref (page->icon); - - g_free (page); -} - static GtkWidget * create_page_container (const char *description, GtkWidget *widget) @@ -201,12 +162,10 @@ do_apply (EMultiConfigDialog *dialog) priv = dialog->priv; for (p = priv->pages; p != NULL; p = p->next) { - const Page *page; - - page = (const Page *) p->data; + EConfigPage *page_widget = p->data; - if (! e_config_page_is_applied (page->page_widget)) { - e_config_page_apply (page->page_widget); + if (! e_config_page_is_applied (page_widget)) { + e_config_page_apply (page_widget); priv->num_unapplied --; } } @@ -249,13 +208,10 @@ impl_destroy (GtkObject *object) { EMultiConfigDialog *dialog; EMultiConfigDialogPrivate *priv; - GSList *p; dialog = E_MULTI_CONFIG_DIALOG (object); priv = dialog->priv; - for (p = priv->pages; p != NULL; p = p->next) - page_free ((Page *) p->data); g_slist_free (priv->pages); g_free (priv); @@ -411,7 +367,6 @@ e_multi_config_dialog_add_page (EMultiConfigDialog *dialog, EConfigPage *page_widget) { EMultiConfigDialogPrivate *priv; - Page *new_page; g_return_if_fail (E_IS_MULTI_CONFIG_DIALOG (dialog)); g_return_if_fail (title != NULL); @@ -420,9 +375,13 @@ e_multi_config_dialog_add_page (EMultiConfigDialog *dialog, priv = dialog->priv; - new_page = page_new (title, description, icon, page_widget); + priv->pages = g_slist_append (priv->pages, page_widget); - priv->pages = g_slist_append (priv->pages, new_page); + e_table_memory_store_insert_list (E_TABLE_MEMORY_STORE (priv->list_e_table_model), -1, NULL, title, icon); + + gtk_notebook_append_page (GTK_NOTEBOOK (priv->notebook), + create_page_container (description, GTK_WIDGET (page_widget)), + NULL); if (priv->pages->next == NULL) { ETable *table; @@ -434,12 +393,6 @@ e_multi_config_dialog_add_page (EMultiConfigDialog *dialog, e_selection_model_select_all (e_table_get_selection_model (table)); } - e_table_memory_store_insert_list (E_TABLE_MEMORY_STORE (priv->list_e_table_model), -1, NULL, title, icon); - - gtk_notebook_append_page (GTK_NOTEBOOK (priv->notebook), - create_page_container (new_page->description, GTK_WIDGET (page_widget)), - NULL); - if (! e_config_page_is_applied (page_widget)) priv->num_unapplied ++; |