first steps towards using the User's Guide as Ethereal's help system
authorulfl <ulfl@f5534014-38df-0310-8fa8-9805f1628bb7>
Thu, 16 Sep 2004 22:07:03 +0000 (22:07 +0000)
committerulfl <ulfl@f5534014-38df-0310-8fa8-9805f1628bb7>
Thu, 16 Sep 2004 22:07:03 +0000 (22:07 +0000)
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@12021 f5534014-38df-0310-8fa8-9805f1628bb7

gtk/Makefile.nmake
gtk/about_dlg.c
gtk/about_dlg.h
gtk/capture_dlg.c
gtk/filter_dlg.c
gtk/help_dlg.c
gtk/help_dlg.h
gtk/main.c
gtk/menu.c

index eca004a5b72536f7c2c8dfa65a8e197e55700d7c..139f03b0f8e8b78facb2cb58972bfa3e3a406c9e 100644 (file)
@@ -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
 
index a98b37279ac653713b778161472ea824bc5299d7..f2bff7f274c6ae1c416f8f8407b46a50c7eb414e 100644 (file)
@@ -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();
-    }
-}
-
index 28a4bfbe1f927002c8ffe7908db75e33c433373d..00b53130d5d7f1f3876083881e54e015d2c2356f 100644 (file)
@@ -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__ */
index 310b00b8b428f5b8a3aa5e88bf889a965fc6d92c..501f05173f197aeb18c98034966cd09f593d7499 100644 (file)
@@ -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);
 
index 47d408411db7b904eda520996892db34f91be256..d59363e087acaa628be3a00679278cafb79d34fc 100644 (file)
@@ -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);
 
index 20d1ee1b52f01896c55402d6637720638e150446..71be7b46fe975f326e7a67fa9f7315fb85ad0dec 100644 (file)
@@ -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);
+}
+
index df06f21a6b52e1520adaad9c52f395e675036416..df316a816c68eedd790ce999dc45422f5aafc7a1 100644 (file)
@@ -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
index f3d418a528fc587a0cbb7e8132f92a95f0564f38..0bc5e720e16ec64618a4d7a8c34ed76428fd7f63 100644 (file)
 #include "follow_dlg.h"
 #include "font_utils.h"
 #include "about_dlg.h"
+#include "help_dlg.h"
 #include "decode_as_dlg.h"
 
 
index a6bb458cd420222a154fd54660e117fca8a25fee..8a2061ba479c2c7ab5edfcfe5d61dd287a18cd70 100644 (file)
@@ -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,