/************************************************************************/
/* Copyright 1998 MBARI							*/
/************************************************************************/
#ifndef _HYDRAULICMOTOR_H
#define _HYDRAULICMOTOR_H

#include <Vk/VkRadioBox.h> 
#include "DmGuiObject.h"
#include "PowerSwitchGui.h"
#include "vbSystem.h"

/*
CLASS 
HydraulicMotor

DESCRIPTION
Control for hydraulic motor

AUTHOR
Tom O'Reilly
*/
class HydraulicMotor : public DmGuiObject
{
  public:

  HydraulicMotor(const char *name, Widget parent);
  ~HydraulicMotor();
  
  virtual const char *className()
  {
    return "HydraulicMotor";
  }
  
  virtual void updateGui(DM_Item handle = NULL);
  
  protected:
  
  MotorSwitchGui *_power;
  VkRadioBox *_speed;
  DmEnumObject *_dmSpeed;
  Boolean _updatingGui;

  void powerCallback(VkCallbackObject *obj,
		     void *clientData,
		     void *callData);

  void setSpeed(vbMotorRunMode mode);
  
  private:
  
  static void speedCallback(Widget w,
			    XtPointer clientData,
			    XtPointer callData);
};


#endif

