#ifndef _ERSGUI_H
#define _ERSGUI_H
static char ErsGui_h_id[] = "$Header: /usr/tiburon/unix/gui/tmacs/RCS/ErsGui.h,v 1.4 1997/05/30 15:52:10 oreilly Exp $";

/*
$Log: ErsGui.h,v $
Revision 1.4  1997/05/30 15:52:10  oreilly
*** empty log message ***

 * Revision 1.3  97/03/20  12:33:55  12:33:55  oreilly (Thomas C. O'Reilly)
 * *** empty log message ***
 * 
 * Revision 1.2  96/10/28  09:13:40  09:13:40  oreilly (Thomas C. O'Reilly)
 * *** empty log message ***
 * 
*/

#include <X11/IntrinsicP.h>
#include <X11/Intrinsic.h>
#include <X11/StringDefs.h>
#include <X11/CoreP.h>
#include "DmGuiObject.h"
#include "LabeledText.h"
#include "AlarmedText.h"
#include "DynamicLabel.h"
#include "ToolsledInterface.h"
#include "ErsMode.h"
#include "AlarmedText.h"

/* ERS subsystem display */
class ErsGui : public DmGuiObject
{
  public:
  
  ErsGui(const char *name, Widget parent, int period);

  ~ErsGui(); 
  
  virtual const char *className()
  {
    return "ErsGui";
  }
  
  virtual void updateGui(DM_Item handle = 0);
  
  static const char *const latchDisarmedMnem;
  static const char *const latchArmedMnem;  
  static const char *const latchArmedNoPwrMnem;  
  static const char *const latchRunningMnem;  
  static const char *const latchedMnem;
  static const char *const unlatchedMnem;
  static const char *const connectedMnem;
  static const char *const unconnectedMnem;

  virtual void updateFromPeer(DmGuiObject *peer, void *clientData);
  
  protected:

  ErsMode *_mode;
  ToolsledInterface *_toolsledInterface;
  DynamicLabel *_depth;
  
  Widget _batCurr;
  Widget _readVoltTime;
  Widget _quadSerialPsuStatus;
  AlarmedNat16Text *_volts;
  AlarmedFlt32Text *_life;
  
  Pixel _operatingModeColor;
  Pixel _emergencyModeColor;
  Pixel _powerOffColor;
  
  DmFlt64Object *_dmDepth;
  DmNat16Object *_dmBatCurr;
  DmEmptyObject *_dmReadVoltCmd;
  DmNat16Object *_dmPsuStatus;

  void readVoltCmd();
  
  private:
  static void voltButtonCallback(Widget w, XtPointer clientData,
				 XtPointer callData);

  static void thresholdButtonCallback(Widget w, XtPointer clientData,
				      XtPointer callData);
  
};


#endif
