diff -r 000000000000 -r 15bf7259bb7c uiaccelerator_plat/alf_extension_api/inc/alf/alfhintplugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiaccelerator_plat/alf_extension_api/inc/alf/alfhintplugin.h Tue Feb 02 07:56:43 2010 +0200 @@ -0,0 +1,100 @@ +/* +* Copyright (c) 2006 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: interface for creating custom extensions +* +*/ + + +#ifndef _ALFHINTPLUGIN_H_ +#define _ALFHINTPLUGIN_H_ + +#include //RDesReadStream + +/* + * CAlfHintGraphic + * + * This class is part of CAlfHintApi. Its enabes adding of custom markers + * into gc command stream. It has two parts: CAlfHintGraphic and CAlfHintGraphicDrawer + * + * When CAlfHintGraphic is created, wserv creates automatically its counter part + * CAlfHintGraphicDrawer. + * + * Use method CAlfHintGraphic::InsertTag for inserting a custom tags. These are + * played by CAlfHintGraphicDrawer and delivered to CAlfRenderStage + * (ResolveObjectInterface API used). + */ +NONSHARABLE_CLASS(CAlfHintGraphic): public CWsGraphic + { +public: + + /* + * Available tags. + */ + enum TAlfContentTag + { + EAlfOffscreenContentBegin, // for Java + EAlfOffscreenContentEnd, // for Java + EAlfOffscreenContentFlush, // for Java + + EAlfSkinContentBegin, + EAlfSkinContentEnd, + + EAlfSetWindowId, + // EAlfContentScale, etc.. + EAlfBeginSubWindow, + EAlfEndSubWindow, + EAlfContentLastTag + }; + + IMPORT_C static CAlfHintGraphic* NewL(); + + IMPORT_C ~CAlfHintGraphic(); + +public: // protected virtuals from CWsGraphic promoted to public + + IMPORT_C TInt ShareGlobally(); + + IMPORT_C TInt UnShareGlobally(); + + IMPORT_C TInt Share(TSecureId aClientId); + + IMPORT_C TInt UnShare(TSecureId aClientId); + +public: // Alf hinting API + + IMPORT_C TInt InsertTag( TInt aTag ); + IMPORT_C TInt InsertTag( TInt aTag, TRect aBoundingRectangle, TInt aLayerId ); + + IMPORT_C void SetGc( CWindowGc* aGc ); + +private: + + void ConstructL(); + + CAlfHintGraphic(); + + void HandleMessage(const TDesC8& aData); + + void OnReplace(); + + TInt InsertTagL( TInt aTag ); + TInt InsertTagL( TInt aTag, TRect aBoundingRectangle, TInt aLayerId ); + +private: + + CWindowGc* iGc; + + mutable RBuf8 iMsgDataBuf; +}; +#endif // _ALFHINTPLUGIN_H_