diff -r 000000000000 -r f72a12da539e idlehomescreen/inc/xnnewsticker.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlehomescreen/inc/xnnewsticker.h Thu Dec 17 08:40:49 2009 +0200 @@ -0,0 +1,243 @@ +/* +* Copyright (c) 2002-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 class for CXnNewsticker. +* +*/ + + +#ifndef _XNNEWSTICKER_H +#define _XNNEWSTICKER_H + +// INCLUDES +#include "xncomponent.h" +#include "mxncomponentinterface.h" + +class CGulIcon; + +// CLASS DECLARATION +/** +* Component UI factory interface for creating newsticker text element. +* +* @lib xnnewstickerfactory.dll +* @since Series 60 3.2 +*/ +namespace XnNewstickerInterface +{ +_LIT8(KType, "newsticker"); + +class MXnNewstickerCallbackInterface + { + public: // New functions + + /** + * Called when the title has been shown and is now offscreen. + * @param aTitleIndex The title that has been completely shown. + */ + virtual void TitleScrolled(TInt aTitleIndex) = 0; + + }; + +class MXnNewstickerInterface : public XnComponentInterface::MXnComponentInterface + { + public: // New functions + + static inline const TDesC8& Type() + { + return KType; + } + + /** + * Append new title to the end of the title list. + * @param aTitle The new title to add. + */ + virtual void AppendTitleL(const TDesC& aTitle) = 0; + + /** + * Insert new title to the end of the title list. + * @param aTitle The new title to add. + * @param aIndex The place to add the title. + */ + virtual void InsertTitleL(const TDesC& aTitle, TInt aIndex) = 0; + + /** + * Update title text. + * @param aTitle The new title to add. + * @param aIndex The place to update the title. + */ + virtual void UpdateTitleL(const TDesC& aTitle, TInt aIndex) = 0; + + /** + * Delete the title. + * @param aIndex The title index to delete. + */ + virtual void DeleteTitle(TInt aIndex) = 0; + + /** + * Returns index of the currently selected title. + * @return The index of the current title. + */ + virtual TInt CurrentTitleIndex() = 0; + + /** + * Return the title of the given index. + * @param aIndex The index to return the title. + * @return The title of the given index. + */ + virtual const TDesC& Title(TInt aIndex) = 0; + + /** + * Set the separator image for all titles. + * @param aIcon The separator image. This must be mif icon. + * @return KErrNone if successful, KErrArgument if the icon is not mif. + */ + virtual TInt SetSeparatorImageL(CGulIcon* aIcon) = 0; + + /** + * Delete all titles. + */ + virtual void ClearTitles() = 0; + + /** + * Append the SVG title to be shown. + * @param aByteData The SVG data. + */ + virtual void AppendSvgTitleL(const TDesC8& aByteData) = 0; + + /** + * Insert the SVG title to be shown. + * @param aByteData The SVG data. + */ + virtual void InsertSvgTitleL(const TDesC8& aByteData, TInt aIndex) = 0; + + /** + * Set callback interface. + * @param aCallback The callback interface pointer. + */ + virtual void SetCallbackInterfaceL(MXnNewstickerCallbackInterface* aCallback) = 0; + }; +} + +/** +* @ingroup group_xnnewstickerfactory +* +* Newsticker class implementation. +* +* @lib xnnewstickerfactory.dll +* @since Series 60 3.2 +*/ +class CXnNewsticker : public CXnComponent, public XnNewstickerInterface::MXnNewstickerInterface + { + public: + /** + * 2 phase construction. + */ + static CXnNewsticker* NewL(); + + /** + * Destructor. + */ + virtual ~CXnNewsticker(); + + public: + // Routed from MXnNewstickerInterface. + + /** + * Append new title to the end of the title list. + * @param aTitle The new title to add. + */ + void AppendTitleL(const TDesC& aTitle); + + /** + * Insert new title to the end of the title list. + * @param aTitle The new title to add. + * @param aIndex The place to add the title. + */ + void InsertTitleL(const TDesC& aTitle, TInt aIndex); + + /** + * Update title text. + * @param aTitle The new title to add. + * @param aIndex The place to update the title. + */ + void UpdateTitleL(const TDesC& aTitle, TInt aIndex); + + /** + * Delete the title. + * @param aIndex The title index to delete. + */ + void DeleteTitle(TInt aIndex); + + /** + * Returns index of the currently selected title. + * @return The index of the current title. + */ + TInt CurrentTitleIndex(); + + /** + * Return the title of the given index. + * @param aIndex The index to return the title. + * @return The title of the given index. + */ + const TDesC& Title(TInt aIndex); + + /** + * Set the separator image for all titles. + * @param aIcon The separator image. This must be mif icon. + * @return KErrNone if successful, KErrArgument if the icon is not mif. + */ + TInt SetSeparatorImageL(CGulIcon* aIcon); + + /** + * Delete all titles. + */ + void ClearTitles(); + + /** + * Append the SVG title to be shown. + * @param aByteData The SVG data. + */ + void AppendSvgTitleL(const TDesC8& aByteData); + + /** + * Insert the SVG title to be shown. + * @param aByteData The SVG data. + */ + void InsertSvgTitleL(const TDesC8& aByteData, TInt aIndex); + + /** + * Set callback interface. + * @param aCallback The callback interface pointer. + */ + void SetCallbackInterfaceL( + XnNewstickerInterface::MXnNewstickerCallbackInterface* aCallback); + + /** + * Create a component interface according to the given type. + * @param aType Type of the interface to create + * @return Created interface or NULL if the provided type is not supported. + */ + virtual XnComponentInterface::MXnComponentInterface* MakeInterfaceL( + const TDesC8& aType); + + private: + + CXnNewsticker(); + + void ConstructL(); + }; + + +#endif // _XNNEWSTICKER_H + +// End of File