// This may look like C code, but it is really -*- C++ -*-

#include <xt++/Intrinsic.h>

#include <xt++/Shell.h>
#include <xt++/Xaw/Label.h>
#include <xt++/Xaw/Command.h>
#include <xt++/Xaw/Form.h>
#include <xt++/Xaw/Dialog.h>
#include <xt++/Xaw/Clock.h>

#include <xt++/Xaw/Layout.h>

#include <X11/StringDefs.h>
#include <libc.h>
#include <stream.h>

#include "ObjectEditor.h"

void QuitCB(Core* w , XtPointer, XtPointer)
{
   w->GetAppContext()->ExitLoop();
}

void AddIOObjectCB(Core*  , XtPointer w, XtPointer)
{
}

main(unsigned int argc, char** argv)
{
   ApplicationContext appContext;

   Display *dpy =  appContext.OpenDisplay(NULL, argv[0], "Eureka",
                        NULL,0,
                        &argc, argv);

   ApplicationShellWidget aw( argv[0], "Eureka", dpy);

//   FormWidget    form("form", aw);
   LayoutWidget    form("form", aw);
   form.Manage();

//   FormWidget  controls("controls",form);

//   CommandWidget quit("quit", controls);
   CommandWidget quit("quit", form);
   quit.AddCallback(XtNcallback, QuitCB, (XtPointer)NULL);
   quit.Manage();

//   CommandWidget add("add", controls);
//   CommandWidget addio("addio", form);
//   addio.Manage();

   CommandWidget addconstant("addconstant", form);
   addconstant.Manage();

//   void* d1;
//   void* d2;

   CommandWidget addobject("addobject", form);
   addobject.Manage();

//   addio.AddCallback(XtNcallback, AddIOObjectCB, (XtPointer)&work);
//   addconstant.AddCallback(XtNcallback, AddConstantCB, (XtPointer)&work);

   aw.Realize();

   appContext.MainLoop();

}
