williamr@2: /* williamr@2: * Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@2: * under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: * which accompanies this distribution, and is available williamr@2: * at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: #ifndef AKN_ICON_SRV_CLIENT_H williamr@2: #define AKN_ICON_SRV_CLIENT_H williamr@2: williamr@2: #include <e32base.h> williamr@2: #include <AknIconUtils.h> williamr@2: williamr@2: struct TAknIconParams; williamr@2: struct TAknIconInitData; williamr@2: class CAknBitmap; williamr@2: class CAknIconManager; williamr@2: williamr@2: williamr@2: /** williamr@2: * A client-side handle to a session with an icon server which allows handling williamr@2: * icons (bitmaps). williamr@2: * williamr@2: * @since 3.0 williamr@2: */ williamr@2: class RAknIconSrvClient : public RSessionBase williamr@2: { williamr@2: williamr@2: public: // New functions williamr@2: williamr@2: /** williamr@2: * C++ default constructor. williamr@2: */ williamr@2: RAknIconSrvClient(); williamr@2: williamr@2: /** williamr@2: * Connects AknIconSrv session. It is stored in TLS. williamr@2: * Application framework calls this in application startup. williamr@2: * williamr@2: * @since 3.0 williamr@2: * @return Symbian OS standard error code. williamr@2: */ williamr@2: IMPORT_C static TInt Connect(); williamr@2: williamr@2: /** williamr@2: * Disconnects the session. williamr@2: * @since 3.0 williamr@2: */ williamr@2: IMPORT_C static void Disconnect(); williamr@2: williamr@2: /** williamr@2: * Returns the connected server client from TLS. williamr@2: * williamr@2: * @return The connected server client from TLS. williamr@2: * @panic EClientSessionNotConnected @c Connect() has not been called williamr@2: * successfully earlier. williamr@2: */ williamr@2: static RAknIconSrvClient* GetSession(); williamr@2: williamr@2: public: // But not exported. williamr@2: williamr@2: /** williamr@2: * Initializes the given bitmap and mask according to the member data williamr@2: * stored in them and the given pixel size. williamr@2: * williamr@2: * @param[in] aBitmap Bitmap. williamr@2: * @param[in] aMask Mask of the bitmap. williamr@2: * @param[out] aContentDimensions The content dimensions if it is williamr@2: * a SVG icon. williamr@2: * @param aInfo parameters of the icon. williamr@2: */ williamr@2: void InitializeIconL( williamr@2: CAknBitmap& aBitmap, williamr@2: CAknBitmap& aMask, williamr@2: TAknContentDimensions& aContentDimensions, williamr@2: const TAknIconParams& aInfo ) const; williamr@2: williamr@2: /** williamr@2: * Frees the shared bitmap. williamr@2: * williamr@2: * @param aBitmap Bitmap. williamr@2: */ williamr@2: void FreeBitmap( CAknBitmap& aBitmap ) const; williamr@2: williamr@2: /** williamr@2: * Gets content dimensions of the icon. williamr@2: * williamr@2: * @param[in] aBitmap Bitmap. williamr@2: * @param[out] aContentDimensions The content dimensions of an icon. williamr@2: * @return Symbian OS standard error code . williamr@2: */ williamr@2: TInt GetContentDimensions( williamr@2: CAknBitmap& aBitmap, williamr@2: TAknContentDimensions& aContentDimensions ) const; williamr@2: williamr@2: /** williamr@2: * Preserves icon data (e.g. SVG-T DOM tree) in memory. williamr@2: * williamr@2: * @param aBitmap Bitmap. williamr@2: * @return Symbian OS standard error code . williamr@2: */ williamr@2: TInt PreserveIconData( CAknIconManager& aBitmap ) const; williamr@2: williamr@2: /** williamr@2: * Removes icon data (e.g. SVG-T DOM tree) from the memory. williamr@2: * williamr@2: * @param aBitmap Bitmap. williamr@2: */ williamr@2: void DestroyIconData( CAknIconManager& aBitmap ) const; williamr@2: williamr@2: /** williamr@2: * Retrieves initialization data from server side. williamr@2: * williamr@2: * @param[out] aData Initialization data. williamr@2: */ williamr@2: void GetInitData( TAknIconInitData& aData ) const; williamr@2: williamr@2: /** williamr@2: * Test functions (debug only). williamr@2: */ williamr@2: void __SERVER_HEAP_MARK() const; williamr@2: void __SERVER_HEAP_MARKEND() const; williamr@2: void __SERVER_HEAP_FAILNEXT( TInt aCount ) const; williamr@2: void __SERVER_HEAP_FAILNEXT_INCREASING( TInt aCount ) const; williamr@2: void __SERVER_HEAP_RESET() const; williamr@2: void __SERVER_RESET_DYNAMICALLY_CHANGING_ALLOCATIONS() const; williamr@2: TInt __SERVER_HEAP_USED() const; williamr@2: void __SERVER_SET_PREFERRED_ICON_DISPLAY_MODE( williamr@2: TDisplayMode aMode ) const; williamr@2: williamr@2: /** williamr@2: * Connects to server. williamr@2: * williamr@2: * @return Symbian OS standard error code . williamr@2: */ williamr@2: TInt ConnectToServer(); williamr@2: williamr@2: /** williamr@2: * Enable or disable the AknIcon cache. williamr@2: * williamr@2: * @return Symbian OS standard error code . williamr@2: */ williamr@2: TInt EnableCache(TBool aEnable); williamr@2: williamr@2: private: // Data williamr@2: TInt iConnections; williamr@2: }; williamr@2: williamr@2: #endif // AKN_ICON_SRV_CLIENT_H williamr@2: williamr@2: // End of File