#include <Xm/Xm.h>
#include <Xm/Form.h>
#include <Xm/PushB.h>
#include <Xm/Label.h>
#include <Xm/Scale.h>
#include <Xm/Separator.h>
#include <Inventor/Xt/SoXt.h>
#include <Inventor/sensors/SoTimerSensor.h>

#include <Scatter.h>

class Interface {
public:

  Interface(Scatter *s, SoTimerSensor *sen);

  void   setInitial (float dr, float dm, float pr, float pm, int num);
  Widget makeGUI (Widget parent);

private:
  int initialDR;
  int initialDM;
  int initialPR;
  int initialPM;
  int initialNUM;
};

void radiusDefCB (Widget  scale, XtPointer appData, XtPointer widgetData);
void massDefCB   (Widget  scale, XtPointer appData, XtPointer widgetData);
void radiusParCB (Widget  scale, XtPointer appData, XtPointer widgetData);
void massParCB   (Widget  scale, XtPointer appData, XtPointer widgetData);
void numberCB    (Widget  scale, XtPointer appData, XtPointer widgetData);
void scatterCB   (Widget button, XtPointer appData, XtPointer widgetData);
void pauseCB     (Widget button, XtPointer appData, XtPointer widgetData);
void deleteCB    (Widget button, XtPointer appData, XtPointer widgetData);
void newCB       (Widget button, XtPointer appData, XtPointer widgetData);
void clearCB     (Widget button, XtPointer appData, XtPointer widgetData);
void quitCB      (Widget button, XtPointer appData, XtPointer widgetData);
