diff -r e52958d06c29 -r 5fd161fa28b6 svgtviewer/SvgtViewerPlugin/ScreenSaverPluginInc/Svgtplugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svgtviewer/SvgtViewerPlugin/ScreenSaverPluginInc/Svgtplugin.h Thu Sep 09 11:17:40 2010 +0300 @@ -0,0 +1,227 @@ +/* +* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: SVGT Plugin Implementation header file + * +*/ + + +#ifndef SVGTPLUGIN_H +#define SVGTPLUGIN_H + +#include +#include +#include +#include +#include + + +/** +* Note: Need to ensure that EPOC is defined before including these headers... +*/ +#if defined(__SYMBIAN32__) && !defined(EPOC) + #define EPOC +#endif + +#include +#include + +//This is to include ECom Style Plugin Specific headers +#include + +//Implementation id Svgt Ecom Plugin +const TInt KSvgtPluginImplementationValue = 0x102071E6; + +class CSvgScreenSaver; +class CSvgtPlugin; + +/** +* This function initializes the NPPluginFuncs with the +* SVG plugin Netscape interface implementation functions +*/ +IMPORT_C NPError InitializeFuncs(NPPluginFuncs* aPpf); + +/** +* This class is specific to ECom Style Plugin. +* This is used for passing plugin specific initialization information to +* and from Screensaver Animation Plugin. +*/ +class CSvgtPluginEcomMain : public CEcomBrowserPluginInterface + { + public: + /** + * Two-phased constructor. + * @param aInitParam Has Pointer to NPNImplementationFuncs and + * Pointer to PluginFuncs + * @since 3.1 + */ + static CSvgtPluginEcomMain* NewL( TAny* aInitParam ); + + /** + * Destructor. + * @since 3.1 + */ + virtual ~CSvgtPluginEcomMain(); + + /** + * Returns the iNpf. + * @since 3.1 + */ + NPNetscapeFuncs* Funcs() const {return iNpf;} + + private: + /** + * Constructor. + * @since 3.1 + */ + CSvgtPluginEcomMain( NPNetscapeFuncs* aNpf ); + + /** + * Second-phase constructor. + * @since 3.1 + */ + void ConstructL( NPPluginFuncs* aPluginFuncs ); + + private: + // NPN implementation function pointers + NPNetscapeFuncs* iNpf; + }; + +/******************************************************* +Class CSvgtPlugin +********************************************************/ + +class CSvgtPlugin : public CBase + { +public: + /** + * Two-phased constructor. + * @since 3.1 + */ + static CSvgtPlugin* NewL(NPP anInstance); + + /** + * Destructor. + * @since 3.1 + */ + ~CSvgtPlugin(); + + /** + * Second-phase constructor. + * @since 3.1 + */ + void ConstructL(); + + /** + * Called before the Plugin Exits. + * @since 3.1 + */ + void PrepareToExitL(); + + /** + * returns the Control. + * @since 3.1 + */ + CSvgScreenSaver* Control() const; + + /** + * returns the instance. + * @since 3.1 + */ + NPP Instance() const; + + /** + * Called by the SetWindow Netscape API. + * @param aWindow - structure having the parent control + * @param aRect - size of the control + * @since 3.1 + */ + void SetWindowL(const NPWindow* aWindow,const TRect& aRect); + +private: + /** + * Default constructor. + * @since 3.1 + */ + CSvgtPlugin(NPP anInstance); + +private: + // Handle to the plugin Adapter + MPluginAdapter* iPluginAdapter; + + // Pointer to the SVG control + CSvgScreenSaver* iControl; + + // Plugin instance + NPP iInstance; + + // Screensaver mode flag + TBool iScreenSaverMode; + }; + + +/****************************************************************************** +* +* Plugin API methods +* +******************************************************************************/ + +/** +* Create a plugin. +*/ +NPError SvgtPluginNewp(NPMIMEType /*pluginType*/, + NPP aInstance, + uint16 /*mode*/, + CDesCArray* /*argn*/, + CDesCArray* /*argv*/, + NPSavedData* /*saved*/); +/** +* Destroy a plugin. +*/ +NPError SvgtPluginDestroy(NPP aInstance, NPSavedData** /*save*/); + +/** +* This is the parent window of a plugin. +*/ +NPError SvgtPluginSetWindow(NPP aInstance, NPWindow* aWindow); + +/** +* A data stream has been fully saved to a file. +*/ +void SvgtPluginAsFile(NPP aInstance, + NPStream* /*stream*/, + const TDesC& aFname); + + +/** +* Generic hook to retrieve values/attributes from the plugin. +*/ +NPError SvgtPluginGetValue(NPP aInstance, + NPPVariable aVariable, + void* aRetvalue); + +/** +* Generic hook to set values/attributes within the plugin. +*/ +NPError SvgtPluginSetValue(NPP aInstance, + NPNVariable aVariable, + void* aRetvalue); + +/** +* Check File Validity +*/ +void SvgtPluginCheckFileL( void* aRetvalue ); + + +#endif // SVGTPLUGIN_H +// End of File