aboutsummaryrefslogtreecommitdiffstats
path: root/gtk
diff options
context:
space:
mode:
authorKovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com>2009-08-15 04:19:45 +0000
committerKovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com>2009-08-15 04:19:45 +0000
commit6b556d4039a6aa0d10223cae45479a7eb39da2e1 (patch)
treea6e169fbf14544db99e1e04f23854e1b95156fa2 /gtk
parente15fef4355ff77062f7896807f638bc50d7c0856 (diff)
Add support for mark/unmark all frames in our new packet list
svn path=/trunk/; revision=29423
Diffstat (limited to 'gtk')
-rw-r--r--gtk/menus.c13
-rw-r--r--gtk/new_packet_list.c32
-rw-r--r--gtk/new_packet_list.h3
3 files changed, 37 insertions, 11 deletions
diff --git a/gtk/menus.c b/gtk/menus.c
index 114a367a3c..318ff3871f 100644
--- a/gtk/menus.c
+++ b/gtk/menus.c
@@ -507,13 +507,14 @@ static GtkItemFactoryEntry menu_items[] =
0, NULL, NULL,},
{"/Edit/Find Previous Mark", "<shift><control>B", GTK_MENU_FUNC(find_prev_mark_cb),
0, NULL, NULL,},
-#ifndef NEW_PACKET_LIST
- {"/Edit/Mark _All Packets", "<control>A", GTK_MENU_FUNC(packet_list_mark_all_frames_cb),
- 0, NULL, NULL,},
- {"/Edit/_Unmark All Packets", "<control>D", GTK_MENU_FUNC(packet_list_unmark_all_frames_cb),
- 0, NULL, NULL,},
- {"/Edit/<separator>", NULL, NULL, 0, "<Separator>", NULL,},
+#ifdef NEW_PACKET_LIST
+ {"/Edit/Mark _All Packets", "<control>A", GTK_MENU_FUNC(new_packet_list_mark_all_frames_cb), 0, NULL, NULL,},
+ {"/Edit/_Unmark All Packets", "<control>D", GTK_MENU_FUNC(new_packet_list_unmark_all_frames_cb), 0, NULL, NULL,},
+#else
+ {"/Edit/Mark _All Packets", "<control>A", GTK_MENU_FUNC(packet_list_mark_all_frames_cb), 0, NULL, NULL,},
+ {"/Edit/_Unmark All Packets", "<control>D", GTK_MENU_FUNC(packet_list_unmark_all_frames_cb), 0, NULL, NULL,},
#endif /* NEW_PACKET_LIST */
+ {"/Edit/<separator>", NULL, NULL, 0, "<Separator>", NULL,},
{"/Edit/Set Time Reference (toggle)", "<control>T", GTK_MENU_FUNC(reftime_frame_cb),
REFTIME_TOGGLE, "<StockItem>", WIRESHARK_STOCK_TIME,},
{"/Edit/Find Next Reference", "<alt><shift><control>N", GTK_MENU_FUNC(reftime_frame_cb), REFTIME_FIND_NEXT, NULL, NULL,},
diff --git a/gtk/new_packet_list.c b/gtk/new_packet_list.c
index 9c26ba7815..a232255d80 100644
--- a/gtk/new_packet_list.c
+++ b/gtk/new_packet_list.c
@@ -621,17 +621,39 @@ new_packet_list_queue_draw(void)
/* call this after last set_frame_mark is done */
static void mark_frames_ready(void)
{
- file_save_update_dynamics();
- packets_bar_update();
+ file_save_update_dynamics();
+ packets_bar_update();
}
static void
-set_frame_mark(gboolean set, frame_data *frame)
+set_frame_mark(gboolean set, frame_data *fdata)
{
if (set)
- cf_mark_frame(&cfile, frame);
+ cf_mark_frame(&cfile, fdata);
else
- cf_unmark_frame(&cfile, frame);
+ cf_unmark_frame(&cfile, fdata);
+}
+
+static void mark_all_frames(gboolean set)
+{
+ frame_data *fdata;
+
+ /* XXX: we might need a progressbar here */
+ for (fdata = cfile.plist; fdata != NULL; fdata = fdata->next) {
+ set_frame_mark(set, fdata);
+ }
+ mark_frames_ready();
+ new_packet_list_queue_draw();
+}
+
+void new_packet_list_mark_all_frames_cb(GtkWidget *w _U_, gpointer data _U_)
+{
+ mark_all_frames(TRUE);
+}
+
+void new_packet_list_unmark_all_frames_cb(GtkWidget *w _U_, gpointer data _U_)
+{
+ mark_all_frames(FALSE);
}
void
diff --git a/gtk/new_packet_list.h b/gtk/new_packet_list.h
index d475cf5b5e..3ffdd0b864 100644
--- a/gtk/new_packet_list.h
+++ b/gtk/new_packet_list.h
@@ -46,6 +46,9 @@ extern void new_packet_list_set_font(PangoFontDescription *font);
*/
extern void new_packet_list_mark_frame_cb(GtkWidget *widget, gpointer data);
+void new_packet_list_mark_all_frames_cb(GtkWidget *w _U_, gpointer data _U_);
+void new_packet_list_unmark_all_frames_cb(GtkWidget *w _U_, gpointer data _U_);
+
#endif /* NEW_PACKET_LIST */
#endif /* __NEW_PACKET_LIST_H__ */