aboutsummaryrefslogtreecommitdiffstats
path: root/gtk
diff options
context:
space:
mode:
authorulfl <ulfl@f5534014-38df-0310-8fa8-9805f1628bb7>2004-09-16 22:07:03 +0000
committerulfl <ulfl@f5534014-38df-0310-8fa8-9805f1628bb7>2004-09-16 22:07:03 +0000
commit17b215c16f2c967ad2bf2a869d6423743cca10c7 (patch)
tree37a8333c93ba1215fdfcf24971d5dfe0b4e06cbd /gtk
parenta002bde3f1141c8a42840faf0698100e0e696740 (diff)
first steps towards using the User's Guide as Ethereal's help system
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@12021 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'gtk')
-rw-r--r--gtk/Makefile.nmake6
-rw-r--r--gtk/about_dlg.c52
-rw-r--r--gtk/about_dlg.h31
-rw-r--r--gtk/capture_dlg.c4
-rw-r--r--gtk/filter_dlg.c8
-rw-r--r--gtk/help_dlg.c79
-rw-r--r--gtk/help_dlg.h49
-rw-r--r--gtk/main.c1
-rw-r--r--gtk/menu.c26
9 files changed, 160 insertions, 96 deletions
diff --git a/gtk/Makefile.nmake b/gtk/Makefile.nmake
index eca004a5b7..139f03b0f8 100644
--- a/gtk/Makefile.nmake
+++ b/gtk/Makefile.nmake
@@ -15,8 +15,12 @@ CFLAGS=-DHAVE_CONFIG_H /I.. /I../wiretap $(GTK_CFLAGS) \
CVARSDLL=-DWIN32 -DNULL=0 -D_MT -D_DLL
+!IFDEF ETHEREAL_EUG_DIR
+EUG_CFLAGS=-DETHEREAL_EUG_DIR
+!ENDIF
+
.c.obj::
- $(CC) $(CVARSDLL) $(CFLAGS) -Fd.\ -c $<
+ $(CC) $(CVARSDLL) $(CFLAGS) $(EUG_CFLAGS) -Fd.\ -c $<
include Makefile.common
diff --git a/gtk/about_dlg.c b/gtk/about_dlg.c
index a98b37279a..f2bff7f274 100644
--- a/gtk/about_dlg.c
+++ b/gtk/about_dlg.c
@@ -39,7 +39,6 @@
#if GTK_MAJOR_VERSION >= 2 || GTK_MINOR_VERSION >= 3
#include "text_page.h"
#endif
-#include "webbrowser.h"
#include "svnversion.h"
@@ -358,54 +357,3 @@ about_ethereal_destroy_cb(GtkWidget *win _U_, gpointer user_data _U_)
}
-void
-url_onlinepage_cb( GtkWidget *widget _U_, gpointer data _U_, onlinepage_action_e action)
-{
- switch(action) {
- case(ONLINEPAGE_HOME):
- browser_open_url ("http://www.ethereal.com");
- break;
- case(ONLINEPAGE_DOWNLOAD):
- browser_open_url ("http://www.ethereal.com/download.html");
- break;
- case(ONLINEPAGE_USERGUIDE):
- browser_open_url ("http://www.ethereal.com/docs/user-guide");
- break;
- case(ONLINEPAGE_FAQ):
- browser_open_url ("http://www.ethereal.com/faq.html");
- break;
- case(ONLINEPAGE_SAMPLE):
- browser_open_url ("http://www.ethereal.com/sample");
- break;
- default:
- g_assert_not_reached();
- }
-}
-
-void
-url_localpage_cb( GtkWidget *w _U_, gpointer data _U_, localpage_action_e action)
-{
- switch(action) {
- case(LOCALPAGE_MAN_ETHEREAL):
- browser_open_data_file("ethereal.html");
- break;
- case(LOCALPAGE_MAN_ETHEREAL_FILTER):
- browser_open_data_file("ethereal-filter.html");
- break;
- case(LOCALPAGE_MAN_TETHEREAL):
- browser_open_data_file("tethereal.html");
- break;
- case(LOCALPAGE_MAN_MERGECAP):
- browser_open_data_file("mergecap.html");
- break;
- case(LOCALPAGE_MAN_EDITCAP):
- browser_open_data_file("editcap.html");
- break;
- case(LOCALPAGE_MAN_TEXT2PCAP):
- browser_open_data_file("text2pcap.html");
- break;
- default:
- g_assert_not_reached();
- }
-}
-
diff --git a/gtk/about_dlg.h b/gtk/about_dlg.h
index 28a4bfbe1f..00b53130d5 100644
--- a/gtk/about_dlg.h
+++ b/gtk/about_dlg.h
@@ -58,36 +58,5 @@ extern guint splash_destroy(GtkWidget *win);
*/
extern void about_ethereal_cb( GtkWidget *widget, gpointer data);
-typedef enum {
- ONLINEPAGE_HOME,
- ONLINEPAGE_USERGUIDE,
- ONLINEPAGE_FAQ,
- ONLINEPAGE_DOWNLOAD,
- ONLINEPAGE_SAMPLE
-} onlinepage_action_e;
-
-
-/** User requested one of the online pages by menu.
- *
- * @param widget parent widget (unused)
- * @param data unused
- */
-extern void url_onlinepage_cb( GtkWidget *widget, gpointer data, onlinepage_action_e action);
-
-typedef enum {
- LOCALPAGE_MAN_ETHEREAL,
- LOCALPAGE_MAN_ETHEREAL_FILTER,
- LOCALPAGE_MAN_TETHEREAL,
- LOCALPAGE_MAN_MERGECAP,
- LOCALPAGE_MAN_EDITCAP,
- LOCALPAGE_MAN_TEXT2PCAP
-} localpage_action_e;
-
-/** User requested one of the local html pages by menu.
- *
- * @param widget parent widget (unused)
- * @param data unused
- */
-extern void url_localpage_cb( GtkWidget *widget, gpointer data, localpage_action_e action);
#endif /* __ABOUT_DLG_H__ */
diff --git a/gtk/capture_dlg.c b/gtk/capture_dlg.c
index 310b00b8b4..501f05173f 100644
--- a/gtk/capture_dlg.c
+++ b/gtk/capture_dlg.c
@@ -1060,7 +1060,11 @@ capture_prep(void)
help_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_HELP);
gtk_tooltips_set_tip(tooltips, help_bt,
"Show help about capturing.", NULL);
+#ifdef ETHEREAL_EUG_DIR
+ SIGNAL_CONNECT(help_bt, "clicked", url_page_cb, HELP_CAPTURE_OPTIONS_DIALOG);
+#else
SIGNAL_CONNECT(help_bt, "clicked", help_topic_cb, "Capturing");
+#endif
gtk_widget_grab_default(ok_bt);
diff --git a/gtk/filter_dlg.c b/gtk/filter_dlg.c
index 47d408411d..d59363e087 100644
--- a/gtk/filter_dlg.c
+++ b/gtk/filter_dlg.c
@@ -614,9 +614,17 @@ filter_dialog_new(GtkWidget *button, GtkWidget *parent_filter_te,
help_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_HELP);
if (list == CFILTER_LIST) {
+#ifdef ETHEREAL_EUG_DIR
+ SIGNAL_CONNECT(help_bt, "clicked", url_page_cb, HELP_CAPTURE_FILTERS_DIALOG);
+#else
SIGNAL_CONNECT(help_bt, "clicked", help_topic_cb, "Capture Filters");
+#endif
} else {
+#ifdef ETHEREAL_EUG_DIR
+ SIGNAL_CONNECT(help_bt, "clicked", url_page_cb, HELP_DISPLAY_FILTERS_DIALOG);
+#else
SIGNAL_CONNECT(help_bt, "clicked", help_topic_cb, "Display Filters");
+#endif
}
gtk_tooltips_set_tip (tooltips, help_bt, ("Show topic specific help"), NULL);
diff --git a/gtk/help_dlg.c b/gtk/help_dlg.c
index 20d1ee1b52..71be7b46fe 100644
--- a/gtk/help_dlg.c
+++ b/gtk/help_dlg.c
@@ -41,6 +41,7 @@
#include "compat_macros.h"
#include "dlg_utils.h"
#include "simple_dialog.h"
+#include "webbrowser.h"
#define HELP_DIR "help"
@@ -258,3 +259,81 @@ void help_redraw(void)
}
}
}
+
+
+void
+url_page_action(url_page_action_e action)
+{
+ /* pages online at www.ethereal.com */
+ switch(action) {
+ case(ONLINEPAGE_HOME):
+ browser_open_url ("http://www.ethereal.com");
+ break;
+ case(ONLINEPAGE_DOWNLOAD):
+ browser_open_url ("http://www.ethereal.com/download.html");
+ break;
+ case(ONLINEPAGE_USERGUIDE):
+ browser_open_url ("http://www.ethereal.com/docs/user-guide");
+ break;
+ case(ONLINEPAGE_FAQ):
+ browser_open_url ("http://www.ethereal.com/faq.html");
+ break;
+ case(ONLINEPAGE_SAMPLE_FILES):
+ browser_open_url ("http://www.ethereal.com/sample");
+ break;
+
+ /* local manual pages */
+ case(LOCALPAGE_MAN_ETHEREAL):
+ browser_open_data_file("ethereal.html");
+ break;
+ case(LOCALPAGE_MAN_ETHEREAL_FILTER):
+ browser_open_data_file("ethereal-filter.html");
+ break;
+ case(LOCALPAGE_MAN_TETHEREAL):
+ browser_open_data_file("tethereal.html");
+ break;
+ case(LOCALPAGE_MAN_MERGECAP):
+ browser_open_data_file("mergecap.html");
+ break;
+ case(LOCALPAGE_MAN_EDITCAP):
+ browser_open_data_file("editcap.html");
+ break;
+ case(LOCALPAGE_MAN_TEXT2PCAP):
+ browser_open_data_file("text2pcap.html");
+ break;
+
+#ifdef ETHEREAL_EUG_DIR
+ /* local help pages (User's Guide) */
+ case(HELP_CONTENT):
+ browser_open_data_file("eug_html_chunked/index.html");
+ break;
+ case(HELP_CAPTURE_OPTIONS_DIALOG):
+ browser_open_data_file("eug_html_chunked/ChCapCaptureOptions.html");
+ break;
+ case(HELP_CAPTURE_FILTERS_DIALOG):
+ browser_open_data_file("eug_html_chunked/ChWorkDefineFilterSection.html");
+ break;
+ case(HELP_DISPLAY_FILTERS_DIALOG):
+ browser_open_data_file("eug_html_chunked/ChWorkDefineFilterSection.html");
+ break;
+#endif
+
+ default:
+ g_assert_not_reached();
+ }
+}
+
+
+void
+url_page_cb(GtkWidget *w _U_, url_page_action_e action)
+{
+ url_page_action(action);
+}
+
+
+void
+url_page_menu_cb( GtkWidget *w _U_, gpointer data _U_, url_page_action_e action)
+{
+ url_page_action(action);
+}
+
diff --git a/gtk/help_dlg.h b/gtk/help_dlg.h
index df06f21a6b..df316a816c 100644
--- a/gtk/help_dlg.h
+++ b/gtk/help_dlg.h
@@ -50,4 +50,53 @@ void help_topic_cb(GtkWidget *widget, gpointer topic);
/** Redraw all the text widgets, to use a new font. */
void help_redraw(void);
+typedef enum {
+ /* pages online at www.ethereal.com */
+ ONLINEPAGE_HOME,
+ ONLINEPAGE_USERGUIDE,
+ ONLINEPAGE_FAQ,
+ ONLINEPAGE_DOWNLOAD,
+ ONLINEPAGE_SAMPLE_FILES,
+
+ /* local manual pages */
+ LOCALPAGE_MAN_ETHEREAL = 100,
+ LOCALPAGE_MAN_ETHEREAL_FILTER,
+ LOCALPAGE_MAN_TETHEREAL,
+ LOCALPAGE_MAN_MERGECAP,
+ LOCALPAGE_MAN_EDITCAP,
+ LOCALPAGE_MAN_TEXT2PCAP,
+
+ /* local help pages (User's Guide) */
+#ifdef ETHEREAL_EUG_DIR
+ HELP_CONTENT = 200,
+ HELP_CAPTURE_OPTIONS_DIALOG,
+ HELP_CAPTURE_FILTERS_DIALOG,
+ HELP_DISPLAY_FILTERS_DIALOG
+#endif
+} url_page_action_e;
+
+
+/** User requested one of the html pages.
+ *
+ * @param action the page to show
+ */
+extern void
+url_page_action(url_page_action_e action);
+
+/** User requested one of the html pages by button click.
+ *
+ * @param widget parent widget (unused)
+ * @param action the page to show
+ */
+extern void
+url_page_cb(GtkWidget *w _U_, url_page_action_e action);
+
+/** User requested one of the html pages by menu.
+ *
+ * @param widget parent widget (unused)
+ * @param data unused
+ * @param action the page to show
+ */
+extern void url_page_menu_cb( GtkWidget *widget, gpointer data, url_page_action_e action);
+
#endif
diff --git a/gtk/main.c b/gtk/main.c
index f3d418a528..0bc5e720e1 100644
--- a/gtk/main.c
+++ b/gtk/main.c
@@ -133,6 +133,7 @@
#include "follow_dlg.h"
#include "font_utils.h"
#include "about_dlg.h"
+#include "help_dlg.h"
#include "decode_as_dlg.h"
diff --git a/gtk/menu.c b/gtk/menu.c
index a6bb458cd4..8a2061ba47 100644
--- a/gtk/menu.c
+++ b/gtk/menu.c
@@ -343,21 +343,23 @@ static GtkItemFactoryEntry menu_items[] =
ITEM_FACTORY_STOCK_ENTRY("/Help/_Contents", "F1", help_cb, 0, GTK_STOCK_HELP),
ITEM_FACTORY_ENTRY("/Help/_Supported Protocols", NULL, supported_cb, 0, NULL, NULL),
#if (GLIB_MAJOR_VERSION >= 2)
- /* currently, glib1.x can't start a webbrowser, see webbrowser.c for details */
+#ifdef ETHEREAL_EUG_DIR
+ ITEM_FACTORY_ENTRY("/Help/User's Guide", NULL, url_page_menu_cb, HELP_CONTENT, NULL, NULL),
+#endif
ITEM_FACTORY_ENTRY("/Help/Manual Pages", NULL, NULL, 0, "<Branch>", NULL),
- ITEM_FACTORY_ENTRY("/Help/Manual Pages/Ethereal", NULL, url_localpage_cb, LOCALPAGE_MAN_ETHEREAL, NULL, NULL),
- ITEM_FACTORY_ENTRY("/Help/Manual Pages/Ethereal Filter", NULL, url_localpage_cb, LOCALPAGE_MAN_ETHEREAL_FILTER, NULL, NULL),
+ ITEM_FACTORY_ENTRY("/Help/Manual Pages/Ethereal", NULL, url_page_menu_cb, LOCALPAGE_MAN_ETHEREAL, NULL, NULL),
+ ITEM_FACTORY_ENTRY("/Help/Manual Pages/Ethereal Filter", NULL, url_page_menu_cb, LOCALPAGE_MAN_ETHEREAL_FILTER, NULL, NULL),
ITEM_FACTORY_ENTRY("/Help/Manual Pages/<separator>", NULL, NULL, 0, "<Separator>", NULL),
- ITEM_FACTORY_ENTRY("/Help/Manual Pages/Tethereal", NULL, url_localpage_cb, LOCALPAGE_MAN_TETHEREAL, NULL, NULL),
- ITEM_FACTORY_ENTRY("/Help/Manual Pages/Mergecap", NULL, url_localpage_cb, LOCALPAGE_MAN_MERGECAP, NULL, NULL),
- ITEM_FACTORY_ENTRY("/Help/Manual Pages/Editcap", NULL, url_localpage_cb, LOCALPAGE_MAN_EDITCAP, NULL, NULL),
- ITEM_FACTORY_ENTRY("/Help/Manual Pages/Text2pcap", NULL, url_localpage_cb, LOCALPAGE_MAN_TEXT2PCAP, NULL, NULL),
+ ITEM_FACTORY_ENTRY("/Help/Manual Pages/Tethereal", NULL, url_page_menu_cb, LOCALPAGE_MAN_TETHEREAL, NULL, NULL),
+ ITEM_FACTORY_ENTRY("/Help/Manual Pages/Mergecap", NULL, url_page_menu_cb, LOCALPAGE_MAN_MERGECAP, NULL, NULL),
+ ITEM_FACTORY_ENTRY("/Help/Manual Pages/Editcap", NULL, url_page_menu_cb, LOCALPAGE_MAN_EDITCAP, NULL, NULL),
+ ITEM_FACTORY_ENTRY("/Help/Manual Pages/Text2pcap", NULL, url_page_menu_cb, LOCALPAGE_MAN_TEXT2PCAP, NULL, NULL),
ITEM_FACTORY_ENTRY("/Help/Ethereal Online", NULL, NULL, 0, "<Branch>", NULL),
- ITEM_FACTORY_STOCK_ENTRY("/Help/Ethereal Online/Home Page", NULL, url_onlinepage_cb, ONLINEPAGE_HOME, GTK_STOCK_HOME),
- ITEM_FACTORY_ENTRY("/Help/Ethereal Online/User's Guide", NULL, url_onlinepage_cb, ONLINEPAGE_USERGUIDE, NULL, NULL),
- ITEM_FACTORY_ENTRY("/Help/Ethereal Online/FAQ's", NULL, url_onlinepage_cb, ONLINEPAGE_FAQ, NULL, NULL),
- ITEM_FACTORY_ENTRY("/Help/Ethereal Online/Downloads", NULL, url_onlinepage_cb, ONLINEPAGE_DOWNLOAD, NULL, NULL),
- ITEM_FACTORY_ENTRY("/Help/Ethereal Online/Example Files", NULL, url_onlinepage_cb, ONLINEPAGE_SAMPLE, NULL, NULL),
+ ITEM_FACTORY_STOCK_ENTRY("/Help/Ethereal Online/Home Page", NULL, url_page_menu_cb, ONLINEPAGE_HOME, GTK_STOCK_HOME),
+ ITEM_FACTORY_ENTRY("/Help/Ethereal Online/User's Guide", NULL, url_page_menu_cb, ONLINEPAGE_USERGUIDE, NULL, NULL),
+ ITEM_FACTORY_ENTRY("/Help/Ethereal Online/FAQ's", NULL, url_page_menu_cb, ONLINEPAGE_FAQ, NULL, NULL),
+ ITEM_FACTORY_ENTRY("/Help/Ethereal Online/Downloads", NULL, url_page_menu_cb, ONLINEPAGE_DOWNLOAD, NULL, NULL),
+ ITEM_FACTORY_ENTRY("/Help/Ethereal Online/Example Files", NULL, url_page_menu_cb, ONLINEPAGE_SAMPLE_FILES, NULL, NULL),
#endif
ITEM_FACTORY_ENTRY("/Help/<separator>", NULL, NULL, 0, "<Separator>", NULL),
ITEM_FACTORY_ENTRY("/Help/_About Ethereal", NULL, about_ethereal_cb,