Ethereal-dev: Re: [Ethereal-dev] Color filters - preview

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Richard Urwin <richard@xxxxxxxxxxxxxxx>
Date: Mon, 9 Jun 2003 09:56:28 +0100
On Monday 09 Jun 2003 8:48 am, Tomas Kukosa wrote:

> The responsible piece of code is the set_frame_mark() function in the
> gtk/main.c module.
> As I do not know how the colorization is done I am not able to fix it.

Thanks for that, I have saved it off and will try to remember it when I get 
around to fixing it.

FWIW, on an OK/APPLY, gtk/colorfilters.c calls  file.c: colorize_packets, 
which redraws the entire packet list with rescan_packets, which clears the 
packet list and adds each packet to it with add_packet_to_packet_list. And 
that seems to assume that it is in the context of a complete rebuild, so 
calling it with a single line to change would be non-trivial. I think we will 
need to copy some of it into a new function that redraws a given row.

The lines of interest are:
typedef struct {
  color_filter_t *colorf;
  epan_dissect_t *edt;
} apply_color_filter_args;
<snip>
      g_slist_foreach(filter_list, apply_color_filter, &args);
<snip>
        packet_list_set_colors(row, &args.colorf->fg_color,
                               &args.colorf->bg_color);

I don't (currently) understand the epan/edt stuff, so that's as far as I can 
go.

-- 
Richard Urwin