/* Copyright 1993 by gregg hanna */
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <X11/Xos.h>
#include <Xm/Xm.h>
#include <Xm/List.h>

#include "patchlevel.h"
#include "rolo.h"
#include "roloP.h"

extern Boolean showSecondary;
extern int sizePrimary;

void PutListOnScreen()
{
  RoloRec *rr;
  char buf[500];
  int n, i;
  extern Widget ListForRolo;
  XmString *xmtable;

  n = 0;
  for ( rr = RoloList; rr != NULL; rr = rr->next )
    if ( rr->on ) n++;

  xmtable = (XmString*)calloc(n,sizeof(XmString));
  for ( rr = RoloList, i = 0; rr != NULL; rr = rr->next )
    if ( rr->on ) {
      sprintf(buf,"%-30s",rr->name);
      buf[30] = ' ';
      if ( showSecondary ) {
        sprintf(&buf[31],"%-*s",sizePrimary,rr->number?rr->number:"");
        buf[31+sizePrimary] = ' ';
        mystrcpy(&buf[31+sizePrimary+1],rr->number2?rr->number2:"");
      } else {
        mystrcpy(&buf[31],rr->number?rr->number:"");
      }
      xmtable[i] = XmStringCreateSimple(buf);
      i++;
    }
  XtUnmapWidget(ListForRolo);
  XmListDeleteAllItems(ListForRolo);
  XmListAddItems(ListForRolo,xmtable,n,0);
  XtMapWidget(ListForRolo);
  for ( i = 0; i < n; i++ ) XmStringFree(xmtable[i]);
  free(xmtable);
}

