/************************************************************************/
/* Copyright 1998 MBARI							*/
/************************************************************************/
#ifndef _TETHERTURNS_H
#define _TETHERTURNS_H
#include <Vk/VkApp.h>
#include <Vk/VkSimpleWindow.h>

/* Have to undef OK (which is #define'd by VxWorks stuff), since
VkGenericDialog.h has an enum symbol called "OK" */
#undef OK
#include <Vk/VkGenericDialog.h>

/*
CLASS 
TetherTurns

DESCRIPTION
Display number of turns in tether, and initial ROV-ship offset

AUTHOR
Tom O'Reilly
*/
class TetherTurns : public VkComponent
{
  public:
  
  TetherTurns(const char *name, Widget parent);
  ~TetherTurns();
  
  virtual const char *className()
  {
    return "TetherTurns";
  }

  Widget _twist;
  Widget _initialOffset;
  DmFlt32Object *dmRovShipOffset;
  DmFlt32Object *dmTurnsSum;
  DmBooleanObject *dmResetTurns;

  void readValues();
  void writeValues();
};


/*
CLASS 
TetherTurnsDialog

DESCRIPTION
Dialog which contains TetherTurns object

AUTHOR
Tom O'Reilly
*/
class TetherTurnsDialog : public VkGenericDialog
{
  public:
  
  TetherTurnsDialog(const char *name) 
    : VkGenericDialog(name)
  {
    _info = 0;
  }
  
  /* Callback should be public, so application can specify it when posting
     the dialog. */
  static void applyCallback(Widget parent, 
			    XtPointer clientData,
			    XtPointer callData);

  virtual Widget post(const char *msg = NULL,
		      XtCallbackProc okCB = NULL,
		      XtCallbackProc cancelCB = NULL,
		      XtCallbackProc applyCB = NULL,
		      XtPointer clientData = NULL,
		      const char *helpString = NULL,
		      VkSimpleWindow *parent = NULL);
		      
  protected:

  virtual Widget createDialog(Widget parent);
  TetherTurns *_info;
};



#endif
