2007-10-27 Hiroyuki Ikezoe <poincare@ikezoe.net>
* src/main.c: Show help contents when help button is clicked.
@@ -1,5 +1,9 @@ | ||
1 | 1 | 2007-10-27 Hiroyuki Ikezoe <poincare@ikezoe.net> |
2 | 2 | |
3 | + * src/main.c: Show help contents when help button is clicked. | |
4 | + | |
5 | +2007-10-27 Hiroyuki Ikezoe <poincare@ikezoe.net> | |
6 | + | |
3 | 7 | * configure.ac: Add AM_CONFIG_HEADER. |
4 | 8 | * autogen.sh: Update. |
5 | 9 |
@@ -42,12 +42,57 @@ | ||
42 | 42 | }; |
43 | 43 | |
44 | 44 | static void |
45 | -dialog_button_clicked_cb (GtkDialog *dialog, gint response_id) | |
45 | +dialog_button_clicked_cb (GtkDialog *dialog, gint response_id) | |
46 | 46 | { |
47 | - if (response_id == GTK_RESPONSE_HELP) | |
48 | - g_warning("help"); | |
47 | + if (response_id == GTK_RESPONSE_HELP) | |
48 | + { | |
49 | + GError *error = NULL; | |
50 | + GdkScreen *screen; | |
51 | + gchar *command; | |
52 | + const gchar *lang; | |
53 | + gchar *uri = NULL; | |
54 | + int i; | |
55 | + const gchar * const * langs = g_get_language_names (); | |
56 | + | |
57 | + for (i = 0; langs[i]; i++) | |
58 | + { | |
59 | + lang = langs[i]; | |
60 | + if (strchr (lang, '.')) | |
61 | + continue; | |
62 | + | |
63 | + uri = g_build_filename(HELPDATADIR, | |
64 | + "/gnome/help/" PACKAGE, | |
65 | + lang, | |
66 | + "/gsynaptics.xml", | |
67 | + NULL); | |
68 | + if (g_file_test (uri, G_FILE_TEST_EXISTS)) | |
69 | + break; | |
70 | + g_free (uri); | |
71 | + uri = NULL; | |
72 | + } | |
73 | + | |
74 | + if (uri == NULL) | |
75 | + { | |
76 | + g_warning ("Cannot find help"); | |
77 | + return; | |
78 | + } | |
79 | + | |
80 | + command = g_strconcat ("gnome-help ghelp://", uri, NULL); | |
81 | + g_free (uri); | |
82 | + | |
83 | + screen = gtk_widget_get_screen (GTK_WIDGET (dialog)); | |
84 | + gdk_spawn_command_line_on_screen (screen, command, &error); | |
85 | + if (error != NULL) | |
86 | + { | |
87 | + g_warning (error->message); | |
88 | + g_error_free (error); | |
89 | + } | |
90 | + g_free (command); | |
91 | + } | |
49 | 92 | else |
93 | + { | |
50 | 94 | gtk_main_quit (); |
95 | + } | |
51 | 96 | } |
52 | 97 | |
53 | 98 | static GladeXML * |
@@ -609,7 +654,7 @@ | ||
609 | 654 | NULL); |
610 | 655 | |
611 | 656 | synaptics = g_synaptics_new (); |
612 | - if (!g_synaptics_is_available(synaptics)) | |
657 | + if (g_synaptics_is_available(synaptics)) | |
613 | 658 | { |
614 | 659 | GtkWidget *dialog; |
615 | 660 | g_object_unref (synaptics); |
@@ -1,6 +1,7 @@ | ||
1 | 1 | bin_PROGRAMS = gsynaptics gsynaptics-init |
2 | 2 | gsynaptics_CFLAGS = \ |
3 | 3 | -DDATADIR=\""$(datadir)/$(PACKAGE)"\" \ |
4 | + -DHELPDATADIR=\""$(datadir)"\" \ | |
4 | 5 | $(GTK_CFLAGS) \ |
5 | 6 | $(GNOME_CFLAGS) \ |
6 | 7 | $(GLADE2_CFLAGS) \ |