#include #include #include #include "execdef.h" #include "intuidef.h" #include "windowinfo.h" #include "loadrecord.h" #include "NewWindowSize.proto" #include #include "SetWindowInfo.proto" #include "FindMaxDataPoint.proto" #include "RedrawWindow.proto" Bool NewWindowSize(window) Window *window; { LoadDataValue *new_start_data; short number_data_points_to_copy; LoadRecord old_record, *record; SetWindowInfo(window); for (record = (LoadRecord *)WINDOWINFO(window)->loadrecords.mlh_Head; record->node.mln_Succ; record = (LoadRecord *)record->node.mln_Succ) { old_record = *record; if (!(new_start_data = (LoadDataValue *)AllocMem(WINDOWINFO(window)->width * sizeof(LoadDataValue), 0))) return FALSE; record->start_data = new_start_data; record->end_data = record->start_data + WINDOWINFO(window)->width; number_data_points_to_copy = MIN(old_record.next_data - old_record.start_data, WINDOWINFO(window)->width); record->next_data = record->start_data + number_data_points_to_copy; record->max_data = record->start_data + (old_record.max_data - old_record.start_data); CopyMemQuick(old_record.next_data - number_data_points_to_copy, record->start_data, number_data_points_to_copy * sizeof(LoadDataValue)); if (record->max_data >= record->next_data) FindMaxDataPoint(record); FreeMem((char *)old_record.start_data, (old_record.end_data - old_record.start_data) * sizeof(LoadDataValue)); if (record->scale) { record->deltay = WINDOWINFO(window)->height / record->scale; record->moduloy = WINDOWINFO(window)->height / record->scale; } } return TRUE; }