add some more online help functionality and help buttons at various dialog boxes, if a help page *is* available. However, the new help system needs a lot more work before completed.
svn path=/trunk/; revision=13152
This commit is contained in:
parent
13e90b72b3
commit
66ce7f3623
|
@ -1080,11 +1080,7 @@ 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
|
||||
SIGNAL_CONNECT(help_bt, "clicked", topic_cb, HELP_CAPTURE_OPTIONS_DIALOG);
|
||||
|
||||
gtk_widget_grab_default(ok_bt);
|
||||
|
||||
|
|
|
@ -62,6 +62,7 @@
|
|||
|
||||
#include "wtap.h"
|
||||
#include "main.h"
|
||||
#include "help_dlg.h"
|
||||
|
||||
|
||||
extern gboolean is_capture_in_progress(void);
|
||||
|
@ -298,7 +299,7 @@ capture_if_destroy_cb(GtkWidget *win _U_, gpointer user_data _U_)
|
|||
void
|
||||
capture_if_cb(GtkWidget *w _U_, gpointer d _U_)
|
||||
{
|
||||
GtkWidget *main_vb, *bbox, *close_bt;
|
||||
GtkWidget *main_vb, *bbox, *close_bt, *help_bt;
|
||||
|
||||
GtkWidget *if_tb;
|
||||
GtkWidget *if_lb;
|
||||
|
@ -507,13 +508,22 @@ capture_if_cb(GtkWidget *w _U_, gpointer d _U_)
|
|||
g_string_free(if_tool_str, TRUE);
|
||||
|
||||
/* Button row: close button */
|
||||
bbox = dlg_button_row_new(GTK_STOCK_CLOSE, NULL);
|
||||
if(topic_available(HELP_CAPTURE_INTERFACES_DIALOG)) {
|
||||
bbox = dlg_button_row_new(GTK_STOCK_CLOSE, GTK_STOCK_HELP, NULL);
|
||||
} else {
|
||||
bbox = dlg_button_row_new(GTK_STOCK_CLOSE, NULL);
|
||||
}
|
||||
gtk_box_pack_start(GTK_BOX(main_vb), bbox, FALSE, FALSE, 5);
|
||||
|
||||
close_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_CLOSE);
|
||||
window_set_cancel_button(cap_if_w, close_bt, window_cancel_button_cb);
|
||||
gtk_tooltips_set_tip(tooltips, close_bt, "Close this window.", NULL);
|
||||
|
||||
if(topic_available(HELP_CAPTURE_INTERFACES_DIALOG)) {
|
||||
help_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_HELP);
|
||||
SIGNAL_CONNECT(help_bt, "clicked", topic_cb, HELP_CAPTURE_INTERFACES_DIALOG);
|
||||
}
|
||||
|
||||
gtk_widget_grab_default(close_bt);
|
||||
|
||||
SIGNAL_CONNECT(cap_if_w, "delete_event", window_delete_event_cb, NULL);
|
||||
|
|
|
@ -47,6 +47,7 @@
|
|||
#include "file_dlg.h"
|
||||
#include "gtkglobals.h"
|
||||
#include <epan/prefs.h>
|
||||
#include "help_dlg.h"
|
||||
|
||||
static GtkWidget* colorize_dialog_new(char *filter);
|
||||
static void add_filter_to_list(gpointer filter_arg, gpointer list_arg);
|
||||
|
@ -200,6 +201,7 @@ colorize_dialog_new (char *filter)
|
|||
GtkWidget *color_apply;
|
||||
GtkWidget *color_save;
|
||||
GtkWidget *color_cancel;
|
||||
GtkWidget *color_help;
|
||||
|
||||
#if GTK_MAJOR_VERSION >= 2
|
||||
GtkListStore *store;
|
||||
|
@ -386,7 +388,11 @@ colorize_dialog_new (char *filter)
|
|||
|
||||
|
||||
/* Button row: OK and cancel buttons */
|
||||
button_ok_hbox = dlg_button_row_new(GTK_STOCK_OK, GTK_STOCK_APPLY, GTK_STOCK_SAVE, GTK_STOCK_CLOSE/*, GTK_STOCK_CANCEL*/, NULL);
|
||||
if(topic_available(HELP_COLORING_RULES_DIALOG)) {
|
||||
button_ok_hbox = dlg_button_row_new(GTK_STOCK_OK, GTK_STOCK_APPLY, GTK_STOCK_SAVE, GTK_STOCK_CLOSE, GTK_STOCK_HELP, NULL);
|
||||
} else {
|
||||
button_ok_hbox = dlg_button_row_new(GTK_STOCK_OK, GTK_STOCK_APPLY, GTK_STOCK_SAVE, GTK_STOCK_CLOSE/*, GTK_STOCK_CANCEL*/, NULL);
|
||||
}
|
||||
gtk_box_pack_start (GTK_BOX (dlg_vbox), button_ok_hbox, FALSE, FALSE, 5);
|
||||
|
||||
color_ok = OBJECT_GET_DATA(button_ok_hbox, GTK_STOCK_OK);
|
||||
|
@ -402,6 +408,12 @@ colorize_dialog_new (char *filter)
|
|||
window_set_cancel_button(color_win, color_cancel, color_cancel_cb);
|
||||
gtk_tooltips_set_tip (tooltips, color_cancel, ("Close this dialog but don't apply the color filter changes to the display"), NULL);
|
||||
|
||||
if(topic_available(HELP_COLORING_RULES_DIALOG)) {
|
||||
color_help = OBJECT_GET_DATA(button_ok_hbox, GTK_STOCK_HELP);
|
||||
gtk_tooltips_set_tip (tooltips, color_help, ("Get help about this dialog"), NULL);
|
||||
SIGNAL_CONNECT(color_help, "clicked", topic_cb, HELP_COLORING_RULES_DIALOG);
|
||||
}
|
||||
|
||||
gtk_widget_grab_default(color_ok);
|
||||
|
||||
/* signals and such */
|
||||
|
|
|
@ -48,13 +48,14 @@
|
|||
#include "image/clist_descend.xpm"
|
||||
#include "simple_dialog.h"
|
||||
#include "globals.h"
|
||||
#include "gtk/find_dlg.h"
|
||||
#include "find_dlg.h"
|
||||
#include "color.h"
|
||||
#include "gtk/color_dlg.h"
|
||||
#include "gtkglobals.h"
|
||||
#include "main.h"
|
||||
#include "ui_util.h"
|
||||
#include "dlg_utils.h"
|
||||
#include "help_dlg.h"
|
||||
|
||||
|
||||
#define GTK_MENU_FUNC(a) ((GtkItemFactoryCallback)(a))
|
||||
|
@ -1238,7 +1239,7 @@ init_conversation_table(gboolean hide_ports, char *table_name, char *tap_name, c
|
|||
char title[256];
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *bbox;
|
||||
GtkWidget *close_bt;
|
||||
GtkWidget *close_bt, *help_bt;
|
||||
gboolean ret;
|
||||
|
||||
|
||||
|
@ -1261,12 +1262,21 @@ init_conversation_table(gboolean hide_ports, char *table_name, char *tap_name, c
|
|||
}
|
||||
|
||||
/* Button row. */
|
||||
bbox = dlg_button_row_new(GTK_STOCK_CLOSE, NULL);
|
||||
if(topic_available(HELP_STATS_CONVERSATIONS_DIALOG)) {
|
||||
bbox = dlg_button_row_new(GTK_STOCK_CLOSE, GTK_STOCK_HELP, NULL);
|
||||
} else {
|
||||
bbox = dlg_button_row_new(GTK_STOCK_CLOSE, NULL);
|
||||
}
|
||||
gtk_box_pack_end(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
|
||||
|
||||
close_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_CLOSE);
|
||||
window_set_cancel_button(conversations->win, close_bt, window_cancel_button_cb);
|
||||
|
||||
if(topic_available(HELP_STATS_CONVERSATIONS_DIALOG)) {
|
||||
help_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_HELP);
|
||||
SIGNAL_CONNECT(help_bt, "clicked", topic_cb, HELP_STATS_CONVERSATIONS_DIALOG);
|
||||
}
|
||||
|
||||
SIGNAL_CONNECT(conversations->win, "delete_event", window_delete_event_cb, NULL);
|
||||
SIGNAL_CONNECT(conversations->win, "destroy", ct_win_destroy_cb, conversations);
|
||||
|
||||
|
@ -1385,7 +1395,7 @@ init_conversation_notebook_cb(GtkWidget *w _U_, gpointer d _U_)
|
|||
GtkWidget *vbox;
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *bbox;
|
||||
GtkWidget *close_bt;
|
||||
GtkWidget *close_bt, *help_bt;
|
||||
GtkWidget *win;
|
||||
GtkWidget *resolv_cb;
|
||||
int page;
|
||||
|
@ -1440,12 +1450,21 @@ init_conversation_notebook_cb(GtkWidget *w _U_, gpointer d _U_)
|
|||
SIGNAL_CONNECT(resolv_cb, "toggled", ct_resolve_toggle_dest, pages);
|
||||
|
||||
/* Button row. */
|
||||
bbox = dlg_button_row_new(GTK_STOCK_CLOSE, NULL);
|
||||
if(topic_available(HELP_STATS_CONVERSATIONS_DIALOG)) {
|
||||
bbox = dlg_button_row_new(GTK_STOCK_CLOSE, GTK_STOCK_HELP, NULL);
|
||||
} else {
|
||||
bbox = dlg_button_row_new(GTK_STOCK_CLOSE, NULL);
|
||||
}
|
||||
gtk_box_pack_end(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
|
||||
|
||||
close_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_CLOSE);
|
||||
window_set_cancel_button(win, close_bt, window_cancel_button_cb);
|
||||
|
||||
if(topic_available(HELP_STATS_CONVERSATIONS_DIALOG)) {
|
||||
help_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_HELP);
|
||||
SIGNAL_CONNECT(help_bt, "clicked", topic_cb, HELP_STATS_CONVERSATIONS_DIALOG);
|
||||
}
|
||||
|
||||
SIGNAL_CONNECT(win, "delete_event", window_delete_event_cb, NULL);
|
||||
SIGNAL_CONNECT(win, "destroy", ct_win_destroy_notebook_cb, pages);
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#include <epan/epan_dissect.h>
|
||||
#include "compat_macros.h"
|
||||
#include "decode_as_dcerpc.h"
|
||||
#include "help_dlg.h"
|
||||
|
||||
#undef DEBUG
|
||||
|
||||
|
@ -520,7 +521,7 @@ decode_show_destroy_cb (GtkWidget *win _U_, gpointer user_data _U_)
|
|||
void
|
||||
decode_show_cb (GtkWidget * w _U_, gpointer data _U_)
|
||||
{
|
||||
GtkWidget *main_vb, *bbox, *ok_bt, *clear_bt, *scrolled_window;
|
||||
GtkWidget *main_vb, *bbox, *ok_bt, *clear_bt, *help_bt, *scrolled_window;
|
||||
gchar *titles[E_LIST_D_COLUMNS] = {
|
||||
"Table", "Value", "Initial", "Current"
|
||||
};
|
||||
|
@ -603,7 +604,11 @@ decode_show_cb (GtkWidget * w _U_, gpointer data _U_)
|
|||
}
|
||||
|
||||
/* Button row */
|
||||
bbox = dlg_button_row_new(GTK_STOCK_OK, GTK_STOCK_CLEAR, NULL);
|
||||
if(topic_available(HELP_DECODE_AS_SHOW_DIALOG)) {
|
||||
bbox = dlg_button_row_new(GTK_STOCK_OK, GTK_STOCK_CLEAR, GTK_STOCK_HELP, NULL);
|
||||
} else {
|
||||
bbox = dlg_button_row_new(GTK_STOCK_OK, GTK_STOCK_CLEAR, NULL);
|
||||
}
|
||||
gtk_box_pack_start(GTK_BOX(main_vb), bbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show(bbox);
|
||||
|
||||
|
@ -613,6 +618,11 @@ decode_show_cb (GtkWidget * w _U_, gpointer data _U_)
|
|||
clear_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_CLEAR);
|
||||
SIGNAL_CONNECT(clear_bt, "clicked", decode_show_clear_cb, decode_show_w);
|
||||
|
||||
if(topic_available(HELP_DECODE_AS_SHOW_DIALOG)) {
|
||||
help_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_HELP);
|
||||
SIGNAL_CONNECT(help_bt, "clicked", topic_cb, HELP_DECODE_AS_SHOW_DIALOG);
|
||||
}
|
||||
|
||||
/* set ok as default, this button won't change anything */
|
||||
window_set_cancel_button(decode_show_w, ok_bt, NULL);
|
||||
|
||||
|
@ -1858,7 +1868,7 @@ decode_add_notebook (GtkWidget *format_hb)
|
|||
void
|
||||
decode_as_cb (GtkWidget * w _U_, gpointer data _U_)
|
||||
{
|
||||
GtkWidget *main_vb, *format_hb, *bbox, *ok_bt, *close_bt, *button;
|
||||
GtkWidget *main_vb, *format_hb, *bbox, *ok_bt, *close_bt, *help_bt, *button;
|
||||
GtkWidget *button_vb, *apply_bt;
|
||||
GtkTooltips *tooltips = gtk_tooltips_new();
|
||||
|
||||
|
@ -1904,7 +1914,11 @@ decode_as_cb (GtkWidget * w _U_, gpointer data _U_)
|
|||
}
|
||||
|
||||
/* Button row */
|
||||
bbox = dlg_button_row_new(GTK_STOCK_OK, GTK_STOCK_APPLY, GTK_STOCK_CLOSE, NULL);
|
||||
if(topic_available(HELP_DECODE_AS_DIALOG)) {
|
||||
bbox = dlg_button_row_new(GTK_STOCK_OK, GTK_STOCK_APPLY, GTK_STOCK_CLOSE, GTK_STOCK_HELP, NULL);
|
||||
} else {
|
||||
bbox = dlg_button_row_new(GTK_STOCK_OK, GTK_STOCK_APPLY, GTK_STOCK_CLOSE, NULL);
|
||||
}
|
||||
gtk_box_pack_start(GTK_BOX(main_vb), bbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show(bbox);
|
||||
|
||||
|
@ -1924,6 +1938,11 @@ decode_as_cb (GtkWidget * w _U_, gpointer data _U_)
|
|||
gtk_tooltips_set_tip(tooltips, close_bt,
|
||||
"Close the dialog, don't redissect packets.", NULL);
|
||||
|
||||
if(topic_available(HELP_DECODE_AS_DIALOG)) {
|
||||
help_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_HELP);
|
||||
SIGNAL_CONNECT(help_bt, "clicked", topic_cb, HELP_DECODE_AS_DIALOG);
|
||||
}
|
||||
|
||||
gtk_widget_grab_default(ok_bt);
|
||||
|
||||
SIGNAL_CONNECT(decode_w, "delete_event", decode_delete_cb, NULL);
|
||||
|
|
|
@ -614,17 +614,9 @@ 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
|
||||
SIGNAL_CONNECT(help_bt, "clicked", topic_cb, HELP_CAPTURE_FILTERS_DIALOG);
|
||||
} 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
|
||||
SIGNAL_CONNECT(help_bt, "clicked", topic_cb, HELP_DISPLAY_FILTERS_DIALOG);
|
||||
}
|
||||
gtk_tooltips_set_tip (tooltips, help_bt, ("Show topic specific help"), NULL);
|
||||
|
||||
|
|
|
@ -46,6 +46,7 @@
|
|||
#include <epan/prefs.h>
|
||||
#include "prefs_dlg.h"
|
||||
#include "keys.h"
|
||||
#include "help_dlg.h"
|
||||
|
||||
/* Capture callback data keys */
|
||||
#define E_FIND_FILT_KEY "find_filter_te"
|
||||
|
@ -113,7 +114,7 @@ find_frame_cb(GtkWidget *w _U_, gpointer d _U_)
|
|||
*string_opt_frame, *string_opt_vb,
|
||||
*case_cb, *combo_lb, *combo_cb,
|
||||
|
||||
*bbox, *ok_bt, *cancel_bt;
|
||||
*bbox, *ok_bt, *cancel_bt, *help_bt;
|
||||
GtkTooltips *tooltips;
|
||||
#if GTK_MAJOR_VERSION < 2
|
||||
GtkAccelGroup *accel_group;
|
||||
|
@ -325,7 +326,11 @@ find_frame_cb(GtkWidget *w _U_, gpointer d _U_)
|
|||
|
||||
|
||||
/* Button row */
|
||||
bbox = dlg_button_row_new(GTK_STOCK_FIND, GTK_STOCK_CANCEL, NULL);
|
||||
if(topic_available(HELP_FIND_DIALOG)) {
|
||||
bbox = dlg_button_row_new(GTK_STOCK_FIND, GTK_STOCK_CANCEL, GTK_STOCK_HELP, NULL);
|
||||
} else {
|
||||
bbox = dlg_button_row_new(GTK_STOCK_FIND, GTK_STOCK_CANCEL, NULL);
|
||||
}
|
||||
gtk_box_pack_start(GTK_BOX(main_vb), bbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show(bbox);
|
||||
|
||||
|
@ -335,6 +340,11 @@ find_frame_cb(GtkWidget *w _U_, gpointer d _U_)
|
|||
cancel_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_CANCEL);
|
||||
SIGNAL_CONNECT(cancel_bt, "clicked", find_frame_close_cb, find_frame_w);
|
||||
|
||||
if(topic_available(HELP_FIND_DIALOG)) {
|
||||
help_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_HELP);
|
||||
SIGNAL_CONNECT(help_bt, "clicked", topic_cb, HELP_FIND_DIALOG);
|
||||
}
|
||||
|
||||
/* Attach pointers to needed widgets to the capture prefs window/object */
|
||||
OBJECT_SET_DATA(find_frame_w, E_FIND_FILT_KEY, filter_text_box);
|
||||
OBJECT_SET_DATA(find_frame_w, E_FIND_BACKWARD_KEY, up_rb);
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
#include "dlg_utils.h"
|
||||
#include "compat_macros.h"
|
||||
#include "ui_util.h"
|
||||
#include "help_dlg.h"
|
||||
|
||||
/* Capture callback data keys */
|
||||
#define E_GOTO_FNUMBER_KEY "goto_fnumber_te"
|
||||
|
@ -48,7 +49,7 @@ void
|
|||
goto_frame_cb(GtkWidget *w _U_, gpointer d _U_)
|
||||
{
|
||||
GtkWidget *goto_frame_w, *main_vb, *fnumber_hb, *fnumber_lb, *fnumber_te,
|
||||
*bbox, *ok_bt, *cancel_bt;
|
||||
*bbox, *ok_bt, *cancel_bt, *help_bt;
|
||||
|
||||
goto_frame_w = dlg_window_new("Ethereal: Go To Packet");
|
||||
|
||||
|
@ -72,7 +73,11 @@ goto_frame_cb(GtkWidget *w _U_, gpointer d _U_)
|
|||
gtk_widget_show(fnumber_te);
|
||||
|
||||
/* Button row: OK and cancel buttons */
|
||||
bbox = dlg_button_row_new(GTK_STOCK_JUMP_TO, GTK_STOCK_CANCEL, NULL);
|
||||
if(topic_available(HELP_GOTO_DIALOG)) {
|
||||
bbox = dlg_button_row_new(GTK_STOCK_JUMP_TO, GTK_STOCK_CANCEL, GTK_STOCK_HELP, NULL);
|
||||
} else {
|
||||
bbox = dlg_button_row_new(GTK_STOCK_JUMP_TO, GTK_STOCK_CANCEL, NULL);
|
||||
}
|
||||
gtk_container_add(GTK_CONTAINER(main_vb), bbox);
|
||||
gtk_widget_show(bbox);
|
||||
|
||||
|
@ -82,6 +87,11 @@ goto_frame_cb(GtkWidget *w _U_, gpointer d _U_)
|
|||
cancel_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_CANCEL);
|
||||
window_set_cancel_button(goto_frame_w, cancel_bt, window_cancel_button_cb);
|
||||
|
||||
if(topic_available(HELP_GOTO_DIALOG)) {
|
||||
help_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_HELP);
|
||||
SIGNAL_CONNECT(help_bt, "clicked", topic_cb, HELP_GOTO_DIALOG);
|
||||
}
|
||||
|
||||
gtk_widget_grab_default(ok_bt);
|
||||
|
||||
/* Catch the "activate" signal on the frame number text entry, so that
|
||||
|
|
118
gtk/help_dlg.c
118
gtk/help_dlg.c
|
@ -99,7 +99,8 @@ static GtkWidget * help_page(const char *topic, const char *filename)
|
|||
/*
|
||||
* Create and show help dialog.
|
||||
*/
|
||||
void help_cb(GtkWidget *w _U_, gpointer data _U_)
|
||||
static
|
||||
void help_dialog(void)
|
||||
{
|
||||
GtkWidget *main_vb, *bbox, *help_nb, *close_bt, *label, *topic_vb;
|
||||
char line[4096+1]; /* XXX - size? */
|
||||
|
@ -180,23 +181,51 @@ void help_cb(GtkWidget *w _U_, gpointer data _U_)
|
|||
|
||||
gtk_widget_show_all(help_w);
|
||||
window_present(help_w);
|
||||
} /* help_cb */
|
||||
} /* help_dialog */
|
||||
|
||||
|
||||
gboolean topic_available(topic_action_e action) {
|
||||
|
||||
#ifdef ETHEREAL_EUG_DIR
|
||||
/* online: we have all pages available */
|
||||
return TRUE;
|
||||
#else
|
||||
/* offline: we have only some pages available */
|
||||
switch(action) {
|
||||
case(HELP_CONTENT):
|
||||
return TRUE;
|
||||
break;
|
||||
case(HELP_GETTING_STARTED):
|
||||
return TRUE;
|
||||
break;
|
||||
case(HELP_CAPTURE_OPTIONS_DIALOG):
|
||||
return TRUE;
|
||||
break;
|
||||
case(HELP_CAPTURE_FILTERS_DIALOG):
|
||||
return TRUE;
|
||||
break;
|
||||
case(HELP_DISPLAY_FILTERS_DIALOG):
|
||||
return TRUE;
|
||||
break;
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
* Open the help dialog and show a specific help page.
|
||||
*/
|
||||
|
||||
void help_topic_cb(GtkWidget *w _U_, gpointer data) {
|
||||
gchar *topic = data;
|
||||
void help_topic(gchar *topic) {
|
||||
gchar *page_topic;
|
||||
GtkWidget *help_nb;
|
||||
GSList *help_page_ent;
|
||||
gint page_num = 0;
|
||||
help_page_t *page;
|
||||
|
||||
|
||||
/* show help dialog, if not already opened */
|
||||
help_cb(NULL, NULL);
|
||||
help_dialog();
|
||||
|
||||
help_nb = OBJECT_GET_DATA(help_w, NOTEBOOK_KEY);
|
||||
|
||||
|
@ -261,8 +290,8 @@ void help_redraw(void)
|
|||
}
|
||||
|
||||
|
||||
void
|
||||
url_page_action(url_page_action_e action)
|
||||
static void
|
||||
topic_action(topic_action_e action)
|
||||
{
|
||||
/* pages online at www.ethereal.com */
|
||||
switch(action) {
|
||||
|
@ -319,6 +348,65 @@ url_page_action(url_page_action_e action)
|
|||
case(HELP_DISPLAY_FILTERS_DIALOG):
|
||||
browser_open_data_file("eug_html_chunked/ChWorkDefineFilterSection.html");
|
||||
break;
|
||||
case(HELP_COLORING_RULES_DIALOG):
|
||||
browser_open_data_file("eug_html_chunked/ChCustColorizationSection.html");
|
||||
break;
|
||||
case(HELP_PRINT_DIALOG):
|
||||
browser_open_data_file("eug_html_chunked/ChIOPrintSection.html");
|
||||
break;
|
||||
case(HELP_FIND_DIALOG):
|
||||
browser_open_data_file("eug_html_chunked/ChWorkFindPacketSection.html");
|
||||
break;
|
||||
case(HELP_GOTO_DIALOG):
|
||||
browser_open_data_file("eug_html_chunked/ChWorkGoToPacketSection.html");
|
||||
break;
|
||||
case(HELP_CAPTURE_INTERFACES_DIALOG):
|
||||
browser_open_data_file("eug_html_chunked/ChCapInterfaceSection.html");
|
||||
break;
|
||||
case(HELP_ENABLED_PROTOCOLS_DIALOG):
|
||||
browser_open_data_file("eug_html_chunked/ChCustProtocolDissectionSection.html");
|
||||
break;
|
||||
case(HELP_DECODE_AS_DIALOG):
|
||||
browser_open_data_file("eug_html_chunked/ChCustProtocolDissectionSection.html");
|
||||
break;
|
||||
case(HELP_DECODE_AS_SHOW_DIALOG):
|
||||
browser_open_data_file("eug_html_chunked/ChCustProtocolDissectionSection.html");
|
||||
break;
|
||||
case(HELP_FOLLOW_TCP_STREAM_DIALOG):
|
||||
browser_open_data_file("eug_html_chunked/ChAdvFollowTCPSection.html");
|
||||
break;
|
||||
case(HELP_STATS_SUMMARY_DIALOG):
|
||||
browser_open_data_file("eug_html_chunked/ChStatSummary.html");
|
||||
break;
|
||||
case(HELP_STATS_PROTO_HIERARCHY_DIALOG):
|
||||
browser_open_data_file("eug_html_chunked/ChStatHierarchy.html");
|
||||
break;
|
||||
case(HELP_STATS_ENDPOINTS_DIALOG):
|
||||
browser_open_data_file("eug_html_chunked/ChStatEndpoints.html");
|
||||
break;
|
||||
case(HELP_STATS_CONVERSATIONS_DIALOG):
|
||||
browser_open_data_file("eug_html_chunked/ChStatConversations.html");
|
||||
break;
|
||||
case(HELP_STATS_IO_GRAPH_DIALOG):
|
||||
browser_open_data_file("eug_html_chunked/ChStatIOGraphs.html");
|
||||
break;
|
||||
#else
|
||||
/* only some help pages are available for offline reading */
|
||||
case(HELP_CONTENT):
|
||||
help_topic("Overview");
|
||||
break;
|
||||
case(HELP_GETTING_STARTED):
|
||||
help_topic("Getting Started");
|
||||
break;
|
||||
case(HELP_CAPTURE_OPTIONS_DIALOG):
|
||||
help_topic("Capturing");
|
||||
break;
|
||||
case(HELP_CAPTURE_FILTERS_DIALOG):
|
||||
help_topic("Capture Filters");
|
||||
break;
|
||||
case(HELP_DISPLAY_FILTERS_DIALOG):
|
||||
help_topic("Display Filters");
|
||||
break;
|
||||
#endif
|
||||
|
||||
default:
|
||||
|
@ -327,16 +415,14 @@ url_page_action(url_page_action_e action)
|
|||
}
|
||||
|
||||
|
||||
void
|
||||
url_page_cb(GtkWidget *w _U_, url_page_action_e action)
|
||||
void
|
||||
topic_cb(GtkWidget *w _U_, topic_action_e action)
|
||||
{
|
||||
url_page_action(action);
|
||||
topic_action(action);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
url_page_menu_cb( GtkWidget *w _U_, gpointer data _U_, url_page_action_e action)
|
||||
{
|
||||
url_page_action(action);
|
||||
void
|
||||
topic_menu_cb(GtkWidget *w _U_, gpointer data _U_, topic_action_e action) {
|
||||
topic_action(action);
|
||||
}
|
||||
|
||||
|
|
|
@ -32,24 +32,6 @@
|
|||
* @ingroup dialog_group
|
||||
*/
|
||||
|
||||
/** User requested the "Help" dialog box by menu or toolbar.
|
||||
*
|
||||
* @param widget parent widget (unused)
|
||||
* @param data unused
|
||||
*/
|
||||
void help_cb(GtkWidget *widget, gpointer data);
|
||||
|
||||
/** Create a "Help" dialog box and start with a specific topic.
|
||||
* Will show the first page if topic is not found.
|
||||
*
|
||||
* @param widget parent widget (unused)
|
||||
* @param topic the topic to display (a string)
|
||||
*/
|
||||
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,
|
||||
|
@ -65,40 +47,54 @@ typedef enum {
|
|||
LOCALPAGE_MAN_TETHEREAL,
|
||||
LOCALPAGE_MAN_MERGECAP,
|
||||
LOCALPAGE_MAN_EDITCAP,
|
||||
LOCALPAGE_MAN_TEXT2PCAP
|
||||
LOCALPAGE_MAN_TEXT2PCAP,
|
||||
|
||||
/* local help pages (User's Guide) */
|
||||
#ifdef ETHEREAL_EUG_DIR
|
||||
,
|
||||
/* help pages (textfiles or local HTML User's Guide) */
|
||||
HELP_CONTENT = 200,
|
||||
HELP_GETTING_STARTED, /* currently unused */
|
||||
HELP_CAPTURE_OPTIONS_DIALOG,
|
||||
HELP_CAPTURE_FILTERS_DIALOG,
|
||||
HELP_DISPLAY_FILTERS_DIALOG
|
||||
#endif
|
||||
} url_page_action_e;
|
||||
HELP_DISPLAY_FILTERS_DIALOG,
|
||||
HELP_COLORING_RULES_DIALOG,
|
||||
HELP_PRINT_DIALOG,
|
||||
HELP_FIND_DIALOG,
|
||||
HELP_GOTO_DIALOG,
|
||||
HELP_CAPTURE_INTERFACES_DIALOG,
|
||||
HELP_ENABLED_PROTOCOLS_DIALOG,
|
||||
HELP_DECODE_AS_DIALOG,
|
||||
HELP_DECODE_AS_SHOW_DIALOG,
|
||||
HELP_FOLLOW_TCP_STREAM_DIALOG, /* currently unused */
|
||||
HELP_STATS_SUMMARY_DIALOG,
|
||||
HELP_STATS_PROTO_HIERARCHY_DIALOG,
|
||||
HELP_STATS_ENDPOINTS_DIALOG,
|
||||
HELP_STATS_CONVERSATIONS_DIALOG,
|
||||
HELP_STATS_IO_GRAPH_DIALOG
|
||||
} topic_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.
|
||||
/** Open a specific topic (create a "Help" dialog box or open a webpage).
|
||||
*
|
||||
* @param widget parent widget (unused)
|
||||
* @param action the page to show
|
||||
* @param topic the topic to display
|
||||
*/
|
||||
extern void
|
||||
url_page_cb(GtkWidget *widget _U_, url_page_action_e action);
|
||||
void topic_cb(GtkWidget *widget, topic_action_e topic);
|
||||
|
||||
/** User requested one of the html pages by menu.
|
||||
/** Open a specific topic called from a menu item.
|
||||
*
|
||||
* @param widget parent widget (unused)
|
||||
* @param data unused
|
||||
* @param action the page to show
|
||||
* @param data user_data (unused)
|
||||
* @param topic the topic to display
|
||||
*/
|
||||
extern void url_page_menu_cb( GtkWidget *widget, gpointer data, url_page_action_e action);
|
||||
void topic_menu_cb(GtkWidget *w _U_, gpointer data _U_, topic_action_e topic);
|
||||
|
||||
/** Check, if a specific topic is available.
|
||||
*
|
||||
* @param topic the topic to display
|
||||
* @return TRUE, if topic is available, FALSE if not
|
||||
*/
|
||||
gboolean topic_available(topic_action_e action);
|
||||
|
||||
/** Redraw all the help dialog text widgets, to use a new font. */
|
||||
void help_redraw(void);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -45,13 +45,14 @@
|
|||
#include "image/clist_descend.xpm"
|
||||
#include "simple_dialog.h"
|
||||
#include "globals.h"
|
||||
#include "gtk/find_dlg.h"
|
||||
#include "find_dlg.h"
|
||||
#include "color.h"
|
||||
#include "gtk/color_dlg.h"
|
||||
#include "gtkglobals.h"
|
||||
#include "main.h"
|
||||
#include "ui_util.h"
|
||||
#include "dlg_utils.h"
|
||||
#include "help_dlg.h"
|
||||
|
||||
|
||||
#define GTK_MENU_FUNC(a) ((GtkItemFactoryCallback)(a))
|
||||
|
@ -723,7 +724,7 @@ init_hostlist_table(gboolean hide_ports, char *table_name, char *tap_name, char
|
|||
char title[256];
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *bbox;
|
||||
GtkWidget *close_bt;
|
||||
GtkWidget *close_bt, *help_bt;
|
||||
gboolean ret;
|
||||
|
||||
|
||||
|
@ -746,12 +747,21 @@ init_hostlist_table(gboolean hide_ports, char *table_name, char *tap_name, char
|
|||
}
|
||||
|
||||
/* Button row. */
|
||||
bbox = dlg_button_row_new(GTK_STOCK_CLOSE, NULL);
|
||||
if(topic_available(HELP_STATS_ENDPOINTS_DIALOG)) {
|
||||
bbox = dlg_button_row_new(GTK_STOCK_CLOSE, GTK_STOCK_HELP, NULL);
|
||||
} else {
|
||||
bbox = dlg_button_row_new(GTK_STOCK_CLOSE, NULL);
|
||||
}
|
||||
gtk_box_pack_end(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
|
||||
|
||||
close_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_CLOSE);
|
||||
window_set_cancel_button(hosttable->win, close_bt, window_cancel_button_cb);
|
||||
|
||||
if(topic_available(HELP_STATS_ENDPOINTS_DIALOG)) {
|
||||
help_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_HELP);
|
||||
SIGNAL_CONNECT(help_bt, "clicked", topic_cb, HELP_STATS_ENDPOINTS_DIALOG);
|
||||
}
|
||||
|
||||
SIGNAL_CONNECT(hosttable->win, "delete_event", window_delete_event_cb, NULL);
|
||||
SIGNAL_CONNECT(hosttable->win, "destroy", hostlist_win_destroy_cb, hosttable);
|
||||
|
||||
|
@ -869,7 +879,7 @@ init_hostlist_notebook_cb(GtkWidget *w _U_, gpointer d _U_)
|
|||
GtkWidget *vbox;
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *bbox;
|
||||
GtkWidget *close_bt;
|
||||
GtkWidget *close_bt, *help_bt;
|
||||
GtkWidget *win;
|
||||
GtkWidget *resolv_cb;
|
||||
int page;
|
||||
|
@ -925,12 +935,21 @@ init_hostlist_notebook_cb(GtkWidget *w _U_, gpointer d _U_)
|
|||
SIGNAL_CONNECT(resolv_cb, "toggled", hostlist_resolve_toggle_dest, pages);
|
||||
|
||||
/* Button row. */
|
||||
bbox = dlg_button_row_new(GTK_STOCK_CLOSE, NULL);
|
||||
if(topic_available(HELP_STATS_ENDPOINTS_DIALOG)) {
|
||||
bbox = dlg_button_row_new(GTK_STOCK_CLOSE, GTK_STOCK_HELP, NULL);
|
||||
} else {
|
||||
bbox = dlg_button_row_new(GTK_STOCK_CLOSE, NULL);
|
||||
}
|
||||
gtk_box_pack_end(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
|
||||
|
||||
close_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_CLOSE);
|
||||
window_set_cancel_button(win, close_bt, window_cancel_button_cb);
|
||||
|
||||
if(topic_available(HELP_STATS_ENDPOINTS_DIALOG)) {
|
||||
help_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_HELP);
|
||||
SIGNAL_CONNECT(help_bt, "clicked", topic_cb, HELP_STATS_ENDPOINTS_DIALOG);
|
||||
}
|
||||
|
||||
SIGNAL_CONNECT(win, "delete_event", window_delete_event_cb, NULL);
|
||||
SIGNAL_CONNECT(win, "destroy", hostlist_win_destroy_notebook_cb, pages);
|
||||
|
||||
|
|
|
@ -52,6 +52,7 @@
|
|||
#include "compat_macros.h"
|
||||
#include "dlg_utils.h"
|
||||
#include "filter_dlg.h"
|
||||
#include "help_dlg.h"
|
||||
|
||||
void protect_thread_critical_region(void);
|
||||
void unprotect_thread_critical_region(void);
|
||||
|
@ -1871,7 +1872,8 @@ init_io_stat_window(io_stat_t *io)
|
|||
{
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *bt_close;
|
||||
GtkWidget *bbox;
|
||||
GtkWidget *close_bt, *help_bt;
|
||||
|
||||
/* create the main window */
|
||||
io->window=window_new(GTK_WINDOW_TOPLEVEL, "I/O Graphs");
|
||||
|
@ -1893,12 +1895,21 @@ init_io_stat_window(io_stat_t *io)
|
|||
|
||||
io_stat_set_title(io);
|
||||
|
||||
hbox = dlg_button_row_new(GTK_STOCK_CLOSE, NULL);
|
||||
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show(hbox);
|
||||
if(topic_available(HELP_STATS_IO_GRAPH_DIALOG)) {
|
||||
bbox = dlg_button_row_new(GTK_STOCK_CLOSE, GTK_STOCK_HELP, NULL);
|
||||
} else {
|
||||
bbox = dlg_button_row_new(GTK_STOCK_CLOSE, NULL);
|
||||
}
|
||||
gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show(bbox);
|
||||
|
||||
bt_close = OBJECT_GET_DATA(hbox, GTK_STOCK_CLOSE);
|
||||
window_set_cancel_button(io->window, bt_close, window_cancel_button_cb);
|
||||
close_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_CLOSE);
|
||||
window_set_cancel_button(io->window, close_bt, window_cancel_button_cb);
|
||||
|
||||
if(topic_available(HELP_STATS_IO_GRAPH_DIALOG)) {
|
||||
help_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_HELP);
|
||||
SIGNAL_CONNECT(help_bt, "clicked", topic_cb, HELP_STATS_IO_GRAPH_DIALOG);
|
||||
}
|
||||
|
||||
SIGNAL_CONNECT(io->window, "delete_event", window_delete_event_cb, NULL);
|
||||
|
||||
|
|
26
gtk/menu.c
26
gtk/menu.c
|
@ -344,27 +344,27 @@ static GtkItemFactoryEntry menu_items[] =
|
|||
ITEM_FACTORY_ENTRY("/Statistics/Endpoints", NULL,
|
||||
init_hostlist_notebook_cb, 0, NULL, NULL),
|
||||
ITEM_FACTORY_ENTRY("/_Help", NULL, NULL, 0, "<Branch>", NULL),
|
||||
ITEM_FACTORY_STOCK_ENTRY("/Help/_Contents", "F1", help_cb, 0, GTK_STOCK_HELP),
|
||||
ITEM_FACTORY_STOCK_ENTRY("/Help/_Contents", "F1", topic_menu_cb, HELP_CONTENT, GTK_STOCK_HELP),
|
||||
ITEM_FACTORY_ENTRY("/Help/_Supported Protocols", NULL, supported_cb, 0, NULL, NULL),
|
||||
#if (GLIB_MAJOR_VERSION >= 2)
|
||||
#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_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/Ethereal", NULL, topic_menu_cb, LOCALPAGE_MAN_ETHEREAL, NULL, NULL),
|
||||
ITEM_FACTORY_ENTRY("/Help/Manual Pages/Ethereal Filter", NULL, topic_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_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/Manual Pages/Tethereal", NULL, topic_menu_cb, LOCALPAGE_MAN_TETHEREAL, NULL, NULL),
|
||||
ITEM_FACTORY_ENTRY("/Help/Manual Pages/Mergecap", NULL, topic_menu_cb, LOCALPAGE_MAN_MERGECAP, NULL, NULL),
|
||||
ITEM_FACTORY_ENTRY("/Help/Manual Pages/Editcap", NULL, topic_menu_cb, LOCALPAGE_MAN_EDITCAP, NULL, NULL),
|
||||
ITEM_FACTORY_ENTRY("/Help/Manual Pages/Text2pcap", NULL, topic_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_page_menu_cb, ONLINEPAGE_HOME, GTK_STOCK_HOME),
|
||||
ITEM_FACTORY_ENTRY("/Help/Ethereal Online/Wiki", NULL, url_page_menu_cb, ONLINEPAGE_WIKI, NULL, NULL),
|
||||
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),
|
||||
ITEM_FACTORY_STOCK_ENTRY("/Help/Ethereal Online/Home Page", NULL, topic_menu_cb, ONLINEPAGE_HOME, GTK_STOCK_HOME),
|
||||
ITEM_FACTORY_ENTRY("/Help/Ethereal Online/Wiki", NULL, topic_menu_cb, ONLINEPAGE_WIKI, NULL, NULL),
|
||||
ITEM_FACTORY_ENTRY("/Help/Ethereal Online/User's Guide", NULL, topic_menu_cb, ONLINEPAGE_USERGUIDE, NULL, NULL),
|
||||
ITEM_FACTORY_ENTRY("/Help/Ethereal Online/FAQ's", NULL, topic_menu_cb, ONLINEPAGE_FAQ, NULL, NULL),
|
||||
ITEM_FACTORY_ENTRY("/Help/Ethereal Online/Downloads", NULL, topic_menu_cb, ONLINEPAGE_DOWNLOAD, NULL, NULL),
|
||||
ITEM_FACTORY_ENTRY("/Help/Ethereal Online/Example Files", NULL, topic_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,
|
||||
|
|
|
@ -48,6 +48,7 @@
|
|||
#endif
|
||||
#include "compat_macros.h"
|
||||
#include "range_utils.h"
|
||||
#include "help_dlg.h"
|
||||
|
||||
|
||||
/* dialog output action */
|
||||
|
@ -359,7 +360,7 @@ open_print_dialog(char *title, output_action_e action, print_args_t *args)
|
|||
GtkWidget *hex_cb;
|
||||
GtkWidget *sep, *formfeed_cb;
|
||||
|
||||
GtkWidget *bbox, *ok_bt, *cancel_bt;
|
||||
GtkWidget *bbox, *ok_bt, *cancel_bt, *help_bt;
|
||||
|
||||
GtkTooltips *tooltips;
|
||||
|
||||
|
@ -622,7 +623,11 @@ open_print_dialog(char *title, output_action_e action, print_args_t *args)
|
|||
|
||||
|
||||
/* Button row */
|
||||
bbox = dlg_button_row_new(action == output_action_print ? GTK_STOCK_PRINT : GTK_STOCK_OK, GTK_STOCK_CANCEL, NULL);
|
||||
if(topic_available(HELP_PRINT_DIALOG)) {
|
||||
bbox = dlg_button_row_new(action == output_action_print ? GTK_STOCK_PRINT : GTK_STOCK_OK, GTK_STOCK_CANCEL, GTK_STOCK_HELP, NULL);
|
||||
} else {
|
||||
bbox = dlg_button_row_new(action == output_action_print ? GTK_STOCK_PRINT : GTK_STOCK_OK, GTK_STOCK_CANCEL, NULL);
|
||||
}
|
||||
gtk_box_pack_start(GTK_BOX(main_vb), bbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show(bbox);
|
||||
|
||||
|
@ -654,6 +659,11 @@ open_print_dialog(char *title, output_action_e action, print_args_t *args)
|
|||
window_set_cancel_button(main_win, cancel_bt, window_cancel_button_cb);
|
||||
gtk_tooltips_set_tip (tooltips, cancel_bt, "Cancel and exit dialog", NULL);
|
||||
|
||||
if(topic_available(HELP_PRINT_DIALOG)) {
|
||||
help_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_HELP);
|
||||
SIGNAL_CONNECT(help_bt, "clicked", topic_cb, HELP_PRINT_DIALOG);
|
||||
}
|
||||
|
||||
gtk_widget_grab_default(ok_bt);
|
||||
|
||||
/* Catch the "activate" signal on the "Command" and "File" text entries,
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
#include "compat_macros.h"
|
||||
#include "disabled_protos.h"
|
||||
#include <epan/filesystem.h>
|
||||
#include "help_dlg.h"
|
||||
|
||||
static gboolean proto_delete_event_cb(GtkWidget *, GdkEvent *, gpointer);
|
||||
static void proto_ok_cb(GtkWidget *, gpointer);
|
||||
|
@ -219,7 +220,11 @@ proto_cb(GtkWidget *w _U_, gpointer data _U_)
|
|||
|
||||
|
||||
/* Button row */
|
||||
bbox = dlg_button_row_new(GTK_STOCK_OK, GTK_STOCK_APPLY, GTK_STOCK_SAVE, GTK_STOCK_CANCEL, NULL);
|
||||
if(topic_available(HELP_ENABLED_PROTOCOLS_DIALOG)) {
|
||||
bbox = dlg_button_row_new(GTK_STOCK_OK, GTK_STOCK_APPLY, GTK_STOCK_SAVE, GTK_STOCK_CANCEL, GTK_STOCK_HELP, NULL);
|
||||
} else {
|
||||
bbox = dlg_button_row_new(GTK_STOCK_OK, GTK_STOCK_APPLY, GTK_STOCK_SAVE, GTK_STOCK_CANCEL, NULL);
|
||||
}
|
||||
gtk_box_pack_start(GTK_BOX(main_vb), bbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show(bbox);
|
||||
|
||||
|
@ -236,6 +241,11 @@ proto_cb(GtkWidget *w _U_, gpointer data _U_)
|
|||
button = OBJECT_GET_DATA(bbox, GTK_STOCK_CANCEL);
|
||||
window_set_cancel_button(proto_w, button, proto_cancel_cb);
|
||||
|
||||
if(topic_available(HELP_ENABLED_PROTOCOLS_DIALOG)) {
|
||||
button = OBJECT_GET_DATA(bbox, GTK_STOCK_HELP);
|
||||
SIGNAL_CONNECT(button, "clicked", topic_cb, HELP_ENABLED_PROTOCOLS_DIALOG);
|
||||
}
|
||||
|
||||
SIGNAL_CONNECT(proto_w, "delete_event", proto_delete_event_cb, NULL);
|
||||
SIGNAL_CONNECT(proto_w, "destroy", proto_destroy_cb, NULL);
|
||||
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
#include "ui_util.h"
|
||||
#include "main.h"
|
||||
#include "compat_macros.h"
|
||||
#include "help_dlg.h"
|
||||
|
||||
#if GTK_MAJOR_VERSION < 2
|
||||
#define NUM_STAT_COLUMNS 8
|
||||
|
@ -312,7 +313,7 @@ void
|
|||
proto_hier_stats_cb(GtkWidget *w _U_, gpointer d _U_)
|
||||
{
|
||||
ph_stats_t *ps;
|
||||
GtkWidget *dlg, *ok_bt, *vbox, *bbox;
|
||||
GtkWidget *dlg, *ok_bt, *help_bt, *vbox, *bbox;
|
||||
|
||||
/* Get the statistics. */
|
||||
ps = ph_stats_new();
|
||||
|
@ -334,13 +335,22 @@ proto_hier_stats_cb(GtkWidget *w _U_, gpointer d _U_)
|
|||
ph_stats_free(ps);
|
||||
|
||||
/* Button row. */
|
||||
bbox = dlg_button_row_new(GTK_STOCK_OK, NULL);
|
||||
if(topic_available(HELP_STATS_PROTO_HIERARCHY_DIALOG)) {
|
||||
bbox = dlg_button_row_new(GTK_STOCK_OK, GTK_STOCK_HELP, NULL);
|
||||
} else {
|
||||
bbox = dlg_button_row_new(GTK_STOCK_OK, NULL);
|
||||
}
|
||||
gtk_box_pack_end(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show(bbox);
|
||||
|
||||
ok_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_OK);
|
||||
window_set_cancel_button(dlg, ok_bt, window_cancel_button_cb);
|
||||
|
||||
if(topic_available(HELP_STATS_PROTO_HIERARCHY_DIALOG)) {
|
||||
help_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_HELP);
|
||||
SIGNAL_CONNECT(help_bt, "clicked", topic_cb, HELP_STATS_PROTO_HIERARCHY_DIALOG);
|
||||
}
|
||||
|
||||
SIGNAL_CONNECT(dlg, "delete_event", window_delete_event_cb, NULL);
|
||||
|
||||
gtk_widget_show_all(dlg);
|
||||
|
|
|
@ -38,6 +38,7 @@
|
|||
#include "dlg_utils.h"
|
||||
#include "ui_util.h"
|
||||
#include "compat_macros.h"
|
||||
#include "help_dlg.h"
|
||||
|
||||
#define SUM_STR_MAX 1024
|
||||
#define FILTER_SNIP_LEN 50
|
||||
|
@ -86,7 +87,7 @@ summary_open_cb(GtkWidget *w _U_, gpointer d _U_)
|
|||
{
|
||||
summary_tally summary;
|
||||
GtkWidget *sum_open_w,
|
||||
*main_vb, *bbox, *close_bt;
|
||||
*main_vb, *bbox, *close_bt, *help_bt;
|
||||
GtkWidget *table;
|
||||
GtkWidget *list;
|
||||
char *titles[] = { "Traffic", "Captured", "Displayed" };
|
||||
|
@ -345,12 +346,21 @@ summary_open_cb(GtkWidget *w _U_, gpointer d _U_)
|
|||
|
||||
|
||||
/* Button row. */
|
||||
bbox = dlg_button_row_new(GTK_STOCK_CLOSE, NULL);
|
||||
if(topic_available(HELP_STATS_SUMMARY_DIALOG)) {
|
||||
bbox = dlg_button_row_new(GTK_STOCK_CLOSE, GTK_STOCK_HELP, NULL);
|
||||
} else {
|
||||
bbox = dlg_button_row_new(GTK_STOCK_CLOSE, NULL);
|
||||
}
|
||||
gtk_container_add(GTK_CONTAINER(main_vb), bbox);
|
||||
|
||||
close_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_CLOSE);
|
||||
window_set_cancel_button(sum_open_w, close_bt, window_cancel_button_cb);
|
||||
|
||||
if(topic_available(HELP_STATS_SUMMARY_DIALOG)) {
|
||||
help_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_HELP);
|
||||
SIGNAL_CONNECT(help_bt, "clicked", topic_cb, HELP_STATS_SUMMARY_DIALOG);
|
||||
}
|
||||
|
||||
gtk_widget_grab_focus(close_bt);
|
||||
|
||||
SIGNAL_CONNECT(sum_open_w, "delete_event", window_delete_event_cb, NULL);
|
||||
|
|
|
@ -331,16 +331,16 @@ static void toolbar_append_separator(GtkWidget *toolbar) {
|
|||
|
||||
|
||||
#if GTK_MAJOR_VERSION < 2
|
||||
#define toolbar_item(new_item, window, toolbar, stock, tooltip, xpm, callback) { \
|
||||
#define toolbar_item(new_item, window, toolbar, stock, tooltip, xpm, callback, user_data) { \
|
||||
icon = gdk_pixmap_create_from_xpm_d(window->window, &mask, &window->style->white, xpm); \
|
||||
iconw = gtk_pixmap_new(icon, mask); \
|
||||
new_item = gtk_toolbar_append_item(GTK_TOOLBAR (toolbar), \
|
||||
stock, tooltip, "Private", iconw, GTK_SIGNAL_FUNC(callback), NULL);\
|
||||
stock, tooltip, "Private", iconw, GTK_SIGNAL_FUNC(callback), user_data);\
|
||||
}
|
||||
#else
|
||||
#define toolbar_item(new_item, window, toolbar, stock, tooltip, xpm, callback) { \
|
||||
#define toolbar_item(new_item, window, toolbar, stock, tooltip, xpm, callback, user_data) { \
|
||||
new_item = gtk_toolbar_insert_stock(GTK_TOOLBAR(toolbar), \
|
||||
stock, tooltip, "Private", G_CALLBACK(callback), NULL, -1);\
|
||||
stock, tooltip, "Private", G_CALLBACK(callback), user_data, -1);\
|
||||
}
|
||||
#endif /* GTK_MAJOR_VERSION */
|
||||
|
||||
|
@ -395,63 +395,63 @@ toolbar_new(void)
|
|||
* between them is needed here (stop button is hidden by default) */
|
||||
|
||||
toolbar_item(new_button, window, main_tb,
|
||||
ETHEREAL_STOCK_CAPTURE_START, "Start a new live capture...", capture_24_xpm, capture_prep_cb);
|
||||
ETHEREAL_STOCK_CAPTURE_START, "Start a new live capture...", capture_24_xpm, capture_prep_cb, NULL);
|
||||
toolbar_item(stop_button, window, main_tb,
|
||||
GTK_STOCK_STOP, "Stop the running live capture", stock_stop_24_xpm, capture_stop_cb);
|
||||
GTK_STOCK_STOP, "Stop the running live capture", stock_stop_24_xpm, capture_stop_cb, NULL);
|
||||
toolbar_append_separator(main_tb);
|
||||
#endif /* HAVE_LIBPCAP */
|
||||
|
||||
toolbar_item(open_button, window, main_tb,
|
||||
GTK_STOCK_OPEN, "Open a capture file...", stock_open_24_xpm, file_open_cmd_cb);
|
||||
GTK_STOCK_OPEN, "Open a capture file...", stock_open_24_xpm, file_open_cmd_cb, NULL);
|
||||
toolbar_item(save_button, window, main_tb,
|
||||
GTK_STOCK_SAVE, "Save this capture file...", stock_save_24_xpm, file_save_cmd_cb);
|
||||
GTK_STOCK_SAVE, "Save this capture file...", stock_save_24_xpm, file_save_cmd_cb, NULL);
|
||||
toolbar_item(save_as_button, window, main_tb,
|
||||
GTK_STOCK_SAVE_AS, "Save this capture file as...", stock_save_as_24_xpm, file_save_as_cmd_cb);
|
||||
GTK_STOCK_SAVE_AS, "Save this capture file as...", stock_save_as_24_xpm, file_save_as_cmd_cb, NULL);
|
||||
toolbar_item(close_button, window, main_tb,
|
||||
GTK_STOCK_CLOSE, "Close this capture file", stock_close_24_xpm, file_close_cmd_cb);
|
||||
GTK_STOCK_CLOSE, "Close this capture file", stock_close_24_xpm, file_close_cmd_cb, NULL);
|
||||
toolbar_item(reload_button, window, main_tb,
|
||||
GTK_STOCK_REFRESH, "Reload this capture file", stock_refresh_24_xpm, file_reload_cmd_cb);
|
||||
GTK_STOCK_REFRESH, "Reload this capture file", stock_refresh_24_xpm, file_reload_cmd_cb, NULL);
|
||||
toolbar_item(print_button, window, main_tb,
|
||||
GTK_STOCK_PRINT, "Print packet(s)...", stock_print_24_xpm, file_print_cmd_cb);
|
||||
GTK_STOCK_PRINT, "Print packet(s)...", stock_print_24_xpm, file_print_cmd_cb, NULL);
|
||||
toolbar_append_separator(main_tb);
|
||||
|
||||
toolbar_item(find_button, window, main_tb,
|
||||
GTK_STOCK_FIND, "Find a packet...", stock_search_24_xpm, find_frame_cb);
|
||||
GTK_STOCK_FIND, "Find a packet...", stock_search_24_xpm, find_frame_cb, NULL);
|
||||
toolbar_item(history_back_button, window, main_tb,
|
||||
GTK_STOCK_GO_BACK, "Go back in packet history", stock_left_arrow_24_xpm, history_back_cb);
|
||||
GTK_STOCK_GO_BACK, "Go back in packet history", stock_left_arrow_24_xpm, history_back_cb, NULL);
|
||||
toolbar_item(history_forward_button, window, main_tb,
|
||||
GTK_STOCK_GO_FORWARD, "Go forward in packet history", stock_right_arrow_24_xpm, history_forward_cb);
|
||||
GTK_STOCK_GO_FORWARD, "Go forward in packet history", stock_right_arrow_24_xpm, history_forward_cb, NULL);
|
||||
toolbar_item(go_to_button, window, main_tb,
|
||||
GTK_STOCK_JUMP_TO, "Go to the packet with number...", stock_jump_to_24_xpm, goto_frame_cb);
|
||||
GTK_STOCK_JUMP_TO, "Go to the packet with number...", stock_jump_to_24_xpm, goto_frame_cb, NULL);
|
||||
toolbar_item(go_to_top_button, window, main_tb,
|
||||
GTK_STOCK_GOTO_TOP, "Go to the first packet", stock_top_24_xpm, goto_top_frame_cb);
|
||||
GTK_STOCK_GOTO_TOP, "Go to the first packet", stock_top_24_xpm, goto_top_frame_cb, NULL);
|
||||
toolbar_item(go_to_bottom_button, window, main_tb,
|
||||
GTK_STOCK_GOTO_BOTTOM, "Go to the last packet", stock_bottom_24_xpm, goto_bottom_frame_cb);
|
||||
GTK_STOCK_GOTO_BOTTOM, "Go to the last packet", stock_bottom_24_xpm, goto_bottom_frame_cb, NULL);
|
||||
toolbar_append_separator(main_tb);
|
||||
|
||||
toolbar_item(zoom_in_button, window, main_tb,
|
||||
GTK_STOCK_ZOOM_IN, "Zoom in", stock_zoom_in_24_xpm, view_zoom_in_cb);
|
||||
GTK_STOCK_ZOOM_IN, "Zoom in", stock_zoom_in_24_xpm, view_zoom_in_cb, NULL);
|
||||
toolbar_item(zoom_out_button, window, main_tb,
|
||||
GTK_STOCK_ZOOM_OUT, "Zoom out", stock_zoom_out_24_xpm, view_zoom_out_cb);
|
||||
GTK_STOCK_ZOOM_OUT, "Zoom out", stock_zoom_out_24_xpm, view_zoom_out_cb, NULL);
|
||||
toolbar_item(zoom_100_button, window, main_tb,
|
||||
GTK_STOCK_ZOOM_100, "Zoom 100%", stock_zoom_1_24_xpm, view_zoom_100_cb);
|
||||
GTK_STOCK_ZOOM_100, "Zoom 100%", stock_zoom_1_24_xpm, view_zoom_100_cb, NULL);
|
||||
toolbar_append_separator(main_tb);
|
||||
|
||||
#ifdef HAVE_LIBPCAP
|
||||
toolbar_item(capture_filter_button, window, main_tb,
|
||||
ETHEREAL_STOCK_CAPTURE_FILTER, "Edit capture filter...", cfilter_24_xpm, cfilter_dialog_cb);
|
||||
ETHEREAL_STOCK_CAPTURE_FILTER, "Edit capture filter...", cfilter_24_xpm, cfilter_dialog_cb, NULL);
|
||||
#endif /* HAVE_LIBPCAP */
|
||||
toolbar_item(display_filter_button, window, main_tb,
|
||||
ETHEREAL_STOCK_DISPLAY_FILTER, "Edit/apply display filter...", dfilter_24_xpm, dfilter_dialog_cb);
|
||||
ETHEREAL_STOCK_DISPLAY_FILTER, "Edit/apply display filter...", dfilter_24_xpm, dfilter_dialog_cb, NULL);
|
||||
toolbar_item(color_display_button, window, main_tb,
|
||||
GTK_STOCK_SELECT_COLOR, "Edit coloring rules...", stock_colorselector_24_xpm, color_display_cb);
|
||||
GTK_STOCK_SELECT_COLOR, "Edit coloring rules...", stock_colorselector_24_xpm, color_display_cb, NULL);
|
||||
/* the preference button uses it's own Stock icon label "Prefs", as "Preferences" is too long */
|
||||
toolbar_item(prefs_button, window, main_tb,
|
||||
ETHEREAL_STOCK_PREFS, "Edit preferences...", stock_preferences_24_xpm, prefs_cb);
|
||||
ETHEREAL_STOCK_PREFS, "Edit preferences...", stock_preferences_24_xpm, prefs_cb, NULL);
|
||||
toolbar_append_separator(main_tb);
|
||||
|
||||
toolbar_item(help_button, window, main_tb,
|
||||
GTK_STOCK_HELP, "Show some help...", stock_help_24_xpm, help_cb);
|
||||
GTK_STOCK_HELP, "Show some help...", stock_help_24_xpm, topic_cb, GINT_TO_POINTER(HELP_CONTENT));
|
||||
|
||||
/* disable all "sensitive" items by default */
|
||||
toolbar_init = TRUE;
|
||||
|
|
|
@ -284,6 +284,8 @@ browser_open_data_file(const gchar *filename)
|
|||
/* build filename */
|
||||
file_path = g_strdup_printf("%s/%s", get_datafile_dir(), filename);
|
||||
|
||||
/* XXX - check, if the file is really existing, otherwise display a simple_dialog about the problem */
|
||||
|
||||
/* convert filename to uri */
|
||||
uri = filename2uri(file_path);
|
||||
|
||||
|
|
Loading…
Reference in New Issue