
static char LabelTest_id[] = "$Header: LabelTest.cc,v 1.1 96/10/28 09:12:06 oreilly Exp $";

/*
$Log:	LabelTest.cc,v $
Revision 1.1  96/10/28  09:12:06  09:12:06  oreilly (Thomas C. O'Reilly)
Initial revision

*/
#include <stdio.h>
#include <Xm/Form.h>
#include <Xm/Label.h>
#include <Xm/PushB.h>
#include "LabelTest.h"

LabelTest::LabelTest(const char *name, Widget parent)
  : VkComponent(name)
{
  _baseWidget = XtCreateWidget(_name, xmFormWidgetClass, parent, NULL, 0);
  installDestroyHandler();
  
  for (int i = 0; i < NLabels; i++)
  {
    if (i == 0)
    {
      _label[i] = 
	XtVaCreateManagedWidget("lbl", xmLabelWidgetClass, _baseWidget,
				XmNleftAttachment, XmATTACH_FORM,
				XmNtopAttachment, XmATTACH_FORM,
				XmNrightAttachment, XmATTACH_FORM,
				NULL);
    }
    else
    {
      _label[i] = 
	XtVaCreateManagedWidget("lbl", xmLabelWidgetClass, _baseWidget,
				XmNleftAttachment, XmATTACH_FORM,
				XmNtopAttachment, XmATTACH_WIDGET,
				XmNtopWidget, _label[i-1],
				XmNrightAttachment, XmATTACH_FORM,
				NULL);
    }
  }
  Widget button = 
    XtVaCreateManagedWidget("refresh", xmPushButtonWidgetClass, _baseWidget,
			    XmNbottomAttachment, XmATTACH_FORM,
			    XmNleftAttachment, XmATTACH_FORM,
			    NULL);
  
  XtAddCallback(button, XmNactivateCallback, &LabelTest::callback,
		(XtPointer )this);
  
}


void LabelTest::callback(Widget w, XtPointer clientData,
			 XtPointer callData)
{
  static int count = 0;
  LabelTest *obj = (LabelTest *)clientData;
  char buf[100];

  for (int i = 0; i < NLabels; i++)
  { 
    sprintf(buf, "Label #%d, push #%d", i, count); 
    XmString xmstr = XmStringCreateSimple(buf);
    XtVaSetValues(obj->_label[i], XmNlabelString, xmstr, NULL);
    XmStringFree(xmstr);
  }
  fprintf(stderr, "Done updating labels\n");
  
  count++;
}

