diff -r 000000000000 -r 2f259fa3e83a uifw/ganes/inc/HgScrollbar.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uifw/ganes/inc/HgScrollbar.h Tue Feb 02 01:00:49 2010 +0200 @@ -0,0 +1,133 @@ +/* +* Copyright (c) 2009 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: +* +*/ + + +#ifndef HGSCROLLBAR_H_ +#define HGSCROLLBAR_H_ + + +#include +#include + +struct TPointerEvent; +class TAknsItemID; +class CWindowGc; +class CFbsBitmap; +class CGulIcon; +class CFont; + +class MHgScrollbarObserver; + +NONSHARABLE_CLASS( CHgScrollbar ) : public CBase + { +public: + static CHgScrollbar* NewL( MHgScrollbarObserver& aObserver ); + + virtual ~CHgScrollbar(); + +public: + + void InitScrollBarL( + TRect aScrollbarRect, + TSize aTotalSize, + TSize aViewSize, + TBool aLandscapeScrolling ); + + void SetViewPosition( TPoint aPosition ); + + TBool HandlePointerEventL( const TPointerEvent& aEvent ); + + void Draw( CWindowGc& aGc ); + + const CGulIcon* ScrollbarBg() const; + + const CGulIcon* ScrollbarHandleBg() const; + + const CGulIcon* ScrollbarHandle() const; + + const CGulIcon* ScrollbarBgSelected() const; + + const CGulIcon* ScrollbarHandleSelected() const; + + const TRect& ScrollbarRect() const; + + const TPoint& HandlePosition() const; + + TBool IsStatic() const; + + TBool IsDragging() const; + + TBool Handler() const; + + void Reset(); + +protected: + CHgScrollbar( MHgScrollbarObserver& aObserver ); + + void ConstructL(); + +private: + + void DrawScrollbar( CWindowGc& aGc ); + + TBool HandleScrollBarPointerEvent( const TPointerEvent& aEvent ); + + void CheckHandlePosition( TBool aReportChange ); + + void InitIconsL( TBool aInitBgIcons ); + + void CreateIconL( CGulIcon*& aIcon, TSize aSize); + + void DrawIconL( CGulIcon& aIcon, + const TAknsItemID& aTop, + const TAknsItemID& aMiddle, + const TAknsItemID& aBottom ); + + void DrawBitmapL( CGulIcon& aIcon, + const TAknsItemID& aItem, + const TRect& aDestRect ); + + void ScaleBitmapL( const TRect& aDestRect, + CFbsBitmap* aDest, + const CFbsBitmap* aSrc); + +private: + MHgScrollbarObserver& iObserver; + + CGulIcon* iScrollbarBg; + CGulIcon* iScrollbarHandleBg; + CGulIcon* iScrollbarHandle; + CGulIcon* iScrollbarBgSelected; + CGulIcon* iScrollbarHandleSelected; + + TRect iScrollbarRect; + TRect iNaviRect; + TPoint iHandlePosition; + TPoint iPrevDrag; + TSize iTotalSize; + TSize iViewSize; + TSize iHandleSize; + TBool iLandscapeScrolling; + TBool iDragging; + TBool iHandler; + TBool iStatic; + + TInt iScrollLength; + TInt iTotalLength; + }; + +#endif /*HGSCROLLBAR_H_*/