#ifndef _COMPASS_H
#define _COMPASS_H
static char Compass_h_id[] = "$Header: /usr/tiburon/unix/gui/tmacs/RCS/Compass.h,v 1.2 1997/12/04 14:56:13 oreilly Exp $";


/*
$Log: Compass.h,v $
Revision 1.2  1997/12/04 14:56:13  oreilly
Utilize floating face

*/

#include <X11/IntrinsicP.h>
#include <X11/Intrinsic.h>
#include <X11/StringDefs.h>
#include <X11/CoreP.h>
#include <Vk/VkPopupMenu.h>
#include "DmGuiObject.h"
#include "CompassFace.h"
#include "State.h"
#include "DynamicLabel.h"
#include "DmInputDetector.h"

#define NoPrevHeading -99999.
#define nHistoryIntervals 120



/* Compass displays heading value, umbilical turns, auto setpoint, etc. */
class Compass : public DmGuiObject
{
  public:
  
  Compass(const char *name, Widget parent, int period,
	  const char *dmItemName,        // Heading item name
	  Boolean inDegrees,
	  int historyInterval            // Seconds
	  );

  ~Compass() 
  {
  }
  
  virtual const char *className()
  {
    return "Compass";
  }
  
  virtual void updateGui(DM_Item handle = 0);

  
  protected:

  CompassFace *_face;
  DynamicLabel *_headingText;
  Flt32 _prevHeading;
  Flt32 _turnsSetpoint;
  
  DmFlt32Object *_dmHeading;
  DmFlt32Object *_dmTurnsSetpoint;
  
  MBool _dmInDegrees;

  Boolean _saveHistory;
  int _historySampleInterval;
  
  time_t _sampleTime;

};


#endif
