aboutsummaryrefslogtreecommitdiffstats
path: root/gtk
diff options
context:
space:
mode:
authorUlf Lamping <ulf.lamping@web.de>2005-01-19 01:12:45 +0000
committerUlf Lamping <ulf.lamping@web.de>2005-01-19 01:12:45 +0000
commit5b84b7e764bf78c3c4d58bc192c775ea3fc606d1 (patch)
tree21746cadc67bb3f76b143b6f72586a9d462f6ed8 /gtk
parentafdde203a274d3807fae18c6106006d2b1e75b01 (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.c27
-rw-r--r--gtk/main.h8
-rw-r--r--gtk/menu.c2
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),