#ifndef __MYAPP_DOCUMENT_H__
#define __MYAPP_DOCUMENT_H__


#include <akndoc.h>

// Forward references
class CMyAppAppUi;
class CEikApplication;


/*! 
  @class CMYAPPDocument
  
  @discussion An instance of class CMYAPPDocument is the Document
  part of the AVKON application framework for the MYAPP
  application
  */
class CMyAppDocument : public CAknDocument
{
public:

/*!
  @function NewL
  
  @discussion Construct a CMyAppDocument for the AVKON application
  aApp  using two phase construction, and return a pointer to the created object
  @param aApp application creating this document
  @result a pointer to the created instance of CMyAppDocument
  */
    static CMyAppDocument* NewL(CEikApplication& aApp);

/*!
  @function NewLC
  
  @discussion Construct a CMyAppDocument for the AVKON application aApp 
  using two phase construction, and return a pointer to the created object
  @param aApp application creating this document
  @result a pointer to the created instance of CMyAppDocument
  */
    static CMyAppDocument* NewLC(CEikApplication& aApp);

/*!
  @function ~CMyAppDocument
  
  @discussion Destroy the object and release all memory objects
  */
    ~CMyAppDocument();

public: // from CAknDocument
/*!
  @function CreateAppUiL 
  
  @discussion Create a CMyAppAppUi object and return a pointer to it
  @result a pointer to the created instance of the AppUi created
  */
    CEikAppUi* CreateAppUiL();

private:

/*!
  @function ConstructL
  
  @discussion Perform the second phase construction of a CHelloWorldDocument object
  */
    void ConstructL();

/*!
  @function CMyAppDocument
  
  @discussion Perform the first phase of two phase construction 
  @param aApp application creating this document
  */
    CMyAppDocument(CEikApplication& aApp);

};


#endif // __MYAPP_DOCUMENT_H__