epoc32/include/mw/aknscbut.h
branchSymbian2
changeset 2 2fe1408b6811
parent 1 666f914201fb
child 4 837f303aceeb
--- 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 <AknControl.h>
+
+// 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