diff options
author | Guy Harris <guy@alum.mit.edu> | 2003-09-24 02:36:35 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2003-09-24 02:36:35 +0000 |
commit | 4e64afcb25c1a0b3e83bb5f1eaa8452649144314 (patch) | |
tree | ee96c6533894bae683e842a7c328f187e608bf78 /gtk | |
parent | dd628e00c742885fc3b212e00942880f81956bf0 (diff) |
Pass a pointer to a "capture_file" structure to
"set_menus_for_selected_packet()" and
"set_menus_for_selected_tree_row()", and have them decide whether to
enable or disable menu items based on whether that structure indicates
that a packet or field is selected and, if one is, on its properties.
Pass to the "selected packet enabled" routine for a menu item the
"frame_data" and "edt" members of the "capture_file" structure, and pass
to the "selected tree row enabled" routine the "field_info" member of
that structure.
Clear "cf->current_frame" if no packet is selected.
svn path=/trunk/; revision=8525
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/bootp_stat.c | 5 | ||||
-rw-r--r-- | gtk/dcerpc_stat.c | 5 | ||||
-rw-r--r-- | gtk/endpoint_talkers_eth.c | 4 | ||||
-rw-r--r-- | gtk/endpoint_talkers_fc.c | 5 | ||||
-rw-r--r-- | gtk/endpoint_talkers_fddi.c | 4 | ||||
-rw-r--r-- | gtk/endpoint_talkers_ip.c | 4 | ||||
-rw-r--r-- | gtk/endpoint_talkers_ipx.c | 4 | ||||
-rw-r--r-- | gtk/endpoint_talkers_tcpip.c | 4 | ||||
-rw-r--r-- | gtk/endpoint_talkers_tr.c | 4 | ||||
-rw-r--r-- | gtk/endpoint_talkers_udpip.c | 4 | ||||
-rw-r--r-- | gtk/fc_stat.c | 5 | ||||
-rw-r--r-- | gtk/http_stat.c | 5 | ||||
-rw-r--r-- | gtk/io_stat.c | 4 | ||||
-rw-r--r-- | gtk/main.c | 4 | ||||
-rw-r--r-- | gtk/menu.c | 133 | ||||
-rw-r--r-- | gtk/menu.h | 23 | ||||
-rw-r--r-- | gtk/mgcp_stat.c | 5 | ||||
-rw-r--r-- | gtk/rpc_progs.c | 5 | ||||
-rw-r--r-- | gtk/rpc_stat.c | 5 | ||||
-rw-r--r-- | gtk/smb_stat.c | 5 | ||||
-rw-r--r-- | gtk/wsp_stat.c | 5 |
21 files changed, 120 insertions, 122 deletions
diff --git a/gtk/bootp_stat.c b/gtk/bootp_stat.c index c10f72dbbe..b72bfd4178 100644 --- a/gtk/bootp_stat.c +++ b/gtk/bootp_stat.c @@ -1,7 +1,7 @@ /* bootp_stat.c * boop_stat 2003 Jean-Michel FAYARD * - * $Id: bootp_stat.c,v 1.3 2003/09/19 07:24:37 guy Exp $ + * $Id: bootp_stat.c,v 1.4 2003/09/24 02:36:34 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -28,8 +28,9 @@ #endif #include <gtk/gtk.h> -#include "menu.h" #include "epan/packet_info.h" +#include "epan/epan.h" +#include "menu.h" #include "simple_dialog.h" #include "tap.h" #include "../register.h" diff --git a/gtk/dcerpc_stat.c b/gtk/dcerpc_stat.c index d949db5756..816f56524a 100644 --- a/gtk/dcerpc_stat.c +++ b/gtk/dcerpc_stat.c @@ -1,7 +1,7 @@ /* dcerpc_stat.c * dcerpc_stat 2002 Ronnie Sahlberg * - * $Id: dcerpc_stat.c,v 1.22 2003/09/19 07:24:37 guy Exp $ + * $Id: dcerpc_stat.c,v 1.23 2003/09/24 02:36:34 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -35,8 +35,9 @@ #include <string.h> #include <gtk/gtk.h> -#include "menu.h" #include "epan/packet_info.h" +#include "epan/epan.h" +#include "menu.h" #include "simple_dialog.h" #include "dlg_utils.h" #include "ui_util.h" diff --git a/gtk/endpoint_talkers_eth.c b/gtk/endpoint_talkers_eth.c index 2bef0e0b35..573fbc9c95 100644 --- a/gtk/endpoint_talkers_eth.c +++ b/gtk/endpoint_talkers_eth.c @@ -1,7 +1,7 @@ /* endpoint_talkers_eth.c * endpoint_talkers_eth 2003 Ronnie Sahlberg * - * $Id: endpoint_talkers_eth.c,v 1.17 2003/09/19 07:24:37 guy Exp $ + * $Id: endpoint_talkers_eth.c,v 1.18 2003/09/24 02:36:34 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -34,8 +34,8 @@ #include <gtk/gtk.h> #include <string.h> -#include "menu.h" #include "epan/packet.h" +#include "menu.h" #include "../tap.h" #include "../register.h" #include "endpoint_talkers_table.h" diff --git a/gtk/endpoint_talkers_fc.c b/gtk/endpoint_talkers_fc.c index 3d3559bf84..01a4d9309d 100644 --- a/gtk/endpoint_talkers_fc.c +++ b/gtk/endpoint_talkers_fc.c @@ -1,7 +1,7 @@ /* endpoint_talkers_fc.c * endpoint_talkers_fc 2003 Ronnie Sahlberg * - * $Id: endpoint_talkers_fc.c,v 1.17 2003/09/19 07:24:37 guy Exp $ + * $Id: endpoint_talkers_fc.c,v 1.18 2003/09/24 02:36:34 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -34,9 +34,8 @@ #include <gtk/gtk.h> #include <string.h> -#include "menu.h" -#include "menu.h" #include "epan/packet.h" +#include "menu.h" #include "../tap.h" #include "../register.h" #include "endpoint_talkers_table.h" diff --git a/gtk/endpoint_talkers_fddi.c b/gtk/endpoint_talkers_fddi.c index 73fa81600a..51d4596659 100644 --- a/gtk/endpoint_talkers_fddi.c +++ b/gtk/endpoint_talkers_fddi.c @@ -1,7 +1,7 @@ /* endpoint_talkers_fddi.c * endpoint_talkers_fddi 2003 Ronnie Sahlberg * - * $Id: endpoint_talkers_fddi.c,v 1.12 2003/09/19 07:24:37 guy Exp $ + * $Id: endpoint_talkers_fddi.c,v 1.13 2003/09/24 02:36:34 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -34,8 +34,8 @@ #include <gtk/gtk.h> #include <string.h> -#include "menu.h" #include "epan/packet.h" +#include "menu.h" #include "../tap.h" #include "../register.h" #include "endpoint_talkers_table.h" diff --git a/gtk/endpoint_talkers_ip.c b/gtk/endpoint_talkers_ip.c index 09f6aed9c2..51fc3d5854 100644 --- a/gtk/endpoint_talkers_ip.c +++ b/gtk/endpoint_talkers_ip.c @@ -1,7 +1,7 @@ /* endpoint_talkers_ip.c * endpoint_talkers_ip 2003 Ronnie Sahlberg * - * $Id: endpoint_talkers_ip.c,v 1.18 2003/09/19 07:24:37 guy Exp $ + * $Id: endpoint_talkers_ip.c,v 1.19 2003/09/24 02:36:34 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -34,8 +34,8 @@ #include <gtk/gtk.h> #include <string.h> -#include "menu.h" #include "epan/packet.h" +#include "menu.h" #include "../tap.h" #include "../register.h" #include "endpoint_talkers_table.h" diff --git a/gtk/endpoint_talkers_ipx.c b/gtk/endpoint_talkers_ipx.c index d1ed463d71..4c350586c9 100644 --- a/gtk/endpoint_talkers_ipx.c +++ b/gtk/endpoint_talkers_ipx.c @@ -1,7 +1,7 @@ /* endpoint_talkers_ipx.c * endpoint_talkers_ipx 2003 Ronnie Sahlberg * - * $Id: endpoint_talkers_ipx.c,v 1.16 2003/09/19 07:24:37 guy Exp $ + * $Id: endpoint_talkers_ipx.c,v 1.17 2003/09/24 02:36:34 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -34,8 +34,8 @@ #include <gtk/gtk.h> #include <string.h> -#include "menu.h" #include "epan/packet.h" +#include "menu.h" #include "../tap.h" #include "../register.h" #include "endpoint_talkers_table.h" diff --git a/gtk/endpoint_talkers_tcpip.c b/gtk/endpoint_talkers_tcpip.c index c17b38bb56..78d1177b4a 100644 --- a/gtk/endpoint_talkers_tcpip.c +++ b/gtk/endpoint_talkers_tcpip.c @@ -1,7 +1,7 @@ /* endpoint_talkers_tcpip.c * endpoint_talkers_tcpip 2003 Ronnie Sahlberg * - * $Id: endpoint_talkers_tcpip.c,v 1.19 2003/09/19 07:24:37 guy Exp $ + * $Id: endpoint_talkers_tcpip.c,v 1.20 2003/09/24 02:36:34 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -34,8 +34,8 @@ #include <gtk/gtk.h> #include <string.h> -#include "menu.h" #include "epan/packet.h" +#include "menu.h" #include "../tap.h" #include "../register.h" #include "endpoint_talkers_table.h" diff --git a/gtk/endpoint_talkers_tr.c b/gtk/endpoint_talkers_tr.c index c126634bc9..e8c0bd4561 100644 --- a/gtk/endpoint_talkers_tr.c +++ b/gtk/endpoint_talkers_tr.c @@ -1,7 +1,7 @@ /* endpoint_talkers_tr.c * endpoint_talkers_tr 2003 Ronnie Sahlberg * - * $Id: endpoint_talkers_tr.c,v 1.18 2003/09/19 07:24:38 guy Exp $ + * $Id: endpoint_talkers_tr.c,v 1.19 2003/09/24 02:36:34 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -34,8 +34,8 @@ #include <gtk/gtk.h> #include <string.h> -#include "menu.h" #include "epan/packet.h" +#include "menu.h" #include "../tap.h" #include "../register.h" #include "endpoint_talkers_table.h" diff --git a/gtk/endpoint_talkers_udpip.c b/gtk/endpoint_talkers_udpip.c index 39ccc61499..13a77b101a 100644 --- a/gtk/endpoint_talkers_udpip.c +++ b/gtk/endpoint_talkers_udpip.c @@ -1,7 +1,7 @@ /* endpoint_talkers_udpip.c * endpoint_talkers_udpip 2003 Ronnie Sahlberg * - * $Id: endpoint_talkers_udpip.c,v 1.19 2003/09/19 07:24:38 guy Exp $ + * $Id: endpoint_talkers_udpip.c,v 1.20 2003/09/24 02:36:34 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -34,8 +34,8 @@ #include <gtk/gtk.h> #include <string.h> -#include "menu.h" #include "epan/packet.h" +#include "menu.h" #include "../tap.h" #include "../register.h" #include "endpoint_talkers_table.h" diff --git a/gtk/fc_stat.c b/gtk/fc_stat.c index 3fa13e158b..2de4a8b40e 100644 --- a/gtk/fc_stat.c +++ b/gtk/fc_stat.c @@ -1,7 +1,7 @@ /* fc_stat.c * fc_stat 2003 Ronnie Sahlberg * - * $Id: fc_stat.c,v 1.10 2003/09/19 07:24:38 guy Exp $ + * $Id: fc_stat.c,v 1.11 2003/09/24 02:36:34 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -34,8 +34,9 @@ #include <gtk/gtk.h> #include <string.h> -#include "menu.h" #include "../epan/packet_info.h" +#include "../epan/epan.h" +#include "menu.h" #include "../tap.h" #include "../epan/value_string.h" #include "../packet-fc.h" diff --git a/gtk/http_stat.c b/gtk/http_stat.c index c578c27e00..158f537525 100644 --- a/gtk/http_stat.c +++ b/gtk/http_stat.c @@ -1,7 +1,7 @@ /* http_stat.c * http_stat 2003 Jean-Michel FAYARD * - * $Id: http_stat.c,v 1.4 2003/09/19 07:24:38 guy Exp $ + * $Id: http_stat.c,v 1.5 2003/09/24 02:36:34 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -27,8 +27,9 @@ #endif #include <gtk/gtk.h> -#include "menu.h" #include "epan/packet_info.h" +#include "epan/epan.h" +#include "menu.h" #include "simple_dialog.h" #include "tap.h" #include "../register.h" diff --git a/gtk/io_stat.c b/gtk/io_stat.c index 6e0cafa9c1..51531af8e8 100644 --- a/gtk/io_stat.c +++ b/gtk/io_stat.c @@ -1,7 +1,7 @@ /* io_stat.c * io_stat 2002 Ronnie Sahlberg * - * $Id: io_stat.c,v 1.28 2003/09/19 07:24:38 guy Exp $ + * $Id: io_stat.c,v 1.29 2003/09/24 02:36:34 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -39,9 +39,9 @@ #include <gtk/gtk.h> #include "gtkglobals.h" -#include "menu.h" #include "epan/epan_dissect.h" #include "epan/packet_info.h" +#include "menu.h" #include "../tap.h" #include "../register.h" #include "simple_dialog.h" diff --git a/gtk/main.c b/gtk/main.c index f759ed718c..d9844742c7 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -1,6 +1,6 @@ /* main.c * - * $Id: main.c,v 1.317 2003/09/24 00:47:37 guy Exp $ + * $Id: main.c,v 1.318 2003/09/24 02:36:34 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -921,7 +921,7 @@ tree_view_selection_changed_cb(GtkTreeSelection *sel, gpointer user_data _U_) g_assert(byte_data != NULL); cfile.finfo_selected = finfo; - set_menus_for_selected_tree_row(TRUE); + set_menus_for_selected_tree_row(&cfile); if (finfo->hfinfo) { if (finfo->hfinfo->blurb != NULL && diff --git a/gtk/menu.c b/gtk/menu.c index 0e5067b5a6..939f948f5d 100644 --- a/gtk/menu.c +++ b/gtk/menu.c @@ -1,7 +1,7 @@ /* menu.c * Menu routines * - * $Id: menu.c,v 1.99 2003/09/24 00:47:37 guy Exp $ + * $Id: menu.c,v 1.100 2003/09/24 02:36:35 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -30,8 +30,6 @@ #include <string.h> -#include "../menu.h" - #include "main.h" #include "menu.h" #include <epan/packet.h> @@ -60,6 +58,8 @@ #include "compat_macros.h" #include "gtkglobals.h" #include "../tap.h" +#include "../menu.h" +#include "../ipproto.h" GtkWidget *popup_menu_object; @@ -408,16 +408,16 @@ menus_init(void) { #endif set_menus_for_captured_packets(FALSE); - set_menus_for_selected_packet(FALSE); - set_menus_for_selected_tree_row(FALSE); + set_menus_for_selected_packet(&cfile); + set_menus_for_selected_tree_row(&cfile); } } typedef struct _menu_item { char *name; gboolean enabled; - gboolean (*selected_packet_enabled)(gboolean); - gboolean (*selected_tree_row_enabled)(gboolean); + gboolean (*selected_packet_enabled)(frame_data *, epan_dissect_t *); + gboolean (*selected_tree_row_enabled)(field_info *); struct _menu_item *parent; struct _menu_item *children; struct _menu_item *next; @@ -448,8 +448,8 @@ static menu_item_t tap_menu_tree_root; */ void register_tap_menu_item(char *name, GtkItemFactoryCallback callback, - gboolean (*selected_packet_enabled)(gboolean), - gboolean (*selected_tree_row_enabled)(gboolean)) + gboolean (*selected_packet_enabled)(frame_data *, epan_dissect_t *), + gboolean (*selected_tree_row_enabled)(field_info *)) { static const char toolspath[] = "/Tools/"; char *p; @@ -814,9 +814,11 @@ set_menus_for_captured_packets(gboolean have_captured_packets) have_captured_packets); } +/* Enable or disable menu items based on whether a packet is selected and, + if so, on the properties of the packet. */ static gboolean -walk_menu_tree_for_selected_packet(menu_item_t *node, - gboolean have_selected_packet) +walk_menu_tree_for_selected_packet(menu_item_t *node, frame_data *fd, + epan_dissect_t *edt) { gboolean is_enabled; menu_item_t *child; @@ -837,10 +839,8 @@ walk_menu_tree_for_selected_packet(menu_item_t *node, * call it and set the item's enabled/disabled status * based on its return value. */ - if (node->selected_packet_enabled != NULL) { - node->enabled = - node->selected_packet_enabled(have_selected_packet); - } + if (node->selected_packet_enabled != NULL) + node->enabled = node->selected_packet_enabled(fd, edt); } else { /* * It's an interior node; call @@ -854,8 +854,7 @@ walk_menu_tree_for_selected_packet(menu_item_t *node, is_enabled = FALSE; for (child = node->children; child != NULL; child = child->next) { - if (walk_menu_tree_for_selected_packet(child, - have_selected_packet)) + if (walk_menu_tree_for_selected_packet(child, fd, edt)) is_enabled = TRUE; } node->enabled = is_enabled; @@ -873,52 +872,52 @@ walk_menu_tree_for_selected_packet(menu_item_t *node, } void -set_menus_for_selected_packet(gboolean have_selected_packet) +set_menus_for_selected_packet(capture_file *cf) { set_menu_sensitivity(main_menu_factory, "/File/Print Packet", - have_selected_packet); + cf->current_frame != NULL); set_menu_sensitivity(packet_list_menu_factory, "/Print Packet", - have_selected_packet); + cf->current_frame != NULL); set_menu_sensitivity(main_menu_factory, "/Edit/Mark Frame", - have_selected_packet); + cf->current_frame != NULL); set_menu_sensitivity(packet_list_menu_factory, "/Mark Frame", - have_selected_packet); + cf->current_frame != NULL); set_menu_sensitivity(main_menu_factory, "/Edit/Mark All Frames", - have_selected_packet); + cf->current_frame != NULL); set_menu_sensitivity(main_menu_factory, "/Edit/Unmark All Frames", - have_selected_packet); + cf->current_frame != NULL); set_menu_sensitivity(main_menu_factory, "/Display/Collapse All", - have_selected_packet); + cf->current_frame != NULL); set_menu_sensitivity(tree_view_menu_factory, "/Collapse All", - have_selected_packet); + cf->current_frame != NULL); set_menu_sensitivity(main_menu_factory, "/Display/Expand All", - have_selected_packet); + cf->current_frame != NULL); set_menu_sensitivity(tree_view_menu_factory, "/Expand All", - have_selected_packet); + cf->current_frame != NULL); set_menu_sensitivity(main_menu_factory, "/Display/Show Packet In New Window", - have_selected_packet); + cf->current_frame != NULL); set_menu_sensitivity(packet_list_menu_factory, "/Show Packet In New Window", - have_selected_packet); + cf->current_frame != NULL); set_menu_sensitivity(main_menu_factory, "/Tools/Follow TCP Stream", - have_selected_packet ? (cfile.edt->pi.ipproto == 6) : FALSE); + cf->current_frame != NULL ? (cf->edt->pi.ipproto == IP_PROTO_TCP) : FALSE); set_menu_sensitivity(NULL, "/Follow TCP Stream", - have_selected_packet ? (cfile.edt->pi.ipproto == 6) : FALSE); + cf->current_frame != NULL ? (cf->edt->pi.ipproto == IP_PROTO_TCP) : FALSE); set_menu_sensitivity(main_menu_factory, "/Tools/Decode As...", - have_selected_packet && decode_as_ok()); + cf->current_frame != NULL && decode_as_ok()); set_menu_sensitivity(NULL, "/Decode As...", - have_selected_packet && decode_as_ok()); + cf->current_frame != NULL && decode_as_ok()); set_menu_sensitivity(tree_view_menu_factory, "/Resolve Name", - have_selected_packet && g_resolv_flags == 0); + cf->current_frame != NULL && g_resolv_flags == 0); set_menu_sensitivity(main_menu_factory, "/Tools/TCP Stream Analysis", - have_selected_packet ? (cfile.edt->pi.ipproto == 6) : FALSE); - walk_menu_tree_for_selected_packet(&tap_menu_tree_root, have_selected_packet); + cf->current_frame != NULL ? (cf->edt->pi.ipproto == IP_PROTO_TCP) : FALSE); + walk_menu_tree_for_selected_packet(&tap_menu_tree_root, cf->current_frame, + cf->edt); } /* Enable or disable menu items based on whether a tree row is selected - and on whether a "Match" can be done. */ + and, if so, on the properties of the tree row. */ static gboolean -walk_menu_tree_for_selected_tree_row(menu_item_t *node, - gboolean have_selected_tree_row) +walk_menu_tree_for_selected_tree_row(menu_item_t *node, field_info *fi) { gboolean is_enabled; menu_item_t *child; @@ -939,10 +938,8 @@ walk_menu_tree_for_selected_tree_row(menu_item_t *node, * call it and set the item's enabled/disabled status * based on its return value. */ - if (node->selected_tree_row_enabled != NULL) { - node->enabled = - node->selected_tree_row_enabled(have_selected_tree_row); - } + if (node->selected_tree_row_enabled != NULL) + node->enabled = node->selected_tree_row_enabled(fi); } else { /* * It's an interior node; call @@ -956,8 +953,7 @@ walk_menu_tree_for_selected_tree_row(menu_item_t *node, is_enabled = FALSE; for (child = node->children; child != NULL; child = child->next) { - if (walk_menu_tree_for_selected_tree_row(child, - have_selected_tree_row)) + if (walk_menu_tree_for_selected_tree_row(child, fi)) is_enabled = TRUE; } node->enabled = is_enabled; @@ -975,50 +971,43 @@ walk_menu_tree_for_selected_tree_row(menu_item_t *node, } void -set_menus_for_selected_tree_row(gboolean have_selected_tree_row) +set_menus_for_selected_tree_row(capture_file *cf) { - gboolean properties = FALSE; + gboolean properties; - if (cfile.finfo_selected) { - header_field_info *hfinfo = cfile.finfo_selected->hfinfo; + if (cf->finfo_selected != NULL) { + header_field_info *hfinfo = cf->finfo_selected->hfinfo; if (hfinfo->parent == -1) { properties = prefs_is_registered_protocol(hfinfo->abbrev); } else { properties = prefs_is_registered_protocol(proto_registrar_get_abbrev(hfinfo->parent)); } - if (hfinfo->type == FT_FRAMENUM) { - set_menu_sensitivity(main_menu_factory, - "/Tools/Go To Corresponding Frame", TRUE); - set_menu_sensitivity(tree_view_menu_factory, - "/Go To Corresponding Frame", TRUE); - } else { - set_menu_sensitivity(main_menu_factory, - "/Tools/Go To Corresponding Frame", FALSE); - set_menu_sensitivity(tree_view_menu_factory, - "/Go To Corresponding Frame", FALSE); - } + set_menu_sensitivity(main_menu_factory, + "/Tools/Go To Corresponding Frame", hfinfo->type == FT_FRAMENUM); + set_menu_sensitivity(tree_view_menu_factory, + "/Go To Corresponding Frame", hfinfo->type == FT_FRAMENUM); set_menu_sensitivity(main_menu_factory, "/Display/Match", - proto_can_match_selected(cfile.finfo_selected, cfile.edt)); + proto_can_match_selected(cf->finfo_selected, cf->edt)); set_menu_sensitivity(tree_view_menu_factory, "/Match", - proto_can_match_selected(cfile.finfo_selected, cfile.edt)); + proto_can_match_selected(cf->finfo_selected, cf->edt)); set_menu_sensitivity(main_menu_factory, "/Display/Prepare", - proto_can_match_selected(cfile.finfo_selected, cfile.edt)); + proto_can_match_selected(cf->finfo_selected, cf->edt)); set_menu_sensitivity(tree_view_menu_factory, "/Prepare", - proto_can_match_selected(cfile.finfo_selected, cfile.edt)); + proto_can_match_selected(cf->finfo_selected, cf->edt)); + set_menu_sensitivity(tree_view_menu_factory, "/Protocol Properties...", + properties); } else { + set_menu_sensitivity(tree_view_menu_factory, + "/Go To Corresponding Frame", FALSE); set_menu_sensitivity(main_menu_factory, "/Display/Match", FALSE); set_menu_sensitivity(tree_view_menu_factory, "/Match", FALSE); set_menu_sensitivity(main_menu_factory, "/Display/Prepare", FALSE); set_menu_sensitivity(tree_view_menu_factory, "/Prepare", FALSE); set_menu_sensitivity(main_menu_factory, "/Tools/Go To Corresponding Frame", FALSE); - set_menu_sensitivity(tree_view_menu_factory, - "/Go To Corresponding Frame", FALSE); + set_menu_sensitivity(tree_view_menu_factory, "/Protocol Properties...", + FALSE); } - set_menu_sensitivity(tree_view_menu_factory, "/Protocol Properties...", - have_selected_tree_row && properties); - - walk_menu_tree_for_selected_tree_row(&tap_menu_tree_root, - have_selected_tree_row); + walk_menu_tree_for_selected_tree_row(&tap_menu_tree_root, cf->finfo_selected); } diff --git a/gtk/menu.h b/gtk/menu.h index d19df6440e..6bef198aa5 100644 --- a/gtk/menu.h +++ b/gtk/menu.h @@ -1,7 +1,7 @@ /* menu.h * Menu definitions * - * $Id: menu.h,v 1.10 2003/09/19 07:24:38 guy Exp $ + * $Id: menu.h,v 1.11 2003/09/24 02:36:35 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -44,20 +44,21 @@ gint popup_menu_handler(GtkWidget *widget, GdkEvent *event, gpointer data); * the work of creating the tap window. * * "selected_packet_enabled" gets called by "set_menus_for_selected_packet()"; - * it's passed a Boolean that's TRUE if a packet is selected and FALSE - * otherwise, and should return TRUE if the tap will work now (which - * might depend on whether a packet is selected and, if one is, on the - * packet) and FALSE if not. + * it's passed a pointer to the "frame_data" structure for the current frame, + * if any, and to the "epan_dissect_t" structure for that frame, if any, and + * should return TRUE if the tap will work now (which might depend on whether + * a frame is selected and, if one is, on the frame) and FALSE if not. * * "selected_tree_row_enabled" gets called by - * "set_menus_for_selected_tree_row()"; it's passed a Boolean that's TRUE if - * a protocol tree row is selected and FALSE otherwise, and should return - * TRUE if the tap will work now (which might depend on whether a tree row - * is selected and, if one is, on the tree row) and FALSE if not. + * "set_menus_for_selected_tree_row()"; it's passed a pointer to the + * "field_info" structure for the currently selected field, if any, + * and should return TRUE if the tap will work now (which might depend on + * whether a tree row is selected and, if one is, on the tree row) and + * FALSE if not. */ extern void register_tap_menu_item(char *name, GtkItemFactoryCallback callback, - gboolean (*selected_packet_enabled)(gboolean), - gboolean (*selected_tree_row_enabled)(gboolean)); + gboolean (*selected_packet_enabled)(frame_data *, epan_dissect_t *), + gboolean (*selected_tree_row_enabled)(field_info *)); extern GtkWidget *popup_menu_object; diff --git a/gtk/mgcp_stat.c b/gtk/mgcp_stat.c index b44d3fd077..b43ae9849a 100644 --- a/gtk/mgcp_stat.c +++ b/gtk/mgcp_stat.c @@ -2,7 +2,7 @@ * mgcp-statistics for ethereal * Copyright 2003 Lars Roland * - * $Id: mgcp_stat.c,v 1.15 2003/09/21 20:06:02 gerald Exp $ + * $Id: mgcp_stat.c,v 1.16 2003/09/24 02:36:35 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -35,8 +35,9 @@ #include <gtk/gtk.h> #include <string.h> -#include "menu.h" #include "../epan/packet_info.h" +#include "../epan/epan.h" +#include "menu.h" #include "../tap.h" #include "../epan/value_string.h" #include "../register.h" diff --git a/gtk/rpc_progs.c b/gtk/rpc_progs.c index d63d6c6451..d321630cf1 100644 --- a/gtk/rpc_progs.c +++ b/gtk/rpc_progs.c @@ -1,7 +1,7 @@ /* rpc_progs.c * rpc_progs 2002 Ronnie Sahlberg * - * $Id: rpc_progs.c,v 1.11 2003/09/19 07:24:38 guy Exp $ + * $Id: rpc_progs.c,v 1.12 2003/09/24 02:36:35 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -33,8 +33,9 @@ #endif #include <gtk/gtk.h> -#include "menu.h" #include "epan/packet_info.h" +#include "epan/epan.h" +#include "menu.h" #include "tap.h" #include "../register.h" #include "packet-rpc.h" diff --git a/gtk/rpc_stat.c b/gtk/rpc_stat.c index d2f019a9b4..f885ea46b5 100644 --- a/gtk/rpc_stat.c +++ b/gtk/rpc_stat.c @@ -1,7 +1,7 @@ /* rpc_stat.c * rpc_stat 2002 Ronnie Sahlberg * - * $Id: rpc_stat.c,v 1.21 2003/09/19 07:24:38 guy Exp $ + * $Id: rpc_stat.c,v 1.22 2003/09/24 02:36:35 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -33,8 +33,9 @@ #endif #include <gtk/gtk.h> -#include "menu.h" #include "epan/packet_info.h" +#include "epan/epan.h" +#include "menu.h" #include "simple_dialog.h" #include "tap.h" #include "../register.h" diff --git a/gtk/smb_stat.c b/gtk/smb_stat.c index 04878af25b..b00dad787d 100644 --- a/gtk/smb_stat.c +++ b/gtk/smb_stat.c @@ -1,7 +1,7 @@ /* smb_stat.c * smb_stat 2003 Ronnie Sahlberg * - * $Id: smb_stat.c,v 1.18 2003/09/19 07:24:38 guy Exp $ + * $Id: smb_stat.c,v 1.19 2003/09/24 02:36:35 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -34,8 +34,9 @@ #include <gtk/gtk.h> #include <string.h> -#include "menu.h" #include "../epan/packet_info.h" +#include "../epan/epan.h" +#include "menu.h" #include "../tap.h" #include "../epan/value_string.h" #include "../smb.h" diff --git a/gtk/wsp_stat.c b/gtk/wsp_stat.c index c80ca17f1a..1a8faddfa3 100644 --- a/gtk/wsp_stat.c +++ b/gtk/wsp_stat.c @@ -1,7 +1,7 @@ /* wsp_stat.c * wsp_stat 2003 Jean-Michel FAYARD * - * $Id: wsp_stat.c,v 1.3 2003/09/19 07:24:39 guy Exp $ + * $Id: wsp_stat.c,v 1.4 2003/09/24 02:36:35 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -28,8 +28,9 @@ #endif #include <gtk/gtk.h> -#include "menu.h" #include "epan/packet_info.h" +#include "epan/epan.h" +#include "menu.h" #include "simple_dialog.h" #include "tap.h" #include "../register.h" |