#ifndef _PROTOBENTHICGUI_H
#define _PROTOBENTHICGUI_H
#include "PowerSwitchGui.h"
#include "HydraulicSelect.h"
#include "ValveControl.h"
#include "ValveSwitchMap.h"
#define NValvePackValves 7

#define MAPPED_TOOLSLED_VALVE_DM "TIBURON.TOOLSLED_MAPPED_VALVE"




/* User interface for Benthic Toolsled */
class ProtoBenthicGui : public VkComponent, public ErrorHandler
{
  public:
  
  ProtoBenthicGui(const char *name, Widget parent);
  ~ProtoBenthicGui();
  
  virtual const char *className()
  {
    return "ProtoBenthicGui";
  }

  ValveControl *valves[NValvePackValves];

  protected:
  ValveSwitchMap *_switchMap;
  
  Widget _valvePack;
  Widget _mgr;

  PowerSwitchGui *_packPower;
  PowerSwitchGui *_incandLight;
  PowerSwitchGui *_manipulator;
  PowerSwitchGui *_camera1;
  PowerSwitchGui *_camera2;
  HydraulicSelect *_hydraulicSelect;
  
  // Call when valve pack power is toggled  
  void valvePackCallback(VkCallbackObject *obj,
			 void *clientData,
			 void *callData);

  // Set control sensitivities when valve pack power is on
  void valvePackOn(VkCallbackObject *obj,
		   void *clientData,
		   void *callData);

  // Set control sensitivities when valve pack power is off
  void valvePackOff(VkCallbackObject *obj,
		    void *clientData,
		    void *callData);

  // Call when hydraulic mode is switched
  void hydraulicCallback(VkCallbackObject *obj,
			 void *clientData,
			 void *callData);

};




#endif



