//
//    c 1996 Thomas Wilhelmi
//
//
// Address : Taunusstrasse 14
//           61138 Niederdorfelden
//           Germany
//
//  E-Mail : willi@twi.rhein-main.de
//
//   Phone : +49 (0)6101 531060
//   Fax   : +49 (0)6101 531061
//

//
// Dieses Demo-Programm öfnnet ein kleines Fenster
// mit drei Buttons. Wenn das Close-Gadget gedrückt
// wird, wird es wieder geschloßen.
// Hier wird auch demonstriert wie einfach ein eigener
// Dispatcher mit eigenen Methoden für die einzelnen
// Objekte realisiert werden kann.
//

#include <classes/twimui/application.h>
#include <storm/libbase.h>
#include <iostream.h>
#include "Class.h"

LibBaseC MUIMasterBase(MUIMASTER_NAME,MUIMASTER_VMIN,FALSE);

void main()
	{
	if (LibBaseC::areAllOpen())
		{
		try
			{
			TWiWin Win();
			MUIApplication App(
				MUIA_Application_Title,       "TWiDVI",
				MUIA_Application_Version,     "$VER: TWiDVI 1.0 (12.01.96)",
				MUIA_Application_Copyright,   "c1996, Thomas Wilhelmi",
				MUIA_Application_Author,      "Thomas Wilhelmi",
				MUIA_Application_Description, "Little GUI for DVIPrint",
				MUIA_Application_Base,        "TWIDVI",
				MUIA_Application_SingleTask,  TRUE,
				SubWindow,                    (Object *)Win,
				TAG_DONE);
			Win.Notify(MUIA_Window_CloseRequest, TRUE, App, 2, MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit);
			App.Notify(MUIA_Application_DoubleStart, TRUE, App, 2, MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit);
			Win.Open(TRUE);
			App.Loop();
			Win.Open(FALSE);
			}
		catch (MUIT(m))
			{
			cout << "MUIErrRequest r(Mui_throw): " << m.typ() << endl;
			}
		catch (TWiMemX(x))
			{
			cout << "TWiMemX size: " << x.size() << endl;
			}
		catch (...)
			{
			cout << "unbekannte Exception" << endl;
			}
		}
	  else
		cout << "Problem mit Library" << endl;
	};
