/************************************************************************/
/* Copyright 1998 MBARI							*/
/************************************************************************/
#ifndef _CTDSETUP_H
#define _CTDSETUP_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 
CtdSetup

DESCRIPTION
Setup parameters for Ctd viewer

AUTHOR
Tom O'Reilly
*/
class CtdSetup : public VkComponent
{
  public:
  
  CtdSetup(const char *name, Widget parent);
  ~CtdSetup();
  
  virtual const char *className()
  {
    return "CtdSetup";
  }

  int startDisplay();

  protected:
  Widget _program;
  Widget _configFile;
  Widget _autoStart;
  XtInputId _inputId;
  pid_t _displayPid;
  
  void displayErrors(int fd);
  
  private:
  static void msgCallback(XtPointer clientData, int *fid, XtInputId *id);
};


/*
CLASS 
CtdSetupDialog

DESCRIPTION
Contains CtdSetup

AUTHOR
Tom O'Reilly
*/
class CtdSetupDialog : public VkGenericDialog
{
  public:
  
  CtdSetupDialog(const char *name) 
    : VkGenericDialog(name)
  {
  }
  
  /* Callback should be public, so application can specify it when posting
     the dialog. */
  static void applyCallback(Widget parent, 
			    XtPointer clientData,
			    XtPointer callData);
  
  protected:

  CtdSetup *_setup;
  virtual Widget createDialog(Widget parent);

};



#endif
