diff -r 000000000000 -r 05e9090e2422 uiresources_pub/scalable_icons_api/inc/AknIconSrvClient.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiresources_pub/scalable_icons_api/inc/AknIconSrvClient.h Thu Dec 17 09:14:12 2009 +0200 @@ -0,0 +1,164 @@ +/* +* Copyright (c) 2002 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: +* +*/ + + + + +#ifndef AKN_ICON_SRV_CLIENT_H +#define AKN_ICON_SRV_CLIENT_H + +#include +#include + +struct TAknIconParams; +struct TAknIconInitData; +class CAknBitmap; +class CAknIconManager; + + +/** + * A client-side handle to a session with an icon server which allows handling + * icons (bitmaps). + * + * @since 3.0 + */ +class RAknIconSrvClient : public RSessionBase + { + + public: // New functions + + /** + * C++ default constructor. + */ + RAknIconSrvClient(); + + /** + * Connects AknIconSrv session. It is stored in TLS. + * Application framework calls this in application startup. + * + * @since 3.0 + * @return Symbian OS standard error code. + */ + IMPORT_C static TInt Connect(); + + /** + * Disconnects the session. + * @since 3.0 + */ + IMPORT_C static void Disconnect(); + + /** + * Returns the connected server client from TLS. + * + * @return The connected server client from TLS. + * @panic EClientSessionNotConnected @c Connect() has not been called + * successfully earlier. + */ + static RAknIconSrvClient* GetSession(); + + public: // But not exported. + + /** + * Initializes the given bitmap and mask according to the member data + * stored in them and the given pixel size. + * + * @param[in] aBitmap Bitmap. + * @param[in] aMask Mask of the bitmap. + * @param[out] aContentDimensions The content dimensions if it is + * a SVG icon. + * @param aInfo parameters of the icon. + */ + void InitializeIconL( + CAknBitmap& aBitmap, + CAknBitmap& aMask, + TAknContentDimensions& aContentDimensions, + const TAknIconParams& aInfo ) const; + + /** + * Frees the shared bitmap. + * + * @param aBitmap Bitmap. + */ + void FreeBitmap( CAknBitmap& aBitmap ) const; + + /** + * Gets content dimensions of the icon. + * + * @param[in] aBitmap Bitmap. + * @param[out] aContentDimensions The content dimensions of an icon. + * @return Symbian OS standard error code . + */ + TInt GetContentDimensions( + CAknBitmap& aBitmap, + TAknContentDimensions& aContentDimensions ) const; + + /** + * Preserves icon data (e.g. SVG-T DOM tree) in memory. + * + * @param aBitmap Bitmap. + * @return Symbian OS standard error code . + */ + TInt PreserveIconData( CAknIconManager& aBitmap ) const; + + /** + * Removes icon data (e.g. SVG-T DOM tree) from the memory. + * + * @param aBitmap Bitmap. + */ + void DestroyIconData( CAknIconManager& aBitmap ) const; + + /** + * Retrieves initialization data from server side. + * + * @param[out] aData Initialization data. + */ + void GetInitData( TAknIconInitData& aData ) const; + + /** + * Test functions (debug only). + */ + void __SERVER_HEAP_MARK() const; + void __SERVER_HEAP_MARKEND() const; + void __SERVER_HEAP_FAILNEXT( TInt aCount ) const; + void __SERVER_HEAP_FAILNEXT_INCREASING( TInt aCount ) const; + void __SERVER_HEAP_RESET() const; + void __SERVER_RESET_DYNAMICALLY_CHANGING_ALLOCATIONS() const; + TInt __SERVER_HEAP_USED() const; + void __SERVER_SET_PREFERRED_ICON_DISPLAY_MODE( + TDisplayMode aMode ) const; + + /** + * Connects to server. + * + * @return Symbian OS standard error code . + */ + TInt ConnectToServer(); + + /** + * Enable or disable the AknIcon cache. + * + * @return Symbian OS standard error code . + */ + TInt EnableCache(TBool aEnable); + + private: // Data + TInt iConnections; + }; + +#endif // AKN_ICON_SRV_CLIENT_H + +// End of File