/************************************************************************/
/* Copyright 1998 MBARI							*/
/************************************************************************/
#ifndef _ALARMPAGE_H
#define _ALARMPAGE_H
static char AlarmPage_h_id[] = "$Header: /u/oreilly/rov/tmacs/RCS/AlarmPage.h,v 1.2 1998/12/18 21:07:21 oreilly Exp $";

/*
$Log: AlarmPage.h,v $
Revision 1.2  1998/12/18 21:07:21  oreilly
Added documentation

Revision 1.1  1997/05/30 15:44:30  oreilly
Initial revision

 * Revision 1.1  96/10/28  09:13:15  09:13:15  oreilly (Thomas C. O'Reilly)
 * Initial revision
 * 
*/

#include <malloc.h>
#include <Vk/VkComponent.h>
#include "Alarm.h"
#include "AlarmList.h"
#include "AlarmPopup.h"
#include "AlarmSetup.h"

// Alarm list for each priority, and 1 for NoPriority or "silent"
#define NAlarmLists (NPriorityLevels + 1)

/*
CLASS 
AlarmPage

DESCRIPTION
AlarmPage displays AlarmList for each priority, provides GUI to display
AlarmEditor, AlarmPopup objects

AUTHOR
Tom O'Reilly
*/
class AlarmPage : public VkComponent
{
  public:
  
  AlarmPage(const char *name, Widget parent, AlarmPopup **popups, 
	    AlarmSetupWindow *setupWindow);
  
  ~AlarmPage()
  {
  }
  
  virtual const char *className()
  {
    return "AlarmPage";
  }

  ///////////////////////////////////////////////////////////////////
  // Clear all AlarmList objects
  void clear();
  
  AlarmList *alarmList[NAlarmLists];
  
  protected:
  Widget _clearButton[NAlarmLists];
  Widget _attributeButton[NAlarmLists];
  Widget _popupButton[NAlarmLists];
  AlarmPopup *_listPopup[NAlarmLists];
  
  AlarmSetupWindow *_setupWindow;
  
  private:
  static void popupListCallback(Widget w, XtPointer clientData,
				XtPointer callData);

  static void attributeCallback(Widget w, XtPointer clientData,
				XtPointer callData);
};


#endif
