diff -r 4526337fb576 -r 3eca7e70b1b8 mulwidgets/alfscrollbarwidget/inc/alfscrollbardefaultbaseelement.h --- a/mulwidgets/alfscrollbarwidget/inc/alfscrollbardefaultbaseelement.h Tue Feb 02 00:28:09 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,451 +0,0 @@ -/* -* Copyright (c) 2007 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: Header file for presentation elements. - * -*/ - - -#ifndef ALF_SCROLLBAR_DEFAULT_BASEELEMENT_H -#define ALF_SCROLLBAR_DEFAULT_BASEELEMENT_H - -//INCLUDES -#include "alf/alfelement.h" -#include -#include - -#include -#include -#include "ialfscrollbarbaseelementinternal.h" - -#include "alfscrollbarmodel.h" -#include - -using namespace osncore; - -namespace Alf - { - -enum TOperation - { - ENop, // Nothing is going on. - EMoveItem // Item is begin moved. - }; -// Forward declarations -class IAlfWidgetEventHandler; -class CAlfWidgetControl; -class AlfScrollBarLongTapTimer; - -/** - * Default Base Element of the Scrollbar. - */ -class AlfScrollBarDefaultBaseElement : - public IAlfScrollBarDefaultBaseElement, - public AlfElement, - public IAlfWidgetEventHandler, - public IAlfScrollBarBaseElementInternal - { -public: - - /** - * Constructor - * @param aControl Widget control. - * @param aName Name of the item element. - * @param aCustomData . - * @param mNode . - * @since S60 ?S60_version - */ - AlfScrollBarDefaultBaseElement ( - CAlfWidgetControl& aControl, - const char* aName, - DuiNode* mNode = NULL, - AlfCustomInitDataBase* aCustomData=NULL); - - /** - * Destructor - */ - virtual ~AlfScrollBarDefaultBaseElement(); - - //-------------------------------------------------------------------------- - // APIs from the IAlfScrollBarDefaultBaseElement for controlling the - // visualization of the scrollbar - //-------------------------------------------------------------------------- - - /** - * Sets the animation time for the thumb movement. - * Controls the movement of the thumb in the context of scroll - * @since S60 ?S60_version - * @param Animation time in milliseconds - */ - void setThumbAnimationTime(int aTime); - - /** - * Gets the Thumb animation time. - * @since S60 ?S60_version - * @return Animation time. - */ - int getThumbAnimationTime() const; - - /** - * Sets the Opacity of thumb. This is relative to widget opacity. - * Default value is 1.0. The value of aOpacity should be between 0.0 to 1.0 - * @since S60 ?S60_version - * @param Opacity of the thumb - */ - void setThumbOpacity(float aOpacity); - - /** - * Gets the Opacity of thumb. - * @since S60 ?S60_version - * @return: Thumb opacity - */ - float getThumbOpacity() const; - - /** - * Sets the Opacity of widget. - * Default value of scrollbar opacity is 1.0. - * - * @param aOpacity Opacity of the scrollbar. The value should be between 0.0 - * to 1.0. - * - * @exception AlfException - */ - void setOpacity(float aOpacity); - - /** - * Gets the Opacity of widget. - * - * @return: Thumb opacity - */ - float getOpacity() const; - - //-------------------------------------------------------------------------- - // APIs from the IAlfScrollBarBaseElement - //-------------------------------------------------------------------------- - - - - //-------------------------------------------------------------------------- - // Overriden Apis from IAlfWidgetEventHandlers - //-------------------------------------------------------------------------- - // - - /** - * Used to identify event handlers that are capable of handling - * a specified key or custom event. - * Pointer event handlers cannot be identified directly, - * since they are dependent on the presentation. - * Therefore, pointer event handlers should be associated with - * a custom event ID that can be used to simulate the actual pointer event. - * @since S60 ?S60_version - * @param aEvent The event. - * @param aControl - * @return ETrue if the event can be processed. - * Otherwise EFalse. - */ - bool accept(CAlfWidgetControl& aControl, const TAlfEvent& aEvent) const; - - /** - * @see IAlfWidgetEventHandler - */ - virtual AlfEventHandlerType eventHandlerType(); - - /** - * @see IAlfWidgetEventHandler - */ - virtual AlfEventHandlerExecutionPhase eventExecutionPhase(); - - /** - * Called when an input event is being offered to this event handler. - * The return value is used to indicate if the event was processed. - * Processed events may not be offered to other event handlers. - * @since S60 ?S60_version - * @param aControl The parent control of this event handler. - * @param aEvent The event. - * @return ETrue if the event was processed. - * Otherwise EFalse. - */ - virtual AlfEventStatus offerEvent( - CAlfWidgetControl& aControl, - const TAlfEvent& aEvent ); - - /** - * Defines the widget states, where the event handler is active. - * By default, if this method is not called, the event handler is expected - * to be active in all states. - * @param aStates A bitmask defining the widget states, where the event - * handler is active. The low 16 bits are reserved for the states - * defined by the framework in . The high 16 bits are - * available for states defined by the client code. - */ - void setActiveStates(unsigned int aStates); - - /** - * Sets AlfWidgetEventHandlerInitData to event handler. - * @param aData A data structure which contains for example id of the event - * handler. - */ - virtual void setEventHandlerData( - const AlfWidgetEventHandlerInitData& /*aData*/ ) - { - - } - - /** - * Returns AlfWidgetEventHandlerInitData. - * @return A pointer to AlfWidgetEventHandlerInitData structure - * which contains for example id of the event handler. - */ - virtual AlfWidgetEventHandlerInitData* eventHandlerData() - { - return NULL; - } - - /** - * Friend class for timer functions. - * - */ - friend class AlfScrollBarLongTapTimer; - - //-------------------------------------------------------------------------- - //Overriden Apis from IAlfScrollBarBaseElementInternal - //-------------------------------------------------------------------------- - // - - /** - * Notified when the base layout of scrollbar changes . - * Relayouts all the visuals with respect to the new size. - */ - void baseLayoutSizeChanged(); - - /** - * Send the corresponding Custom events to the scrollbar eventhandlers - * according to the visual clicked. - */ - bool processPointerEvent(TAlfEvent * aPntrEvent); - - /** - * Creates the Visualization of scrollbar - * - */ - void createVisualization(); - - /** - * Updates the Visualization of scrollbar - * - */ - void updateVisualization(); - - /** - * Destroy the Visualization of scrollbar - * - */ - void destroyVisualization(); - - /** - * Returns pointer to AlfScrollBarModel - * - */ - void initializeScrollModel(); - - /** - * handles longTap event - */ - AlfEventStatus handleLongTapEvent(); - - // --------------------------------------------------------------------------- - // From class IAlfInterfaceBase. - // - // --------------------------------------------------------------------------- - // - /** - * Getter for interfaces provided by the widget. - * @since S60 ?S60_version - * @param aType A descriptor to identify the type of the queried interface. - * @return The queried interface, or NULL if the interface is not - * supported or available. - */ - virtual IAlfInterfaceBase* makeInterface(const IfId& aType); - - - //-------------------------------------------------------------------------- - // Internal member functions AlfScrollBarDefaultBaseElement - //-------------------------------------------------------------------------- - // - - /** - * handles the pointerDown event - */ - bool handlePointerDownEvent(TAlfEvent * aPntrEvent); - - /** - * Sends pageup or pagedown event according to hit point on track - */ - AlfEventStatus trackVisualHit(CAlfVisual * aHitVisual); - - /** - * handles the pointerUp event - */ - void handlePointerUpEvent(); - - /** - * Initializes the scrollbar layouts with LCT layout data - */ - void initializeLayout(); - - /** - * Initializes the scrollbar Tracklayout with LCT layout data - */ - void initializeTrackLayout(); - - /** - * Initializes the scrollbar Thumblayout with LCT layout data - */ - void initializeThumbLayout(); - - /** - * Sets position and Size on the Visual/layout - * @param aVisual Visual/Layout on which position and size is being set - * @param aXVal Position X value - * @param aYVal Position Y value - * @param aWidth Width - * @param aHeight Height - */ - void setPositionAndSize(CAlfVisual * aVisual, - int aXVal, int aYVal, - int aWidth, int aHeight); - - /** - * Set skin images on scrollbar track - */ - void setTrackImage(); - - /** - * Set skin images on scrollbar thumb - */ - void setThumbImage(); - - /** - * Changes the scrollbar track image, based on the flag state - * @param aPressed false for normal graphics, - * true for pressed graphics - */ - void changeTrackImage(bool aPressed = false); - - /** - * Changes the scrollbar thumb image, based on the flag state - * @param aPressed false for normal graphics, - * true for pressed graphics - */ - void changeThumbImage(bool aPressed = false); - - /** - * Calculates the StepSize and thumbLength - */ - void calculateStepSizeAndThumbLength(); - - /** - * Calculates minimum and maximum thumbLength - */ - void setThumbMinMaxLength(); - - -private: - - /** - * handles the scroll bar click event - * - */ - AlfEventStatus handleScrollBarClickedEvent( - const TAlfEvent& aEvent ); - /** - * Creates the visual template hirarchy of scrollbar. - */ - void createDefaultBaseElement(); - - /** - * Sets LctLayoutData on the Visual/layout - * @param aRect Parent rect of the visual - * @param aWindowLineLayout TAknWindowLineLayout handle which has the LCT values - * to be set - * @param aVisual Visual/Layout on which LctLayoutData is being set - */ - void setLCTData(const TRect& aRect , - TAknWindowLineLayout& aWindowLineLayout,CAlfVisual * aVisual); - - /** - * Initialize drag flags and store drag start point - */ - bool initializeThumbDragData( const TPoint& aPointerPos ); - - /** - * Stop drag - */ - bool stopDrag(CAlfVisual* aHitVisual, TInt aAnimTime); - - /** - * changes the graphics of scrollbar to pressed/normal - */ - void changeGraphics(); - - /** - * checks whether it is scrollbar trackVisual or not - */ - bool isScrollbarTrackVisual(CAlfVisual *aVisual); - - /** - * changes the graphics of scrollbar to pressed/normal - */ - bool isScrollbarThumbVisual(CAlfVisual *aVisual); - - /* - * Instance of ScrollBarLongTapTimer. - */ - auto_ptr mLongTapTimer; - - /* - * holds the value if minimum thumb size. - */ - TAlfMetric mThumbMinSize; - - /* - * holds that value of minimum thumb size specified by the user. - */ - TAlfMetric mUserThumbMinSize; - - /* - * Flag set to true if minimum thumbsize is set. - */ - bool mIsMinSizeFlagSet; - - /* - * Flag set to true if longTapObserver is set. - */ - bool mIsLongTapObserverSet; - - /* - * pointer to scrollbarThumbLCTData. - */ - struct ScrollbarThumbLCTData *mLCTData; - - /* - * pointer to ScrollBarDefaultLCTBaseElementData. - */ - struct ScrollBarBaseElementData *mData; - - }; // end of class AlfScrollBarDefaultBaseElement - - } // end of namespace Alf - -#endif //ALF_SCROLLBAR_DEFAULT_BASEELEMENT_H -//End Of File