diff -r a3a1ae9acec6 -r da5135c61bad emailuis/uicomponents/src/tuicscrollbarmodel.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailuis/uicomponents/src/tuicscrollbarmodel.cpp Wed Mar 31 21:08:33 2010 +0300 @@ -0,0 +1,169 @@ +/* +* 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: tuicscrollbarmodel.cpp +* +*/ + +#include "tuicscrollbarmodel.h" +#include "emailtrace.h" + +#include +#include + +// --------------------------------------------------------------------------- +// TUiCScrollBarModel::TUiCScrollbarModel +// --------------------------------------------------------------------------- +// +TUiCScrollBarModel::TUiCScrollBarModel() + : iHeight( 0 ), iWindowHeight( 0 ), iWindowPosition( 0 ) + { + FUNC_LOG; + } + +// --------------------------------------------------------------------------- +// TUiCScrollBarModel::SetHeight +// --------------------------------------------------------------------------- +// +void TUiCScrollBarModel::SetHeight( TInt aHeight ) + { + FUNC_LOG; + iHeight = aHeight; + } + +// --------------------------------------------------------------------------- +// TUiCScrollBarModel::Height +// --------------------------------------------------------------------------- +// +TInt TUiCScrollBarModel::Height() const + { + FUNC_LOG; + return iHeight; + } + +// --------------------------------------------------------------------------- +// TUiCScrollBarModel::SetWindowHeight +// --------------------------------------------------------------------------- +// +void TUiCScrollBarModel::SetWindowHeight( TInt aHeight ) + { + FUNC_LOG; + iWindowHeight = aHeight; + } + +// --------------------------------------------------------------------------- +// TUiCScrollBarModel::WindowHeight +// --------------------------------------------------------------------------- +// +TInt TUiCScrollBarModel::WindowHeight() const + { + FUNC_LOG; + return iWindowHeight; + } + +// --------------------------------------------------------------------------- +// TUiCScrollBarModel::SetWindowPosition +// --------------------------------------------------------------------------- +// +void TUiCScrollBarModel::SetWindowPosition( TInt aPosition ) + { + FUNC_LOG; + iWindowPosition = aPosition; + } + +// --------------------------------------------------------------------------- +// TUiCScrollBarModel::WindowPosition +// --------------------------------------------------------------------------- +// +TInt TUiCScrollBarModel::WindowPosition() const + { + FUNC_LOG; + return iWindowPosition; + } + +// --------------------------------------------------------------------------- +// TUiCScrollBarModel::ThumbHeight +// --------------------------------------------------------------------------- +// +TInt TUiCScrollBarModel::ThumbHeight() const + { + FUNC_LOG; + TInt thumbHeight( 0 ); + if ( iHeight > 0 ) + { + thumbHeight = Min( + Max( CalculatedThumbHeight(), MinimumThumbHeight() ), + iWindowHeight ); + } + return thumbHeight; + } + +// --------------------------------------------------------------------------- +// TUiCScrollBarModel::ThumbPosition +// --------------------------------------------------------------------------- +// +TInt TUiCScrollBarModel::ThumbPosition() const + { + FUNC_LOG; + TInt thumbPosition( 0 ); + if ( iHeight > 0 ) + { + thumbPosition = iWindowHeight * iWindowPosition / iHeight; + if ( iWindowHeight > 0 ) + { + thumbPosition -= (ThumbHeight() - CalculatedThumbHeight()) + * thumbPosition / iWindowHeight; + } + } + return thumbPosition; + } + +// --------------------------------------------------------------------------- +// TUiCScrollBarModel::ScrollBarNeeded +// --------------------------------------------------------------------------- +// +TBool TUiCScrollBarModel::ScrollBarNeeded() const + { + FUNC_LOG; + return iWindowHeight < iHeight; + } + +// --------------------------------------------------------------------------- +// TUiCScrollBarModel::MinimumThumbHeight +// --------------------------------------------------------------------------- +// +TInt TUiCScrollBarModel::MinimumThumbHeight() const + { + FUNC_LOG; + TAknLayoutRect layoutRect; + TAknWindowComponentLayout layout = AknLayoutScalable_Avkon::aid_size_min_handle(); + layoutRect.LayoutRect( TRect(), layout.LayoutLine() ); + return layoutRect.Rect().Height(); + } + +// --------------------------------------------------------------------------- +// TUiCScrollBarModel::CalculatedThumbHeight +// --------------------------------------------------------------------------- +// +TInt TUiCScrollBarModel::CalculatedThumbHeight() const + { + FUNC_LOG; + TInt thumbHeight( 0 ); + if ( iHeight > 0 ) + { + thumbHeight = iWindowHeight * iWindowHeight / iHeight; + } + return thumbHeight; + } + +// end of file