diff options
author | ulfl <ulfl@f5534014-38df-0310-8fa8-9805f1628bb7> | 2004-09-16 22:07:03 +0000 |
---|---|---|
committer | ulfl <ulfl@f5534014-38df-0310-8fa8-9805f1628bb7> | 2004-09-16 22:07:03 +0000 |
commit | 17b215c16f2c967ad2bf2a869d6423743cca10c7 (patch) | |
tree | 37a8333c93ba1215fdfcf24971d5dfe0b4e06cbd /gtk | |
parent | a002bde3f1141c8a42840faf0698100e0e696740 (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.nmake | 6 | ||||
-rw-r--r-- | gtk/about_dlg.c | 52 | ||||
-rw-r--r-- | gtk/about_dlg.h | 31 | ||||
-rw-r--r-- | gtk/capture_dlg.c | 4 | ||||
-rw-r--r-- | gtk/filter_dlg.c | 8 | ||||
-rw-r--r-- | gtk/help_dlg.c | 79 | ||||
-rw-r--r-- | gtk/help_dlg.h | 49 | ||||
-rw-r--r-- | gtk/main.c | 1 | ||||
-rw-r--r-- | gtk/menu.c | 26 |
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, |