diff -r 000000000000 -r 09774dfdd46b internetradio2.0/uicontrolsinc/irmarqueeclet.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/internetradio2.0/uicontrolsinc/irmarqueeclet.h Mon Apr 19 14:01:53 2010 +0300 @@ -0,0 +1,204 @@ +/* +* Copyright (c) 2007-2008 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: Controlet to implement marquee functionality for visuals +* +*/ + + +#ifndef T_TIRMARQUEECLET_H +#define T_TIRMARQUEECLET_H + +#include + +class CAlfControl; +class CAlfViewportLayout; +class CAlfTextVisual; +/** + * Small controlet to implement marquee effects to visuals. + * + * Responsible for managing the supplied viewport layout to achieve a marquee effect. + * Provides events to the control about scroll status changes. + */ +class TIRMarqueeClet : public MAlfEventHandler + { + +public: + + /** + * Supported scroll styles. + */ + enum TIRScrollStyle + { + /** + * Scroll is performed only once. + * When scrolling is completed, the viewport is set to its original position. + * This is the default scroll style if no other is explicitly set. + */ + EIRScrollStyleOnce, + /** + * Scroll is continuous scroll. + */ + EIRScrollStyleLoop + }; + + /** + * Supported scroll directions. + */ + enum TIRScrollDirection + { + /** + * Scrolling is performed to left (western). + * This is the default scroll direction if no other is explicitly set. + */ + EIRScrollDirectionLeft, + /** + * Scrolling is performed to right (arabic). + */ + EIRScrollDirectionRight + }; + +public: + + /** + * Constructor. + */ + TIRMarqueeClet(); + + /** + * Destructor. + */ + ~TIRMarqueeClet(); + + /** + * Sets the required information for this marquee controlet. + * + * @param aViewport Viewport layout to use. + * @param aTextVisual Text visual to use. + */ + void Set( CAlfViewportLayout& aViewport, CAlfTextVisual& aTextVisual ); + + /** + * Sets scroll speed in pixels per second. + * + * The actual scroll time is calculated dynamically by the controlet to achieve + * smooth motion. + * + * @param aScrollSpeed Pixels per second to scroll. + */ + void SetScrollSpeed( TInt aScrollSpeed ); + + /** + * Sets the scroll direction. + * + * @param aScrollDirection Scroll direction to use. + */ + void SetScrollDirection( TIRScrollDirection aScrollDirection ); + + /** + * Sets the scroll style. + * + * @param aScrollStyle Scroll style to use. + */ + void SetScrollStyle( TIRScrollStyle aScrollStyle ); + + /** + * Starts scrolling. + * + * Notifications of scroll start and stop events are sent to the registered control. + * + * @param aDelay Delay in milliseconds after which the scroll is started. + * @param aSnooze Snooze period in milliseconds after scroll is completed. + * The use of the snooze period is dependant on the scroll style. + * When the scroll style is EVRScrollStyleOnce, the snooze + * period indicates the amount of time after scrolling is completed before + * the control is notified of the scroll complete event. + */ + void StartL( TInt aDelay = 0, TInt aSnooze = 0 ); + +// from base class MAlfEventHandler + + TBool OfferEventL( const TAlfEvent& aEvent ); + +private: + + /** + * Supported scroll notification events. + * Notification about these events are sent to the registered control when they occur. + * Pointer to the viewport layout for which the event completed is passed as custom event data. + */ + enum TIRScrollEvent + { + /** + * Notification that is sent when the scroll starts. + * This is sent after the delay period, if any, expires. + */ + EIRCustomEventScrollStarted = 0x00002000, + /** + * Notification that is sent when the scroll has completed. + * This is sent after scrolling is completed and after the snooze + * period has passed. + */ + EIRCustomEventScrollCompleted + }; + + /** + * Viewport layout to manage. + * Not owned. + */ + CAlfViewportLayout* iViewport; + + /** + * Text visual. + * Not owned. + */ + CAlfTextVisual* iTextVisual; + + /** + * Text visual scroll size. + */ + TSize iScrollSize; + + /** + * Scroll speed in pixels per second. + */ + TInt iScrollSpeed; + + /** + * Scroll direction to use. + */ + TIRScrollDirection iScrollDirection; + + /** + * Scroll style to use. + */ + TIRScrollStyle iScrollStyle; + + /** + * The snooze period. + */ + TInt iSnoozeTime; + + /** + * Point of origin for the viewport. + */ + TAlfRealPoint iOrigin; + + /** + * The width of the original text. + */ + TInt iOriginalTextWidth; + + }; + +#endif // T_TVRMARQUEECLET_H