#ifndef __CWCBrowserControlFactory_H__
#define __CWCBrowserControlFactory_H__

#include <coecntrl.h>
#include <brctldefs.h>

class CBrCtlInterface;
class MBrCtlSoftkeysObserver;
class MBrCtlLinkResolver;
class MBrCtlSpecialLoadObserver;
class MBrCtlLayoutObserver;
class MBrCtlDialogsProvider;
class MBrCtlWindowObserver;
class MBrCtlDownloadObserver;
class MBrCtlLoadEventObserver;

class CWCBrowserControlFactory : public CBase
    {
    public: // Construction and destruction
        static CWCBrowserControlFactory* NewL();
        ~CWCBrowserControlFactory();
        
    public: // Interface
        CBrCtlInterface* CreateBrowserControlL(
                CCoeControl* aParent, 
                TRect aRect,
                TUint aBrCtlCapabilities, 
                TUint aCommandIdBase,
                MBrCtlSoftkeysObserver* aBrCtlSoftkeysObserver,
                MBrCtlLinkResolver* aBrCtlLinkResolver,
                MBrCtlSpecialLoadObserver* aBrCtlSpecialLoadObserver,
                MBrCtlLayoutObserver* aBrCtlLayoutObserver,
                MBrCtlDialogsProvider* aBrCtlDialogsProvider,
                MBrCtlWindowObserver* aBrCtlWindowObserver,
                MBrCtlDownloadObserver* aBrCtlDownloadObserver);
                
    private: // Implementation
        CWCBrowserControlFactory();
        void ConstructL();
        
    private: // Data
        RLibrary iBrowserLibrary;
    };

#endif // __CWCBrowserControlFactory_H__

// End of File
