--- a/src/screensaverindicatortext.cpp Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,234 +0,0 @@
-/*
-* Copyright (c) 2003 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: CScreensaverIndicatorText implementation.
-*
-*/
-
-
-
-#include <AknLayoutFont.h>
-#include <barsread.h>
-
-#include "screensaverindicatortext.h"
-
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverTextIndicator::Draw
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorText::Draw( CWindowGc& aGc ) const
- {
- if ( iFont )
- {
- aGc.UseFont( iFont );
- }
- aGc.SetPenColor( iTextColor );
-
- // Draw normal bidi text
- TBidiText* bidi= NULL;
- TRAPD( err, bidi = TBidiText::NewL( iText, 1 ) );
- if ( err == KErrNone )
- {
- bidi->WrapText( Width(), *iFont, NULL );
- if ( iTextRect.IsEmpty() )
- {
- bidi->DrawText( aGc, iTopLeft );
- }
- else
- {
- TPoint pt = iTextRect.iTl;
- pt.iY += iTextOffset;
- bidi->DrawText( aGc, pt );
- }
- delete bidi;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverTextIndicator::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorText::ConstructL( TResourceReader &aReader,
- TUint32 aBgColor, TUint aTextColor )
- {
- CScreensaverIndicator::ConstructL( aReader, aBgColor, aTextColor );
-
- iFont = AknLayoutUtils::FontFromId( aReader.ReadInt32() );
- if ( !iFont )
- {
- iFont = LatinPlain12();
- }
-
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverTextIndicator::SetupDrawingParameters
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorText::SetupDrawingParameters( const TPoint& aCorner,
- const TRect& aParentRect )
- {
- iVisible = EFalse;
-
- if ( iText.Length() <= 0 )
- {
- return;
- }
-
- TInt textWidth = ( iFont ? iFont->TextWidthInPixels(iText) + 1
- : iText.Length() * 11 ); // Should be enough for APAC too
-
- iRect = TRect( 0, 0, textWidth, aParentRect.Size().iHeight );
-
- iTopLeft.iX = aCorner.iX;
-
- if ( iAlignment == ESsAlignRight )
- {
- // Change topright to topleft.
- iTopLeft.iX -= iRect.Size().iWidth;
- }
-
- iTopLeft.iY = aCorner.iY + ( aParentRect.Size().iHeight / 2 ) + ( ( aParentRect.Size().iHeight - iFont->HeightInPixels() ) / 2 ) + 2;
-
- // Make sure text rect is not used
- iTextRect.SetRect( 0, 0, 0, 0 );
-
- iVisible = ETrue;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverTextIndicator::ConstructL
-// -----------------------------------------------------------------------------
-//
-TBool CScreensaverIndicatorText::CheckVisibilityConditions() const
- {
- return ( iText.Length() > 0 ? ETrue : EFalse );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverTextIndicator::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorText::Payload( TIndicatorPayload &aPayload ) const
- {
- aPayload.iType = EPayloadTypeText;
- aPayload.iText = iText;
- aPayload.iInteger = -1;
- aPayload.iIsDisplayed = Visible();
- aPayload.iIcon = NULL;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverTextIndicator::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorText::SetPayload( const TIndicatorPayload& aPayload )
- {
- if ( aPayload.iType != EPayloadTypeText )
- {
- return;
- }
-
- if ( aPayload.iText.Length() > iText.MaxLength() )
- {
- return; // Don't panic.
- }
-
- iText = aPayload.iText;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverTextIndicator::SetTextLayout
-// Sets text position and font
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorText::SetTextLayout( TAknLayoutText& aLayout, TInt aX )
- {
- // Font from layout
- iFont = aLayout.Font();
- // Layout MUST have a font
- ASSERT( iFont != NULL );
-
- // Vertical dimension of text rect from layout
- iTextRect = aLayout.TextRect();
-
- // Calculate text offset from rect top
- const CAknLayoutFont* layoutFont =
- CAknLayoutFont::AsCAknLayoutFontOrNull( iFont );
-
- if ( layoutFont )
- {
- iTextOffset = layoutFont->TextPaneTopToBaseline();
- }
- else
- {
- iTextOffset = iFont->AscentInPixels();
- }
-
- // X-pos from parameter
- iTextRect.iTl.iX = aX;
-
- // Initially set indicator rect (this may later be overridden by SetWidth())
- iRect = TRect( 0, 0, PreferredWidth(), aLayout.TextRect().Height() );
-
- // If right-aligned, the X-pos indicates right edge - switch to left
- if ( iAlignment == ESsAlignRight )
- {
- // Change topright to topleft.
- iTextRect.iTl.iX -= Width(); // iRect.Size().iWidth;
- }
-
- // Indicator width = text rect width
- iTextRect.SetWidth( Width() );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverTextIndicator::PreferredWidth
-// Gets preferred indicator width
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverIndicatorText::PreferredWidth()
- {
- TInt textWidth = ( iFont ? iFont->TextWidthInPixels( iText ) + 1
- : iText.Length() * 11 ); // Should be enough for APAC too
- return textWidth;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverTextIndicator::SetWidth
-// Sets indicator width
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorText::SetWidth( TInt iWidth )
- {
- iRect.SetWidth( iWidth );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverTextIndicator::SetXPos
-// Sets indicator X-position (new layout)
-// -----------------------------------------------------------------------------
-//
-void CScreensaverIndicatorText::SetXPos( TInt aX )
- {
- iTopLeft.iX = aX;
- if ( iAlignment == ESsAlignRight )
- {
- // Change topright to topleft.
- iTopLeft.iX -= iRect.Size().iWidth;
- }
- }
-
-// End of file