idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xndatecontrol.cpp
branchRCL_3
changeset 102 ba63c83f4716
parent 93 b01126ce0bec
child 103 966d119a7e67
--- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xndatecontrol.cpp	Wed Sep 15 12:00:00 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,281 +0,0 @@
-/*
-* Copyright (c) 2006-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:  Clock control
-*
-*/
-
-
-// System includes
-#include <e32std.h>
-#include <debug.h>
-#include <AknLayoutFont.h>
-#include <AknUtils.h>
-#include <AknBidiTextUtils.h>
-#include <StringLoader.h>
-#include <bacntf.h>
-
-// User includes
-#include "xndatecontrol.h"
-#include "xncontroladapter.h"
-#include "xnclockadapter.h"
-#include "xnnodepluginif.h"
-#include "xnproperty.h"
-#include "xnuienginepluginif.h"
-#include "c_xnutils.h"
-
-// Constants
-const TInt KMaxDateStringLength = 100;
-const TInt KMaxDayNumberStringLength = 10;
-
-_LIT( KTimeFormat, "%0U %1U" );
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CXnDateControl::CXnDateControl
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CXnDateControl::CXnDateControl( CXnClockAdapter& aAdapter,
-                                TXnDateType aType )
-    : iAdapter( aAdapter ), iDateType( aType )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CXnDateControl::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CXnDateControl::ConstructL()
-    {
-    // Create enviroment notifier
-    iEnvNotifier = CEnvironmentChangeNotifier::NewL( 
-        CActive::EPriorityStandard, TCallBack( HandleCallBackL, this ) );
-    // Start listening notifications
-    iEnvNotifier->Start();
-    }
-
-// -----------------------------------------------------------------------------
-// CXnDateControl::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CXnDateControl* CXnDateControl::NewL( CXnClockAdapter& aAdapter,
-                                      TXnDateType aType )
-    {
-    CXnDateControl* self = new (ELeave) CXnDateControl( aAdapter, aType );
-    CleanupStack::PushL( self );    
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CXnDateControl::~CXnDateControl()
-    {
-    delete iDateText;
-    delete iEnvNotifier;
-    }
-
-// -----------------------------------------------------------------------------
-// CXnDateControl::DrawL
-// -----------------------------------------------------------------------------
-//       
-void CXnDateControl::DrawL( CWindowGc& aGc, CXnNodePluginIf* aNode )
-    {
-    if ( !aNode ||
-         !iDateText ||
-         ( aNode && aNode->Rect().IsEmpty() ) )
-        {
-        return;
-        }
-    
-    const CAknLayoutFont* dateFont( CreateFontL( *aNode ) );
-    if ( !dateFont )
-        {
-        return;
-        }
-    
-    const TRgb& color( CreateColorL( *aNode ) );
-    
-    CGraphicsContext::TTextAlign align = iAdapter.GetTextAlignL( *aNode );
-    
-    const TInt deltaHeight( aNode->Rect().Height() - dateFont->TextPaneHeight() );
-    TInt offset( dateFont->TextPaneTopToBaseline() + deltaHeight / 2 );
-    
-    aGc.SetPenColor( color );
-    aGc.UseFont( dateFont );
-    aGc.DrawText( *iDateText, aNode->Rect(), offset, align );
-    aGc.DiscardFont();
-    }
-
-// -----------------------------------------------------------------------------
-// CXnDateControl::ConstructDateStringL
-// -----------------------------------------------------------------------------
-//
-HBufC* CXnDateControl::ConstructDateStringL()
-    {
-    // Construct date string using date format from resource file
-    CCoeEnv* coeEnv = CCoeEnv::Static();
-
-    if( !coeEnv )
-        {
-        User::Leave( KErrNotReady );
-        }
-
-    TTime time;
-    time.HomeTime();
-
-    HBufC* aiDateString = HBufC::NewLC( KMaxDateStringLength );
-    HBufC* aiDateFormatString = HBufC::NewLC( KMaxDateStringLength );
-    aiDateFormatString->Des().Copy( KTimeFormat() );
-    // TODO: when localisation is ready read format string from resource
-    //HBufC* aiDateFormatString = StringLoader::LoadLC( R_ACTIVEIDLE_TIME_FORMAT,
-    //                                                    coeEnv );
-    HBufC* dateStringBuf = HBufC::NewLC( KMaxDateStringLength );
-    HBufC* dateFormatString = StringLoader::LoadLC( R_QTN_DATE_SHORT_WITH_ZERO,
-                                                    coeEnv );
-    TPtr dateString( dateStringBuf->Des() );    
-    time.FormatL( dateString, *dateFormatString );
-    CleanupStack::PopAndDestroy( dateFormatString );
-
-    //now dateString contains string which is formatted using
-    //R_QTN_DATE_USUAL_WITH_ZERO
-
-    // To arabic
-    AknTextUtils::DisplayTextLanguageSpecificNumberConversion( dateString );
-
-    TPtr aiDateStringPtr = aiDateString->Des();
-    
-    TDayNameAbb wkDayAbb = TDayNameAbb();
-    wkDayAbb.Set(time.DayNoInWeek());
-        
-    //add date to string
-    StringLoader::Format( aiDateStringPtr, *aiDateFormatString, 1,dateString );
-
-    //reuse dateString
-    dateString.Copy( aiDateStringPtr );
-
-    //add weekday to string
-    StringLoader::Format( aiDateStringPtr, dateString, 0, wkDayAbb );
-
-    CleanupStack::PopAndDestroy( dateStringBuf );//dateStringBuf, aiDateFormatString
-    CleanupStack::PopAndDestroy( aiDateFormatString );
-
-    CleanupStack::Pop( aiDateString );
-    return aiDateString;
-    }
-
-// -----------------------------------------------------------------------------
-// CXnDateControl::ConstructDayStringL
-// -----------------------------------------------------------------------------
-//
-HBufC* CXnDateControl::ConstructDayStringL()
-    {
-    TTime time;
-    time.HomeTime();
-
-    HBufC* aiDayString = HBufC::NewLC( KMaxDayNumberStringLength );
-    aiDayString->Des().Num( time.DayNoInMonth() + 1 );
-    // To arabic
-    TPtr dayStringPtr = aiDayString->Des();
-    AknTextUtils::DisplayTextLanguageSpecificNumberConversion( dayStringPtr );
-    CleanupStack::Pop( aiDayString );
-    return aiDayString;
-    }
-
-// -----------------------------------------------------------------------------
-// CXnDateControl::CreateFontL
-// -----------------------------------------------------------------------------
-//
-const CAknLayoutFont* CXnDateControl::CreateFontL( CXnNodePluginIf& aNode )
-    {    
-    if ( !iDateFont )
-        {
-        iAdapter.CreateFontL( aNode, iDateFont );
-        }
-    return CAknLayoutFont::AsCAknLayoutFontOrNull( iDateFont );
-    }
-
-// -----------------------------------------------------------------------------
-// CXnDateControl::CreateColorL
-// -----------------------------------------------------------------------------
-//
-const TRgb& CXnDateControl::CreateColorL( CXnNodePluginIf& aNode )
-    {
-    if ( !iIsColorSet )
-        {
-        iAdapter.CreateColorL( aNode, iDateColor );
-        iIsColorSet = ETrue;
-        }
-    return iDateColor;
-    }
-
-// -----------------------------------------------------------------------------
-// CXnDateControl::ResetFont
-// -----------------------------------------------------------------------------
-//
-void CXnDateControl::ResetFont()
-    {
-    iDateFont = NULL;
-    iIsColorSet = EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CXnDateControl::RefreshDateL
-// -----------------------------------------------------------------------------
-//
-void CXnDateControl::RefreshDateL()
-    {
-    delete iDateText;
-    iDateText = NULL;
-    if ( iDateType == EDate )
-        {
-        iDateText = ConstructDateStringL();
-        }
-    else if ( iDateType == EDay )
-        {
-        iDateText = ConstructDayStringL();
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CXnDateControl::HandleCallBackL
-// -----------------------------------------------------------------------------
-//
-TInt CXnDateControl::HandleCallBackL( TAny *aPtr )
-    {
-    CXnDateControl* self = static_cast<CXnDateControl*>( aPtr );
-    
-    if( self )
-        {
-        TInt changes( self->iEnvNotifier->Change() );
-        
-        if ( changes & 
-            ( EChangesLocale | EChangesMidnightCrossover | EChangesSystemTime ) )
-            {
-            self->RefreshDateL();
-            }       
-        }    
-        
-    return KErrNone;
-    }
-
-//  End of File