diff options
author | stig <stig@f5534014-38df-0310-8fa8-9805f1628bb7> | 2007-09-26 22:50:53 +0000 |
---|---|---|
committer | stig <stig@f5534014-38df-0310-8fa8-9805f1628bb7> | 2007-09-26 22:50:53 +0000 |
commit | b6bf8f0ec548b9e342552b83c8f4cbc31eaf4c0d (patch) | |
tree | 9343bbb6408abc573f8049a6f074b51c8d0678ac /gtk | |
parent | 921c7d43d37af6fdf86046650b7f28667fb89c87 (diff) |
- Added Tick interval 1 min and 10 min.
- Draw an empty graph if no items in given tick interval.
- Initialize interval_delta so we don't get overlaping x-scale labels.
- Some whitespace cleanup.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@22992 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/io_stat.c | 44 |
1 files changed, 25 insertions, 19 deletions
diff --git a/gtk/io_stat.c b/gtk/io_stat.c index 196e3d6825..d69cd0a0a0 100644 --- a/gtk/io_stat.c +++ b/gtk/io_stat.c @@ -93,9 +93,9 @@ static const char *plot_style_name[MAX_PLOT_STYLES] = { static const char *count_type_names[MAX_COUNT_TYPES] = {"Packets/Tick", "Bytes/Tick", "Bits/Tick", "Advanced..."}; /* unit is in ms */ -#define MAX_TICK_VALUES 5 +#define MAX_TICK_VALUES 7 #define DEFAULT_TICK_VALUE 3 -static const guint tick_interval_values[MAX_TICK_VALUES] = { 1, 10, 100, 1000, 10000 }; +static const guint tick_interval_values[MAX_TICK_VALUES] = { 1, 10, 100, 1000, 10000, 60000, 600000 }; #define CALC_TYPE_SUM 0 #define CALC_TYPE_COUNT 1 @@ -540,12 +540,8 @@ io_stat_draw(io_stat_t *io) * Find the length of the intervals we have data for * so we know how large arrays we need to malloc() */ - num_time_intervals=io->num_items; - /* if there isnt anything to do, just return */ - if(num_time_intervals==0){ - return; - } - num_time_intervals+=1; + num_time_intervals=io->num_items+1; + /* XXX move this check to _packet() */ if(num_time_intervals>NUM_IO_ITEMS){ simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "IO-Stat error. There are too many entries, bailing out"); @@ -798,7 +794,13 @@ io_stat_draw(io_stat_t *io) first_interval=0; } - interval_delta=1; + if (io->pixels_per_tick==1) { + interval_delta=25*io->interval; + } else if (io->pixels_per_tick==2) { + interval_delta=20*io->interval; + } else { + interval_delta=5*io->interval; + } delta_multiplier=5; while(interval_delta<((last_interval-first_interval)/10)){ interval_delta*=delta_multiplier; @@ -812,7 +814,7 @@ io_stat_draw(io_stat_t *io) for(current_interval=last_interval;current_interval>=(gint32)first_interval;current_interval=current_interval-io->interval){ int x, xlen; - /* if pixels_per_tick is <5, only draw every 10 ticks */ + /* if pixels_per_tick is <10, only draw every 10 ticks */ if((io->pixels_per_tick<10) && (current_interval%(10*io->interval))){ continue; } @@ -832,7 +834,9 @@ io_stat_draw(io_stat_t *io) if(xlen==10){ int lwidth=10; - if(io->interval>=1000){ + if(io->interval>=60000){ + g_snprintf(label_string, 15, "%dm", current_interval/60000); + } else if(io->interval>=1000){ g_snprintf(label_string, 15, "%ds", current_interval/1000); } else if(io->interval>=100){ g_snprintf(label_string, 15, "%d.%1ds", current_interval/1000,(current_interval/100)%10); @@ -1364,7 +1368,9 @@ create_tick_interval_menu_items(io_stat_t *io, GtkWidget *menu) int i; for(i=0;i<MAX_TICK_VALUES;i++){ - if(tick_interval_values[i]>=1000){ + if(tick_interval_values[i]>=60000){ + g_snprintf(str, 15, "%u min", tick_interval_values[i]/60000); + } else if(tick_interval_values[i]>=1000){ g_snprintf(str, 15, "%u sec", tick_interval_values[i]/1000); } else if(tick_interval_values[i]>=100){ g_snprintf(str, 15, "0.%1u sec", (tick_interval_values[i]/100)%10); @@ -1487,38 +1493,38 @@ create_ctrl_menu(io_stat_t *io, GtkWidget *box, const char *name, void (*func)(i static void create_ctrl_area(io_stat_t *io, GtkWidget *box) { - GtkWidget *frame_vbox; - GtkWidget *frame; + GtkWidget *frame_vbox; + GtkWidget *frame; GtkWidget *vbox; frame_vbox=gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(box), frame_vbox); gtk_widget_show(frame_vbox); - frame = gtk_frame_new("X Axis"); + frame = gtk_frame_new("X Axis"); gtk_container_add(GTK_CONTAINER(frame_vbox), frame); gtk_widget_show(frame); vbox=gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(frame), vbox); - gtk_container_border_width(GTK_CONTAINER(vbox), 3); + gtk_container_border_width(GTK_CONTAINER(vbox), 3); gtk_box_set_child_packing(GTK_BOX(box), vbox, FALSE, FALSE, 0, GTK_PACK_END); gtk_widget_show(vbox); create_ctrl_menu(io, vbox, "Tick interval:", create_tick_interval_menu_items); create_ctrl_menu(io, vbox, "Pixels per tick:", create_pixels_per_tick_menu_items); - frame = gtk_frame_new("Y Axis"); + frame = gtk_frame_new("Y Axis"); gtk_container_add(GTK_CONTAINER(frame_vbox), frame); gtk_widget_show(frame); vbox=gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(frame), vbox); - gtk_container_border_width(GTK_CONTAINER(vbox), 3); + gtk_container_border_width(GTK_CONTAINER(vbox), 3); gtk_box_set_child_packing(GTK_BOX(box), vbox, FALSE, FALSE, 0, GTK_PACK_END); gtk_widget_show(vbox); - create_ctrl_menu(io, vbox, "Unit:", create_frames_or_bytes_menu_items); + create_ctrl_menu(io, vbox, "Unit:", create_frames_or_bytes_menu_items); create_ctrl_menu(io, vbox, "Scale:", create_yscale_max_menu_items); return; |