diff options
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/Makefile.nmake | 5 | ||||
-rw-r--r-- | gtk/help_dlg.c | 93 | ||||
-rw-r--r-- | gtk/help_dlg.h | 4 |
3 files changed, 75 insertions, 27 deletions
diff --git a/gtk/Makefile.nmake b/gtk/Makefile.nmake index e4a1bdce45..763ea1039a 100644 --- a/gtk/Makefile.nmake +++ b/gtk/Makefile.nmake @@ -11,7 +11,10 @@ CFLAGS=-DHAVE_CONFIG_H /I.. /I../wiretap $(GTK_CFLAGS) $(GNUTLS_CFLAGS) \ /I$(PCAP_DIR)\WPCAP\LIBPCAP /I$(PCAP_DIR)\WPCAP\LIBPCAP\bpf \ /I$(PCAP_DIR)\WPCAP\LIBPCAP\lbl \ /I$(PCAP_DIR)\include /I$(NET_SNMP_DIR)\include \ - /I$(NET_SNMP_DIR)\win32 /Zm800 -D_U_="" -D_NEED_VAR_IMPORT_ $(LOCAL_CFLAGS) + /I$(NET_SNMP_DIR)\win32 /Zm800 -D_U_="" -D_NEED_VAR_IMPORT_ $(LOCAL_CFLAGS) \ +!IFDEF HHC_DIR + /I$(HHC_DIR)\include -DHHC_DIR +!ENDIF CVARSDLL=-DWIN32 -DNULL=0 -D_MT -D_DLL diff --git a/gtk/help_dlg.c b/gtk/help_dlg.c index c57416a5ae..ca3c4e04ed 100644 --- a/gtk/help_dlg.c +++ b/gtk/help_dlg.c @@ -44,6 +44,13 @@ #include "webbrowser.h" #include "file_util.h" +#ifdef HHC_DIR +#include <windows.h> +#include <htmlhelp.h> +#include "epan/strutil.h" +#endif + + #define HELP_DIR "help" @@ -188,15 +195,12 @@ void help_dialog(void) gboolean topic_available(topic_action_e action) { #ifdef ETHEREAL_EUG_DIR - /* online: we have almost all pages available */ - switch(action) { - case(HELP_FILESET_DIALOG): - /* currently not available */ + if(action == HELP_CAPTURE_INTERFACES_DETAILS_DIALOG) { + /* page currently not existing in user's guide */ return FALSE; - break; - default: - return TRUE; } + /* online: we have almost all possible pages available */ + return TRUE; #else /* offline: we have only some pages available */ switch(action) { @@ -225,6 +229,27 @@ gboolean topic_available(topic_action_e action) { * Open the help dialog and show a specific help page. */ static void help_topic(const gchar *topic) { + +#ifdef HHC_DIR + HWND hw; + GString *url = g_string_new(""); + + g_string_append_printf(url, "%s\\user-guide.chm::/%s>Ethereal Help", + get_datafile_dir(), topic); + + hw = HtmlHelpW(NULL, + utf_8to16(url->str), + HH_DISPLAY_TOPIC, 0); + + if(hw == NULL) { + simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "Could not open help file: %s\\user-guide.chm", + get_datafile_dir()); + } + + g_string_free(url, TRUE /* free_segment */); + + return; +#else gchar *page_topic; GtkWidget *help_nb; GSList *help_page_ent; @@ -250,6 +275,7 @@ static void help_topic(const gchar *topic) { } page_num++; } +#endif /* topic page not found, default (first page) will be shown */ } @@ -298,6 +324,14 @@ void help_redraw(void) } +#ifdef HHC_DIR +#define ONLINE_HELP_CALL help_topic +#define ONLINE_HELP_PREFIX "eug_chm/" +#else +#define ONLINE_HELP_CALL browser_open_data_file +#define ONLINE_HELP_PREFIX "eug_html_chunked/" +#endif + static void topic_action(topic_action_e action) { @@ -348,58 +382,67 @@ topic_action(topic_action_e action) #ifdef ETHEREAL_EUG_DIR /* local help pages (User's Guide) */ case(HELP_CONTENT): - browser_open_data_file("eug_html_chunked/index.html"); + ONLINE_HELP_CALL(ONLINE_HELP_PREFIX "index.html"); break; case(HELP_CAPTURE_OPTIONS_DIALOG): - browser_open_data_file("eug_html_chunked/ChCapCaptureOptions.html"); + ONLINE_HELP_CALL(ONLINE_HELP_PREFIX "ChCapCaptureOptions.html"); break; case(HELP_CAPTURE_FILTERS_DIALOG): - browser_open_data_file("eug_html_chunked/ChWorkDefineFilterSection.html"); + ONLINE_HELP_CALL(ONLINE_HELP_PREFIX "ChWorkDefineFilterSection.html"); break; case(HELP_DISPLAY_FILTERS_DIALOG): - browser_open_data_file("eug_html_chunked/ChWorkDefineFilterSection.html"); + ONLINE_HELP_CALL(ONLINE_HELP_PREFIX "ChWorkDefineFilterSection.html"); break; case(HELP_COLORING_RULES_DIALOG): - browser_open_data_file("eug_html_chunked/ChCustColorizationSection.html"); + ONLINE_HELP_CALL(ONLINE_HELP_PREFIX "ChCustColorizationSection.html"); break; case(HELP_PRINT_DIALOG): - browser_open_data_file("eug_html_chunked/ChIOPrintSection.html"); + ONLINE_HELP_CALL(ONLINE_HELP_PREFIX "ChIOPrintSection.html"); break; case(HELP_FIND_DIALOG): - browser_open_data_file("eug_html_chunked/ChWorkFindPacketSection.html"); + ONLINE_HELP_CALL(ONLINE_HELP_PREFIX "ChWorkFindPacketSection.html"); break; case(HELP_GOTO_DIALOG): - browser_open_data_file("eug_html_chunked/ChWorkGoToPacketSection.html"); + ONLINE_HELP_CALL(ONLINE_HELP_PREFIX "ChWorkGoToPacketSection.html"); break; case(HELP_CAPTURE_INTERFACES_DIALOG): - browser_open_data_file("eug_html_chunked/ChCapInterfaceSection.html"); + ONLINE_HELP_CALL(ONLINE_HELP_PREFIX "ChCapInterfaceSection.html"); break; case(HELP_ENABLED_PROTOCOLS_DIALOG): - browser_open_data_file("eug_html_chunked/ChCustProtocolDissectionSection.html"); + ONLINE_HELP_CALL(ONLINE_HELP_PREFIX "ChCustProtocolDissectionSection.html"); break; case(HELP_DECODE_AS_DIALOG): - browser_open_data_file("eug_html_chunked/ChCustProtocolDissectionSection.html"); + ONLINE_HELP_CALL(ONLINE_HELP_PREFIX "ChCustProtocolDissectionSection.html"); break; case(HELP_DECODE_AS_SHOW_DIALOG): - browser_open_data_file("eug_html_chunked/ChCustProtocolDissectionSection.html"); + ONLINE_HELP_CALL(ONLINE_HELP_PREFIX "ChCustProtocolDissectionSection.html"); break; case(HELP_FOLLOW_TCP_STREAM_DIALOG): - browser_open_data_file("eug_html_chunked/ChAdvFollowTCPSection.html"); + ONLINE_HELP_CALL(ONLINE_HELP_PREFIX "ChAdvFollowTCPSection.html"); break; case(HELP_STATS_SUMMARY_DIALOG): - browser_open_data_file("eug_html_chunked/ChStatSummary.html"); + ONLINE_HELP_CALL(ONLINE_HELP_PREFIX "ChStatSummary.html"); break; case(HELP_STATS_PROTO_HIERARCHY_DIALOG): - browser_open_data_file("eug_html_chunked/ChStatHierarchy.html"); + ONLINE_HELP_CALL(ONLINE_HELP_PREFIX "ChStatHierarchy.html"); break; case(HELP_STATS_ENDPOINTS_DIALOG): - browser_open_data_file("eug_html_chunked/ChStatEndpoints.html"); + ONLINE_HELP_CALL(ONLINE_HELP_PREFIX "ChStatEndpoints.html"); break; case(HELP_STATS_CONVERSATIONS_DIALOG): - browser_open_data_file("eug_html_chunked/ChStatConversations.html"); + ONLINE_HELP_CALL(ONLINE_HELP_PREFIX "ChStatConversations.html"); break; case(HELP_STATS_IO_GRAPH_DIALOG): - browser_open_data_file("eug_html_chunked/ChStatIOGraphs.html"); + ONLINE_HELP_CALL(ONLINE_HELP_PREFIX "ChStatIOGraphs.html"); + break; + case(HELP_FILESET_DIALOG): + ONLINE_HELP_CALL(ONLINE_HELP_PREFIX "ChIOFileSetSection.html"); + break; + case(HELP_CAPTURE_INTERFACES_DETAILS_DIALOG): + ONLINE_HELP_CALL(ONLINE_HELP_PREFIX "ChCapInterfaceDetailsSection.html"); + break; + case(HELP_PREFERENCES_DIALOG): + ONLINE_HELP_CALL(ONLINE_HELP_PREFIX "ChCustPreferencesSection.html"); break; #else /* only some help pages are available for offline reading */ diff --git a/gtk/help_dlg.h b/gtk/help_dlg.h index 61d228f98a..a1702042f3 100644 --- a/gtk/help_dlg.h +++ b/gtk/help_dlg.h @@ -70,7 +70,9 @@ typedef enum { HELP_STATS_PROTO_HIERARCHY_DIALOG, HELP_STATS_ENDPOINTS_DIALOG, HELP_STATS_CONVERSATIONS_DIALOG, - HELP_STATS_IO_GRAPH_DIALOG + HELP_STATS_IO_GRAPH_DIALOG, + HELP_CAPTURE_INTERFACES_DETAILS_DIALOG, + HELP_PREFERENCES_DIALOG } topic_action_e; |