forked from osmocom/wireshark
Removal of the old packet-list in favor of the new packet list.
It compiles with "./configure without options" on my Mac. Let's see what the buildbots have to say about it :-) svn path=/trunk/; revision=36161
This commit is contained in:
parent
4f8edc81e6
commit
307c0d70fb
|
@ -410,11 +410,7 @@ tmp_color_filters_used(void)
|
|||
void
|
||||
color_filters_enable(gboolean enable)
|
||||
{
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_enable_color(enable);
|
||||
#else
|
||||
filters_enabled = enable;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
@ -442,11 +438,7 @@ color_filters_prime_edt(epan_dissect_t *edt)
|
|||
*
|
||||
* Return the color_t for later use (new packet list) */
|
||||
const color_filter_t *
|
||||
#ifdef NEW_PACKET_LIST
|
||||
color_filters_colorize_packet(epan_dissect_t *edt)
|
||||
#else
|
||||
color_filters_colorize_packet(gint row, epan_dissect_t *edt)
|
||||
#endif
|
||||
{
|
||||
GSList *curr;
|
||||
color_filter_t *colorf;
|
||||
|
@ -460,11 +452,6 @@ color_filters_colorize_packet(gint row, epan_dissect_t *edt)
|
|||
if ( (!colorf->disabled) &&
|
||||
(colorf->c_colorfilter != NULL) &&
|
||||
dfilter_apply_edt(colorf->c_colorfilter, edt)) {
|
||||
/* this is the filter to use, apply it to the packet list */
|
||||
#ifndef NEW_PACKET_LIST
|
||||
/* We'll do this in the column cell function instead. */
|
||||
packet_list_set_colors(row, &(colorf->fg_color), &(colorf->bg_color));
|
||||
#endif
|
||||
return colorf;
|
||||
}
|
||||
curr = g_slist_next(curr);
|
||||
|
|
|
@ -104,11 +104,7 @@ void color_filters_prime_edt(epan_dissect_t *edt);
|
|||
* @return the matching color filter or NULL
|
||||
*/
|
||||
const color_filter_t *
|
||||
#ifdef NEW_PACKET_LIST
|
||||
color_filters_colorize_packet(epan_dissect_t *edt);
|
||||
#else
|
||||
color_filters_colorize_packet(gint row, epan_dissect_t *edt);
|
||||
#endif
|
||||
|
||||
/** Clone the currently active filter list.
|
||||
*
|
||||
|
|
|
@ -1295,12 +1295,7 @@ col_set_addr(packet_info *pinfo, const int col, const address *addr, const gbool
|
|||
return;
|
||||
}
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
pinfo->cinfo->col_data[col] = se_get_addr_name(addr);
|
||||
#else
|
||||
get_addr_name_buf(addr, pinfo->cinfo->col_buf[col], COL_MAX_LEN);
|
||||
pinfo->cinfo->col_data[col] = pinfo->cinfo->col_buf[col];
|
||||
#endif
|
||||
|
||||
if (!fill_col_exprs)
|
||||
return;
|
||||
|
|
|
@ -209,10 +209,8 @@ frame_data_init(frame_data *fdata, guint32 num,
|
|||
fdata->flags.ref_time = 0;
|
||||
fdata->flags.ignored = 0;
|
||||
fdata->color_filter = NULL;
|
||||
#ifdef NEW_PACKET_LIST
|
||||
fdata->col_text_len = NULL;
|
||||
fdata->col_text = NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -66,10 +66,8 @@ typedef struct _frame_data {
|
|||
nstime_t del_dis_ts; /**< Delta timestamp to previous displayed frame (yes, it can be negative) */
|
||||
nstime_t del_cap_ts; /**< Delta timestamp to previous captured frame (yes, it can be negative) */
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
gchar **col_text; /**< The column text for some columns, see colum_utils */
|
||||
guint *col_text_len; /**< The length of the column text strings in 'col_text' */
|
||||
#endif
|
||||
} frame_data;
|
||||
|
||||
/**
|
||||
|
|
748
file.c
748
file.c
|
@ -127,9 +127,7 @@ static void cf_open_failure_alert_box(const char *filename, int err,
|
|||
static const char *file_rename_error_message(int err);
|
||||
static void cf_write_failure_alert_box(const char *filename, int err);
|
||||
static void cf_close_failure_alert_box(const char *filename, int err);
|
||||
#ifdef NEW_PACKET_LIST
|
||||
static void ref_time_packets(capture_file *cf);
|
||||
#endif
|
||||
/* Update the progress bar this many times when reading a file. */
|
||||
#define N_PROGBAR_UPDATES 100
|
||||
/* We read around 200k/100ms don't update the progress bar more often than that */
|
||||
|
@ -200,9 +198,7 @@ cf_callback_remove(cf_callback_t func)
|
|||
void
|
||||
cf_timestamp_auto_precision(capture_file *cf)
|
||||
{
|
||||
#ifdef NEW_PACKET_LIST
|
||||
int i;
|
||||
#endif
|
||||
int prec = timestamp_get_precision();
|
||||
|
||||
|
||||
|
@ -243,7 +239,6 @@ cf_timestamp_auto_precision(capture_file *cf)
|
|||
g_assert_not_reached();
|
||||
}
|
||||
}
|
||||
#ifdef NEW_PACKET_LIST
|
||||
/* Set the column widths of those columns that show the time in
|
||||
"command-line-specified" format. */
|
||||
for (i = 0; i < cf->cinfo.num_cols; i++) {
|
||||
|
@ -251,7 +246,6 @@ cf_timestamp_auto_precision(capture_file *cf)
|
|||
new_packet_list_resize_column(i);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
gulong
|
||||
|
@ -350,15 +344,10 @@ cf_open(capture_file *cf, const char *fname, gboolean is_tempfile, int *err)
|
|||
g_assert(cf->plist_chunk);
|
||||
#endif
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
/* Adjust timestamp precision if auto is selected, col width will be adjusted */
|
||||
cf_timestamp_auto_precision(cf);
|
||||
/* XXX needed ? */
|
||||
new_packet_list_queue_draw();
|
||||
#else
|
||||
/* change the time formats now, as we might have a new precision */
|
||||
cf_change_time_formats(cf);
|
||||
#endif
|
||||
fileset_file_opened(fname);
|
||||
|
||||
if(cf->cd_t == WTAP_FILE_BER) {
|
||||
|
@ -428,15 +417,9 @@ cf_reset_state(capture_file *cf)
|
|||
cf->finfo_selected = NULL;
|
||||
|
||||
/* Clear the packet list. */
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_freeze();
|
||||
new_packet_list_clear();
|
||||
new_packet_list_thaw();
|
||||
#else
|
||||
packet_list_freeze();
|
||||
packet_list_clear();
|
||||
packet_list_thaw();
|
||||
#endif
|
||||
|
||||
cf->f_datalen = 0;
|
||||
cf->count = 0;
|
||||
|
@ -581,11 +564,7 @@ cf_read(capture_file *cf, gboolean from_save)
|
|||
/* Progress so far. */
|
||||
progbar_val = 0.0f;
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_freeze();
|
||||
#else
|
||||
packet_list_freeze();
|
||||
#endif
|
||||
|
||||
stop_flag = FALSE;
|
||||
g_get_current_time(&start_time);
|
||||
|
@ -620,17 +599,10 @@ cf_read(capture_file *cf, gboolean from_save)
|
|||
if (progbar_quantum > 500000 || displayed_once == 0) {
|
||||
if ((auto_scroll_live || displayed_once == 0 || cf->displayed_count < 1000) && cf->plist_end != NULL) {
|
||||
displayed_once = 1;
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_thaw();
|
||||
if (auto_scroll_live)
|
||||
new_packet_list_moveto_end();
|
||||
new_packet_list_freeze();
|
||||
#else
|
||||
packet_list_thaw();
|
||||
if (auto_scroll_live)
|
||||
packet_list_moveto_end();
|
||||
packet_list_freeze();
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
}
|
||||
}
|
||||
#endif /* HAVE_LIBPCAP */
|
||||
|
@ -706,11 +678,7 @@ cf_read(capture_file *cf, gboolean from_save)
|
|||
cf->current_frame = cf->first_displayed;
|
||||
cf->current_row = 0;
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_thaw();
|
||||
#else
|
||||
packet_list_thaw();
|
||||
#endif
|
||||
if (from_save == FALSE)
|
||||
cf_callback_invoke(cf_cb_file_read_finished, cf);
|
||||
else
|
||||
|
@ -719,11 +687,7 @@ cf_read(capture_file *cf, gboolean from_save)
|
|||
/* If we have any displayed packets to select, select the first of those
|
||||
packets by making the first row the selected row. */
|
||||
if (cf->first_displayed != NULL){
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_select_first_row();
|
||||
#else
|
||||
packet_list_select_row(0);
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
}
|
||||
|
||||
if(stop_flag) {
|
||||
|
@ -819,14 +783,9 @@ cf_continue_tail(capture_file *cf, volatile int to_read, int *err)
|
|||
|
||||
*err = 0;
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_check_end();
|
||||
/* Don't freeze/thaw the list when doing live capture */
|
||||
/*new_packet_list_freeze();*/
|
||||
#else
|
||||
packet_list_check_end();
|
||||
packet_list_freeze();
|
||||
#endif
|
||||
|
||||
/*g_log(NULL, G_LOG_LEVEL_MESSAGE, "cf_continue_tail: %u new: %u", cf->count, to_read);*/
|
||||
|
||||
|
@ -868,12 +827,8 @@ cf_continue_tail(capture_file *cf, volatile int to_read, int *err)
|
|||
/* XXX - how to avoid a busy wait? */
|
||||
/* Sleep(100); */
|
||||
};
|
||||
#ifdef NEW_PACKET_LIST
|
||||
/* Don't freeze/thaw the list when doing live capture */
|
||||
/*new_packet_list_thaw();*/
|
||||
#else
|
||||
packet_list_thaw();
|
||||
#endif
|
||||
return CF_READ_ABORTED;
|
||||
}
|
||||
ENDTRY;
|
||||
|
@ -888,7 +843,6 @@ cf_continue_tail(capture_file *cf, volatile int to_read, int *err)
|
|||
/*g_log(NULL, G_LOG_LEVEL_MESSAGE, "cf_continue_tail: count %u state: %u err: %u",
|
||||
cf->count, cf->state, *err);*/
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
/* Don't freeze/thaw the list when doing live capture */
|
||||
/*new_packet_list_thaw();*/
|
||||
/* With the new packet list the first packet
|
||||
|
@ -896,23 +850,11 @@ cf_continue_tail(capture_file *cf, volatile int to_read, int *err)
|
|||
*/
|
||||
if(!cf->current_frame)
|
||||
new_packet_list_select_first_row();
|
||||
#else
|
||||
/* XXX - this causes "flickering" of the list */
|
||||
packet_list_thaw();
|
||||
#endif
|
||||
|
||||
/* moving to the end of the packet list - if the user requested so and
|
||||
we have some new packets. */
|
||||
if (newly_displayed_packets && auto_scroll_live && cf->plist_end != NULL)
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_moveto_end();
|
||||
#else
|
||||
/* this doesn't seem to work well with a frozen GTK_Clist, so do this after
|
||||
packet_list_thaw() is done, see bugzilla 1188 */
|
||||
/* XXX - this cheats and looks inside the packet list to find the final
|
||||
row number. */
|
||||
packet_list_moveto_end();
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
|
||||
if (cf->state == FILE_READ_ABORTED) {
|
||||
/* Well, the user decided to exit Wireshark. Return CF_READ_ABORTED
|
||||
|
@ -965,14 +907,9 @@ cf_finish_tail(capture_file *cf, int *err)
|
|||
return CF_READ_ERROR;
|
||||
}
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_check_end();
|
||||
/* Don't freeze/thaw the list when doing live capture */
|
||||
/*new_packet_list_freeze();*/
|
||||
#else
|
||||
packet_list_check_end();
|
||||
packet_list_freeze();
|
||||
#endif
|
||||
|
||||
while ((wtap_read(cf->wth, err, &err_info, &data_offset))) {
|
||||
if (cf->state == FILE_READ_ABORTED) {
|
||||
|
@ -989,12 +926,8 @@ cf_finish_tail(capture_file *cf, int *err)
|
|||
dfilter_free(dfcode);
|
||||
}
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
/* Don't freeze/thaw the list when doing live capture */
|
||||
/*new_packet_list_thaw();*/
|
||||
#else
|
||||
packet_list_thaw();
|
||||
#endif
|
||||
|
||||
if (cf->state == FILE_READ_ABORTED) {
|
||||
/* Well, the user decided to abort the read. We're only called
|
||||
|
@ -1007,13 +940,7 @@ cf_finish_tail(capture_file *cf, int *err)
|
|||
}
|
||||
|
||||
if (auto_scroll_live && cf->plist_end != NULL)
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_moveto_end();
|
||||
#else
|
||||
/* XXX - this cheats and looks inside the packet list to find the final
|
||||
row number. */
|
||||
packet_list_moveto_end();
|
||||
#endif
|
||||
|
||||
/* We're done reading sequentially through the file. */
|
||||
cf->state = FILE_READ_DONE;
|
||||
|
@ -1143,7 +1070,6 @@ void cf_set_rfcode(capture_file *cf, dfilter_t *rfcode)
|
|||
cf->rfcode = rfcode;
|
||||
}
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
static int
|
||||
add_packet_to_packet_list(frame_data *fdata, capture_file *cf,
|
||||
dfilter_t *dfcode, gboolean filtering_tap_listeners,
|
||||
|
@ -1232,124 +1158,6 @@ add_packet_to_packet_list(frame_data *fdata, capture_file *cf,
|
|||
return row;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
static int
|
||||
add_packet_to_packet_list(frame_data *fdata, capture_file *cf,
|
||||
dfilter_t *dfcode, gboolean filtering_tap_listeners,
|
||||
guint tap_flags,
|
||||
union wtap_pseudo_header *pseudo_header, const guchar *buf,
|
||||
gboolean refilter,
|
||||
gboolean add_to_packet_list _U_)
|
||||
{
|
||||
gboolean create_proto_tree = FALSE;
|
||||
epan_dissect_t edt;
|
||||
column_info *cinfo;
|
||||
gint row = -1;
|
||||
|
||||
cinfo = &cf->cinfo;
|
||||
|
||||
/* just add some value here until we know if it is being displayed or not */
|
||||
fdata->cum_bytes = cum_bytes + fdata->pkt_len;
|
||||
|
||||
frame_data_set_before_dissect(fdata, &cf->elapsed_time,
|
||||
&first_ts, &prev_dis_ts, &prev_cap_ts);
|
||||
|
||||
/* If either
|
||||
|
||||
we have a display filter and are re-applying it;
|
||||
|
||||
we have a list of color filters;
|
||||
|
||||
we have tap listeners with filters;
|
||||
|
||||
we have tap listeners that require a protocol tree;
|
||||
|
||||
we have custom columns;
|
||||
|
||||
allocate a protocol tree root node, so that we'll construct
|
||||
a protocol tree against which a filter expression can be
|
||||
evaluated. */
|
||||
if ((dfcode != NULL && refilter) ||
|
||||
color_filters_used() ||
|
||||
have_custom_cols(cinfo) ||
|
||||
filtering_tap_listeners || (tap_flags & TL_REQUIRES_PROTO_TREE))
|
||||
create_proto_tree = TRUE;
|
||||
|
||||
/* Dissect the frame. */
|
||||
epan_dissect_init(&edt, create_proto_tree, FALSE);
|
||||
|
||||
if (dfcode != NULL && refilter) {
|
||||
epan_dissect_prime_dfilter(&edt, dfcode);
|
||||
}
|
||||
|
||||
/* prepare color filters */
|
||||
color_filters_prime_edt(&edt);
|
||||
col_custom_prime_edt(&edt, cinfo);
|
||||
|
||||
tap_queue_init(&edt);
|
||||
epan_dissect_run(&edt, pseudo_header, buf, fdata, cinfo);
|
||||
tap_push_tapped_queue(&edt);
|
||||
|
||||
/* If we have a display filter, apply it if we're refiltering, otherwise
|
||||
leave the "passed_dfilter" flag alone.
|
||||
|
||||
If we don't have a display filter, set "passed_dfilter" to 1. */
|
||||
if (dfcode != NULL) {
|
||||
if (refilter) {
|
||||
fdata->flags.passed_dfilter = dfilter_apply_edt(dfcode, &edt) ? 1 : 0;
|
||||
}
|
||||
} else
|
||||
fdata->flags.passed_dfilter = 1;
|
||||
|
||||
if( (fdata->flags.passed_dfilter) || (fdata->flags.ref_time) )
|
||||
{
|
||||
frame_data_set_after_dissect(fdata, &cum_bytes, &prev_dis_ts);
|
||||
|
||||
epan_dissect_fill_in_columns(&edt, FALSE, TRUE);
|
||||
|
||||
/* If we haven't yet seen the first frame, this is it.
|
||||
|
||||
XXX - we must do this before we add the row to the display,
|
||||
as, if the display's GtkCList's selection mode is
|
||||
GTK_SELECTION_BROWSE, when the first entry is added to it,
|
||||
"cf_select_packet()" will be called, and it will fetch the row
|
||||
data for the 0th row, and will get a null pointer rather than
|
||||
"fdata", as "gtk_clist_append()" won't yet have returned and
|
||||
thus "gtk_clist_set_row_data()" won't yet have been called.
|
||||
|
||||
We thus need to leave behind bread crumbs so that
|
||||
"cf_select_packet()" can find this frame. See the comment
|
||||
in "cf_select_packet()". */
|
||||
if (cf->first_displayed == NULL)
|
||||
cf->first_displayed = fdata;
|
||||
|
||||
/* This is the last frame we've seen so far. */
|
||||
cf->last_displayed = fdata;
|
||||
|
||||
row = packet_list_append(cinfo->col_data, fdata);
|
||||
|
||||
/* colorize packet: first apply color filters
|
||||
* then if packet is marked, use preferences to overwrite color
|
||||
* we do both to make sure that when a packet gets un-marked, the
|
||||
* color will be correctly set (fixes bug 2038)
|
||||
*/
|
||||
fdata->color_filter = color_filters_colorize_packet(row, &edt);
|
||||
if (fdata->flags.marked) {
|
||||
packet_list_set_colors(row, &prefs.gui_marked_fg, &prefs.gui_marked_bg);
|
||||
}
|
||||
if (fdata->flags.ignored) {
|
||||
packet_list_set_colors(row, &prefs.gui_ignored_fg, &prefs.gui_ignored_bg);
|
||||
}
|
||||
|
||||
cf->displayed_count++;
|
||||
}
|
||||
|
||||
epan_dissect_cleanup(&edt);
|
||||
return row;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* read in a new packet */
|
||||
/* returns the row of the new packet in the packet list or -1 if not displayed */
|
||||
static int
|
||||
|
@ -1377,10 +1185,8 @@ read_packet(capture_file *cf, dfilter_t *dfcode,
|
|||
|
||||
frame_data_init(fdata, cf->count, phdr, offset, cum_bytes);
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
fdata->col_text_len = se_alloc0(sizeof(fdata->col_text_len) * (cf->cinfo.num_cols));
|
||||
fdata->col_text = se_alloc0(sizeof(fdata->col_text) * (cf->cinfo.num_cols));
|
||||
#endif
|
||||
|
||||
passed = TRUE;
|
||||
if (cf->rfcode) {
|
||||
|
@ -1723,21 +1529,11 @@ cf_filter_packets(capture_file *cf, gchar *dftext, gboolean force)
|
|||
return CF_OK;
|
||||
}
|
||||
|
||||
void
|
||||
cf_colorize_packets(capture_file *cf)
|
||||
{
|
||||
rescan_packets(cf, "Colorizing", "all packets", FALSE, FALSE);
|
||||
}
|
||||
|
||||
void
|
||||
cf_reftime_packets(capture_file *cf)
|
||||
{
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
ref_time_packets(cf);
|
||||
#else
|
||||
rescan_packets(cf, "Reprocessing", "all packets", TRUE, TRUE);
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1804,7 +1600,6 @@ cf_read_frame(capture_file *cf, frame_data *fdata)
|
|||
any state information they have (because a preference that affects
|
||||
some dissector has changed, meaning some dissector might construct
|
||||
its state differently from the way it was constructed the last time). */
|
||||
#ifdef NEW_PACKET_LIST
|
||||
static void
|
||||
rescan_packets(capture_file *cf, const char *action, const char *action_item,
|
||||
gboolean refilter, gboolean redissect)
|
||||
|
@ -2105,299 +1900,12 @@ rescan_packets(capture_file *cf, const char *action, const char *action_item,
|
|||
dfilter_free(dfcode);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
static void
|
||||
rescan_packets(capture_file *cf, const char *action, const char *action_item,
|
||||
gboolean refilter, gboolean redissect)
|
||||
{
|
||||
frame_data *fdata;
|
||||
progdlg_t *progbar = NULL;
|
||||
gboolean stop_flag;
|
||||
int count;
|
||||
frame_data *selected_frame, *preceding_frame, *following_frame, *prev_frame;
|
||||
int selected_row, prev_row, preceding_row, following_row;
|
||||
gboolean selected_frame_seen;
|
||||
int row;
|
||||
float progbar_val;
|
||||
GTimeVal start_time;
|
||||
gchar status_str[100];
|
||||
int progbar_nextstep;
|
||||
int progbar_quantum;
|
||||
dfilter_t *dfcode;
|
||||
gboolean filtering_tap_listeners;
|
||||
guint tap_flags;
|
||||
gboolean add_to_packet_list = TRUE;
|
||||
gboolean compiled;
|
||||
|
||||
/* Compile the current display filter.
|
||||
* We assume this will not fail since cf->dfilter is only set in
|
||||
* cf_filter IFF the filter was valid.
|
||||
*/
|
||||
compiled = dfilter_compile(cf->dfilter, &dfcode);
|
||||
g_assert(!cf->dfilter || (compiled && dfcode));
|
||||
|
||||
/* Do we have any tap listeners with filters? */
|
||||
filtering_tap_listeners = have_filtering_tap_listeners();
|
||||
|
||||
/* Get the union of the flags for all tap listeners. */
|
||||
tap_flags = union_of_tap_listener_flags();
|
||||
|
||||
reset_tap_listeners();
|
||||
/* Which frame, if any, is the currently selected frame?
|
||||
XXX - should the selected frame or the focus frame be the "current"
|
||||
frame, that frame being the one from which "Find Frame" searches
|
||||
start? */
|
||||
selected_frame = cf->current_frame;
|
||||
|
||||
/* We don't yet know what row that frame will be on, if any, after we
|
||||
rebuild the clist, however. */
|
||||
selected_row = -1;
|
||||
|
||||
/* Freeze the packet list while we redo it, so we don't get any
|
||||
screen updates while it happens. */
|
||||
packet_list_freeze();
|
||||
|
||||
/* Clear it out. */
|
||||
packet_list_clear();
|
||||
|
||||
if (redissect) {
|
||||
/* We need to re-initialize all the state information that protocols
|
||||
keep, because some preference that controls a dissector has changed,
|
||||
which might cause the state information to be constructed differently
|
||||
by that dissector. */
|
||||
|
||||
/* We might receive new packets while redissecting, and we don't
|
||||
want to dissect those before their time. */
|
||||
cf->redissecting = TRUE;
|
||||
|
||||
/* Cleanup all data structures used for dissection. */
|
||||
cleanup_dissection();
|
||||
/* Initialize all data structures used for dissection. */
|
||||
init_dissection();
|
||||
|
||||
}
|
||||
|
||||
/* We don't yet know which will be the first and last frames displayed. */
|
||||
cf->first_displayed = NULL;
|
||||
cf->last_displayed = NULL;
|
||||
|
||||
reset_elapsed();
|
||||
|
||||
/* We currently don't display any packets */
|
||||
cf->displayed_count = 0;
|
||||
|
||||
/* Iterate through the list of frames. Call a routine for each frame
|
||||
to check whether it should be displayed and, if so, add it to
|
||||
the display list. */
|
||||
nstime_set_unset(&first_ts);
|
||||
nstime_set_unset(&prev_dis_ts);
|
||||
nstime_set_unset(&prev_cap_ts);
|
||||
cum_bytes = 0;
|
||||
|
||||
/* Update the progress bar when it gets to this value. */
|
||||
progbar_nextstep = 0;
|
||||
/* When we reach the value that triggers a progress bar update,
|
||||
bump that value by this amount. */
|
||||
progbar_quantum = cf->count/N_PROGBAR_UPDATES;
|
||||
/* Count of packets at which we've looked. */
|
||||
count = 0;
|
||||
/* Progress so far. */
|
||||
progbar_val = 0.0f;
|
||||
|
||||
stop_flag = FALSE;
|
||||
g_get_current_time(&start_time);
|
||||
|
||||
row = -1; /* no previous row yet */
|
||||
prev_row = -1;
|
||||
prev_frame = NULL;
|
||||
|
||||
preceding_row = -1;
|
||||
preceding_frame = NULL;
|
||||
following_row = -1;
|
||||
following_frame = NULL;
|
||||
|
||||
selected_frame_seen = FALSE;
|
||||
|
||||
for (fdata = cf->plist_start; fdata != NULL; fdata = fdata->next) {
|
||||
/* Create the progress bar if necessary.
|
||||
We check on every iteration of the loop, so that it takes no
|
||||
longer than the standard time to create it (otherwise, for a
|
||||
large file, we might take considerably longer than that standard
|
||||
time in order to get to the next progress bar step). */
|
||||
if (progbar == NULL)
|
||||
progbar = delayed_create_progress_dlg(action, action_item, TRUE,
|
||||
&stop_flag, &start_time,
|
||||
progbar_val);
|
||||
|
||||
/* Update the progress bar, but do it only N_PROGBAR_UPDATES times;
|
||||
when we update it, we have to run the GTK+ main loop to get it
|
||||
to repaint what's pending, and doing so may involve an "ioctl()"
|
||||
to see if there's any pending input from an X server, and doing
|
||||
that for every packet can be costly, especially on a big file. */
|
||||
if (count >= progbar_nextstep) {
|
||||
/* let's not divide by zero. I should never be started
|
||||
* with count == 0, so let's assert that
|
||||
*/
|
||||
g_assert(cf->count > 0);
|
||||
progbar_val = (gfloat) count / cf->count;
|
||||
|
||||
if (progbar != NULL) {
|
||||
g_snprintf(status_str, sizeof(status_str),
|
||||
"%4u of %u frames", count, cf->count);
|
||||
update_progress_dlg(progbar, progbar_val, status_str);
|
||||
}
|
||||
|
||||
progbar_nextstep += progbar_quantum;
|
||||
}
|
||||
|
||||
if (stop_flag) {
|
||||
/* Well, the user decided to abort the filtering. Just stop.
|
||||
|
||||
XXX - go back to the previous filter? Users probably just
|
||||
want not to wait for a filtering operation to finish;
|
||||
unless we cancel by having no filter, reverting to the
|
||||
previous filter will probably be even more expensive than
|
||||
continuing the filtering, as it involves going back to the
|
||||
beginning and filtering, and even with no filter we currently
|
||||
have to re-generate the entire clist, which is also expensive.
|
||||
|
||||
I'm not sure what Network Monitor does, but it doesn't appear
|
||||
to give you an unfiltered display if you cancel. */
|
||||
break;
|
||||
}
|
||||
|
||||
count++;
|
||||
|
||||
if (redissect) {
|
||||
/* Since all state for the frame was destroyed, mark the frame
|
||||
* as not visited, free the GSList referring to the state
|
||||
* data (the per-frame data itself was freed by
|
||||
* "init_dissection()"), and null out the GSList pointer.
|
||||
*/
|
||||
fdata->flags.visited = 0;
|
||||
frame_data_cleanup(fdata);
|
||||
}
|
||||
|
||||
if (!cf_read_frame(cf, fdata))
|
||||
break; /* error reading the frame */
|
||||
|
||||
/* If the previous frame is displayed, and we haven't yet seen the
|
||||
selected frame, remember that frame - it's the closest one we've
|
||||
yet seen before the selected frame. */
|
||||
if (prev_row != -1 && !selected_frame_seen) {
|
||||
preceding_row = prev_row;
|
||||
preceding_frame = prev_frame;
|
||||
}
|
||||
row = add_packet_to_packet_list(fdata, cf, dfcode, filtering_tap_listeners,
|
||||
tap_flags, &cf->pseudo_header, cf->pd,
|
||||
refilter,
|
||||
add_to_packet_list);
|
||||
|
||||
/* If this frame is displayed, and this is the first frame we've
|
||||
seen displayed after the selected frame, remember this frame -
|
||||
it's the closest one we've yet seen at or after the selected
|
||||
frame. */
|
||||
if (row != -1 && selected_frame_seen && following_row == -1) {
|
||||
following_row = row;
|
||||
following_frame = fdata;
|
||||
}
|
||||
if (fdata == selected_frame) {
|
||||
selected_row = row;
|
||||
selected_frame_seen = TRUE;
|
||||
}
|
||||
|
||||
/* Remember this row/frame - it'll be the previous row/frame
|
||||
on the next pass through the loop. */
|
||||
prev_row = row;
|
||||
prev_frame = fdata;
|
||||
}
|
||||
|
||||
/* We are done redissecting the packet list. */
|
||||
cf->redissecting = FALSE;
|
||||
|
||||
if (redissect) {
|
||||
/* Clear out what remains of the visited flags and per-frame data
|
||||
pointers.
|
||||
|
||||
XXX - that may cause various forms of bogosity when dissecting
|
||||
these frames, as they won't have been seen by this sequential
|
||||
pass, but the only alternative I see is to keep scanning them
|
||||
even though the user requested that the scan stop, and that
|
||||
would leave the user stuck with an Wireshark grinding on
|
||||
until it finishes. Should we just stick them with that? */
|
||||
for (; fdata != NULL; fdata = fdata->next) {
|
||||
fdata->flags.visited = 0;
|
||||
frame_data_cleanup(fdata);
|
||||
}
|
||||
}
|
||||
|
||||
/* We're done filtering the packets; destroy the progress bar if it
|
||||
was created. */
|
||||
if (progbar != NULL)
|
||||
destroy_progress_dlg(progbar);
|
||||
|
||||
/* Unfreeze the packet list. */
|
||||
packet_list_thaw();
|
||||
|
||||
if (selected_row == -1) {
|
||||
/* The selected frame didn't pass the filter. */
|
||||
if (selected_frame == NULL) {
|
||||
/* That's because there *was* no selected frame. Make the first
|
||||
displayed frame the current frame. */
|
||||
selected_row = 0;
|
||||
} else {
|
||||
/* Find the nearest displayed frame to the selected frame (whether
|
||||
it's before or after that frame) and make that the current frame.
|
||||
If the next and previous displayed frames are equidistant from the
|
||||
selected frame, choose the next one. */
|
||||
g_assert(following_frame == NULL ||
|
||||
following_frame->num >= selected_frame->num);
|
||||
g_assert(preceding_frame == NULL ||
|
||||
preceding_frame->num <= selected_frame->num);
|
||||
if (following_frame == NULL) {
|
||||
/* No frame after the selected frame passed the filter, so we
|
||||
have to select the last displayed frame before the selected
|
||||
frame. */
|
||||
selected_row = preceding_row;
|
||||
} else if (preceding_frame == NULL) {
|
||||
/* No frame before the selected frame passed the filter, so we
|
||||
have to select the first displayed frame after the selected
|
||||
frame. */
|
||||
selected_row = following_row;
|
||||
} else {
|
||||
/* Frames before and after the selected frame passed the filter, so
|
||||
we'll select the previous frame */
|
||||
selected_row = preceding_row;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (selected_row == -1) {
|
||||
/* There are no frames displayed at all. */
|
||||
cf_unselect_packet(cf);
|
||||
} else {
|
||||
/* Either the frame that was selected passed the filter, or we've
|
||||
found the nearest displayed frame to that frame. Select it, make
|
||||
it the focus row, and make it visible. */
|
||||
if (selected_row == 0) {
|
||||
/* Set to invalid to force update of packet list and packet details */
|
||||
cf->current_row = -1;
|
||||
}
|
||||
packet_list_set_selected_row(selected_row);
|
||||
}
|
||||
|
||||
/* Cleanup and release all dfilter resources */
|
||||
dfilter_free(dfcode);
|
||||
}
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
|
||||
/*
|
||||
* Scan trough all frame data and recalculate the ref time
|
||||
* without rereading the file.
|
||||
* XXX - do we need a progres bar or is this fast enough?
|
||||
*/
|
||||
#ifdef NEW_PACKET_LIST
|
||||
static void
|
||||
ref_time_packets(capture_file *cf)
|
||||
{
|
||||
|
@ -2470,7 +1978,6 @@ ref_time_packets(capture_file *cf)
|
|||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
typedef enum {
|
||||
PSP_FINISHED,
|
||||
|
@ -3231,181 +2738,6 @@ cf_write_carrays_packets(capture_file *cf, print_args_t *print_args)
|
|||
return CF_PRINT_OK;
|
||||
}
|
||||
|
||||
#ifndef NEW_PACKET_LIST /* This function is not needed with the new packet list */
|
||||
|
||||
/* Scan through the packet list and change all columns that use the
|
||||
"command-line-specified" time stamp format to use the current
|
||||
value of that format. */
|
||||
void
|
||||
cf_change_time_formats(capture_file *cf)
|
||||
{
|
||||
int i;
|
||||
frame_data *fdata;
|
||||
progdlg_t *progbar = NULL;
|
||||
gboolean stop_flag;
|
||||
int count;
|
||||
int row;
|
||||
float progbar_val;
|
||||
GTimeVal start_time;
|
||||
gchar status_str[100];
|
||||
int progbar_nextstep;
|
||||
int progbar_quantum;
|
||||
gboolean sorted_by_frame_column;
|
||||
|
||||
/* Adjust timestamp precision if auto is selected */
|
||||
cf_timestamp_auto_precision(cf);
|
||||
|
||||
/* Are there any columns with time stamps in the "command-line-specified"
|
||||
format?
|
||||
|
||||
XXX - we have to force the "column is writable" flag on, as it
|
||||
might be off from the last frame that was dissected. */
|
||||
col_set_writable(&cf->cinfo, TRUE);
|
||||
if (!check_col(&cf->cinfo, COL_CLS_TIME) &&
|
||||
!check_col(&cf->cinfo, COL_ABS_TIME) &&
|
||||
!check_col(&cf->cinfo, COL_ABS_DATE_TIME) &&
|
||||
!check_col(&cf->cinfo, COL_REL_TIME) &&
|
||||
!check_col(&cf->cinfo, COL_DELTA_TIME) &&
|
||||
!check_col(&cf->cinfo, COL_DELTA_TIME_DIS)) {
|
||||
/* No, there aren't any columns in that format, so we have no work
|
||||
to do. */
|
||||
return;
|
||||
}
|
||||
|
||||
/* Freeze the packet list while we redo it, so we don't get any
|
||||
screen updates while it happens. */
|
||||
packet_list_freeze();
|
||||
|
||||
/* Update the progress bar when it gets to this value. */
|
||||
progbar_nextstep = 0;
|
||||
/* When we reach the value that triggers a progress bar update,
|
||||
bump that value by this amount. */
|
||||
progbar_quantum = cf->count/N_PROGBAR_UPDATES;
|
||||
/* Count of packets at which we've looked. */
|
||||
count = 0;
|
||||
/* Progress so far. */
|
||||
progbar_val = 0.0f;
|
||||
|
||||
/* If the rows are currently sorted by the frame column then we know
|
||||
* the row number of each packet: it's the row number of the previously
|
||||
* displayed packet + 1.
|
||||
*
|
||||
* Otherwise, if the display is sorted by a different column then we have
|
||||
* to use the O(N) packet_list_find_row_from_data() (thus making the job
|
||||
* of changing the time display format O(N**2)).
|
||||
*
|
||||
* (XXX - In fact it's still O(N**2) because gtk_clist_set_text() takes
|
||||
* the row number and walks that many elements down the clist to find
|
||||
* the appropriate element.)
|
||||
*/
|
||||
sorted_by_frame_column = FALSE;
|
||||
for (i = 0; i < cf->cinfo.num_cols; i++) {
|
||||
if (cf->cinfo.col_fmt[i] == COL_NUMBER)
|
||||
{
|
||||
sorted_by_frame_column = (i == packet_list_get_sort_column());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
stop_flag = FALSE;
|
||||
g_get_current_time(&start_time);
|
||||
|
||||
/* Iterate through the list of packets, checking whether the packet
|
||||
is in a row of the summary list and, if so, whether there are
|
||||
any columns that show the time in the "command-line-specified"
|
||||
format and, if so, update that row. */
|
||||
for (fdata = cf->plist_start, row = -1; fdata != NULL; fdata = fdata->next) {
|
||||
/* Create the progress bar if necessary.
|
||||
We check on every iteration of the loop, so that it takes no
|
||||
longer than the standard time to create it (otherwise, for a
|
||||
large file, we might take considerably longer than that standard
|
||||
time in order to get to the next progress bar step). */
|
||||
if (progbar == NULL)
|
||||
progbar = delayed_create_progress_dlg("Changing", "time display",
|
||||
TRUE, &stop_flag, &start_time, progbar_val);
|
||||
|
||||
/* Update the progress bar, but do it only N_PROGBAR_UPDATES times;
|
||||
when we update it, we have to run the GTK+ main loop to get it
|
||||
to repaint what's pending, and doing so may involve an "ioctl()"
|
||||
to see if there's any pending input from an X server, and doing
|
||||
that for every packet can be costly, especially on a big file. */
|
||||
if (count >= progbar_nextstep) {
|
||||
/* let's not divide by zero. I should never be started
|
||||
* with count == 0, so let's assert that
|
||||
*/
|
||||
g_assert(cf->count > 0);
|
||||
|
||||
progbar_val = (gfloat) count / cf->count;
|
||||
|
||||
if (progbar != NULL) {
|
||||
g_snprintf(status_str, sizeof(status_str),
|
||||
"%4u of %u packets", count, cf->count);
|
||||
update_progress_dlg(progbar, progbar_val, status_str);
|
||||
}
|
||||
|
||||
progbar_nextstep += progbar_quantum;
|
||||
}
|
||||
|
||||
if (stop_flag) {
|
||||
/* Well, the user decided to abort the redisplay. Just stop.
|
||||
|
||||
XXX - this leaves the time field in the old format in
|
||||
frames we haven't yet processed. So it goes; should we
|
||||
simply not offer them the option of stopping? */
|
||||
break;
|
||||
}
|
||||
|
||||
count++;
|
||||
|
||||
/* Find what row this packet is in. */
|
||||
if (!sorted_by_frame_column) {
|
||||
/* This function is O(N), so we try to avoid using it... */
|
||||
row = packet_list_find_row_from_data(fdata);
|
||||
} else {
|
||||
/* ...which we do by maintaining a count of packets that are
|
||||
being displayed (i.e., that have passed the display filter),
|
||||
and using the current value of that count as the row number
|
||||
(which is why we can only do it when the display is sorted
|
||||
by the frame number). */
|
||||
if (fdata->flags.passed_dfilter)
|
||||
row++;
|
||||
else
|
||||
continue;
|
||||
}
|
||||
|
||||
if (row != -1) {
|
||||
/* This packet is in the summary list, on row "row". */
|
||||
|
||||
for (i = 0; i < cf->cinfo.num_cols; i++) {
|
||||
if (col_has_time_fmt(&cf->cinfo, i)) {
|
||||
/* This is one of the columns that shows the time in
|
||||
"command-line-specified" format; update it. */
|
||||
cf->cinfo.col_buf[i][0] = '\0';
|
||||
col_set_fmt_time(fdata, &cf->cinfo, cf->cinfo.col_fmt[i], i);
|
||||
packet_list_set_text(row, i, cf->cinfo.col_data[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* We're done redisplaying the packets; destroy the progress bar if it
|
||||
was created. */
|
||||
if (progbar != NULL)
|
||||
destroy_progress_dlg(progbar);
|
||||
|
||||
/* Set the column widths of those columns that show the time in
|
||||
"command-line-specified" format. */
|
||||
for (i = 0; i < cf->cinfo.num_cols; i++) {
|
||||
if (col_has_time_fmt(&cf->cinfo, i)) {
|
||||
packet_list_set_time_width(cf->cinfo.col_fmt[i], i);
|
||||
}
|
||||
}
|
||||
|
||||
/* Unfreeze the packet list. */
|
||||
packet_list_thaw();
|
||||
}
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
|
||||
gboolean
|
||||
cf_find_packet_protocol_tree(capture_file *cf, const char *string,
|
||||
search_direction dir)
|
||||
|
@ -3992,16 +3324,11 @@ find_packet(capture_file *cf,
|
|||
}
|
||||
|
||||
if (new_fd != NULL) {
|
||||
#ifdef NEW_PACKET_LIST
|
||||
/* Find and select */
|
||||
cf->search_in_progress = TRUE;
|
||||
row = new_packet_list_find_row_from_data(fdata, TRUE);
|
||||
cf->search_in_progress = FALSE;
|
||||
cf->search_pos = 0; /* Reset the position */
|
||||
#else
|
||||
/* We found a frame. Find what row it's in. */
|
||||
row = packet_list_find_row_from_data(new_fd);
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
if (row == -1) {
|
||||
/* We didn't find a row even though we know that a frame
|
||||
* exists that satifies the search criteria. This means that the
|
||||
|
@ -4012,11 +3339,6 @@ find_packet(capture_file *cf,
|
|||
simple_dialog_primary_start(), simple_dialog_primary_end());
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#ifndef NEW_PACKET_LIST
|
||||
/* Select that row, make it the focus row, and make it visible. */
|
||||
packet_list_set_selected_row(row);
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
return TRUE; /* success */
|
||||
} else
|
||||
return FALSE; /* failure */
|
||||
|
@ -4026,9 +3348,6 @@ gboolean
|
|||
cf_goto_frame(capture_file *cf, guint fnumber)
|
||||
{
|
||||
frame_data *fdata;
|
||||
#ifndef NEW_PACKET_LIST
|
||||
int row;
|
||||
#endif
|
||||
|
||||
for (fdata = cf->plist_start; fdata != NULL && fdata->num < fnumber; fdata = fdata->next)
|
||||
;
|
||||
|
@ -4045,82 +3364,23 @@ cf_goto_frame(capture_file *cf, guint fnumber)
|
|||
return FALSE; /* we failed to go to that packet */
|
||||
}
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_find_row_from_data(fdata, TRUE);
|
||||
#else
|
||||
/* We found that packet, and it's currently being displayed.
|
||||
Find what row it's in. */
|
||||
row = packet_list_find_row_from_data(fdata);
|
||||
g_assert(row != -1);
|
||||
|
||||
/* Select that row, make it the focus row, and make it visible. */
|
||||
packet_list_set_selected_row(row);
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
return TRUE; /* we got to that packet */
|
||||
}
|
||||
|
||||
gboolean
|
||||
cf_goto_top_frame(capture_file *cf _U_)
|
||||
cf_goto_top_frame()
|
||||
{
|
||||
#ifdef NEW_PACKET_LIST
|
||||
/* Find and select */
|
||||
new_packet_list_select_first_row();
|
||||
#else
|
||||
frame_data *fdata;
|
||||
int row;
|
||||
frame_data *lowest_fdata = NULL;
|
||||
|
||||
for (fdata = cf->plist_start; fdata != NULL; fdata = fdata->next) {
|
||||
if (fdata->flags.passed_dfilter) {
|
||||
lowest_fdata = fdata;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (lowest_fdata == NULL) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* We found that packet, and it's currently being displayed.
|
||||
Find what row it's in. */
|
||||
row = packet_list_find_row_from_data(lowest_fdata);
|
||||
g_assert(row != -1);
|
||||
|
||||
/* Select that row, make it the focus row, and make it visible. */
|
||||
packet_list_set_selected_row(row);
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
return TRUE; /* we got to that packet */
|
||||
}
|
||||
|
||||
gboolean
|
||||
cf_goto_bottom_frame(capture_file *cf _U_) /* cf is unused w/ NEW_PACKET_LIST */
|
||||
cf_goto_bottom_frame()
|
||||
{
|
||||
#ifdef NEW_PACKET_LIST
|
||||
/* Find and select */
|
||||
new_packet_list_select_last_row();
|
||||
#else
|
||||
frame_data *fdata;
|
||||
int row;
|
||||
frame_data *highest_fdata = NULL;
|
||||
|
||||
for (fdata = cf->plist_start; fdata != NULL; fdata = fdata->next) {
|
||||
if (fdata->flags.passed_dfilter) {
|
||||
highest_fdata = fdata;
|
||||
}
|
||||
}
|
||||
|
||||
if (highest_fdata == NULL) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* We found that packet, and it's currently being displayed.
|
||||
Find what row it's in. */
|
||||
row = packet_list_find_row_from_data(highest_fdata);
|
||||
g_assert(row != -1);
|
||||
|
||||
/* Select that row, make it the focus row, and make it visible. */
|
||||
packet_list_set_selected_row(row);
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
return TRUE; /* we got to that packet */
|
||||
}
|
||||
|
||||
|
@ -4153,11 +3413,7 @@ cf_select_packet(capture_file *cf, int row)
|
|||
frame_data *fdata;
|
||||
|
||||
/* Get the frame data struct pointer for this frame */
|
||||
#ifdef NEW_PACKET_LIST
|
||||
fdata = new_packet_list_get_row_data(row);
|
||||
#else
|
||||
fdata = (frame_data *)packet_list_get_row_data(row);
|
||||
#endif
|
||||
|
||||
if (fdata == NULL) {
|
||||
/* XXX - if a GtkCList's selection mode is GTK_SELECTION_BROWSE, when
|
||||
|
|
20
file.h
20
file.h
|
@ -320,13 +320,6 @@ void cf_reftime_packets(capture_file *cf);
|
|||
*/
|
||||
gulong cf_get_computed_elapsed(void);
|
||||
|
||||
/**
|
||||
* The coloring rules have changed, redo coloring
|
||||
*
|
||||
* @param cf the capture file
|
||||
*/
|
||||
void cf_colorize_packets(capture_file *cf);
|
||||
|
||||
/**
|
||||
* "Something" has changed, rescan all packets.
|
||||
*
|
||||
|
@ -342,13 +335,6 @@ void cf_redissect_packets(capture_file *cf);
|
|||
*/
|
||||
cf_read_status_t cf_retap_packets(capture_file *cf);
|
||||
|
||||
/**
|
||||
* The time format has changed, rescan all packets.
|
||||
*
|
||||
* @param cf the capture file
|
||||
*/
|
||||
void cf_change_time_formats(capture_file *cf);
|
||||
|
||||
/**
|
||||
* Adjust timestamp precision if auto is selected.
|
||||
*
|
||||
|
@ -490,18 +476,16 @@ gboolean cf_find_packet_time_reference(capture_file *cf, search_direction dir);
|
|||
/**
|
||||
* GoTo Packet in first row.
|
||||
*
|
||||
* @param cf the capture file
|
||||
* @return TRUE if the first row exists, FALSE otherwise
|
||||
*/
|
||||
gboolean cf_goto_top_frame(capture_file *cf);
|
||||
gboolean cf_goto_top_frame();
|
||||
|
||||
/**
|
||||
* GoTo Packet in last row.
|
||||
*
|
||||
* @param cf the capture file
|
||||
* @return TRUE if last row exists, FALSE otherwise
|
||||
*/
|
||||
gboolean cf_goto_bottom_frame(capture_file *cf);
|
||||
gboolean cf_goto_bottom_frame();
|
||||
|
||||
/**
|
||||
* GoTo Packet with the given row.
|
||||
|
|
|
@ -71,7 +71,6 @@ set(WIRESHARK_GTK_SRC
|
|||
main.c
|
||||
main_airpcap_toolbar.c
|
||||
main_filter_toolbar.c
|
||||
main_packet_list.c
|
||||
main_proto_draw.c
|
||||
main_statusbar.c
|
||||
main_toolbar.c
|
||||
|
|
|
@ -95,7 +95,6 @@ WIRESHARK_GTK_SRC = \
|
|||
main_filter_toolbar.c \
|
||||
manual_addr_resolv.c \
|
||||
menus.c \
|
||||
main_packet_list.c \
|
||||
main_proto_draw.c \
|
||||
main_statusbar.c \
|
||||
main_toolbar.c \
|
||||
|
@ -283,7 +282,6 @@ noinst_HEADERS = \
|
|||
main_airpcap_toolbar.h \
|
||||
main_filter_toolbar.h \
|
||||
menus.h \
|
||||
main_packet_list.h \
|
||||
main_proto_draw.h \
|
||||
main_statusbar_private.h \
|
||||
main_toolbar.h \
|
||||
|
|
|
@ -61,9 +61,7 @@
|
|||
#include "gtk/menus.h"
|
||||
#include "gtk/recent.h"
|
||||
#include "gtk/color_dlg.h"
|
||||
#ifdef NEW_PACKET_LIST
|
||||
#include "gtk/new_packet_list.h"
|
||||
#endif
|
||||
#ifdef HAVE_LIBPCAP
|
||||
#include "gtk/capture_dlg.h"
|
||||
#endif
|
||||
|
@ -726,9 +724,6 @@ file_open_ok_cb(GtkWidget *w, gpointer fs) {
|
|||
"get_dirname()" does write over its argument. */
|
||||
s = get_dirname(cf_name);
|
||||
set_last_open_dir(s);
|
||||
#ifndef NEW_PACKET_LIST
|
||||
gtk_widget_grab_focus(packet_list);
|
||||
#endif
|
||||
|
||||
g_free(cf_name);
|
||||
}
|
||||
|
@ -754,13 +749,8 @@ file_merge_cmd(GtkWidget *w)
|
|||
{
|
||||
#if _WIN32
|
||||
win32_merge_file(GDK_WINDOW_HWND(top_level->window));
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_freeze();
|
||||
new_packet_list_thaw();
|
||||
#else
|
||||
packet_list_freeze();
|
||||
packet_list_thaw();
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
#else /* _WIN32 */
|
||||
GtkWidget *main_hb, *main_vb, *ft_hb, *ft_lb, *ft_combo_box, *filter_hbox,
|
||||
*filter_bt, *filter_te, *prepend_rb, *chrono_rb,
|
||||
|
@ -1096,9 +1086,6 @@ file_merge_ok_cb(GtkWidget *w, gpointer fs) {
|
|||
"get_dirname()" does write over its argument. */
|
||||
s = get_dirname(tmpname);
|
||||
set_last_open_dir(s);
|
||||
#ifndef NEW_PACKET_LIST
|
||||
gtk_widget_grab_focus(packet_list);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1654,9 +1641,6 @@ file_color_import_ok_cb(GtkWidget *w, gpointer color_filters) {
|
|||
"get_dirname()" does write over its argument. */
|
||||
s = get_dirname(cf_name);
|
||||
set_last_open_dir(s);
|
||||
#ifndef NEW_PACKET_LIST
|
||||
gtk_widget_grab_focus(packet_list);
|
||||
#endif
|
||||
|
||||
g_free(cf_name);
|
||||
}
|
||||
|
|
|
@ -51,9 +51,7 @@
|
|||
#include "gtk/gtkglobals.h"
|
||||
#include "gtk/help_dlg.h"
|
||||
#include "gtk/color_edit_dlg.h"
|
||||
#ifdef NEW_PACKET_LIST
|
||||
#include "gtk/new_packet_list.h"
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
|
||||
|
||||
#define BUTTON_SIZE_X -1
|
||||
|
@ -779,11 +777,7 @@ create_new_color_filter(GtkButton *button, const char *filter)
|
|||
gtk_tree_selection_unselect_all (sel);
|
||||
|
||||
/* Use the default background and foreground colors as the colors. */
|
||||
#ifdef NEW_PACKET_LIST
|
||||
style = gtk_widget_get_style(new_packet_list_get_widget());
|
||||
#else
|
||||
style = gtk_widget_get_style(packet_list);
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
gdkcolor_to_color_t(&bg_color, &style->base[GTK_STATE_NORMAL]);
|
||||
gdkcolor_to_color_t(&fg_color, &style->text[GTK_STATE_NORMAL]);
|
||||
|
||||
|
@ -1028,11 +1022,7 @@ color_apply_cb(GtkButton *button _U_, gpointer user_data _U_)
|
|||
color_filters_apply(color_filter_tmp_list, color_filter_edit_list);
|
||||
|
||||
/* colorize list */
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_colorize_packets();
|
||||
#else
|
||||
cf_colorize_packets(&cfile);
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
}
|
||||
|
||||
/* User pressed the "Save" button: save the color filters to the
|
||||
|
|
|
@ -79,9 +79,7 @@
|
|||
#include "color.h"
|
||||
#include "color_filters.h"
|
||||
#include "color_dlg.h"
|
||||
#ifdef NEW_PACKET_LIST
|
||||
#include "new_packet_list.h"
|
||||
#endif
|
||||
/* From colorize convertion */
|
||||
#define COLOR_N 1
|
||||
|
||||
|
@ -608,11 +606,7 @@ comparestat_draw(void *arg)
|
|||
g_string_printf(filter_str, "%s %s %s %s", "eth.dst==", ep_address_to_str(&cs->eth_dst), "|| eth.dst==", ep_address_to_str(&cs->eth_src));
|
||||
}
|
||||
color_filters_set_tmp(COLOR_N, filter_str->str, FALSE);
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_colorize_packets();
|
||||
#else
|
||||
cf_colorize_packets(&cfile);
|
||||
#endif
|
||||
/* Variance */
|
||||
cs->stats.variance=compare_variance;
|
||||
|
||||
|
|
|
@ -195,10 +195,6 @@ dnd_merge_files(int in_file_count, char **in_filenames)
|
|||
directory). */
|
||||
return;
|
||||
}
|
||||
|
||||
#ifndef NEW_PACKET_LIST
|
||||
gtk_widget_grab_focus(packet_list);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* open/merge the dnd file */
|
||||
|
|
|
@ -46,13 +46,9 @@
|
|||
#include "gtk/recent.h"
|
||||
#include "gtk/gtkglobals.h"
|
||||
#include "gtk/font_utils.h"
|
||||
#include "gtk/main_packet_list.h"
|
||||
#include "gtk/main_proto_draw.h"
|
||||
#include "gtk/follow_tcp.h"
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
#include "gtk/new_packet_list.h"
|
||||
#endif
|
||||
|
||||
|
||||
static PangoFontDescription *m_r_font, *m_b_font;
|
||||
|
@ -276,11 +272,7 @@ user_font_apply(void) {
|
|||
}
|
||||
|
||||
/* the font(s) seem to be ok */
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_set_font(new_r_font);
|
||||
#else
|
||||
packet_list_set_font(new_r_font);
|
||||
#endif
|
||||
set_ptree_font_all(new_r_font);
|
||||
old_r_font = m_r_font;
|
||||
old_b_font = m_b_font;
|
||||
|
|
|
@ -148,32 +148,24 @@ goto_framenum_cb(GtkWidget *w _U_, gpointer data _U_)
|
|||
void
|
||||
goto_top_frame_cb(GtkWidget *w _U_, gpointer d _U_)
|
||||
{
|
||||
cf_goto_top_frame(&cfile);
|
||||
cf_goto_top_frame();
|
||||
}
|
||||
|
||||
void
|
||||
goto_bottom_frame_cb(GtkWidget *w _U_, gpointer d _U_)
|
||||
{
|
||||
cf_goto_bottom_frame(&cfile);
|
||||
cf_goto_bottom_frame();
|
||||
}
|
||||
|
||||
void
|
||||
goto_next_frame_cb(GtkWidget *w _U_, gpointer d _U_)
|
||||
{
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_next();
|
||||
#else
|
||||
packet_list_next();
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
goto_previous_frame_cb(GtkWidget *w _U_, gpointer d _U_)
|
||||
{
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_prev();
|
||||
#else
|
||||
packet_list_prev();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -42,11 +42,6 @@
|
|||
/** Application window. */
|
||||
extern GtkWidget *top_level;
|
||||
|
||||
#ifndef NEW_PACKET_LIST
|
||||
/** Packet list pane. */
|
||||
extern GtkWidget *packet_list;
|
||||
#endif
|
||||
|
||||
/** Tree view (packet details) pane. */
|
||||
extern GtkWidget *tree_view_gbl;
|
||||
|
||||
|
|
|
@ -35,12 +35,8 @@
|
|||
#define E_MPACKET_LIST_KEY "menu_packet_list"
|
||||
#define E_MPACKET_LIST_ROW_KEY "menu_packet_list_row"
|
||||
#define E_MPACKET_LIST_COL_KEY "menu_packet_list_col"
|
||||
#ifdef NEW_PACKET_LIST
|
||||
#define E_MPACKET_LIST_COLUMN_KEY "menu_packet_list_column"
|
||||
#define E_MPACKET_LIST_PREV_COLUMN_KEY "menu_packet_list_prev_column"
|
||||
#else
|
||||
#define E_MPACKET_LIST_COL_ARROWS_KEY "menu_packet_list_col_arrows"
|
||||
#endif
|
||||
|
||||
#define PRINT_CMD_LB_KEY "printer_command_label"
|
||||
#define PRINT_CMD_TE_KEY "printer_command_entry"
|
||||
|
|
|
@ -240,10 +240,6 @@
|
|||
RelativePath=".\main_filter_toolbar.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\main_packet_list.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\main_proto_draw.c"
|
||||
>
|
||||
|
@ -902,10 +898,6 @@
|
|||
RelativePath=".\main_filter_toolbar.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\main_packet_list.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\main_proto_draw.h"
|
||||
>
|
||||
|
|
65
gtk/main.c
65
gtk/main.c
|
@ -135,7 +135,6 @@
|
|||
#include "gtk/main_filter_toolbar.h"
|
||||
#include "gtk/menus.h"
|
||||
#include "gtk/macros_dlg.h"
|
||||
#include "gtk/main_packet_list.h"
|
||||
#include "gtk/main_statusbar_private.h"
|
||||
#include "gtk/main_toolbar.h"
|
||||
#include "gtk/main_welcome.h"
|
||||
|
@ -159,6 +158,7 @@
|
|||
#include "gtk/prefs_column.h"
|
||||
#include "gtk/prefs_dlg.h"
|
||||
#include "gtk/proto_help.h"
|
||||
#include "gtk/new_packet_list.h"
|
||||
|
||||
#ifdef HAVE_LIBPCAP
|
||||
#include "../image/wsicon16.xpm"
|
||||
|
@ -181,9 +181,6 @@
|
|||
#include <epan/crypt/airpdcap_ws.h>
|
||||
#endif
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
#include "gtk/new_packet_list.h"
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_GTKOSXAPPLICATION
|
||||
#include <igemacintegration/gtkosxapplication.h>
|
||||
|
@ -356,11 +353,7 @@ colorize_selected_ptree_cb(GtkWidget *w _U_, gpointer data _U_, guint8 filt_nr)
|
|||
} else {
|
||||
color_filters_set_tmp(filt_nr,filter, FALSE);
|
||||
}
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_colorize_packets();
|
||||
#else
|
||||
cf_colorize_packets(&cfile);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -530,20 +523,12 @@ GList *
|
|||
get_ip_address_list_from_packet_list_row(gpointer data)
|
||||
{
|
||||
gint row = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(data), E_MPACKET_LIST_ROW_KEY));
|
||||
#ifdef NEW_PACKET_LIST
|
||||
gint column = new_packet_list_get_column_id (GPOINTER_TO_INT(g_object_get_data(G_OBJECT(data), E_MPACKET_LIST_COL_KEY)));
|
||||
#else
|
||||
gint column = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(data), E_MPACKET_LIST_COL_KEY));
|
||||
#endif
|
||||
gint col;
|
||||
frame_data *fdata;
|
||||
GList *addr_list = NULL;
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
fdata = (frame_data *) new_packet_list_get_row_data(row);
|
||||
#else
|
||||
fdata = (frame_data *) packet_list_get_row_data(row);
|
||||
#endif
|
||||
|
||||
if (fdata != NULL) {
|
||||
epan_dissect_t edt;
|
||||
|
@ -579,19 +564,11 @@ static gchar *
|
|||
get_filter_from_packet_list_row_and_column(gpointer data)
|
||||
{
|
||||
gint row = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(data), E_MPACKET_LIST_ROW_KEY));
|
||||
#ifdef NEW_PACKET_LIST
|
||||
gint column = new_packet_list_get_column_id (GPOINTER_TO_INT(g_object_get_data(G_OBJECT(data), E_MPACKET_LIST_COL_KEY)));
|
||||
#else
|
||||
gint column = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(data), E_MPACKET_LIST_COL_KEY));
|
||||
#endif
|
||||
frame_data *fdata;
|
||||
gchar *buf=NULL;
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
fdata = (frame_data *) new_packet_list_get_row_data(row);
|
||||
#else
|
||||
fdata = (frame_data *) packet_list_get_row_data(row);
|
||||
#endif
|
||||
|
||||
if (fdata != NULL) {
|
||||
epan_dissect_t edt;
|
||||
|
@ -717,7 +694,6 @@ set_frame_reftime(gboolean set, frame_data *frame, gint row) {
|
|||
cfile.ref_time_count--;
|
||||
}
|
||||
cf_reftime_packets(&cfile);
|
||||
#ifdef NEW_PACKET_LIST
|
||||
if (!frame->flags.ref_time && !frame->flags.passed_dfilter) {
|
||||
new_packet_list_freeze();
|
||||
cfile.displayed_count--;
|
||||
|
@ -725,7 +701,6 @@ set_frame_reftime(gboolean set, frame_data *frame, gint row) {
|
|||
new_packet_list_thaw();
|
||||
}
|
||||
new_packet_list_queue_draw();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
@ -735,12 +710,8 @@ static void reftime_answered_cb(gpointer dialog _U_, gint btn, gpointer data _U_
|
|||
case(ESD_BTN_YES):
|
||||
timestamp_set_type(TS_RELATIVE);
|
||||
recent.gui_time_format = TS_RELATIVE;
|
||||
#ifdef NEW_PACKET_LIST
|
||||
cf_timestamp_auto_precision(&cfile);
|
||||
new_packet_list_queue_draw();
|
||||
#else
|
||||
cf_change_time_formats(&cfile);
|
||||
#endif
|
||||
break;
|
||||
case(ESD_BTN_NO):
|
||||
break;
|
||||
|
@ -910,11 +881,7 @@ void apply_as_custom_column_cb (GtkWidget *widget _U_, gpointer data _U_)
|
|||
column_prefs_add_custom(COL_CUSTOM, cfile.finfo_selected->hfinfo->name,
|
||||
cfile.finfo_selected->hfinfo->abbrev,0);
|
||||
/* Recreate the packet list according to new preferences */
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_recreate ();
|
||||
#else
|
||||
packet_list_recreate ();
|
||||
#endif
|
||||
if (!prefs.gui_use_pref_save) {
|
||||
prefs_main_write();
|
||||
}
|
||||
|
@ -1862,9 +1829,6 @@ get_gui_compiled_info(GString *str)
|
|||
#else
|
||||
g_string_append(str, "without AirPcap");
|
||||
#endif
|
||||
#ifndef NEW_PACKET_LIST
|
||||
g_string_append(str, ", with old_packet_list");
|
||||
#endif
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -2836,9 +2800,6 @@ main(int argc, char *argv[])
|
|||
is displayed.
|
||||
|
||||
XXX - is that still true, with fixed-width columns? */
|
||||
#ifndef NEW_PACKET_LIST
|
||||
packet_list_set_column_titles();
|
||||
#endif
|
||||
|
||||
menu_recent_read_finished();
|
||||
#ifdef HAVE_LIBPCAP
|
||||
|
@ -3495,12 +3456,6 @@ main_widgets_show_or_hide(void)
|
|||
} else {
|
||||
gtk_widget_hide(welcome_pane);
|
||||
}
|
||||
|
||||
/* workaround for bug in GtkCList to ensure packet list scrollbar is updated */
|
||||
#ifndef NEW_PACKET_LIST
|
||||
packet_list_freeze ();
|
||||
packet_list_thaw ();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
@ -3529,18 +3484,10 @@ static gboolean
|
|||
top_level_key_pressed_cb(GtkWidget *w _U_, GdkEventKey *event, gpointer user_data _U_)
|
||||
{
|
||||
if (event->keyval == GDK_F8) {
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_next();
|
||||
#else
|
||||
packet_list_next();
|
||||
#endif
|
||||
return TRUE;
|
||||
} else if (event->keyval == GDK_F7) {
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_prev();
|
||||
#else
|
||||
packet_list_prev();
|
||||
#endif
|
||||
return TRUE;
|
||||
} else if (event->state & NO_SHIFT_MOD_MASK) {
|
||||
return FALSE; /* Skip control, alt, and other modifiers */
|
||||
|
@ -3605,15 +3552,9 @@ create_main_window (gint pl_size, gint tv_size, gint bv_size, e_prefs *prefs_p)
|
|||
filter_tb = filter_toolbar_new();
|
||||
|
||||
/* Packet list */
|
||||
#ifdef NEW_PACKET_LIST
|
||||
pkt_scrollw = new_packet_list_create();
|
||||
gtk_widget_set_size_request(pkt_scrollw, -1, pl_size);
|
||||
gtk_widget_show_all(pkt_scrollw);
|
||||
#else
|
||||
pkt_scrollw = packet_list_new(prefs_p);
|
||||
gtk_widget_set_size_request(packet_list, -1, pl_size);
|
||||
gtk_widget_show(pkt_scrollw);
|
||||
#endif
|
||||
|
||||
/* Tree view */
|
||||
tv_scrollw = main_tree_view_new(prefs_p, &tree_view_gbl);
|
||||
|
@ -3798,11 +3739,7 @@ void change_configuration_profile (const gchar *profile_name)
|
|||
welcome_if_panel_reload();
|
||||
|
||||
/* Recreate the packet list according to new preferences */
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_recreate ();
|
||||
#else
|
||||
packet_list_recreate ();
|
||||
#endif
|
||||
cfile.cinfo.columns_changed = FALSE; /* Reset value */
|
||||
user_font_apply();
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
main [ label="main window" URL="\ref main.h"];
|
||||
menu [ label="menubar" URL="\ref menus.h"];
|
||||
toolbar [ label="toolbar" URL="\ref main_toolbar.h"];
|
||||
packet_list [ label="packet list pane" URL="\ref main_packet_list.h"];
|
||||
packet_list [ label="packet list pane" URL="\ref new_packet_list.h"];
|
||||
proto_draw [ label="packet details & bytes panes" URL="\ref main_proto_draw.h"];
|
||||
recent [ label="recent user settings" URL="\ref recent.h"];
|
||||
main -> menu [ arrowhead="open", style="solid" ];
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,180 +0,0 @@
|
|||
/* main_packet_list.h
|
||||
* Declarations of GTK+-specific routines for managing the packet list.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
* Wireshark - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@wireshark.org>
|
||||
* Copyright 1998 Gerald Combs
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __MAIN_PACKET_LIST_H__
|
||||
#define __MAIN_PACKET_LIST_H__
|
||||
|
||||
#ifndef NEW_PACKET_LIST
|
||||
|
||||
#define RECENT_KEY_COL_WIDTH "column.width"
|
||||
|
||||
/** @file
|
||||
* Packet list pane.
|
||||
* @ingroup main_window_group
|
||||
*/
|
||||
|
||||
typedef enum {
|
||||
COLUMN_SELECTED_SORT_ASCENDING,
|
||||
COLUMN_SELECTED_SORT_DESCENDING,
|
||||
COLUMN_SELECTED_SORT_NONE,
|
||||
COLUMN_SELECTED_ALIGN_LEFT,
|
||||
COLUMN_SELECTED_ALIGN_CENTER,
|
||||
COLUMN_SELECTED_ALIGN_RIGHT,
|
||||
COLUMN_SELECTED_RESIZE,
|
||||
COLUMN_SELECTED_RENAME,
|
||||
COLUMN_SELECTED_REMOVE
|
||||
} COLUMN_SELECTED_E;
|
||||
|
||||
/** Create a new packet list.
|
||||
*
|
||||
* @param prefs current preferences
|
||||
* @return the new packet list
|
||||
*/
|
||||
extern GtkWidget *packet_list_new(e_prefs *prefs);
|
||||
|
||||
/** Recreate the packet list (for use after columns are changed) */
|
||||
extern void packet_list_recreate(void);
|
||||
|
||||
/** Fill in column titles. This must be done after the top level window
|
||||
* is displayed.
|
||||
*
|
||||
* @todo is that still true, with fixed-width columns?
|
||||
*/
|
||||
extern void packet_list_set_column_titles(void);
|
||||
|
||||
extern void packet_list_column_menu_cb (GtkWidget *w, gpointer data, COLUMN_SELECTED_E action);
|
||||
|
||||
/** Resize columns
|
||||
*
|
||||
* @param widget parent widget (unused)
|
||||
* @param data unused
|
||||
*/
|
||||
extern void packet_list_resize_columns_cb(GtkWidget *widget, gpointer data);
|
||||
|
||||
/** Mark the currently selected packet.
|
||||
*
|
||||
* @param widget parent widget (unused)
|
||||
* @param data unused
|
||||
*/
|
||||
extern void packet_list_mark_frame_cb(GtkWidget *widget, gpointer data);
|
||||
|
||||
/** Mark all packets in the list.
|
||||
*
|
||||
* @param widget parent widget (unused)
|
||||
* @param data unused
|
||||
*/
|
||||
extern void packet_list_mark_all_frames_cb(GtkWidget *widget, gpointer data);
|
||||
|
||||
/** Unmark all packets in the list.
|
||||
*
|
||||
* @param widget parent widget (unused)
|
||||
* @param data unused
|
||||
*/
|
||||
extern void packet_list_unmark_all_frames_cb(GtkWidget *widget, gpointer data);
|
||||
|
||||
/** Update packet marks. */
|
||||
extern void packet_list_update_marked_frames(void);
|
||||
|
||||
/** Ignore the currently selected packet.
|
||||
*
|
||||
* @param w parent widget (unused)
|
||||
* @param data unused
|
||||
*/
|
||||
extern void packet_list_ignore_frame_cb(GtkWidget *w _U_, gpointer data _U_);
|
||||
|
||||
/** Ignore all packets in the list.
|
||||
*
|
||||
* @param w parent widget (unused)
|
||||
* @param data unused
|
||||
*/
|
||||
extern void packet_list_ignore_all_frames_cb(GtkWidget *w _U_, gpointer data _U_);
|
||||
|
||||
/** Un-ignore all packets in the list.
|
||||
*
|
||||
* @param w parent widget (unused)
|
||||
* @param data unused
|
||||
*/
|
||||
extern void packet_list_unignore_all_frames_cb(GtkWidget *w _U_, gpointer data _U_);
|
||||
|
||||
/** Update ignored packages. */
|
||||
extern void packet_list_update_ignored_frames(void);
|
||||
|
||||
/** Gdk button click appeared, get row and column number in packet list from that position.
|
||||
*
|
||||
* @param widget the packet list widget from packet_list_new()
|
||||
* @param event_button the button event clicked
|
||||
* @param row the row in the packet list
|
||||
* @param column the column in the packet list
|
||||
* @return TRUE if row/column is returned and in range
|
||||
*/
|
||||
extern gboolean packet_list_get_event_row_column(GtkWidget *widget,
|
||||
GdkEventButton *event_button, gint *row, gint *column);
|
||||
|
||||
/** Set the font of the packet list.
|
||||
*
|
||||
* @param font the new font
|
||||
*/
|
||||
extern void packet_list_set_font(PangoFontDescription *font);
|
||||
|
||||
/** Set the default column sizes. */
|
||||
extern void packet_list_set_default_column_sizes(void);
|
||||
|
||||
/** Set the selection mode of the packet list window.
|
||||
*
|
||||
* @param val TRUE for GTK_SELECTION_SINGLE, FALSE for GTK_SELECTION_BROWSE
|
||||
* @param force_set TRUE to force setting of the selection mode even if it
|
||||
* was already set (used within packet_list_recreate).
|
||||
*/
|
||||
extern void packet_list_set_sel_browse(gboolean val, gboolean force_set);
|
||||
|
||||
/** Check to see if the packet list is at its end. Toggles automatic
|
||||
* scrolling if needed.
|
||||
*
|
||||
* @return TRUE if packet list is scrolled to greater than 90% of its total length.
|
||||
*/
|
||||
extern gboolean packet_list_check_end(void);
|
||||
|
||||
/* Different modes of copying summary data */
|
||||
typedef enum {
|
||||
CS_TEXT, /* Packet summary data (tab separated) */
|
||||
CS_CSV /* Packet summary data (comma separated) */
|
||||
} copy_summary_type;
|
||||
|
||||
/** Called when user clicks on menu item to copy summary data.
|
||||
*
|
||||
* @param w Not used.
|
||||
* @param data Not used.
|
||||
* @param copy_type Mode in which to copy data (e.g. tab-separated, CSV)
|
||||
*/
|
||||
extern void packet_list_copy_summary_cb(GtkWidget * w _U_, gpointer data _U_, copy_summary_type copy_type);
|
||||
|
||||
/** Write all packet list geometry values to the recent file.
|
||||
*
|
||||
* @param rf recent file handle from caller
|
||||
*/
|
||||
extern void packet_list_recent_write_all(FILE *rf);
|
||||
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
|
||||
#endif /* __MAIN_PACKET_LIST_H__ */
|
|
@ -698,11 +698,7 @@ add_byte_tab(GtkWidget *byte_nb, const char *name, tvbuff_t *tvb,
|
|||
gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(byte_view), FALSE);
|
||||
buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(byte_view));
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
style = gtk_widget_get_style(GTK_WIDGET(top_level));
|
||||
#else
|
||||
style = gtk_widget_get_style(GTK_WIDGET(packet_list));
|
||||
#endif
|
||||
gtk_text_buffer_create_tag(buf, "plain", "font-desc", user_font_get_regular(), NULL);
|
||||
gtk_text_buffer_create_tag(buf, "reverse",
|
||||
"font-desc", user_font_get_regular(),
|
||||
|
|
|
@ -58,12 +58,7 @@
|
|||
#include "gtk/keys.h"
|
||||
#include "gtk/recent.h"
|
||||
#include "gtk/packet_history.h"
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
#include "gtk/new_packet_list.h"
|
||||
#else
|
||||
#include "gtk/main_packet_list.h"
|
||||
#endif
|
||||
|
||||
static gboolean toolbar_init = FALSE;
|
||||
|
||||
|
@ -390,13 +385,8 @@ toolbar_new(void)
|
|||
toolbar_item(zoom_100_button, main_tb,
|
||||
GTK_STOCK_ZOOM_100, tooltips, "Zoom 100%", view_zoom_100_cb, NULL);
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
toolbar_item(resize_columns_button, main_tb,
|
||||
WIRESHARK_STOCK_RESIZE_COLUMNS, tooltips, "Resize All Columns", new_packet_list_resize_columns_cb, NULL);
|
||||
#else
|
||||
toolbar_item(resize_columns_button, main_tb,
|
||||
WIRESHARK_STOCK_RESIZE_COLUMNS, tooltips, "Resize All Columns", packet_list_resize_columns_cb, NULL);
|
||||
#endif
|
||||
|
||||
toolbar_append_separator(main_tb);
|
||||
|
||||
|
|
130
gtk/menus.c
130
gtk/menus.c
|
@ -100,11 +100,7 @@
|
|||
#include "gtk/dissector_tables_dlg.h"
|
||||
#include "gtk/utf8_entities.h"
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
#include "gtk/new_packet_list.h"
|
||||
#else
|
||||
#include "gtk/main_packet_list.h"
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_IGE_MAC_INTEGRATION
|
||||
#include <ige-mac-menu.h>
|
||||
|
@ -400,11 +396,7 @@ colorize_conversation_cb(GtkWidget * w _U_, gpointer data _U_, int action)
|
|||
|
||||
if( (action>>8) == 255 ) {
|
||||
color_filters_reset_tmp();
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_colorize_packets();
|
||||
#else
|
||||
cf_colorize_packets(&cfile);
|
||||
#endif
|
||||
} else if (cfile.current_frame) {
|
||||
if( (action&0xff) == 0 ) {
|
||||
/* colorize_conversation_cb was called from the window-menu
|
||||
|
@ -433,11 +425,7 @@ colorize_conversation_cb(GtkWidget * w _U_, gpointer data _U_, int action)
|
|||
} else {
|
||||
/* Set one of the temporary coloring filters */
|
||||
color_filters_set_tmp((guint8)(action>>8),filter,FALSE);
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_colorize_packets();
|
||||
#else
|
||||
cf_colorize_packets(&cfile);
|
||||
#endif
|
||||
}
|
||||
|
||||
g_free(filter);
|
||||
|
@ -732,13 +720,9 @@ timestamp_format_new_cb (GtkRadioAction *action, GtkRadioAction *current _U_, gp
|
|||
if (recent.gui_time_format != value) {
|
||||
timestamp_set_type(value);
|
||||
recent.gui_time_format = value;
|
||||
#ifdef NEW_PACKET_LIST
|
||||
/* This call adjusts column width */
|
||||
cf_timestamp_auto_precision(&cfile);
|
||||
new_packet_list_queue_draw();
|
||||
#else
|
||||
cf_change_time_formats(&cfile);
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -751,20 +735,16 @@ timestamp_precision_new_cb (GtkRadioAction *action, GtkRadioAction *current _U_,
|
|||
value = gtk_radio_action_get_current_value (action);
|
||||
g_warning("timestamp_precision_new_cb, value %u, recent.gui_time_precision %u",value, recent.gui_time_precision);
|
||||
if (recent.gui_time_precision != value) {
|
||||
/* the actual precision will be set in cf_change_time_formats() below */
|
||||
/* the actual precision will be set in new_packet_list_queue_draw() below */
|
||||
if (value == TS_PREC_AUTO) {
|
||||
timestamp_set_precision(TS_PREC_AUTO_SEC);
|
||||
} else {
|
||||
timestamp_set_precision(value);
|
||||
}
|
||||
recent.gui_time_precision = value;
|
||||
#ifdef NEW_PACKET_LIST
|
||||
/* This call adjusts column width */
|
||||
cf_timestamp_auto_precision(&cfile);
|
||||
new_packet_list_queue_draw();
|
||||
#else
|
||||
cf_change_time_formats(&cfile);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1055,7 +1035,6 @@ static const char *ui_desc_menubar =
|
|||
" <menuitem name='FindNext' action='/Edit/FindNext'/>\n"
|
||||
" <menuitem name='FindPrevious' action='/Edit/FindPrevious'/>\n"
|
||||
" <separator/>\n"
|
||||
#ifdef NEW_PACKET_LIST
|
||||
" <menuitem name='MarkPacket' action='/Edit/MarkPacket'/>\n"
|
||||
" <menuitem name='MarkAllDisplayedPackets' action='/Edit/MarkAllDisplayedPackets'/>\n"
|
||||
" <menuitem name='UnmarkAllDisplayedPackets' action='/Edit/UnmarkAllDisplayedPackets'/>\n"
|
||||
|
@ -1071,9 +1050,6 @@ static const char *ui_desc_menubar =
|
|||
" <menuitem name='FindNextTimeReference' action='/Edit/FindNextTimeReference'/>\n"
|
||||
" <menuitem name='FindPreviousTimeReference' action='/Edit/FindPreviousTimeReference'/>\n"
|
||||
" <separator/>\n"
|
||||
#else /* NEW_PACKET_LIST */
|
||||
#error "You must use the new packet list if you are using GTKUIManager for menus"
|
||||
#endif
|
||||
" <menuitem name='ConfigurationProfiles' action='/Edit/ConfigurationProfiles'/>\n"
|
||||
" <menuitem name='Preferences' action='/Edit/Preferences'/>\n"
|
||||
" </menu>\n"
|
||||
|
@ -1422,7 +1398,6 @@ static const GtkActionEntry main_menu_bar_entries[] = {
|
|||
{ "/Edit/FindNext", NULL, "Find Ne_xt", "<control>N", NULL, G_CALLBACK(find_next_cb) },
|
||||
{ "/Edit/FindPrevious", NULL, "Find Pre_vious", "<control>B", NULL, G_CALLBACK(find_previous_cb) },
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
{ "/Edit/MarkPacket", NULL, "_Mark Packet (toggle)", "<control>M", NULL, G_CALLBACK(new_packet_list_mark_frame_cb) },
|
||||
{ "/Edit/ToggleMarkingOfAllDisplayedPackets", NULL, "Toggle Marking Of All Displayed Packets", "<shift><alt><control>M", NULL, G_CALLBACK(new_packet_list_toggle_mark_all_displayed_frames_cb) },
|
||||
{ "/Edit/MarkAllDisplayedPackets", NULL, "Mark All Displayed Packets", "<shift><control>M", NULL, G_CALLBACK(new_packet_list_mark_all_displayed_frames_cb) },
|
||||
|
@ -1441,9 +1416,6 @@ static const GtkActionEntry main_menu_bar_entries[] = {
|
|||
{ "/Edit/FindNextTimeReference", NULL, "Find Next Time Reference", "<alt><control>N", NULL, G_CALLBACK(find_next_ref_time_cb) },
|
||||
{ "/Edit/FindPreviousTimeReference", NULL, "Find Previous Time Reference", "<alt><control>B", NULL, G_CALLBACK(find_previous_ref_time_cb) },
|
||||
|
||||
#else /* NEW_PACKET_LIST */
|
||||
#error "You must use the new packet list if you are using GTKUIManager for menus"
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
{ "/Edit/ConfigurationProfiles", NULL, "_Configuration Profiles...", "<shift><control>A", NULL, G_CALLBACK(profile_dialog_cb) },
|
||||
{ "/Edit/Preferences", GTK_STOCK_PREFERENCES, "_Preferences...", "<shift><control>P", NULL, G_CALLBACK(menus_prefs_cb) },
|
||||
|
||||
|
@ -1454,12 +1426,8 @@ static const GtkActionEntry main_menu_bar_entries[] = {
|
|||
{ "/View/ZoomIn", GTK_STOCK_ZOOM_IN, "_Zoom In", "<control>plus", NULL, G_CALLBACK(view_zoom_in_cb) },
|
||||
{ "/View/ZoomOut", GTK_STOCK_ZOOM_OUT, "Zoom _Out", "<control>minus", NULL, G_CALLBACK(view_zoom_out_cb) },
|
||||
{ "/View/NormalSize", GTK_STOCK_ZOOM_100, "_Normal Size", "<control>equal", NULL, G_CALLBACK(view_zoom_100_cb) },
|
||||
#ifdef NEW_PACKET_LIST
|
||||
{ "/View/ResizeAllColumns", WIRESHARK_STOCK_RESIZE_COLUMNS, "Resize All Columns", "<shift><control>R", NULL, G_CALLBACK(new_packet_list_resize_columns_cb) },
|
||||
{ "/View/DisplayedColumns", NULL, "Displayed Columns", NULL, NULL, NULL },
|
||||
#else
|
||||
#error "You must use the new packet list if you are using GTKUIManager for menus"
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
{ "/View/ExpandSubtrees", NULL, "Expand Subtrees", NULL, NULL, G_CALLBACK(expand_tree_cb) },
|
||||
{ "/View/ExpandAll", NULL, "Expand All", NULL, NULL, G_CALLBACK(expand_all_cb) },
|
||||
{ "/View/CollapseAll", NULL, "Collapse All", NULL, NULL, G_CALLBACK(collapse_all_cb) },
|
||||
|
@ -1795,7 +1763,6 @@ static GtkItemFactoryEntry menu_items[] =
|
|||
{"/Edit/Find Ne_xt", "<control>N", GTK_MENU_FUNC(find_next_cb), 0, NULL, NULL,},
|
||||
{"/Edit/Find Pre_vious", "<control>B", GTK_MENU_FUNC(find_previous_cb), 0, NULL, NULL,},
|
||||
{"/Edit/<separator>", NULL, NULL, 0, "<Separator>", NULL,},
|
||||
#ifdef NEW_PACKET_LIST
|
||||
{"/Edit/_Mark Packet (toggle)", "<control>M", GTK_MENU_FUNC(new_packet_list_mark_frame_cb),0, NULL, NULL,},
|
||||
{"/Edit/Toggle Marking Of All Displayed Packets", "<shift><alt><control>M", GTK_MENU_FUNC(new_packet_list_toggle_mark_all_displayed_frames_cb), 0, NULL, NULL,},
|
||||
{"/Edit/Mark All Displayed Packets", "<shift><control>M", GTK_MENU_FUNC(new_packet_list_mark_all_displayed_frames_cb), 0, NULL, NULL,},
|
||||
|
@ -1814,33 +1781,6 @@ static GtkItemFactoryEntry menu_items[] =
|
|||
{"/Edit/Un-Time Reference All Packets", "<alt><control>T", GTK_MENU_FUNC(new_packet_list_untime_reference_all_frames_cb), 0, NULL, NULL,},
|
||||
{"/Edit/Find Next Time Reference", "<alt><control>N", GTK_MENU_FUNC(reftime_frame_cb), REFTIME_FIND_NEXT, NULL, NULL,},
|
||||
{"/Edit/Find Previous Time Reference", "<alt><control>B", GTK_MENU_FUNC(reftime_frame_cb), REFTIME_FIND_PREV, NULL, NULL,},
|
||||
#else /* NEW_PACKET_LIST */
|
||||
/*
|
||||
* XXX - this should be changed to match the list used with the new
|
||||
* packet list, assuming we don't just drop the old packet list
|
||||
* code first.
|
||||
*/
|
||||
{"/Edit/_Mark Packet (toggle)", "<control>M", GTK_MENU_FUNC(packet_list_mark_frame_cb),
|
||||
0, NULL, NULL,},
|
||||
{"/Edit/Mark _All Displayed Packets", "<shift><control>M", GTK_MENU_FUNC(packet_list_mark_all_frames_cb), 0, NULL, NULL,},
|
||||
{"/Edit/_Unmark All Displayed Packets", "<alt><control>M", GTK_MENU_FUNC(packet_list_unmark_all_frames_cb), 0, NULL, NULL,},
|
||||
{"/Edit/Find Next Mark", "<shift><control>N", GTK_MENU_FUNC(find_next_mark_cb),
|
||||
0, NULL, NULL,},
|
||||
{"/Edit/Find Previous Mark", "<shift><control>B", GTK_MENU_FUNC(find_prev_mark_cb),
|
||||
0, NULL, NULL,},
|
||||
{"/Edit/<separator>", NULL, NULL, 0, "<Separator>", NULL,},
|
||||
{"/Edit/_Ignore Packet (toggle)", "<control>D", GTK_MENU_FUNC(packet_list_ignore_frame_cb),
|
||||
0, NULL, NULL,},
|
||||
{"/Edit/Ignore All Displayed Packets (toggle)", "<shift><control>D", GTK_MENU_FUNC(packet_list_ignore_all_frames_cb),
|
||||
0, NULL, NULL,},
|
||||
{"/Edit/U_n-Ignore All Packets", "<alt><control>D", GTK_MENU_FUNC(packet_list_unignore_all_frames_cb),
|
||||
0, NULL, NULL,},
|
||||
{"/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 Time Reference", "<alt><shift><control>N", GTK_MENU_FUNC(reftime_frame_cb), REFTIME_FIND_NEXT, NULL, NULL,},
|
||||
{"/Edit/Find Previous Time Reference", "<alt><shift><control>B", GTK_MENU_FUNC(reftime_frame_cb), REFTIME_FIND_PREV, NULL, NULL,},
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
{"/Edit/<separator>", NULL, NULL, 0, "<Separator>", NULL,},
|
||||
{"/Edit/_Configuration Profiles...", "<shift><control>A", GTK_MENU_FUNC(profile_dialog_cb), 0, NULL, NULL,},
|
||||
{"/Edit/_Preferences...", "<shift><control>P", GTK_MENU_FUNC(prefs_page_cb),
|
||||
|
@ -1904,14 +1844,9 @@ static GtkItemFactoryEntry menu_items[] =
|
|||
0, "<StockItem>", GTK_STOCK_ZOOM_OUT,},
|
||||
{"/View/_Normal Size", "<control>equal", GTK_MENU_FUNC(view_zoom_100_cb),
|
||||
0, "<StockItem>", GTK_STOCK_ZOOM_100,},
|
||||
#ifdef NEW_PACKET_LIST
|
||||
{"/View/Resize All Columns", "<shift><control>R", GTK_MENU_FUNC(new_packet_list_resize_columns_cb),
|
||||
0, "<StockItem>", WIRESHARK_STOCK_RESIZE_COLUMNS,},
|
||||
{"/View/Displayed Columns", NULL, NULL, 0, NULL, NULL,},
|
||||
#else
|
||||
{"/View/Resize All Columns", "<shift><control>R", GTK_MENU_FUNC(packet_list_resize_columns_cb),
|
||||
0, "<StockItem>", WIRESHARK_STOCK_RESIZE_COLUMNS,},
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
{"/View/<separator>", NULL, NULL, 0, "<Separator>", NULL,},
|
||||
{"/View/E_xpand Subtrees", "<shift>Right", GTK_MENU_FUNC(expand_tree_cb), 0, NULL, NULL,},
|
||||
{"/View/_Expand All", "<control>Right", GTK_MENU_FUNC(expand_all_cb),
|
||||
|
@ -2632,7 +2567,6 @@ packet_list_menu_color_conv_cba_new_rule_cb(GtkAction *action _U_, gpointer user
|
|||
colorize_conversation_cb( NULL /* widget _U_ */ , user_data, CONV_CBA);
|
||||
}
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
static void
|
||||
packet_list_menu_copy_sum_txt(GtkAction *action _U_, gpointer user_data)
|
||||
{
|
||||
|
@ -2644,19 +2578,6 @@ packet_list_menu_copy_sum_csv(GtkAction *action _U_, gpointer user_data)
|
|||
{
|
||||
new_packet_list_copy_summary_cb( NULL /* widget _U_ */ , user_data, CS_CSV);
|
||||
}
|
||||
#else
|
||||
static void
|
||||
packet_list_menu_copy_sum_txt(GtkAction *action _U_, gpointer user_data)
|
||||
{
|
||||
packet_list_copy_summary_cb( NULL /* widget _U_ */ , user_data, CS_TEXT);
|
||||
}
|
||||
|
||||
static void
|
||||
packet_list_menu_copy_sum_csv(GtkAction *action _U_, gpointer user_data)
|
||||
{
|
||||
packet_list_copy_summary_cb( NULL /* widget _U_ */ , user_data, CS_CSV);
|
||||
}
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
|
||||
static void
|
||||
packet_list_menu_copy_as_flt(GtkAction *action _U_, gpointer user_data)
|
||||
|
@ -4358,11 +4279,6 @@ set_menu_sensitivity_old(const gchar *path, gint val)
|
|||
menu_item = gtk_menu_get_attach_widget(GTK_MENU(menu_item));
|
||||
}
|
||||
gtk_widget_set_sensitive(menu_item, val);
|
||||
} else{
|
||||
#ifndef NEW_PACKET_LIST
|
||||
/* be sure this menu item *is* existing */
|
||||
g_assert_not_reached();
|
||||
#endif
|
||||
}
|
||||
|
||||
g_free(dup);
|
||||
|
@ -5138,13 +5054,9 @@ timestamp_format_cb(GtkWidget *w _U_, gpointer d _U_, gint action)
|
|||
if (recent.gui_time_format != action) {
|
||||
timestamp_set_type(action);
|
||||
recent.gui_time_format = action;
|
||||
#ifdef NEW_PACKET_LIST
|
||||
/* This call adjusts column width */
|
||||
cf_timestamp_auto_precision(&cfile);
|
||||
new_packet_list_queue_draw();
|
||||
#else
|
||||
cf_change_time_formats(&cfile);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5153,20 +5065,16 @@ static void
|
|||
timestamp_precision_cb(GtkWidget *w _U_, gpointer d _U_, gint action)
|
||||
{
|
||||
if (recent.gui_time_precision != action) {
|
||||
/* the actual precision will be set in cf_change_time_formats() below */
|
||||
/* the actual precision will be set in new_packet_list_queue_draw() below */
|
||||
if (action == TS_PREC_AUTO) {
|
||||
timestamp_set_precision(TS_PREC_AUTO_SEC);
|
||||
} else {
|
||||
timestamp_set_precision(action);
|
||||
}
|
||||
recent.gui_time_precision = action;
|
||||
#ifdef NEW_PACKET_LIST
|
||||
/* This call adjusts column width */
|
||||
cf_timestamp_auto_precision(&cfile);
|
||||
new_packet_list_queue_draw();
|
||||
#else
|
||||
cf_change_time_formats(&cfile);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -5181,13 +5089,9 @@ timestamp_seconds_time_cb(GtkWidget *w, gpointer d _U_, gint action _U_)
|
|||
}
|
||||
timestamp_set_seconds_type (recent.gui_seconds_format);
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
/* This call adjusts column width */
|
||||
cf_timestamp_auto_precision(&cfile);
|
||||
new_packet_list_queue_draw();
|
||||
#else
|
||||
cf_change_time_formats(&cfile);
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -5299,11 +5203,7 @@ menu_colorize_changed(gboolean packet_list_colorize) {
|
|||
if(packet_list_colorize != recent.packet_list_colorize) {
|
||||
recent.packet_list_colorize = packet_list_colorize;
|
||||
color_filters_enable(packet_list_colorize);
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_colorize_packets();
|
||||
#else
|
||||
cf_colorize_packets(&cfile);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5432,13 +5332,9 @@ menu_recent_read_finished(void) {
|
|||
#ifdef MAIN_MENU_USE_UIMANAGER
|
||||
/* XXX Fix me */
|
||||
timestamp_set_type(recent.gui_time_format);
|
||||
#ifdef NEW_PACKET_LIST
|
||||
/* This call adjusts column width */
|
||||
cf_timestamp_auto_precision(&cfile);
|
||||
new_packet_list_queue_draw();
|
||||
#else /* NEW_PACKET_LIST */
|
||||
cf_change_time_formats(&cfile);
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
#if 0
|
||||
/* This should not be needed as we set the active radioItem when we crate the actiongroup */
|
||||
switch(recent.gui_time_format) {
|
||||
|
@ -5530,19 +5426,15 @@ menu_recent_read_finished(void) {
|
|||
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu), TRUE);
|
||||
#endif /* MAIN_MENU_USE_UIMANAGER */
|
||||
#ifdef MAIN_MENU_USE_UIMANAGER
|
||||
/* the actual precision will be set in cf_change_time_formats() below */
|
||||
/* the actual precision will be set in new_packet_list_queue_draw() below */
|
||||
if (recent.gui_time_precision == TS_PREC_AUTO) {
|
||||
timestamp_set_precision(TS_PREC_AUTO_SEC);
|
||||
} else {
|
||||
timestamp_set_precision(recent.gui_time_precision);
|
||||
}
|
||||
#ifdef NEW_PACKET_LIST
|
||||
/* This call adjusts column width */
|
||||
cf_timestamp_auto_precision(&cfile);
|
||||
new_packet_list_queue_draw();
|
||||
#else /* NEW_PACKET_LIST */
|
||||
cf_change_time_formats(&cfile);
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
#else /* MAIN_MENU_USE_UIMANAGER */
|
||||
switch(recent.gui_time_precision) {
|
||||
case(TS_PREC_AUTO):
|
||||
|
@ -5639,25 +5531,13 @@ popup_menu_handler(GtkWidget *widget, GdkEvent *event, gpointer data)
|
|||
/* Check if we are on packet_list object */
|
||||
if (widget == g_object_get_data(G_OBJECT(popup_menu_object), E_MPACKET_LIST_KEY) &&
|
||||
((GdkEventButton *)event)->button != 1) {
|
||||
#ifdef NEW_PACKET_LIST
|
||||
gint physical_row;
|
||||
if (new_packet_list_get_event_row_column((GdkEventButton *)event, &physical_row, &row, &column)) {
|
||||
#else
|
||||
if (packet_list_get_event_row_column(widget, (GdkEventButton *)event, &row, &column)) {
|
||||
#endif
|
||||
g_object_set_data(G_OBJECT(popup_menu_object), E_MPACKET_LIST_ROW_KEY,
|
||||
#ifdef NEW_PACKET_LIST
|
||||
GINT_TO_POINTER(row));
|
||||
#else
|
||||
GINT_TO_POINTER(row));
|
||||
#endif
|
||||
g_object_set_data(G_OBJECT(popup_menu_object), E_MPACKET_LIST_COL_KEY,
|
||||
GINT_TO_POINTER(column));
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_set_selected_row(row);
|
||||
#else
|
||||
packet_list_set_selected_row(row);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -6146,7 +6026,6 @@ set_menus_for_selected_packet(capture_file *cf)
|
|||
set_menu_sensitivity_old("/Edit/Set Time Reference (toggle)",
|
||||
frame_selected);
|
||||
#endif /* MAIN_MENU_USE_UIMANAGER */
|
||||
#ifdef NEW_PACKET_LIST
|
||||
#ifdef MAIN_MENU_USE_UIMANAGER
|
||||
set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/EditMenu/Un-TimeReferenceAllPackets",
|
||||
have_time_ref);
|
||||
|
@ -6154,7 +6033,6 @@ set_menus_for_selected_packet(capture_file *cf)
|
|||
set_menu_sensitivity_old("/Edit/Un-Time Reference All Packets",
|
||||
have_time_ref);
|
||||
#endif /* MAIN_MENU_USE_UIMANAGER */
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
set_menu_sensitivity(ui_manager_packet_list_menu, "/PacketListMenuPopup/SetTimeReference",
|
||||
frame_selected);
|
||||
#ifdef MAIN_MENU_USE_UIMANAGER
|
||||
|
@ -6681,7 +6559,6 @@ rebuild_protocol_prefs_menu (module_t *prefs_module_p, gboolean preferences)
|
|||
|
||||
}
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
static void
|
||||
menu_visible_column_toggle (GtkWidget *w _U_, gpointer data)
|
||||
{
|
||||
|
@ -6753,7 +6630,6 @@ rebuild_visible_columns_menu (void)
|
|||
gtk_widget_show (menu_item);
|
||||
}
|
||||
}
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
|
||||
void
|
||||
menus_set_column_resolved (gboolean resolved, gboolean can_resolve)
|
||||
|
|
|
@ -29,8 +29,6 @@
|
|||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
|
||||
#include "string.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
@ -1724,6 +1722,3 @@ new_packet_list_colorize_packets(void)
|
|||
packet_list_reset_colorized(packetlist);
|
||||
gtk_widget_queue_draw (packetlist->view);
|
||||
}
|
||||
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
#ifndef __NEW_PACKET_LIST_H__
|
||||
#define __NEW_PACKET_LIST_H__
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
/** @file
|
||||
|
@ -153,6 +152,4 @@ void new_packet_list_colorize_packets(void);
|
|||
*/
|
||||
extern void new_packet_list_set_sel_browse(gboolean val, gboolean force_set);
|
||||
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
|
||||
#endif /* __NEW_PACKET_LIST_H__ */
|
||||
|
|
|
@ -32,8 +32,6 @@
|
|||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
@ -1279,6 +1277,3 @@ packet_list_get_widest_column_string(PacketList *packet_list, gint col)
|
|||
return widest_column_str;
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
|
||||
|
|
|
@ -28,8 +28,6 @@
|
|||
#ifndef __PACKET_LIST_STORE_H__
|
||||
#define __PACKET_LIST_STORE_H__
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
#include "epan/column_info.h"
|
||||
|
@ -121,6 +119,4 @@ void packet_list_dissect_and_cache_iter(PacketList *packet_list, GtkTreeIter *it
|
|||
void packet_list_reset_colorized(PacketList *packet_list);
|
||||
const char* packet_list_get_widest_column_string(PacketList *packet_list, gint col);
|
||||
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
|
||||
#endif /* __PACKET_LIST_STORE_H__ */
|
||||
|
|
|
@ -135,14 +135,11 @@ void new_window_cb(GtkWidget *w _U_)
|
|||
return;
|
||||
}
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
|
||||
/* With the new packetlists "lazy columns" it's neccesary to reread the frame */
|
||||
if (!cf_read_frame(&cfile, cfile.current_frame)) {
|
||||
/* error reading the frame */
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Allocate data structure to represent this window. */
|
||||
DataPtr = (struct PacketWinData *) g_malloc(sizeof(struct PacketWinData));
|
||||
|
|
|
@ -40,11 +40,7 @@
|
|||
#include "gtk/prefs_column.h"
|
||||
#include "gtk/gtkglobals.h"
|
||||
#include "gtk/gui_utils.h"
|
||||
#ifdef NEW_PACKET_LIST
|
||||
#include "gtk/new_packet_list.h"
|
||||
#else
|
||||
#include "gtk/main_packet_list.h"
|
||||
#endif
|
||||
#include "gtk/filter_dlg.h"
|
||||
#include "gtk/filter_autocomplete.h"
|
||||
|
||||
|
@ -67,16 +63,13 @@ static gboolean column_title_changed_cb(GtkCellRendererText *, const gchar *, co
|
|||
static char custom_occurrence_str[8] = "";
|
||||
|
||||
enum {
|
||||
#ifdef NEW_PACKET_LIST
|
||||
VISIBLE_COLUMN,
|
||||
#endif
|
||||
TITLE_COLUMN,
|
||||
FORMAT_COLUMN,
|
||||
DATA_COLUMN,
|
||||
N_COLUMN /* The number of columns */
|
||||
};
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
/* Visible toggled */
|
||||
static void
|
||||
visible_toggled(GtkCellRendererToggle *cell _U_, gchar *path_str, gpointer data)
|
||||
|
@ -101,7 +94,6 @@ visible_toggled(GtkCellRendererToggle *cell _U_, gchar *path_str, gpointer data)
|
|||
|
||||
gtk_tree_path_free(path);
|
||||
} /* visible_toggled */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Create and display the column selection widgets.
|
||||
|
@ -118,11 +110,7 @@ column_prefs_show(GtkWidget *prefs_window) {
|
|||
gint i;
|
||||
gchar *fmt;
|
||||
gint cur_fmt;
|
||||
#ifdef NEW_PACKET_LIST
|
||||
const gchar *column_titles[] = {"Displayed", "Title", "Field type"};
|
||||
#else
|
||||
const gchar *column_titles[] = {"Title", "Field type"};
|
||||
#endif
|
||||
GtkListStore *store;
|
||||
GtkCellRenderer *renderer;
|
||||
GtkTreeViewColumn *column;
|
||||
|
@ -153,9 +141,7 @@ column_prefs_show(GtkWidget *prefs_window) {
|
|||
gtk_widget_show(list_sc);
|
||||
|
||||
store = gtk_list_store_new(N_COLUMN,
|
||||
#ifdef NEW_PACKET_LIST
|
||||
G_TYPE_BOOLEAN,
|
||||
#endif
|
||||
G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER);
|
||||
column_row_deleted_handler_id =
|
||||
g_signal_connect(GTK_TREE_MODEL(store), "row-deleted", G_CALLBACK(column_dnd_row_deleted_cb), NULL);
|
||||
|
@ -167,13 +153,11 @@ column_prefs_show(GtkWidget *prefs_window) {
|
|||
gtk_tooltips_set_tip (tooltips, column_l,
|
||||
"Click on a title to change its name.\nDrag an item to change its order.", NULL);
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
renderer = gtk_cell_renderer_toggle_new();
|
||||
g_signal_connect(renderer, "toggled", G_CALLBACK(visible_toggled), store);
|
||||
column = gtk_tree_view_column_new_with_attributes(column_titles[VISIBLE_COLUMN], renderer, "active", VISIBLE_COLUMN, NULL);
|
||||
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
|
||||
gtk_tree_view_append_column(GTK_TREE_VIEW(column_l), column);
|
||||
#endif
|
||||
|
||||
renderer = gtk_cell_renderer_text_new();
|
||||
g_object_set(G_OBJECT(renderer), "editable", TRUE, NULL);
|
||||
|
@ -220,9 +204,7 @@ column_prefs_show(GtkWidget *prefs_window) {
|
|||
gtk_list_store_append(store, &iter);
|
||||
gtk_list_store_set(store, &iter,
|
||||
#endif
|
||||
#ifdef NEW_PACKET_LIST
|
||||
VISIBLE_COLUMN, cfmt->visible,
|
||||
#endif
|
||||
TITLE_COLUMN, cfmt->title, FORMAT_COLUMN, fmt, DATA_COLUMN, clp, -1);
|
||||
|
||||
if (first_row) {
|
||||
|
@ -428,9 +410,7 @@ column_list_new_cb(GtkWidget *w _U_, gpointer data) {
|
|||
gtk_list_store_append(GTK_LIST_STORE(model), &iter);
|
||||
gtk_list_store_set(GTK_LIST_STORE(model), &iter,
|
||||
#endif
|
||||
#ifdef NEW_PACKET_LIST
|
||||
VISIBLE_COLUMN, TRUE,
|
||||
#endif
|
||||
TITLE_COLUMN, title,
|
||||
FORMAT_COLUMN, col_format_desc(cur_fmt),
|
||||
DATA_COLUMN, g_list_last(prefs.col_list),
|
||||
|
@ -848,11 +828,7 @@ column_prefs_apply(GtkWidget *w _U_)
|
|||
{
|
||||
/* Redraw the packet list if the columns were changed */
|
||||
if(cfile.cinfo.columns_changed) {
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_recreate();
|
||||
#else
|
||||
packet_list_recreate();
|
||||
#endif
|
||||
cfile.cinfo.columns_changed = FALSE; /* Reset value */
|
||||
}
|
||||
}
|
||||
|
|
|
@ -57,9 +57,6 @@
|
|||
#include "gtk/help_dlg.h"
|
||||
#include "gtk/keys.h"
|
||||
#include "gtk/uat_gui.h"
|
||||
#ifndef NEW_PACKET_LIST
|
||||
#include "gtk/main_packet_list.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef HAVE_LIBPCAP
|
||||
|
@ -1286,15 +1283,6 @@ prefs_main_apply_all(GtkWidget *dlg, gboolean redissect)
|
|||
layout_prefs_apply(g_object_get_data(G_OBJECT(dlg), E_GUI_LAYOUT_PAGE_KEY));
|
||||
column_prefs_apply(g_object_get_data(G_OBJECT(dlg), E_GUI_COLUMN_PAGE_KEY));
|
||||
stream_prefs_apply(g_object_get_data(G_OBJECT(dlg), E_GUI_COLORS_PAGE_KEY));
|
||||
#ifndef NEW_PACKET_LIST
|
||||
/* With the old packet list, we need to do some calculations to figure out
|
||||
* the column sizes. But we don't want to do it until after we've set the
|
||||
* fonts (so we know how much room is needed) and we don't want to do it
|
||||
* until after we've applied the column preferences (so we know which
|
||||
* columns are there).
|
||||
*/
|
||||
packet_list_set_default_column_sizes();
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_LIBPCAP
|
||||
#ifdef _WIN32
|
||||
|
|
|
@ -41,11 +41,7 @@
|
|||
#include "gtk/gui_utils.h"
|
||||
#include "gtk/dlg_utils.h"
|
||||
#include "gtk/main.h"
|
||||
#ifdef NEW_PACKET_LIST
|
||||
#include "gtk/new_packet_list.h"
|
||||
#else
|
||||
#include "gtk/main_packet_list.h"
|
||||
#endif
|
||||
#include "gtk/main_proto_draw.h"
|
||||
#include "gtk/main_toolbar.h"
|
||||
#include "gtk/font_utils.h"
|
||||
|
@ -513,11 +509,7 @@ gui_prefs_apply(GtkWidget *w _U_ , gboolean redissect)
|
|||
toolbar_redraw_all();
|
||||
|
||||
set_scrollbar_placement_all();
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_set_sel_browse(prefs.gui_plist_sel_browse, FALSE);
|
||||
#else
|
||||
packet_list_set_sel_browse(prefs.gui_plist_sel_browse, FALSE);
|
||||
#endif
|
||||
set_ptree_sel_browse_all(prefs.gui_ptree_sel_browse);
|
||||
set_tree_styles_all();
|
||||
main_widgets_rearrange();
|
||||
|
|
|
@ -37,7 +37,6 @@
|
|||
#include "gtk/prefs_stream.h"
|
||||
#include "gtk/keys.h"
|
||||
#include "gtk/follow_tcp.h"
|
||||
#include "gtk/main_packet_list.h"
|
||||
|
||||
|
||||
#define SAMPLE_MARKED_TEXT "Sample marked packet text\n"
|
||||
|
@ -221,11 +220,6 @@ void
|
|||
stream_prefs_apply(GtkWidget *w _U_)
|
||||
{
|
||||
follow_tcp_redraw_all();
|
||||
|
||||
#ifndef NEW_PACKET_LIST
|
||||
packet_list_update_marked_frames();
|
||||
packet_list_update_ignored_frames();
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -47,11 +47,7 @@
|
|||
#include "gtk/main.h"
|
||||
#include "gtk/menus.h"
|
||||
#include "gtk/gui_utils.h"
|
||||
#ifdef NEW_PACKET_LIST
|
||||
#include "gtk/new_packet_list.h"
|
||||
#else
|
||||
#include "gtk/main_packet_list.h"
|
||||
#endif /*NEW_PACKET_LIST */
|
||||
#include "gtk/file_dlg.h"
|
||||
#include "gtk/cfilter_combo_utils.h"
|
||||
|
||||
|
@ -392,11 +388,7 @@ write_profile_recent(void)
|
|||
|
||||
fprintf(rf, "\n# Packet list column pixel widths.\n");
|
||||
fprintf(rf, "# Each pair of strings consists of a column format and its pixel width.\n");
|
||||
#ifdef NEW_PACKET_LIST
|
||||
new_packet_list_recent_write_all(rf);
|
||||
#else
|
||||
packet_list_recent_write_all(rf);
|
||||
#endif
|
||||
|
||||
if (get_last_open_dir() != NULL) {
|
||||
fprintf(rf, "\n# Last directory navigated to in File Open dialog.\n");
|
||||
|
|
26
ui_util.h
26
ui_util.h
|
@ -27,11 +27,7 @@
|
|||
#ifndef __UI_UTIL_H__
|
||||
#define __UI_UTIL_H__
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
#include "epan/packet_info.h"
|
||||
#else
|
||||
#include "color.h"
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
@ -60,7 +56,6 @@ extern void pipe_input_set_handler(gint source, gpointer user_data, int *child_p
|
|||
|
||||
/* packet_list.c */
|
||||
|
||||
#ifdef NEW_PACKET_LIST
|
||||
void new_packet_list_clear(void);
|
||||
void new_packet_list_freeze(void);
|
||||
void new_packet_list_recreate_visible_rows(void);
|
||||
|
@ -78,27 +73,6 @@ void new_packet_list_moveto_end(void);
|
|||
gboolean new_packet_list_check_end(void);
|
||||
gint new_packet_list_find_row_from_data(gpointer data, gboolean select);
|
||||
void new_packet_list_resize_column(gint col);
|
||||
#else
|
||||
/* packet list related functions */
|
||||
void packet_list_clear(void);
|
||||
void packet_list_freeze(void);
|
||||
void packet_list_thaw(void);
|
||||
void packet_list_next(void);
|
||||
void packet_list_prev(void);
|
||||
void packet_list_select_row(gint);
|
||||
void packet_list_moveto_end(void);
|
||||
gint packet_list_append(const gchar *text[], gpointer data);
|
||||
void packet_list_set_colors(gint, color_t *, color_t *);
|
||||
gint packet_list_find_row_from_data(gpointer);
|
||||
void packet_list_set_text(gint, gint, const gchar *);
|
||||
void packet_list_set_time_width(gint, gint);
|
||||
gpointer packet_list_get_row_data(gint);
|
||||
void packet_list_set_selected_row(gint);
|
||||
gint packet_list_get_sort_column(void);
|
||||
void packet_list_set_sort_column(void);
|
||||
gboolean packet_list_check_end(void);
|
||||
|
||||
#endif /* NEW_PACKET_LIST */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue