diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/mw/aknscbut.h --- a/epoc32/include/mw/aknscbut.h Tue Nov 24 13:55:44 2009 +0000 +++ b/epoc32/include/mw/aknscbut.h Tue Mar 16 16:12:26 2010 +0000 @@ -1,1 +1,159 @@ -aknscbut.h +/* +* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* 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 +* which accompanies this distribution, and is available +* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: ?Description +* +*/ + + + + +#if !defined(__AKNSCBUT_H__) +#define __AKNSCBUT_H__ + +// INCLUDES +#include + +// FORWARD DECLARATIONS + +class CAknScrollIndicator; + +/** +* Implements a scroll buttons of a scroll bar. +* +* @since Series 60 0.9 +*/ +NONSHARABLE_CLASS(CAknScrollButton) : public CAknControl + { +public: + /** + * Indicates a Scroll button's type + */ + enum TType + { + /** Scroll button to move the display to the left. */ + ENudgeLeft, + /** Scroll button to move the display up. */ + ENudgeUp, + /** Scroll button to move the display to the right. */ + ENudgeRight, + /** Scroll button to move the display down. */ + ENudgeDown, + /** Scroll button to move the display page to the left. */ + EPageLeft, + /** Scroll button to move the display page up. */ + EPageUp, + /** Scroll button to move the display page to the right.*/ + EPageRight, + /** Scroll button to move the display page down. */ + EPageDown, + /** Scroll button to move the display to the home position. */ + EHome, + /** Scroll button to move the display to the top. */ + ETop, + /** Scroll button to move the display to the end position. */ + EEnd, + /** Scroll button to move the display to the bottom. */ + EBottom + }; + +public: + /** + * Indicates a scroll bar's type. + */ + enum TTypeOfScrollBar + { + /** Normal scroll bar */ + ENormal =0x00, + /** Arrow headed scroll bar */ + EArrowHead =0x01 + }; + +public: // class specific functions + + /** + * Two-phased constructor. + * @param aType scroll button's type. + * @return A fully constructed @c CAknScrollButton object. + */ + IMPORT_C static CAknScrollButton* NewL(TType aType); + + /** + * Destructor. + */ + IMPORT_C ~CAknScrollButton(); + + /** + * Gets a scroll button's type. + * @return The scroll button's type. + */ + IMPORT_C TType Type() const; + + /** + * Creates a window only for arrows. + * Sets the container window to be this class. + * @param aParent The control to be the parent of this control. + */ + IMPORT_C void CreateWindowOnlyForArrowsL(const CCoeControl* aParent); + + /** + * Determines whether a scroll button is owned by normal scroll bar. + * @return @c ETrue if a scroll button is owned by the normal scroll bar, + * @c EFalse if not + */ + IMPORT_C TBool IsNormalScrollBarUsingButton() const; + + /** + * Sets the type of scroll bar which owns the button. + * @param aTypeOfScrollBar The type of the scroll bar. + */ + IMPORT_C void SetTypeOfScrollBarUsingButton(TTypeOfScrollBar aTypeOfScrollBar); + + /** + * Sets the new focus position in the control and the span length. + * @param aFocusPosition The new focus position. + * @param aScrollSpan The new span length. + */ + IMPORT_C void SetPosition(const TInt aFocusPosition, const TInt aScrollSpan); + + /** + * Two-phased constructor. + * @param aType scroll button's type. + * @param aTypeOfScrollBar scroll bar type, this information is needed at construction + * time when creating button for double span scroll bar (ie. the parameter is ENormal) + * @return A fully constructed @c CAknScrollButton object. + */ + IMPORT_C static CAknScrollButton* NewL(TType aType, TTypeOfScrollBar aTypeOfScrollBar); + + void SetContainerWindowL( const CCoeControl& aControl ); + TInt CountComponentControls() const; + CCoeControl* ComponentControl( TInt aIndex ) const; + +private: // class specific functions + CAknScrollButton(TType aType); + void ConstructL(); + void SizeChanged(); + void DrawIndicator() const; + void ConstructL(TTypeOfScrollBar aTypeOfScrollBar); +private: // from CCoeControl + virtual void Draw(const TRect& aRect) const; +private: + friend class CAknScrollBar; + TType iType; + TInt iFlag; + CAknScrollIndicator* iScrollIndicator; + TRect iOldRect; + }; + + +#endif