static char ViewButton_id[] = "$Header: ViewButton.cc,v 1.2 96/10/28 09:12:54 oreilly Exp $";


/*
$Log:	ViewButton.cc,v $
Revision 1.2  96/10/28  09:12:54  09:12:54  oreilly (Thomas C. O'Reilly)
*** empty log message ***

Revision 1.1  96/07/22  10:42:22  10:42:22  oreilly (Thomas C. O'Reilly)
First external release

*/
#include <Xm/PushB.h>
#include <Xm/Form.h>
#include "ViewButton.h"
#include "TiburonApp.h"

ViewButton::ViewButton(const char *name, Widget parent, View *view,
		       ViewManager *viewManager)
  : VkComponent(name)
{
  _baseWidget = XtCreateWidget(_name, xmFormWidgetClass, parent, NULL, 0);
  installDestroyHandler();

  _button = 
    XtVaCreateManagedWidget("button",
			    xmPushButtonWidgetClass, 
			    _baseWidget,
			    XmNleftAttachment, XmATTACH_FORM,
			    XmNrightAttachment, XmATTACH_FORM,
			    XmNtopAttachment, XmATTACH_FORM,
			    XmNbottomAttachment, XmATTACH_FORM,
			    NULL);
  
  XtAddCallback(_button, XmNactivateCallback,
		&ViewButton::callback, (XtPointer )this);
  
  _view = view;
  _viewManager = viewManager;
}


void ViewButton::setLabel(const char *string)
{
  XmString xmstr = XmStringCreateSimple((char *)string);
  XtVaSetValues(_button, XmNlabelString, xmstr, NULL);
  XmStringFree(xmstr);
}
  

void ViewButton::callback(Widget w, 
			  XtPointer clientData, XtPointer callData)
{
  ViewButton *obj = (ViewButton *)clientData;
  if (obj->_viewManager)
    obj->_viewManager->setView(obj->_view);
  else
  {
    TiburonApp *app = (TiburonApp *)theApplication;
    RovMainWindow *mainWindow = app->rovMainWindow();
    mainWindow->setView(obj->_view);
  }
}
