#include    <intuition/intuition.h>
#include    <devices/load.h>
#include    "execdef.h"
#include    "intuidef.h"
#include    "windowinfo.h"
#include    "loadrecord.h"

#include    "RedrawWindow.proto"

#include    <graphics/proto.h>

#include    "DrawScaleReferenceLines.proto"
#include    "DrawDataLine.proto"

void
RedrawWindow(window)
    Window *window;
{
    WindowInfo *window_info;
    register short x;
    register LoadDataValue *current_data, *last_data;
    LoadRecord *record;

    window_info = WINDOWINFO(window);
    SetAPen(window->RPort, window_info->back_pen_num);
    /* Clear the window. */
    RectFill(window->RPort,
	     window_info->leftedge,
	     window_info->topedge,
	     window_info->rightedge,
	     window_info->bottomedge);

    for (record = (LoadRecord *)window_info->loadrecords.mlh_Head;
	 record->node.mln_Succ;
	 record = (LoadRecord *)record->node.mln_Succ)
    {
	if (record->scale)
	    DrawScaleReferenceLines(window, record, (short)0);

	/* Draw data point lines. */
	last_data = record->next_data;
	x = 0;
	for (current_data = record->start_data;
	     current_data < last_data;
	     current_data++)
	{
	    DrawDataLine(window, record, x, *current_data);
	    x++;
	}
    }
}
