diff options
author | Ulf Lamping <ulf.lamping@web.de> | 2005-01-19 01:12:45 +0000 |
---|---|---|
committer | Ulf Lamping <ulf.lamping@web.de> | 2005-01-19 01:12:45 +0000 |
commit | 5b84b7e764bf78c3c4d58bc192c775ea3fc606d1 (patch) | |
tree | 21746cadc67bb3f76b143b6f72586a9d462f6ed8 /gtk | |
parent | afdde203a274d3807fae18c6106006d2b1e75b01 (diff) |
while I'm at it, add another packet details context menu item, which will link to the specific display filter reference page (just try it out :-)
svn path=/trunk/; revision=13117
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/main.c | 27 | ||||
-rw-r--r-- | gtk/main.h | 8 | ||||
-rw-r--r-- | gtk/menu.c | 2 |
3 files changed, 37 insertions, 0 deletions
diff --git a/gtk/main.c b/gtk/main.c index 984dd17a01..ee593b72d4 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -345,6 +345,33 @@ selected_ptree_info_cb(GtkWidget *widget _U_, gpointer data _U_) } +void +selected_ptree_ref_cb(GtkWidget *widget _U_, gpointer data _U_) +{ + int field_id; + gchar *proto_abbrev; + gchar *selected_proto_url; + + + if (cfile.finfo_selected) { + /* convert selected field to protocol abbreviation */ + /* XXX - could this conversion be simplified? */ + field_id = cfile.finfo_selected->hfinfo->id; + /* if the selected field isn't a protocol, get it's parent */ + if(!proto_registrar_is_protocol(field_id)) { + field_id = proto_registrar_get_parent(cfile.finfo_selected->hfinfo->id); + } + + proto_abbrev = proto_registrar_get_abbrev(field_id); + + /* open reference page using the protocol abbreviation */ + selected_proto_url = g_strdup_printf("http://www.ethereal.com/docs/dfref/%c/%s", proto_abbrev[0], proto_abbrev); + browser_open_url(selected_proto_url); + g_free(selected_proto_url); + } +} + + static gchar * get_text_from_packet_list(gpointer data) { diff --git a/gtk/main.h b/gtk/main.h index d2cd7d249d..75db92e69e 100644 --- a/gtk/main.h +++ b/gtk/main.h @@ -89,6 +89,14 @@ extern void view_zoom_100_cb(GtkWidget *widget, gpointer data); */ extern void selected_ptree_info_cb(GtkWidget *widget, gpointer data); +/** User requested "Filter Reference" by ptree context menu. + * + * @param widget parent widget (unused) + * @param data unused + */ +extern void selected_ptree_ref_cb(GtkWidget *widget, gpointer data); + + /** "Apply as Filter" / "Prepare a Filter" action type. */ typedef enum { MATCH_SELECTED_REPLACE, /**< "Selected" */ diff --git a/gtk/menu.c b/gtk/menu.c index 456b4b1e66..d4ca081458 100644 --- a/gtk/menu.c +++ b/gtk/menu.c @@ -429,6 +429,8 @@ static GtkItemFactoryEntry tree_view_menu_items[] = { ITEM_FACTORY_STOCK_ENTRY("/Online Protocol Info", NULL, selected_ptree_info_cb, 0, GTK_STOCK_DIALOG_QUESTION), + ITEM_FACTORY_STOCK_ENTRY("/Online Filter Reference", NULL, selected_ptree_ref_cb, + 0, GTK_STOCK_DIALOG_QUESTION), ITEM_FACTORY_ENTRY("/<separator>", NULL, NULL, 0, "<Separator>", NULL), ITEM_FACTORY_ENTRY("/Follow TCP Stream", NULL, follow_stream_cb, 0, NULL, NULL), |