summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDamon Chaplin <damon@ximian.com>2002-06-14 21:28:59 +0000
committerDamon Chaplin <damon@src.gnome.org>2002-06-14 21:28:59 +0000
commit5947b57b430e38997972331c7bce924dc56f9f66 (patch)
treea9fcc1711cb872de064b6db0133748f8e9d3e95e /src
parent1ae94a4976abd0ad42ec7f3c21e8071e6222de46 (diff)
downloadnautilus-5947b57b430e38997972331c7bce924dc56f9f66.tar.gz
new function to show the help file. (dialog_button_response_callback):
2002-06-14 Damon Chaplin <damon@ximian.com> * src/nautilus-preferences-dialog.c (preferences_show_help): new function to show the help file. (dialog_button_response_callback): handle the Help button and show the appropriate help file. (preferences_dialog_create): add a Help button. Based on patch from Satyajit Kanungo <satyajit.kanungo@wipro.com>. Fixes bug #83511.
Diffstat (limited to 'src')
-rw-r--r--src/nautilus-preferences-dialog.c72
1 files changed, 71 insertions, 1 deletions
diff --git a/src/nautilus-preferences-dialog.c b/src/nautilus-preferences-dialog.c
index 229a676bb..35c323755 100644
--- a/src/nautilus-preferences-dialog.c
+++ b/src/nautilus-preferences-dialog.c
@@ -33,8 +33,12 @@
#include <eel/eel-preferences-box.h>
#include <gtk/gtkdialog.h>
#include <gtk/gtksignal.h>
+#include <gtk/gtkmessagedialog.h>
+#include <gtk/gtkstock.h>
#include <libgnome/gnome-i18n.h>
#include <libgnome/gnome-util.h>
+#include <libgnome/gnome-help.h>
+#include <eel/eel-string.h>
/*
* This file contains the description of the preferences dialog in
@@ -341,11 +345,74 @@ dialog_delete_event_callback (GtkWidget *widget,
}
static void
+preferences_show_help (GtkWindow *parent,
+ char const *helpfile,
+ char const *sect_id)
+{
+ GError *error = NULL;
+ GtkWidget *dialog;
+
+ g_return_if_fail (helpfile != NULL);
+ g_return_if_fail (sect_id != NULL);
+
+ gnome_help_display_desktop (NULL,
+ "user-guide",
+ helpfile, sect_id, &error);
+
+ if (error) {
+ dialog = gtk_message_dialog_new (GTK_WINDOW (parent),
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_ERROR,
+ GTK_BUTTONS_CLOSE,
+ _("There was an error displaying help: %s"),
+ error->message);
+
+ g_signal_connect (G_OBJECT (dialog),
+ "response", G_CALLBACK (gtk_widget_destroy),
+ NULL);
+ gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE);
+ gtk_widget_show (dialog);
+ g_error_free (error);
+ }
+}
+
+
+
+static void
dialog_button_response_callback (GtkDialog *dialog,
int response_id,
gpointer callback_data)
{
- gtk_widget_hide (GTK_WIDGET (dialog));
+ EelPreferencesBox *preferences_box;
+ char *active_pane;
+
+ if (response_id == GTK_RESPONSE_HELP) {
+ preferences_box = eel_preferences_dialog_get_box (GTK_WINDOW (dialog));
+ active_pane = eel_preferences_box_get_active_pane (preferences_box);
+
+ if (eel_str_is_equal (active_pane, "View Defaults"))
+ preferences_show_help (GTK_WINDOW (dialog), "wgosnautilus.xml", "gosnautilus-438");
+ else if (eel_str_is_equal (active_pane, "Appearance"))
+ preferences_show_help (GTK_WINDOW (dialog), "wgosnautilus.xml", "gosnautilus-54");
+ else if (eel_str_is_equal (active_pane, "Windows"))
+ preferences_show_help (GTK_WINDOW (dialog), "wgosnautilus.xml", "gosnautilus-55");
+ else if (eel_str_is_equal (active_pane, "Desktop & Trash"))
+ preferences_show_help (GTK_WINDOW (dialog), "wgosnautilus.xml", "gosnautilus-448");
+ else if (eel_str_is_equal (active_pane, "Icon & List Views"))
+ preferences_show_help (GTK_WINDOW (dialog), "wgosnautilus.xml", "gosnautilus-56");
+ else if (eel_str_is_equal (active_pane, "Icon Captions"))
+ preferences_show_help (GTK_WINDOW (dialog), "wgosnautilus.xml", "gosnautilus-439");
+ else if (eel_str_is_equal (active_pane, "Sidebar Panels"))
+ preferences_show_help (GTK_WINDOW (dialog), "wgosnautilus.xml", "gosnautilus-57");
+ else if (eel_str_is_equal (active_pane,"Navigation"))
+ preferences_show_help (GTK_WINDOW (dialog), "wgosnautilus.xml", "gosnautilus-59");
+ else if (eel_str_is_equal (active_pane, "Speed Tradeoffs"))
+ preferences_show_help (GTK_WINDOW (dialog), "wgosnautilus.xml", "gosnautilus-60");
+
+ g_free (active_pane);
+ } else {
+ gtk_widget_hide (GTK_WIDGET (dialog));
+ }
}
static GtkWidget *
@@ -358,6 +425,9 @@ preferences_dialog_create (void)
gtk_window_set_wmclass (GTK_WINDOW (dialog), "nautilus_preferences", "Nautilus");
+ gtk_dialog_add_button (GTK_DIALOG (dialog), GTK_STOCK_HELP,
+ GTK_RESPONSE_HELP);
+
g_signal_connect (dialog, "delete_event",
G_CALLBACK (dialog_delete_event_callback), dialog);
g_signal_connect (dialog, "response",