//
// $Id: ipfw-allowonly.c,v 1.4 2001/11/16 04:46:20 mavetju Exp $
//

//
// Draw the graphics
//
// Draw only the allow-fields
//

#include <gtk/gtk.h>
#include "ipfw-graph.h"


//
// Draw the graphs
//
static long piles[MAXSTORED];

// draw the coloured piles on top of each other
static void draw_pile(DATA_TYPE data) {
    int x,y;

    for (x=MAXSTORED-xsize;x<MAXSTORED;x++) {
	y=piles[x];
	gdk_draw_line(drawtable[current_page].pixmap,data.gc,
	    x-(MAXSTORED-xsize),
	    ysize_drawing-(ysize_drawing*(y))/maxyvalues[x],
	    x-(MAXSTORED-xsize),
	    ysize_drawing-(ysize_drawing*(y+data.table[x]))/maxyvalues[x]);

	piles[x]+=data.table[x];
    }

}

// draw a realtime graph
static void draw_line(DATA_TYPE data) {
    int x;

    for (x=MAXSTORED-xsize;x<MAXSTORED;x++)
	gdk_draw_line(bytes_pixmap,data.gc,
	    x-1-(MAXSTORED-xsize),
	    ysize_bytes-(ysize_bytes*data.table[x-1])/maxyvalue,
	    x-(MAXSTORED-xsize),
	    ysize_bytes-(ysize_bytes*data.table[x  ])/maxyvalue);
}


void allowonly_bytes(void) {
    draw_line(data_bytes);
}

void allowonly_drawing(void) {
    int i;

    if (drawtable[current_page].pixmap==NULL)
	return;
    memset(piles,0,MAXSTORED*sizeof(long));
    for (i=0;i<data_size;i++)
	if (data[i].allow)
	    draw_pile(data[i]);
}


syntax highlighted by Code2HTML, v. 0.9.1