aboutsummaryrefslogtreecommitdiffstats
path: root/gtk/main.c
diff options
context:
space:
mode:
authorOlivier Abad <oabad@noos.fr>2002-11-10 11:36:39 +0000
committerOlivier Abad <oabad@noos.fr>2002-11-10 11:36:39 +0000
commit573f0840ebf901632876caffbc94a59ad1df7717 (patch)
tree0f40cb8b63e01acc615ad01b914718a0c3981e13 /gtk/main.c
parentb48fd02f40614ea6aa618cf4383a270b65a920d7 (diff)
- use gtk1/gtk2 compatibility macros to reduce #ifdefs
- when processing tap extensions command line options, wait until the main window has been created before opening the tap window, to avoid lots of GTK warnings. svn path=/trunk/; revision=6601
Diffstat (limited to 'gtk/main.c')
-rw-r--r--gtk/main.c183
1 files changed, 57 insertions, 126 deletions
diff --git a/gtk/main.c b/gtk/main.c
index 5cf2c3f7f1..71bb2b0467 100644
--- a/gtk/main.c
+++ b/gtk/main.c
@@ -1,6 +1,6 @@
/* main.c
*
- * $Id: main.c,v 1.273 2002/11/06 10:53:36 sahlberg Exp $
+ * $Id: main.c,v 1.274 2002/11/10 11:36:39 oabad Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -129,6 +129,7 @@
#include "image/clist_ascend.xpm"
#include "image/clist_descend.xpm"
#include "../tap.h"
+#include "compat_macros.h"
#ifdef WIN32
#include "capture-wpcap.h"
@@ -225,7 +226,7 @@ match_selected_cb_do(gpointer data, int action, gchar *text)
if (!text)
return;
g_assert(data);
- filter_te = gtk_object_get_data(GTK_OBJECT(data), E_DFILTER_TE_KEY);
+ filter_te = OBJECT_GET_DATA(data, E_DFILTER_TE_KEY);
g_assert(filter_te);
cur_filter = gtk_editable_get_chars(GTK_EDITABLE(filter_te), 0, -1);
@@ -402,8 +403,8 @@ prepare_selected_cb_or_ptree_not(GtkWidget *w, gpointer data)
static gchar *
get_text_from_packet_list(gpointer data)
{
- gint row = (gint)gtk_object_get_data(GTK_OBJECT(data), E_MPACKET_LIST_ROW_KEY);
- gint column = (gint)gtk_object_get_data(GTK_OBJECT(data), E_MPACKET_LIST_COL_KEY);
+ gint row = (gint)OBJECT_GET_DATA(data, E_MPACKET_LIST_ROW_KEY);
+ gint column = (gint)OBJECT_GET_DATA(data, E_MPACKET_LIST_COL_KEY);
frame_data *fdata = (frame_data *)gtk_clist_get_row_data(GTK_CLIST(packet_list), row);
epan_dissect_t *edt;
gchar *buf=NULL;
@@ -536,8 +537,8 @@ prepare_selected_cb_or_plist_not(GtkWidget *w _U_, gpointer data)
static void
filter_activate_cb(GtkWidget *w, gpointer data)
{
- GtkCombo *filter_cm = gtk_object_get_data(GTK_OBJECT(w), E_DFILTER_CM_KEY);
- GList *filter_list = gtk_object_get_data(GTK_OBJECT(filter_cm), E_DFILTER_FL_KEY);
+ GtkCombo *filter_cm = OBJECT_GET_DATA(w, E_DFILTER_CM_KEY);
+ GList *filter_list = OBJECT_GET_DATA(filter_cm, E_DFILTER_FL_KEY);
GList *li;
gboolean add_filter = TRUE;
gboolean free_filter = TRUE;
@@ -560,7 +561,7 @@ filter_activate_cb(GtkWidget *w, gpointer data)
if (add_filter) {
free_filter = FALSE;
filter_list = g_list_append(filter_list, s);
- gtk_object_set_data(GTK_OBJECT(filter_cm), E_DFILTER_FL_KEY, filter_list);
+ OBJECT_SET_DATA(filter_cm, E_DFILTER_FL_KEY, filter_list);
gtk_combo_set_popdown_strings(filter_cm, filter_list);
gtk_entry_set_text(GTK_ENTRY(filter_cm->entry), g_list_last(filter_list)->data);
}
@@ -575,7 +576,7 @@ filter_reset_cb(GtkWidget *w, gpointer data _U_)
{
GtkWidget *filter_te = NULL;
- if ((filter_te = gtk_object_get_data(GTK_OBJECT(w), E_DFILTER_TE_KEY))) {
+ if ((filter_te = OBJECT_GET_DATA(w, E_DFILTER_TE_KEY))) {
gtk_entry_set_text(GTK_ENTRY(filter_te), "");
}
filter_packets(&cfile, NULL);
@@ -1410,6 +1411,7 @@ main(int argc, char *argv[])
gint desk_x, desk_y;
gboolean prefs_write_needed = FALSE;
ethereal_tap_list *tli;
+ gchar *tap_opt = NULL;
#define OPTSTRING_INIT "a:b:B:c:f:hi:klm:nN:o:pP:Qr:R:Ss:t:T:w:vz:"
@@ -1838,7 +1840,7 @@ main(int argc, char *argv[])
case 'z':
for(tli=tap_list;tli;tli=tli->next){
if(!strncmp(tli->cmd,optarg,strlen(tli->cmd))){
- (*tli->func)(optarg);
+ tap_opt = g_strdup(optarg);
break;
}
}
@@ -2131,6 +2133,17 @@ main(int argc, char *argv[])
create_main_window(pl_size, tv_size, bv_size, prefs);
set_menus_for_capture_file(FALSE);
+ /* open tap windows after creating the main window to avoid GTK warnings */
+ if (tap_opt) {
+ for(tli=tap_list;tli;tli=tli->next){
+ if(!strncmp(tli->cmd,tap_opt,strlen(tli->cmd))){
+ (*tli->func)(tap_opt);
+ break;
+ }
+ }
+ g_free(tap_opt);
+ }
+
colfilter_init();
/* If we were given the name of a capture file, read it in now;
@@ -2530,17 +2543,9 @@ create_main_window (gint pl_size, gint tv_size, gint bv_size, e_prefs *prefs)
/* Main window */
top_level = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_name(top_level, "main window");
-#if GTK_MAJOR_VERSION < 2
- gtk_signal_connect(GTK_OBJECT(top_level), "delete_event",
- GTK_SIGNAL_FUNC(main_window_delete_event_cb), NULL);
- gtk_signal_connect (GTK_OBJECT (top_level), "realize",
- GTK_SIGNAL_FUNC (window_icon_realize_cb), NULL);
-#else
- g_signal_connect(G_OBJECT(top_level), "delete_event",
- G_CALLBACK(main_window_delete_event_cb), NULL);
- g_signal_connect(G_OBJECT(top_level), "realize",
- G_CALLBACK (window_icon_realize_cb), NULL);
-#endif
+ SIGNAL_CONNECT(top_level, "delete_event", main_window_delete_event_cb,
+ NULL);
+ SIGNAL_CONNECT(top_level, "realize", window_icon_realize_cb, NULL);
gtk_window_set_title(GTK_WINDOW(top_level), "The Ethereal Network Analyzer");
if (prefs->gui_geometry_save_position) {
gtk_widget_set_uposition(GTK_WIDGET(top_level),
@@ -2548,21 +2553,10 @@ create_main_window (gint pl_size, gint tv_size, gint bv_size, e_prefs *prefs)
prefs->gui_geometry_main_y);
}
if (prefs->gui_geometry_save_size) {
-#if GTK_MAJOR_VERSION < 2
- gtk_widget_set_usize(GTK_WIDGET(top_level),
- prefs->gui_geometry_main_width,
- prefs->gui_geometry_main_height);
-#else
- gtk_widget_set_size_request(GTK_WIDGET(top_level),
- prefs->gui_geometry_main_width,
- prefs->gui_geometry_main_height);
-#endif
+ WIDGET_SET_SIZE(top_level, prefs->gui_geometry_main_width,
+ prefs->gui_geometry_main_height);
} else {
-#if GTK_MAJOR_VERSION < 2
- gtk_widget_set_usize(GTK_WIDGET(top_level), DEF_WIDTH, -1);
-#else
- gtk_widget_set_size_request(GTK_WIDGET(top_level), DEF_WIDTH, -1);
-#endif
+ WIDGET_SET_SIZE(top_level, DEF_WIDTH, -1);
}
gtk_window_set_policy(GTK_WINDOW(top_level), TRUE, TRUE, FALSE);
@@ -2605,22 +2599,10 @@ create_main_window (gint pl_size, gint tv_size, gint bv_size, e_prefs *prefs)
set_plist_sel_browse(prefs->gui_plist_sel_browse);
set_plist_font(m_r_font);
gtk_widget_set_name(packet_list, "packet list");
-#if GTK_MAJOR_VERSION < 2
- gtk_signal_connect (GTK_OBJECT (packet_list), "click_column",
- GTK_SIGNAL_FUNC(packet_list_click_column_cb),
- col_arrows);
- gtk_signal_connect(GTK_OBJECT(packet_list), "select_row",
- GTK_SIGNAL_FUNC(packet_list_select_cb), NULL);
- gtk_signal_connect(GTK_OBJECT(packet_list), "unselect_row",
- GTK_SIGNAL_FUNC(packet_list_unselect_cb), NULL);
-#else
- g_signal_connect(G_OBJECT(packet_list), "click-column",
- G_CALLBACK(packet_list_click_column_cb), col_arrows);
- g_signal_connect(G_OBJECT(packet_list), "select-row",
- G_CALLBACK(packet_list_select_cb), NULL);
- g_signal_connect(G_OBJECT(packet_list), "unselect-row",
- G_CALLBACK(packet_list_unselect_cb), NULL);
-#endif
+ SIGNAL_CONNECT(packet_list, "click-column", packet_list_click_column_cb,
+ col_arrows);
+ SIGNAL_CONNECT(packet_list, "select-row", packet_list_select_cb, NULL);
+ SIGNAL_CONNECT(packet_list, "unselect-row", packet_list_unselect_cb, NULL);
for (i = 0; i < cfile.cinfo.num_cols; i++) {
if (get_column_resize_type(cfile.cinfo.col_fmt[i]) != RESIZE_MANUAL)
gtk_clist_set_column_auto_resize(GTK_CLIST(packet_list), i, TRUE);
@@ -2630,23 +2612,11 @@ create_main_window (gint pl_size, gint tv_size, gint bv_size, e_prefs *prefs)
gtk_clist_set_column_justification(GTK_CLIST(packet_list), i,
GTK_JUSTIFY_RIGHT);
}
-#if GTK_MAJOR_VERSION < 2
- gtk_widget_set_usize(packet_list, -1, pl_size);
- gtk_signal_connect(GTK_OBJECT(packet_list), "button_press_event",
- GTK_SIGNAL_FUNC(popup_menu_handler),
- gtk_object_get_data(GTK_OBJECT(popup_menu_object),
- PM_PACKET_LIST_KEY));
- gtk_signal_connect(GTK_OBJECT(packet_list), "button_press_event",
- GTK_SIGNAL_FUNC(packet_list_button_pressed_cb), NULL);
-#else
- gtk_widget_set_size_request(packet_list, -1, pl_size);
- g_signal_connect(G_OBJECT(packet_list), "button_press_event",
- G_CALLBACK(popup_menu_handler),
- g_object_get_data(G_OBJECT(popup_menu_object),
- PM_PACKET_LIST_KEY));
- g_signal_connect(G_OBJECT(packet_list), "button_press_event",
- G_CALLBACK(packet_list_button_pressed_cb), NULL);
-#endif
+ WIDGET_SET_SIZE(packet_list, -1, pl_size);
+ SIGNAL_CONNECT(packet_list, "button_press_event", popup_menu_handler,
+ OBJECT_GET_DATA(popup_menu_object, PM_PACKET_LIST_KEY));
+ SIGNAL_CONNECT(packet_list, "button_press_event",
+ packet_list_button_pressed_cb, NULL);
gtk_clist_set_compare_func(GTK_CLIST(packet_list), packet_list_compare);
gtk_widget_show(packet_list);
@@ -2658,39 +2628,22 @@ create_main_window (gint pl_size, gint tv_size, gint bv_size, e_prefs *prefs)
#endif
create_tree_view(tv_size, prefs, l_pane, &tv_scrollw, &tree_view);
#if GTK_MAJOR_VERSION < 2
- gtk_signal_connect(GTK_OBJECT(tree_view), "tree-select-row",
- GTK_SIGNAL_FUNC(tree_view_select_row_cb), NULL);
- gtk_signal_connect(GTK_OBJECT(tree_view), "tree-unselect-row",
- GTK_SIGNAL_FUNC(tree_view_unselect_row_cb), NULL);
- gtk_signal_connect(GTK_OBJECT(tree_view), "button_press_event",
- GTK_SIGNAL_FUNC(popup_menu_handler),
- gtk_object_get_data(GTK_OBJECT(popup_menu_object),
- PM_TREE_VIEW_KEY));
+ SIGNAL_CONNECT(tree_view, "tree-select-row", tree_view_select_row_cb, NULL);
+ SIGNAL_CONNECT(tree_view, "tree-unselect-row", tree_view_unselect_row_cb,
+ NULL);
#else
- g_signal_connect(G_OBJECT(gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view))),
- "changed", G_CALLBACK(tree_view_selection_changed_cb),
- NULL);
- g_signal_connect(G_OBJECT(tree_view), "button_press_event",
- G_CALLBACK(popup_menu_handler),
- g_object_get_data(G_OBJECT(popup_menu_object),
- PM_TREE_VIEW_KEY));
+ SIGNAL_CONNECT(gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view)),
+ "changed", tree_view_selection_changed_cb, NULL);
#endif
+ SIGNAL_CONNECT(tree_view, "button_press_event", popup_menu_handler,
+ OBJECT_GET_DATA(popup_menu_object, PM_TREE_VIEW_KEY));
gtk_widget_show(tree_view);
/* Byte view. */
byte_nb_ptr = create_byte_view(bv_size, l_pane);
-#if GTK_MAJOR_VERSION < 2
- gtk_signal_connect(GTK_OBJECT(byte_nb_ptr), "button_press_event",
- GTK_SIGNAL_FUNC(popup_menu_handler),
- gtk_object_get_data(GTK_OBJECT(popup_menu_object),
- PM_HEXDUMP_KEY));
-#else
- g_signal_connect(G_OBJECT(byte_nb_ptr), "button_press_event",
- G_CALLBACK(popup_menu_handler),
- g_object_get_data(G_OBJECT(popup_menu_object),
- PM_HEXDUMP_KEY));
-#endif
+ SIGNAL_CONNECT(byte_nb_ptr, "button_press_event", popup_menu_handler,
+ OBJECT_GET_DATA(popup_menu_object, PM_HEXDUMP_KEY));
/* Filter/info box */
stat_hbox = gtk_hbox_new(FALSE, 1);
@@ -2699,13 +2652,7 @@ create_main_window (gint pl_size, gint tv_size, gint bv_size, e_prefs *prefs)
gtk_widget_show(stat_hbox);
filter_bt = gtk_button_new_with_label("Filter:");
-#if GTK_MAJOR_VERSION < 2
- gtk_signal_connect(GTK_OBJECT(filter_bt), "clicked",
- GTK_SIGNAL_FUNC(display_filter_construct_cb), &args);
-#else
- g_signal_connect(G_OBJECT(filter_bt), "clicked",
- G_CALLBACK(display_filter_construct_cb), &args);
-#endif
+ SIGNAL_CONNECT(filter_bt, "clicked", display_filter_construct_cb, &args);
gtk_box_pack_start(GTK_BOX(stat_hbox), filter_bt, FALSE, TRUE, 0);
gtk_widget_show(filter_bt);
@@ -2714,45 +2661,31 @@ create_main_window (gint pl_size, gint tv_size, gint bv_size, e_prefs *prefs)
gtk_combo_set_popdown_strings(GTK_COMBO(filter_cm), filter_list);
gtk_combo_disable_activate(GTK_COMBO(filter_cm));
gtk_combo_set_case_sensitive(GTK_COMBO(filter_cm), TRUE);
- gtk_object_set_data(GTK_OBJECT(filter_cm), E_DFILTER_FL_KEY, filter_list);
+ OBJECT_SET_DATA(filter_cm, E_DFILTER_FL_KEY, filter_list);
filter_te = GTK_COMBO(filter_cm)->entry;
- gtk_object_set_data(GTK_OBJECT(filter_bt), E_FILT_TE_PTR_KEY, filter_te);
- gtk_object_set_data(GTK_OBJECT(filter_te), E_DFILTER_CM_KEY, filter_cm);
+ OBJECT_SET_DATA(filter_bt, E_FILT_TE_PTR_KEY, filter_te);
+ OBJECT_SET_DATA(filter_te, E_DFILTER_CM_KEY, filter_cm);
gtk_box_pack_start(GTK_BOX(stat_hbox), filter_cm, TRUE, TRUE, 3);
-#if GTK_MAJOR_VERSION < 2
- gtk_signal_connect(GTK_OBJECT(filter_te), "activate",
- GTK_SIGNAL_FUNC(filter_activate_cb), filter_te);
-#else
- g_signal_connect(G_OBJECT(filter_te), "activate",
- G_CALLBACK(filter_activate_cb), filter_te);
-#endif
+ SIGNAL_CONNECT(filter_te, "activate", filter_activate_cb, filter_te);
gtk_widget_show(filter_cm);
#if GTK_MAJOR_VERSION < 2
filter_reset = gtk_button_new_with_label("Reset");
- gtk_object_set_data(GTK_OBJECT(filter_reset), E_DFILTER_TE_KEY, filter_te);
- gtk_signal_connect(GTK_OBJECT(filter_reset), "clicked",
- GTK_SIGNAL_FUNC(filter_reset_cb), NULL);
#else
filter_reset = gtk_button_new_from_stock(GTK_STOCK_CLEAR);
- g_object_set_data(G_OBJECT(filter_reset), E_DFILTER_TE_KEY, filter_te);
- g_signal_connect(G_OBJECT(filter_reset), "clicked",
- G_CALLBACK(filter_reset_cb), NULL);
#endif
+ OBJECT_SET_DATA(filter_reset, E_DFILTER_TE_KEY, filter_te);
+ SIGNAL_CONNECT(filter_reset, "clicked", filter_reset_cb, NULL);
gtk_box_pack_start(GTK_BOX(stat_hbox), filter_reset, FALSE, TRUE, 1);
gtk_widget_show(filter_reset);
#if GTK_MAJOR_VERSION < 2
filter_apply = gtk_button_new_with_label("Apply");
- gtk_object_set_data(GTK_OBJECT(filter_apply), E_DFILTER_CM_KEY, filter_cm);
- gtk_signal_connect(GTK_OBJECT(filter_apply), "clicked",
- GTK_SIGNAL_FUNC(filter_activate_cb), filter_te);
#else
filter_apply = gtk_button_new_from_stock(GTK_STOCK_APPLY);
- g_object_set_data(G_OBJECT(filter_apply), E_DFILTER_CM_KEY, filter_cm);
- g_signal_connect(G_OBJECT(filter_apply), "clicked",
- G_CALLBACK(filter_activate_cb), filter_te);
#endif
+ OBJECT_SET_DATA(filter_apply, E_DFILTER_CM_KEY, filter_cm);
+ SIGNAL_CONNECT(filter_apply, "clicked", filter_activate_cb, filter_te);
gtk_box_pack_start(GTK_BOX(stat_hbox), filter_apply, FALSE, TRUE, 1);
gtk_widget_show(filter_apply);
@@ -2788,10 +2721,8 @@ create_main_window (gint pl_size, gint tv_size, gint bv_size, e_prefs *prefs)
filter_te);
set_menu_object_data("/Display/Prepare/Or Not Selected", E_DFILTER_TE_KEY,
filter_te);
- gtk_object_set_data(GTK_OBJECT(popup_menu_object), E_DFILTER_TE_KEY,
- filter_te);
- gtk_object_set_data(GTK_OBJECT(popup_menu_object), E_MPACKET_LIST_KEY,
- packet_list);
+ OBJECT_SET_DATA(popup_menu_object, E_DFILTER_TE_KEY, filter_te);
+ OBJECT_SET_DATA(popup_menu_object, E_MPACKET_LIST_KEY, packet_list);
info_bar = gtk_statusbar_new();
main_ctx = gtk_statusbar_get_context_id(GTK_STATUSBAR(info_bar), "main");