aboutsummaryrefslogtreecommitdiffstats
path: root/gtk/find_dlg.c
diff options
context:
space:
mode:
authorUlf Lamping <ulf.lamping@web.de>2004-02-28 22:07:33 +0000
committerUlf Lamping <ulf.lamping@web.de>2004-02-28 22:07:33 +0000
commit99c72920c1649939c26ed2bc208669dbcd7fcd3c (patch)
treea7055eed27ef9f0d6d949332fcfec342fe8fc23e /gtk/find_dlg.c
parent1cd1731da9aef0cfb1c7584e8138c2703591460b (diff)
redesign of the whole dialog
svn path=/trunk/; revision=10261
Diffstat (limited to 'gtk/find_dlg.c')
-rw-r--r--gtk/find_dlg.c310
1 files changed, 187 insertions, 123 deletions
diff --git a/gtk/find_dlg.c b/gtk/find_dlg.c
index 69a8a43b69..63d98e08e3 100644
--- a/gtk/find_dlg.c
+++ b/gtk/find_dlg.c
@@ -1,7 +1,7 @@
/* find_dlg.c
* Routines for "find frame" window
*
- * $Id: find_dlg.c,v 1.48 2004/02/28 04:18:47 guy Exp $
+ * $Id: find_dlg.c,v 1.49 2004/02/28 22:07:33 ulfl Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -53,6 +53,7 @@
#define E_FIND_ASCIIDATA_KEY "find_ascii"
#define E_FIND_FILTERDATA_KEY "find_filter"
#define E_FIND_STRINGTYPE_KEY "find_string_type"
+#define E_FIND_STRINGTYPE_LABEL_KEY "find_string_type_label"
#define E_CASE_SEARCH_KEY "case_insensitive_search"
#define E_SOURCE_HEX_KEY "hex_data_source"
#define E_SOURCE_DECODE_KEY "decode_data_source"
@@ -99,14 +100,22 @@ static GtkWidget *filter_text_box;
void
find_frame_cb(GtkWidget *w _U_, gpointer d _U_)
{
- GtkWidget *main_vb, *filter_hb, *filter_bt,
- *direction_hb, *forward_rb, *backward_rb,
- *hex_hb, *hex_rb, *ascii_rb, *filter_rb,
- *data_hb, *hex_data_rb, *decode_data_rb, *summary_data_rb,
- *combo_cb,
- *bbox, *ok_bt, *cancel_bt, *case_cb,
- *direction_frame, *find_type_frame, *string_window_frame,
- *string_char_frame, *string_opt_frame;
+ GtkWidget *main_vb, *main_find_hb, *main_options_hb,
+
+ *find_type_frame, *find_type_vb,
+ *find_type_hb, *find_type_lb, *hex_rb, *ascii_rb, *filter_rb,
+ *filter_hb, *filter_bt,
+
+ *direction_frame, *direction_vb,
+ *up_rb, *down_rb,
+
+ *data_frame, *data_vb,
+ *hex_data_rb, *decode_data_rb, *summary_data_rb,
+
+ *string_opt_frame, *string_opt_vb,
+ *case_cb, *combo_lb, *combo_cb,
+
+ *bbox, *ok_bt, *cancel_bt;
GtkTooltips *tooltips;
#if GTK_MAJOR_VERSION < 2
GtkAccelGroup *accel_group;
@@ -145,129 +154,141 @@ find_frame_cb(GtkWidget *w _U_, gpointer d _U_)
gtk_container_add(GTK_CONTAINER(find_frame_w), main_vb);
gtk_widget_show(main_vb);
- /* Filter row */
- filter_hb = gtk_hbox_new(FALSE, 3);
- gtk_container_add(GTK_CONTAINER(main_vb), filter_hb);
- gtk_widget_show(filter_hb);
- filter_bt = BUTTON_NEW_FROM_STOCK(ETHEREAL_STOCK_DISPLAY_FILTER_ENTRY);
- SIGNAL_CONNECT(filter_bt, "clicked", display_filter_construct_cb, &args);
- SIGNAL_CONNECT(filter_bt, "destroy", filter_button_destroy_cb, NULL);
- OBJECT_SET_DATA(filter_bt, E_FILT_TE_BUTTON_KEY, filter_bt);
- gtk_box_pack_start(GTK_BOX(filter_hb), filter_bt, FALSE, TRUE, 0);
- gtk_tooltips_set_tip (tooltips, filter_bt, ("Click on the filter button to select a display filter,\nor enter your search criteria into the text box"), NULL);
- gtk_widget_show(filter_bt);
+ /* */
+ main_find_hb = gtk_hbox_new(FALSE, 3);
+ gtk_container_add(GTK_CONTAINER(main_vb), main_find_hb);
+ gtk_widget_show(main_find_hb);
- filter_text_box = gtk_entry_new();
- if (cfile.sfilter) gtk_entry_set_text(GTK_ENTRY(filter_text_box), cfile.sfilter);
- OBJECT_SET_DATA(filter_bt, E_FILT_TE_PTR_KEY, filter_text_box);
- OBJECT_SET_DATA(find_frame_w, E_FILT_TE_PTR_KEY, filter_text_box);
- gtk_box_pack_start(GTK_BOX(filter_hb), filter_text_box, TRUE, TRUE, 0);
- SIGNAL_CONNECT(filter_text_box, "changed", find_filter_te_syntax_check_cb, find_frame_w);
- gtk_widget_show(filter_text_box);
-
- direction_frame = gtk_frame_new("Direction");
- gtk_box_pack_start(GTK_BOX(main_vb), direction_frame, TRUE, TRUE, 0);
- gtk_container_border_width(GTK_CONTAINER(direction_frame), 5);
- gtk_widget_show(direction_frame);
-
- /* Misc row: Forward and reverse radio buttons */
- direction_hb = gtk_hbox_new(FALSE, 3);
- gtk_container_border_width(GTK_CONTAINER(direction_hb), 1);
- gtk_container_add(GTK_CONTAINER(direction_frame), direction_hb);
- gtk_widget_show(direction_hb);
-
- forward_rb = RADIO_BUTTON_NEW_WITH_MNEMONIC(NULL,
- "_Forward", accel_group);
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(forward_rb), !cfile.sbackward);
- gtk_box_pack_start(GTK_BOX(direction_hb), forward_rb, TRUE, TRUE, 0);
- gtk_widget_show(forward_rb);
+ /* find frame */
+ find_type_frame = gtk_frame_new("Find");
+ gtk_box_pack_start(GTK_BOX(main_find_hb), find_type_frame, TRUE, TRUE, 0);
+ gtk_widget_show(find_type_frame);
- backward_rb = RADIO_BUTTON_NEW_WITH_MNEMONIC(forward_rb,
- "_Backward", accel_group);
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(backward_rb), cfile.sbackward);
- gtk_box_pack_start(GTK_BOX(direction_hb), backward_rb, TRUE, TRUE, 0);
- gtk_widget_show(backward_rb);
+ find_type_vb = gtk_vbox_new(FALSE, 3);
+ gtk_container_border_width(GTK_CONTAINER(find_type_vb), 3);
+ gtk_container_add(GTK_CONTAINER(find_type_frame), find_type_vb);
+ gtk_widget_show(find_type_vb);
+ /* find type row */
+ find_type_hb = gtk_hbox_new(FALSE, 3);
+ gtk_container_add(GTK_CONTAINER(find_type_vb), find_type_hb);
+ gtk_widget_show(find_type_hb);
- find_type_frame = gtk_frame_new("Find syntax");
- gtk_box_pack_start(GTK_BOX(main_vb), find_type_frame, TRUE, TRUE, 0);
- gtk_container_border_width(GTK_CONTAINER(find_type_frame), 5);
- gtk_widget_show(find_type_frame);
+ find_type_lb = gtk_label_new("By:");
+ gtk_box_pack_start(GTK_BOX(find_type_hb), find_type_lb, FALSE, FALSE, 0);
+ gtk_widget_show(find_type_lb);
- /* Filter/Hex/Ascii Search */
/* Filter */
- hex_hb = gtk_hbox_new(FALSE, 3);
- gtk_container_border_width(GTK_CONTAINER(hex_hb), 1);
- gtk_container_add(GTK_CONTAINER(find_type_frame), hex_hb);
- gtk_widget_show(hex_hb);
-
- filter_rb = RADIO_BUTTON_NEW_WITH_MNEMONIC(NULL, "_Display Filter",
- accel_group);
+ filter_rb = RADIO_BUTTON_NEW_WITH_MNEMONIC(NULL,
+ "_Display Filter", accel_group);
gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(filter_rb), !cfile.hex && !cfile.ascii);
- gtk_box_pack_start(GTK_BOX(hex_hb), filter_rb, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(find_type_hb), filter_rb, FALSE, FALSE, 0);
gtk_tooltips_set_tip (tooltips, filter_rb, ("Search for data by display filter syntax.\ne.g. ip.addr==10.1.1.1"), NULL);
gtk_widget_show(filter_rb);
/* Hex */
hex_rb = RADIO_BUTTON_NEW_WITH_MNEMONIC(filter_rb,
- "_Hex", accel_group);
+ "_Hex value", accel_group);
gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(hex_rb), cfile.hex);
- gtk_box_pack_start(GTK_BOX(hex_hb), hex_rb, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(find_type_hb), hex_rb, FALSE, FALSE, 0);
gtk_tooltips_set_tip (tooltips, hex_rb, ("Search for data by hex string.\ne.g. fffffda5"), NULL);
gtk_widget_show(hex_rb);
/* ASCII Search */
-
ascii_rb = RADIO_BUTTON_NEW_WITH_MNEMONIC(filter_rb,
"_String", accel_group);
gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(ascii_rb), cfile.ascii);
- gtk_box_pack_start(GTK_BOX(hex_hb), ascii_rb, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(find_type_hb), ascii_rb, FALSE, FALSE, 0);
gtk_tooltips_set_tip (tooltips, ascii_rb, ("Search for data by string value.\ne.g. My String"), NULL);
gtk_widget_show(ascii_rb);
- string_window_frame = gtk_frame_new("Search in");
- gtk_box_pack_start(GTK_BOX(main_vb), string_window_frame, TRUE, TRUE, 0);
- gtk_container_border_width(GTK_CONTAINER(string_window_frame), 5);
- gtk_widget_show(string_window_frame);
+ /* Filter row */
+ filter_hb = gtk_hbox_new(FALSE, 3);
+ gtk_container_add(GTK_CONTAINER(find_type_vb), filter_hb);
+ gtk_widget_show(filter_hb);
- /* Hex, Decode, or Summary Data Search */
- /* Source Hex Data Search Window*/
- data_hb = gtk_hbox_new(TRUE, 0);
- gtk_container_border_width(GTK_CONTAINER(data_hb), 1);
- gtk_container_add(GTK_CONTAINER(string_window_frame), data_hb);
- gtk_widget_show(data_hb);
+ filter_bt = BUTTON_NEW_FROM_STOCK(ETHEREAL_STOCK_DISPLAY_FILTER_ENTRY);
+ SIGNAL_CONNECT(filter_bt, "clicked", display_filter_construct_cb, &args);
+ SIGNAL_CONNECT(filter_bt, "destroy", filter_button_destroy_cb, NULL);
+ OBJECT_SET_DATA(filter_bt, E_FILT_TE_BUTTON_KEY, filter_bt);
+ gtk_box_pack_start(GTK_BOX(filter_hb), filter_bt, FALSE, TRUE, 0);
+ gtk_tooltips_set_tip (tooltips, filter_bt, ("Click on the filter button to select a display filter,\nor enter your search criteria into the text box"), NULL);
+ gtk_widget_show(filter_bt);
- hex_data_rb = RADIO_BUTTON_NEW_WITH_MNEMONIC(NULL,
- "Packet data", accel_group);
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(hex_data_rb), !decode_data && !summary_data);
- gtk_box_pack_start(GTK_BOX(data_hb), hex_data_rb, TRUE, TRUE, 0);
- gtk_tooltips_set_tip (tooltips, hex_data_rb, ("Search for string in the packet data"), NULL);
- gtk_widget_show(hex_data_rb);
+ filter_text_box = gtk_entry_new();
+ if (cfile.sfilter) gtk_entry_set_text(GTK_ENTRY(filter_text_box), cfile.sfilter);
+ OBJECT_SET_DATA(filter_bt, E_FILT_TE_PTR_KEY, filter_text_box);
+ OBJECT_SET_DATA(find_frame_w, E_FILT_TE_PTR_KEY, filter_text_box);
+ gtk_box_pack_start(GTK_BOX(filter_hb), filter_text_box, TRUE, TRUE, 0);
+ SIGNAL_CONNECT(filter_text_box, "changed", find_filter_te_syntax_check_cb, find_frame_w);
+ gtk_widget_show(filter_text_box);
- /* Search Decode Window */
- decode_data_rb = RADIO_BUTTON_NEW_WITH_MNEMONIC(hex_data_rb,
- "Decoded packet", accel_group);
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(decode_data_rb), decode_data);
- gtk_box_pack_start(GTK_BOX(data_hb), decode_data_rb, TRUE, TRUE, 0);
- gtk_tooltips_set_tip (tooltips, decode_data_rb, ("Search for string in the decoded packet display (middle pane)"), NULL);
- gtk_widget_show(decode_data_rb);
- /* Search Summary Window */
+ /* */
+ main_options_hb = gtk_hbox_new(FALSE, 3);
+ gtk_container_add(GTK_CONTAINER(main_vb), main_options_hb);
+ gtk_widget_show(main_options_hb);
+
- summary_data_rb = RADIO_BUTTON_NEW_WITH_MNEMONIC(hex_data_rb,
- "Packet summary", accel_group);
+ /* search in frame */
+ data_frame = gtk_frame_new("Search In");
+ gtk_box_pack_start(GTK_BOX(main_options_hb), data_frame, TRUE, TRUE, 0);
+ gtk_widget_show(data_frame);
+
+ /* search in row */
+ data_vb = gtk_vbox_new(TRUE, 0);
+ gtk_container_border_width(GTK_CONTAINER(data_vb), 3);
+ gtk_container_add(GTK_CONTAINER(data_frame), data_vb);
+ gtk_widget_show(data_vb);
+
+ /* Packet list */
+ summary_data_rb = RADIO_BUTTON_NEW_WITH_MNEMONIC(NULL,
+ "Packet list", accel_group);
gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(summary_data_rb), summary_data);
- gtk_box_pack_start(GTK_BOX(data_hb), summary_data_rb, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(data_vb), summary_data_rb, TRUE, TRUE, 0);
gtk_tooltips_set_tip (tooltips, summary_data_rb, ("Search for string in the Info column of the packet summary (top pane)"), NULL);
gtk_widget_show(summary_data_rb);
+ /* Packet details */
+ decode_data_rb = RADIO_BUTTON_NEW_WITH_MNEMONIC(summary_data_rb,
+ "Packet details", accel_group);
+ gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(decode_data_rb), decode_data);
+ gtk_box_pack_start(GTK_BOX(data_vb), decode_data_rb, TRUE, TRUE, 0);
+ gtk_tooltips_set_tip (tooltips, decode_data_rb, ("Search for string in the decoded packet display (middle pane)"), NULL);
+ gtk_widget_show(decode_data_rb);
+
+ /* Packet bytes */
+ hex_data_rb = RADIO_BUTTON_NEW_WITH_MNEMONIC(summary_data_rb,
+ "Packet bytes", accel_group);
+ gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(hex_data_rb), !decode_data && !summary_data);
+ gtk_box_pack_start(GTK_BOX(data_vb), hex_data_rb, TRUE, TRUE, 0);
+ gtk_tooltips_set_tip (tooltips, hex_data_rb, ("Search for string in the packet data"), NULL);
+ gtk_widget_show(hex_data_rb);
- string_char_frame = gtk_frame_new("Character Set");
- gtk_box_pack_start(GTK_BOX(main_vb), string_char_frame, TRUE, TRUE, 0);
- gtk_container_border_width(GTK_CONTAINER(string_char_frame), 5);
- gtk_widget_show(string_char_frame);
+
+ /* string options frame */
+ string_opt_frame = gtk_frame_new("String Options");
+ gtk_box_pack_start(GTK_BOX(main_options_hb), string_opt_frame, TRUE, TRUE, 0);
+ gtk_widget_show(string_opt_frame);
+
+ string_opt_vb = gtk_vbox_new(FALSE, 0);
+ gtk_container_add(GTK_CONTAINER(string_opt_frame), string_opt_vb);
+ gtk_container_border_width(GTK_CONTAINER(string_opt_vb), 3);
+ gtk_widget_show(string_opt_vb);
+
+ case_cb = CHECK_BUTTON_NEW_WITH_MNEMONIC(
+ "Case sensitive", accel_group);
+ gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(case_cb), !case_type);
+ gtk_container_add(GTK_CONTAINER(string_opt_vb), case_cb);
+ gtk_tooltips_set_tip (tooltips, case_cb, ("Search by mixed upper/lower case?"), NULL);
+ gtk_widget_show(case_cb);
+
+ combo_lb = gtk_label_new("Character set:");
+ gtk_container_add(GTK_CONTAINER(string_opt_vb), combo_lb);
+ gtk_misc_set_alignment(GTK_MISC(combo_lb), 0.0, 0.5);
+ gtk_widget_show(combo_lb);
/* String Type Selection Dropdown Box
These only apply to the Hex Window search option */
@@ -281,23 +302,31 @@ find_frame_cb(GtkWidget *w _U_, gpointer d _U_)
gtk_combo_set_popdown_strings(GTK_COMBO(combo_cb), glist);
/* You only get to choose from the options we offer */
gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(combo_cb)->entry), FALSE);
- gtk_container_border_width(GTK_CONTAINER(combo_cb), 1);
- gtk_container_add(GTK_CONTAINER(string_char_frame), combo_cb);
+ gtk_container_add(GTK_CONTAINER(string_opt_vb), combo_cb);
gtk_widget_show(combo_cb);
- string_opt_frame = gtk_frame_new("Options");
- gtk_box_pack_start(GTK_BOX(main_vb), string_opt_frame, TRUE, TRUE, 0);
- gtk_container_border_width(GTK_CONTAINER(string_opt_frame), 5);
- gtk_widget_show(string_opt_frame);
- case_cb = CHECK_BUTTON_NEW_WITH_MNEMONIC(
- "Case Insensitive Search", accel_group);
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(case_cb),
- case_type);
- gtk_container_border_width(GTK_CONTAINER(case_cb), 1);
- gtk_container_add(GTK_CONTAINER(string_opt_frame), case_cb);
- gtk_tooltips_set_tip (tooltips, case_cb, ("Search by mixed upper/lower case?"), NULL);
- gtk_widget_show(case_cb);
+ /* direction frame */
+ direction_frame = gtk_frame_new("Direction");
+ gtk_box_pack_start(GTK_BOX(main_options_hb), direction_frame, FALSE, FALSE, 0);
+ gtk_widget_show(direction_frame);
+
+ /* Direction row: Forward and reverse radio buttons */
+ direction_vb = gtk_vbox_new(FALSE, 0);
+ gtk_container_border_width(GTK_CONTAINER(direction_vb), 3);
+ gtk_container_add(GTK_CONTAINER(direction_frame), direction_vb);
+ gtk_widget_show(direction_vb);
+
+ up_rb = RADIO_BUTTON_NEW_WITH_MNEMONIC(NULL, "_Up", accel_group);
+ gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(up_rb), cfile.sbackward);
+ gtk_box_pack_start(GTK_BOX(direction_vb), up_rb, FALSE, FALSE, 0);
+ gtk_widget_show(up_rb);
+
+ down_rb = RADIO_BUTTON_NEW_WITH_MNEMONIC(up_rb, "_Down", accel_group);
+ gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(down_rb), !cfile.sbackward);
+ gtk_box_pack_start(GTK_BOX(direction_vb), down_rb, FALSE, FALSE, 0);
+ gtk_widget_show(down_rb);
+
/* Button row */
bbox = dlg_button_row_new(GTK_STOCK_FIND, GTK_STOCK_CANCEL, NULL);
@@ -313,10 +342,11 @@ find_frame_cb(GtkWidget *w _U_, gpointer d _U_)
/* Attach pointers to needed widgets to the capture prefs window/object */
OBJECT_SET_DATA(find_frame_w, E_FIND_FILT_KEY, filter_text_box);
- OBJECT_SET_DATA(find_frame_w, E_FIND_BACKWARD_KEY, backward_rb);
+ OBJECT_SET_DATA(find_frame_w, E_FIND_BACKWARD_KEY, up_rb);
OBJECT_SET_DATA(find_frame_w, E_FIND_FILTERDATA_KEY, filter_rb);
OBJECT_SET_DATA(find_frame_w, E_FIND_HEXDATA_KEY, hex_rb);
OBJECT_SET_DATA(find_frame_w, E_FIND_ASCIIDATA_KEY, ascii_rb);
+ OBJECT_SET_DATA(find_frame_w, E_FIND_STRINGTYPE_LABEL_KEY, combo_lb);
OBJECT_SET_DATA(find_frame_w, E_FIND_STRINGTYPE_KEY, combo_cb);
OBJECT_SET_DATA(find_frame_w, E_CASE_SEARCH_KEY, case_cb);
OBJECT_SET_DATA(find_frame_w, E_SOURCE_HEX_KEY, hex_data_rb);
@@ -420,9 +450,18 @@ find_filter_te_syntax_check_cb(GtkWidget *w, gpointer parent_w)
static void
hex_selected_cb(GtkWidget *button_rb _U_, gpointer parent_w)
{
- GtkWidget *filter_text_box;
+ GtkWidget *hex_rb, *filter_text_box;
+ GtkWidget *hex_data_rb, *decode_data_rb, *summary_data_rb;
filter_text_box = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_FILT_TE_PTR_KEY);
+ hex_rb = (GtkWidget *)OBJECT_GET_DATA(parent_w, E_FIND_HEXDATA_KEY);
+ hex_data_rb = (GtkWidget *)OBJECT_GET_DATA(parent_w, E_SOURCE_HEX_KEY);
+ decode_data_rb = (GtkWidget *)OBJECT_GET_DATA(parent_w, E_SOURCE_DECODE_KEY);
+ summary_data_rb = (GtkWidget *)OBJECT_GET_DATA(parent_w, E_SOURCE_SUMMARY_KEY);
+
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(hex_rb))) {
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(hex_data_rb), TRUE);
+ }
/* Re-check the display filter. */
find_filter_te_syntax_check_cb(filter_text_box, parent_w);
@@ -437,12 +476,14 @@ static void
ascii_selected_cb(GtkWidget *button_rb _U_, gpointer parent_w)
{
GtkWidget *ascii_rb, *hex_data_rb, *decode_data_rb, *summary_data_rb,
- *data_combo_cb, *data_case_cb, *filter_text_box;
+ *data_combo_lb, *data_combo_cb, *data_case_cb, *filter_text_box;
ascii_rb = (GtkWidget *)OBJECT_GET_DATA(parent_w, E_FIND_ASCIIDATA_KEY);
hex_data_rb = (GtkWidget *)OBJECT_GET_DATA(parent_w, E_SOURCE_HEX_KEY);
decode_data_rb = (GtkWidget *)OBJECT_GET_DATA(parent_w, E_SOURCE_DECODE_KEY);
summary_data_rb = (GtkWidget *)OBJECT_GET_DATA(parent_w, E_SOURCE_SUMMARY_KEY);
+
+ data_combo_lb = (GtkWidget *)OBJECT_GET_DATA(parent_w, E_FIND_STRINGTYPE_LABEL_KEY);
data_combo_cb = (GtkWidget *)OBJECT_GET_DATA(parent_w, E_FIND_STRINGTYPE_KEY);
data_case_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CASE_SEARCH_KEY);
filter_text_box = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_FILT_TE_PTR_KEY);
@@ -451,12 +492,15 @@ ascii_selected_cb(GtkWidget *button_rb _U_, gpointer parent_w)
gtk_widget_set_sensitive(GTK_WIDGET(hex_data_rb), TRUE);
gtk_widget_set_sensitive(GTK_WIDGET(decode_data_rb), TRUE);
gtk_widget_set_sensitive(GTK_WIDGET(summary_data_rb), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(data_combo_lb), TRUE);
gtk_widget_set_sensitive(GTK_WIDGET(data_combo_cb), TRUE);
gtk_widget_set_sensitive(GTK_WIDGET(data_case_cb), TRUE);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(hex_data_rb), TRUE);
} else {
gtk_widget_set_sensitive(GTK_WIDGET(hex_data_rb), FALSE);
gtk_widget_set_sensitive(GTK_WIDGET(decode_data_rb), FALSE);
gtk_widget_set_sensitive(GTK_WIDGET(summary_data_rb), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(data_combo_lb), FALSE);
gtk_widget_set_sensitive(GTK_WIDGET(data_combo_cb), FALSE);
gtk_widget_set_sensitive(GTK_WIDGET(data_case_cb), FALSE);
}
@@ -473,13 +517,18 @@ static void
filter_selected_cb(GtkWidget *button_rb _U_, gpointer parent_w)
{
GtkWidget *filter_bt, *filter_rb;
+ GtkWidget *hex_data_rb, *decode_data_rb, *summary_data_rb;
filter_bt = (GtkWidget *)OBJECT_GET_DATA(parent_w, E_FILT_TE_BUTTON_KEY);
filter_rb = (GtkWidget *)OBJECT_GET_DATA(parent_w, E_FIND_FILTERDATA_KEY);
+ hex_data_rb = (GtkWidget *)OBJECT_GET_DATA(parent_w, E_SOURCE_HEX_KEY);
+ decode_data_rb = (GtkWidget *)OBJECT_GET_DATA(parent_w, E_SOURCE_DECODE_KEY);
+ summary_data_rb = (GtkWidget *)OBJECT_GET_DATA(parent_w, E_SOURCE_SUMMARY_KEY);
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filter_rb)))
{
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(decode_data_rb), TRUE);
gtk_widget_set_sensitive(GTK_WIDGET(filter_bt), TRUE);
}
else
@@ -596,7 +645,7 @@ convert_string_case(const char *string, gboolean case_insensitive)
static void
find_frame_ok_cb(GtkWidget *ok_bt _U_, gpointer parent_w)
{
- GtkWidget *filter_te, *backward_rb, *hex_rb, *ascii_rb, *combo_cb,
+ GtkWidget *filter_te, *up_rb, *hex_rb, *ascii_rb, *combo_cb,
*case_cb, *decode_data_rb, *summary_data_rb;
const gchar *filter_text, *string_type;
search_charset_t scs_type = SCS_ASCII_AND_UNICODE;
@@ -607,7 +656,7 @@ find_frame_ok_cb(GtkWidget *ok_bt _U_, gpointer parent_w)
gboolean found_packet;
filter_te = (GtkWidget *)OBJECT_GET_DATA(parent_w, E_FIND_FILT_KEY);
- backward_rb = (GtkWidget *)OBJECT_GET_DATA(parent_w, E_FIND_BACKWARD_KEY);
+ up_rb = (GtkWidget *)OBJECT_GET_DATA(parent_w, E_FIND_BACKWARD_KEY);
hex_rb = (GtkWidget *)OBJECT_GET_DATA(parent_w, E_FIND_HEXDATA_KEY);
ascii_rb = (GtkWidget *)OBJECT_GET_DATA(parent_w, E_FIND_ASCIIDATA_KEY);
combo_cb = (GtkWidget *)OBJECT_GET_DATA(parent_w, E_FIND_STRINGTYPE_KEY);
@@ -618,7 +667,7 @@ find_frame_ok_cb(GtkWidget *ok_bt _U_, gpointer parent_w)
filter_text = gtk_entry_get_text(GTK_ENTRY(filter_te));
string_type = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(combo_cb)->entry));
- case_type = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(case_cb));
+ case_type = !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(case_cb));
decode_data = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(decode_data_rb));
summary_data = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(summary_data_rb));
@@ -686,7 +735,7 @@ find_frame_ok_cb(GtkWidget *ok_bt _U_, gpointer parent_w)
if (cfile.sfilter)
g_free(cfile.sfilter);
cfile.sfilter = g_strdup(filter_text);
- cfile.sbackward = GTK_TOGGLE_BUTTON (backward_rb)->active;
+ cfile.sbackward = GTK_TOGGLE_BUTTON (up_rb)->active;
cfile.hex = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (hex_rb));
cfile.ascii = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (ascii_rb));
cfile.scs_type = scs_type;
@@ -699,7 +748,10 @@ find_frame_ok_cb(GtkWidget *ok_bt _U_, gpointer parent_w)
g_free(bytes);
if (!found_packet) {
/* We didn't find a packet */
- simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "No packet contained those bytes.");
+ simple_dialog(ESD_TYPE_INFO, ESD_BTN_OK,
+ "%sFound no match!%s\n\n"
+ "No packet contained those bytes.",
+ simple_dialog_primary_start(), simple_dialog_primary_end());
g_free(bytes);
return;
}
@@ -711,7 +763,10 @@ find_frame_ok_cb(GtkWidget *ok_bt _U_, gpointer parent_w)
g_free(string);
if (!found_packet) {
/* We didn't find the packet. */
- simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "No packet contained that string in its dissected display.");
+ simple_dialog(ESD_TYPE_INFO, ESD_BTN_OK,
+ "%sFound no match!%s\n\n"
+ "No packet contained that string in its dissected display.",
+ simple_dialog_primary_start(), simple_dialog_primary_end());
return;
}
} else if (cfile.summary_data) {
@@ -720,7 +775,10 @@ find_frame_ok_cb(GtkWidget *ok_bt _U_, gpointer parent_w)
g_free(string);
if (!found_packet) {
/* We didn't find the packet. */
- simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "No packet contained that string in its Info column.");
+ simple_dialog(ESD_TYPE_INFO, ESD_BTN_OK,
+ "%sFound no match!%s\n\n"
+ "No packet contained that string in its Info column.",
+ simple_dialog_primary_start(), simple_dialog_primary_end());
return;
}
} else {
@@ -729,7 +787,10 @@ find_frame_ok_cb(GtkWidget *ok_bt _U_, gpointer parent_w)
g_free(string);
if (!found_packet) {
/* We didn't find the packet. */
- simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "No packet contained that string in its data.");
+ simple_dialog(ESD_TYPE_INFO, ESD_BTN_OK,
+ "%sFound no match!%s\n\n"
+ "No packet contained that string in its data.",
+ simple_dialog_primary_start(), simple_dialog_primary_end());
return;
}
}
@@ -738,7 +799,10 @@ find_frame_ok_cb(GtkWidget *ok_bt _U_, gpointer parent_w)
dfilter_free(sfcode);
if (!found_packet) {
/* We didn't find a packet */
- simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "No packet matched that filter.");
+ simple_dialog(ESD_TYPE_INFO, ESD_BTN_OK,
+ "%sFound no match!%s\n\n"
+ "No packet matched that filter.",
+ simple_dialog_primary_start(), simple_dialog_primary_end());
g_free(bytes);
return;
}