aboutsummaryrefslogtreecommitdiffstats
path: root/gtk
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2010-10-10 19:33:42 +0000
committerAnders Broman <anders.broman@ericsson.com>2010-10-10 19:33:42 +0000
commit45371fce829e27cc37c66bf079563d48360900a3 (patch)
tree4ceb9d7cb9e85c772121028c53304b5409dbd9bf /gtk
parentf9371b0e0bd46c524781d97ec7f4171fd050bed8 (diff)
- Fix more callbacks.
When using the GUImanager the callback signature is (GtkAction *action , gpointer user_data) which causes problems when retreiveing object data stored with the widget such as the filter box widget. Work around that problem by doing filter_cm = g_object_get_data(G_OBJECT(top_level), E_DFILTER_CM_KEY); filter_te = gtk_bin_get_child(GTK_BIN(filter_cm)); in the follow_udp/tcp/ssl_stream. svn path=/trunk/; revision=34455
Diffstat (limited to 'gtk')
-rw-r--r--gtk/follow_ssl.c6
-rw-r--r--gtk/follow_tcp.c7
-rw-r--r--gtk/follow_udp.c8
-rw-r--r--gtk/keys.h1
-rw-r--r--gtk/main_filter_toolbar.h1
-rw-r--r--gtk/menus.c115
6 files changed, 87 insertions, 51 deletions
diff --git a/gtk/follow_ssl.c b/gtk/follow_ssl.c
index d39c14b09e..f65e7e34af 100644
--- a/gtk/follow_ssl.c
+++ b/gtk/follow_ssl.c
@@ -51,6 +51,7 @@
#include <../simple_dialog.h>
#include <../util.h>
+#include "gtkglobals.h"
#include <gtk/color_utils.h>
#include <gtk/main.h>
#include <gtk/dlg_utils.h>
@@ -139,7 +140,7 @@ packet_is_ssl(epan_dissect_t* edt);
void
follow_ssl_stream_cb(GtkWidget * w, gpointer data _U_)
{
- GtkWidget *filter_te;
+ GtkWidget *filter_te, *filter_cm;
gchar *follow_filter;
const gchar *previous_filter;
int filter_out_filter_len, previous_filter_len;
@@ -177,7 +178,8 @@ follow_ssl_stream_cb(GtkWidget * w, gpointer data _U_)
}
/* Set the display filter entry accordingly */
- filter_te = g_object_get_data(G_OBJECT(w), E_DFILTER_TE_KEY);
+ filter_cm = g_object_get_data(G_OBJECT(top_level), E_DFILTER_CM_KEY);
+ filter_te = gtk_bin_get_child(GTK_BIN(filter_cm));
/* needed in follow_filter_out_stream(), is there a better way? */
follow_info->filter_te = filter_te;
diff --git a/gtk/follow_tcp.c b/gtk/follow_tcp.c
index c517592e4a..f20b02dd8c 100644
--- a/gtk/follow_tcp.c
+++ b/gtk/follow_tcp.c
@@ -56,6 +56,7 @@
#include "../tempfile.h"
#include <wsutil/file_util.h>
+#include "gtkglobals.h"
#include "gtk/color_utils.h"
#include "gtk/follow_tcp.h"
#include "gtk/dlg_utils.h"
@@ -89,8 +90,9 @@ follow_tcp_redraw_all(void)
a dissection routine on belongs (this might be the most recently
selected packet, or it might be the last packet in the file). */
void
-follow_tcp_stream_cb(GtkWidget * w, gpointer data _U_)
+follow_tcp_stream_cb(GtkWidget * w _U_, gpointer data _U_)
{
+ GtkWidget *filter_cm;
GtkWidget *filter_te;
int tmp_fd;
gchar *follow_filter;
@@ -165,7 +167,8 @@ follow_tcp_stream_cb(GtkWidget * w, gpointer data _U_)
}
/* Set the display filter entry accordingly */
- filter_te = g_object_get_data(G_OBJECT(w), E_DFILTER_TE_KEY);
+ filter_cm = g_object_get_data(G_OBJECT(top_level), E_DFILTER_CM_KEY);
+ filter_te = gtk_bin_get_child(GTK_BIN(filter_cm));
/* needed in follow_filter_out_stream(), is there a better way? */
follow_info->filter_te = filter_te;
diff --git a/gtk/follow_udp.c b/gtk/follow_udp.c
index 1195028291..81af8f3378 100644
--- a/gtk/follow_udp.c
+++ b/gtk/follow_udp.c
@@ -39,6 +39,7 @@
#include <../simple_dialog.h>
+#include "gtkglobals.h"
#include "gtk/follow_stream.h"
#include <gtk/keys.h>
#include <gtk/main.h>
@@ -85,9 +86,9 @@ udp_queue_packet_data(void *tapdata, packet_info *pinfo,
a dissection routine on belongs (this might be the most recently
selected packet, or it might be the last packet in the file). */
void
-follow_udp_stream_cb(GtkWidget *w, gpointer data _U_)
+follow_udp_stream_cb(GtkWidget *w _U_, gpointer data _U_)
{
- GtkWidget *filter_te;
+ GtkWidget *filter_te, *filter_cm;
gchar *follow_filter;
const gchar *previous_filter;
int filter_out_filter_len, previous_filter_len;
@@ -124,7 +125,8 @@ follow_udp_stream_cb(GtkWidget *w, gpointer data _U_)
}
/* Set the display filter entry accordingly */
- filter_te = g_object_get_data(G_OBJECT(w), E_DFILTER_TE_KEY);
+ filter_cm = g_object_get_data(G_OBJECT(top_level), E_DFILTER_CM_KEY);
+ filter_te = gtk_bin_get_child(GTK_BIN(filter_cm));
/* needed in follow_filter_out_stream(), is there a better way? */
follow_info->filter_te = filter_te;
diff --git a/gtk/keys.h b/gtk/keys.h
index bdbbfee2c6..ac294fa5f7 100644
--- a/gtk/keys.h
+++ b/gtk/keys.h
@@ -28,6 +28,7 @@
/** @file
* Various keys for g_object_set_data().
*/
+#define E_DFILTER_CM_KEY "display_filter_combo"
#define E_DFILTER_TE_KEY "display_filter_entry"
#define E_RFILTER_TE_KEY "read_filter_te"
diff --git a/gtk/main_filter_toolbar.h b/gtk/main_filter_toolbar.h
index 52cd1e0cc2..e85aba6163 100644
--- a/gtk/main_filter_toolbar.h
+++ b/gtk/main_filter_toolbar.h
@@ -26,7 +26,6 @@
#ifndef __MAIN_FILTER_TOOLBAR_H__
#define __MAIN_FILTER_TOOLBAR_H__
-#define E_DFILTER_CM_KEY "display_filter_combo"
#define E_DFILTER_APPLY_KEY "display_filter_apply"
#define E_DFILTER_CLEAR_KEY "display_filter_clear"
diff --git a/gtk/menus.c b/gtk/menus.c
index 54d3480cc7..d4fce32905 100644
--- a/gtk/menus.c
+++ b/gtk/menus.c
@@ -112,6 +112,22 @@
#include <igemacintegration/gtkosxapplication.h>
#endif
+static int initialize = TRUE;
+#ifdef MAIN_MENU_USE_UIMANAGER
+ GtkActionGroup *main_menu_bar_action_group;
+#else
+static GtkItemFactory *main_menu_factory = NULL;
+#endif /* MAIN_MENU_USE_UIMANAGER */
+static GtkUIManager *ui_manager_main_menubar = NULL;
+static GtkUIManager *ui_manager_packet_list_heading = NULL;
+static GtkUIManager *ui_manager_packet_list_menu = NULL;
+static GtkUIManager *ui_manager_tree_view_menu = NULL;
+static GtkUIManager *ui_manager_bytes_menu = NULL;
+static GtkUIManager *ui_manager_statusbar_profiles_menu = NULL;
+static GSList *popup_menu_list = NULL;
+
+static GtkAccelGroup *grp;
+
typedef struct _menu_item {
char *name;
gint group;
@@ -456,6 +472,19 @@ goto_conversation_frame(gboolean dir)
g_free(filter);
}
+#ifdef MAIN_MENU_USE_UIMANAGER
+static void
+goto_next_frame_conversation_cb(GtkAction *action _U_, gpointer user_data)
+{
+ goto_conversation_frame(FALSE);
+}
+
+static void
+goto_previous_frame_conversation_cb(GtkAction *action _U_, gpointer user_data)
+{
+ goto_conversation_frame(TRUE);
+}
+#else
static void
goto_next_frame_conversation_cb(GtkWidget *w _U_, gpointer d _U_)
{
@@ -467,78 +496,93 @@ goto_previous_frame_conversation_cb(GtkWidget *w _U_, gpointer d _U_)
{
goto_conversation_frame(TRUE);
}
+#endif /* MAIN_MENU_USE_UIMANAGER */
+
+
/*Apply a filter */
static void
-tree_view_menu_apply_selected_cb(GtkWidget *widget, gpointer user_data)
+tree_view_menu_apply_selected_cb(GtkAction *action _U_, gpointer user_data)
{
+ GtkWidget *widget = gtk_ui_manager_get_widget(ui_manager_tree_view_menu, "/TreeViewPopup/ApplyAsFilter/Selected");
match_selected_ptree_cb( widget , user_data, MATCH_SELECTED_REPLACE|MATCH_SELECTED_APPLY_NOW);
}
static void
-tree_view_menu_apply_not_selected_cb(GtkWidget *widget, gpointer user_data)
+tree_view_menu_apply_not_selected_cb(GtkAction *action _U_, gpointer user_data)
{
+ GtkWidget *widget = gtk_ui_manager_get_widget(ui_manager_tree_view_menu, "/TreeViewPopup/ApplyAsFilter/NotSelected");
match_selected_ptree_cb( widget , user_data, MATCH_SELECTED_NOT|MATCH_SELECTED_APPLY_NOW);
}
static void
-tree_view_menu_apply_and_selected_cb(GtkWidget *widget, gpointer user_data)
+tree_view_menu_apply_and_selected_cb(GtkAction *action _U_, gpointer user_data)
{
+ GtkWidget *widget = gtk_ui_manager_get_widget(ui_manager_tree_view_menu, "/TreeViewPopup/ApplyAsFilter/AndSelected");
match_selected_ptree_cb( widget , user_data, MATCH_SELECTED_AND|MATCH_SELECTED_APPLY_NOW);
}
static void
-tree_view_menu_apply_or_selected_cb(GtkWidget *widget, gpointer user_data)
+tree_view_menu_apply_or_selected_cb(GtkAction *action _U_, gpointer user_data)
{
+ GtkWidget *widget = gtk_ui_manager_get_widget(ui_manager_tree_view_menu, "/TreeViewPopup/ApplyAsFilter/OrSelected");
match_selected_ptree_cb( widget , user_data, MATCH_SELECTED_OR|MATCH_SELECTED_APPLY_NOW);
}
static void
-tree_view_menu_apply_and_not_selected_cb(GtkWidget *widget, gpointer user_data)
+tree_view_menu_apply_and_not_selected_cb(GtkAction *action _U_, gpointer user_data)
{
+ GtkWidget *widget = gtk_ui_manager_get_widget(ui_manager_tree_view_menu, "/TreeViewPopup/ApplyAsFilter/AndNotSelected");
match_selected_ptree_cb( widget , user_data, MATCH_SELECTED_AND_NOT|MATCH_SELECTED_APPLY_NOW);
}
static void
-tree_view_menu_apply_or_not_selected_cb(GtkWidget *widget, gpointer user_data)
+tree_view_menu_apply_or_not_selected_cb(GtkAction *action _U_, gpointer user_data)
{
+ GtkWidget *widget = gtk_ui_manager_get_widget(ui_manager_tree_view_menu, "/TreeViewPopup/ApplyAsFilter/OrNotSelected");
match_selected_ptree_cb( widget , user_data,MATCH_SELECTED_OR_NOT|MATCH_SELECTED_APPLY_NOW);
}
/* Prepare a filter */
static void
-tree_view_menu_prepare_selected_cb(GtkWidget *widget, gpointer user_data)
+tree_view_menu_prepare_selected_cb(GtkAction *action _U_, gpointer user_data)
{
+ GtkWidget *widget = gtk_ui_manager_get_widget(ui_manager_tree_view_menu, "/TreeViewPopup/PrepareaFilter/Selected");
match_selected_ptree_cb( widget , user_data, MATCH_SELECTED_REPLACE);
}
static void
-tree_view_menu_prepare_not_selected_cb(GtkWidget *widget, gpointer user_data)
+tree_view_menu_prepare_not_selected_cb(GtkAction *action _U_, gpointer user_data)
{
+ GtkWidget *widget = gtk_ui_manager_get_widget(ui_manager_tree_view_menu, "/TreeViewPopup/PrepareaFilter/NotSelected");
match_selected_ptree_cb( widget , user_data, MATCH_SELECTED_NOT);
}
static void
-tree_view_menu_prepare_and_selected_cb(GtkWidget *widget, gpointer user_data)
+tree_view_menu_prepare_and_selected_cb(GtkAction *action _U_, gpointer user_data)
{
+ GtkWidget *widget = gtk_ui_manager_get_widget(ui_manager_tree_view_menu, "/TreeViewPopup/PrepareaFilter/AndSelected");
match_selected_ptree_cb( widget , user_data, MATCH_SELECTED_AND);
}
static void
-tree_view_menu_prepare_or_selected_cb(GtkWidget *widget, gpointer user_data)
+tree_view_menu_prepare_or_selected_cb(GtkAction *action _U_, gpointer user_data)
{
+ GtkWidget *widget = gtk_ui_manager_get_widget(ui_manager_tree_view_menu, "/TreeViewPopup/PrepareaFilter/OrSelected");
match_selected_ptree_cb( widget , user_data, MATCH_SELECTED_OR);
}
static void
-tree_view_menu_prepare_and_not_selected_cb(GtkWidget *widget, gpointer user_data)
+tree_view_menu_prepare_and_not_selected_cb(GtkAction *action _U_, gpointer user_data)
{
+ GtkWidget *widget = gtk_ui_manager_get_widget(ui_manager_tree_view_menu, "/TreeViewPopup/PrepareaFilter/AndNotSelected");
match_selected_ptree_cb( widget , user_data, MATCH_SELECTED_AND_NOT);
}
static void
-tree_view_menu_prepare_or_not_selected_cb(GtkWidget *widget, gpointer user_data)
+tree_view_menu_prepare_or_not_selected_cb(GtkAction *action _U_, gpointer user_data)
{
+ GtkWidget *widget = gtk_ui_manager_get_widget(ui_manager_tree_view_menu, "/TreeViewPopup/PrepareaFilter/OrNotSelected");
match_selected_ptree_cb( widget , user_data, MATCH_SELECTED_OR_NOT);
}
@@ -547,51 +591,51 @@ tree_view_menu_prepare_or_not_selected_cb(GtkWidget *widget, gpointer user_data)
guint merge_id = 0;
static void
-copy_description_cb(GtkWidget *widget, gpointer user_data)
+copy_description_cb(GtkAction *action _U_, gpointer user_data)
{
- copy_selected_plist_cb( widget , user_data, COPY_SELECTED_DESCRIPTION);
+ copy_selected_plist_cb( NULL /* widget _U_ */ , user_data, COPY_SELECTED_DESCRIPTION);
}
static void
-copy_fieldname_cb(GtkWidget *widget, gpointer user_data)
+copy_fieldname_cb(GtkAction *action _U_, gpointer user_data)
{
- copy_selected_plist_cb( widget , user_data, COPY_SELECTED_FIELDNAME);
+ copy_selected_plist_cb( NULL /* widget _U_ */ , user_data, COPY_SELECTED_FIELDNAME);
}
static void
-copy_value_cb(GtkWidget *widget, gpointer user_data)
+copy_value_cb(GtkAction *action _U_, gpointer user_data)
{
- copy_selected_plist_cb( widget , user_data, COPY_SELECTED_VALUE);
+ copy_selected_plist_cb( NULL /* widget _U_ */ , user_data, COPY_SELECTED_VALUE);
}
static void
-copy_as_filter_cb(GtkWidget *widget, gpointer user_data)
+copy_as_filter_cb(GtkAction *action _U_, gpointer user_data)
{
- match_selected_ptree_cb( widget , user_data, MATCH_SELECTED_REPLACE|MATCH_SELECTED_COPY_ONLY);
+ match_selected_ptree_cb( NULL /* widget _U_ */ , user_data, MATCH_SELECTED_REPLACE|MATCH_SELECTED_COPY_ONLY);
}
static void
-set_reftime_cb(GtkWidget *widget, gpointer user_data)
+set_reftime_cb(GtkAction *action _U_, gpointer user_data)
{
- reftime_frame_cb( widget , user_data, REFTIME_TOGGLE);
+ reftime_frame_cb( NULL /* widget _U_ */ , user_data, REFTIME_TOGGLE);
}
static void
-find_next_ref_time_cb(GtkWidget *widget, gpointer user_data)
+find_next_ref_time_cb(GtkAction *action _U_, gpointer user_data)
{
- reftime_frame_cb( widget , user_data, REFTIME_FIND_NEXT);
+ reftime_frame_cb( NULL /* widget _U_ */ , user_data, REFTIME_FIND_NEXT);
}
static void
-find_previous_ref_time_cb(GtkWidget *widget, gpointer user_data)
+find_previous_ref_time_cb(GtkAction *action _U_, gpointer user_data)
{
- reftime_frame_cb( widget , user_data, REFTIME_FIND_PREV);
+ reftime_frame_cb( NULL /* widget _U_ */ , user_data, REFTIME_FIND_PREV);
}
static void
-menus_prefs_cb(GtkWidget *widget, gpointer user_data)
+menus_prefs_cb(GtkAction *action _U_, gpointer user_data)
{
- prefs_page_cb( widget , user_data, PREFS_PAGE_USER_INTERFACE);
+ prefs_page_cb( NULL /* widget _U_ */ , user_data, PREFS_PAGE_USER_INTERFACE);
}
static void
@@ -2025,21 +2069,6 @@ static GtkItemFactoryEntry menu_items[] =
static int nmenu_items = sizeof(menu_items) / sizeof(menu_items[0]);
#endif /* MAIN_MENU_USE_UIMANAGER */
-static int initialize = TRUE;
-#ifdef MAIN_MENU_USE_UIMANAGER
- GtkActionGroup *main_menu_bar_action_group;
-#else
-static GtkItemFactory *main_menu_factory = NULL;
-#endif
-static GtkUIManager *ui_manager_main_menubar = NULL;
-static GtkUIManager *ui_manager_packet_list_heading = NULL;
-static GtkUIManager *ui_manager_packet_list_menu = NULL;
-static GtkUIManager *ui_manager_tree_view_menu = NULL;
-static GtkUIManager *ui_manager_bytes_menu = NULL;
-static GtkUIManager *ui_manager_statusbar_profiles_menu = NULL;
-static GSList *popup_menu_list = NULL;
-
-static GtkAccelGroup *grp;
static void
select_bytes_view_cb (GtkRadioAction *action, GtkRadioAction *current _U_, gpointer user_data _U_)