//////////////////////////////////////////////////////////////////////////////
// amigaapp.hpp
//
// Jeffry A Worth
// November 10, 1995
//////////////////////////////////////////////////////////////////////////////

#ifndef __AMIGAAPP_HPP__
#define __AMIGAAPP_HPP__

//////////////////////////////////////////////////////////////////////////////
// INCLUDES
#include <stormc:include/proto/intuition.h>
#include <proto/exec.h>
#include <proto/graphics.h>
#include <proto/dos.h>
#include <proto/reqtools.h>

#include <intuition/intuition.h>
#include <libraries/reqtools.h>
#include <exec/types.h>
#include <stdio.h>

#include "aframe:include/node.hpp"

//////////////////////////////////////////////////////////////////////////////
// APPLICATION LIBRARIES GLOBALS
extern struct IntuitionBase *IntuitionBase;
extern struct ReqToolsBase *ReqToolsBase;
extern struct Library *BattClockBase;

//////////////////////////////////////////////////////////////////////////////
// Amiga Foundation Class Application

class AFAmigaApp
{
public:
  AFAmigaApp();				// Default Constructor
  ~AFAmigaApp();			// Default Destructor

// Methods
  virtual BOOL OpenLibraries();		// Open System Libraries
  virtual void CloseLibraries();	// Close System Libraries
  virtual int InitApp();		// Init Applications routines
  virtual int RunApp();			// Waits for events and reacts to them

// Properties
  LONG m_SigBits;			// Application SigBits
  AFNode *m_pwindows;			// Node List of windows
  AFNode *m_pports;			// Node List of ports
};

//////////////////////////////////////////////////////////////////////////////
#endif // __AMIGAAPP_HPP__
