static char AlarmSetup_id[] = "$Header: AlarmSetup.cc,v 1.2 97/08/12 14:15:57 oreilly Exp $";

/*
$Log:	AlarmSetup.cc,v $
Revision 1.2  97/08/12  14:15:57  14:15:57  oreilly (Thomas C. O'Reilly)
Use tiburon icon

Revision 1.1  96/07/22  10:41:33  10:41:33  oreilly (Thomas C. O'Reilly)
First external release

*/
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <Xm/Label.h>
#include <Xm/ToggleB.h>
#include <Xm/PushB.h>
#include <Xm/PanedW.h>
#include <Xm/Form.h>
#include <Xm/List.h>
#include <Xm/SelectioB.h>
#include <Xm/Separator.h>
#include <Xm/RowColumn.h>
#include <Vk/VkErrorDialog.h>
#include <Vk/VkInfoDialog.h>
#include "TiburonApp.h"
#include "AlarmSetup.h"

#define dprintf if (debug) fprintf

#define AlarmSetupWindowName "alarmSetup"

AlarmSetupWindow *AlarmSetupWindow::_instance = 0;


AlarmSetupWindow::AlarmSetupWindow()
   : VkSimpleWindow(AlarmSetupWindowName)
{

    
  Widget mgr = 
    XtVaCreateWidget("mgr", xmRowColumnWidgetClass, mainWindowWidget(),
		     XmNorientation, XmVERTICAL, NULL);

  alarmEditor = new AlarmEditor("alarmEditor", mgr); 

  XtManageChild(alarmEditor->baseWidget());

  Widget separator = 
    XtVaCreateManagedWidget("separator", xmSeparatorWidgetClass, 
			    mgr, NULL);

  Widget mgr2 = XtVaCreateWidget("mgr2", xmFormWidgetClass, mgr,
				 XmNfractionBase, 5,
				 NULL, 0);

  _ok = XtVaCreateManagedWidget("ok", xmPushButtonWidgetClass,
				mgr2, 
				XmNshowAsDefault, True,
				XmNbottomAttachment, XmATTACH_FORM,
				XmNleftAttachment, XmATTACH_POSITION,
				XmNleftPosition, 1,
				XmNrightAttachment, XmATTACH_POSITION,
				XmNrightPosition, 2,
				NULL);

  _cancel = XtVaCreateManagedWidget("cancel", xmPushButtonWidgetClass, mgr2, 
				    XmNbottomAttachment, XmATTACH_FORM,
				    XmNleftAttachment, XmATTACH_POSITION,
				    XmNleftPosition, 3,
				    XmNrightAttachment, XmATTACH_POSITION,
				    XmNrightPosition, 4,
				    XmNshowAsDefault, True,
				    NULL);

  setOkCallback(&AlarmSetupWindow::okCallback, this);
  setCancelCallback(&AlarmSetupWindow::cancelCallback, this);

  XtManageChild(mgr2);
  XtManageChild(mgr);

  addView(mgr);

  ((TiburonApp *)theApplication)->setIconPixmap(_baseWidget);
}


AlarmSetupWindow::~AlarmSetupWindow()
{
  delete _instance;
}


AlarmSetupWindow *AlarmSetupWindow::instance()
{
  if (!_instance) {
    // Instance doesn't yet exist; create it
    _instance = new AlarmSetupWindow();
  }

  return _instance;
}


void AlarmSetupWindow::handleWmDeleteMessage()
{
  hide();
}


void AlarmSetupWindow::okCallback(Widget w, XtPointer clientData,
				  XtPointer callData)
{
  Boolean debug = False;
  dprintf(stderr, "AlarmSetup::okCallback()\n");
  
  AlarmSetupWindow *obj = (AlarmSetupWindow *)clientData;
  obj->alarmEditor->updateAlarmItem();
  dprintf(stderr, "AlarmSetup::okCallback() - done\n");
  return;
}


void AlarmSetupWindow::cancelCallback(Widget w, XtPointer clientData,
				      XtPointer callData)
{
  Boolean debug = False;
  dprintf(stderr, "AlarmSetup::cancelCallback()\n");
  
  AlarmSetupWindow *obj = (AlarmSetupWindow *)clientData;
  
  // Hide window
  obj->hide();

  return;
}


void AlarmSetupWindow::setOkCallback(XtCallbackProc callback, 
				     XtPointer clientData)
{
  XtAddCallback(_ok, XmNactivateCallback, callback, clientData);
}

  
void AlarmSetupWindow::setCancelCallback(XtCallbackProc callback, 
					 XtPointer clientData)
{
  XtAddCallback(_cancel, XmNactivateCallback, callback, clientData);
}
