#include "DataWindow.h"
#include <stdio.h>
#include <string.h>

DataWindow::DataWindow(int Nitems, char *Title, int X0, int Y0)
  : GraphWindow(200, Title, 200, 1, 186, X0, Y0, Nitems*10+3),
    N(Nitems)
{
  int i;
  
  value = new (double*)[N];
  name = new (char*)[N];
  for (i=0;i<N;i++)
  {
    name[i] = new char[NAMELENGTH];
  }
}

DataWindow::~DataWindow()
{
  int i;
  for (i=0; i<N; i++)
  {
    delete name[i];
  }

  delete[] name;
  delete[] value;
}

void DataWindow::SetValue(int k, double *pval)
{
  if ((k<N) && (k>=0))
    value[k] = pval;
}

void DataWindow::SetName(int k, char *pname)
{
  int len;

  if ((k<N) && (k>=0)) {
    len = strlen(pname);
    strncpy(name[k], pname, NAMELENGTH);
  }
}

void DataWindow::Update()
{
  int i, x, y;
  char s[NAMELENGTH];

  XClearWindow(myDisplay, myWindow);
  
  y = 10;
  for (i=0;i<N;i++)
  {
    OutText(name[i], 10, y);

    sprintf(s,"%3.4f",*(value[i]));
    //    printf("Value[%d] is %3.4f\n", i, *value[i]);
    OutText(s, 100, y);
    y+=10;
  }
}
