textinput/peninputcommonctrls/src/peninputbasewindow/peninputbasewindowext.cpp
changeset 0 eb1f2e154e89
child 9 e6a39382bb9c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputcommonctrls/src/peninputbasewindow/peninputbasewindowext.cpp	Tue Feb 02 01:02:04 2010 +0200
@@ -0,0 +1,691 @@
+/*
+* Copyright (c) 2002-2005 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:  CAknFepCtrlBaseWindowExt
+*
+*/
+
+
+//  INCLUDES
+#include <coemain.h>
+#include <bautils.h>
+#include <AknsItemID.h> 
+#include <AknsSkinInstance.h>
+#include <AknsUtils.h> 
+#include <aknlayoutscalable_avkon.cdl.h>
+ #include <AknUtils.h> 
+ 
+#include <peninputbutton.h>
+#include <peninputcommonbutton.h>
+#include <peninputdragbutton.h>
+#include <peninputbasewindowext.h>
+#include <peninputcommonlayoutglobalenum.h>
+
+#include <peninputlayoutinputmodechoice.h>
+#include <peninputlayoutmultilineicf.h>
+
+const TInt32 KInvalidResId = -1;
+const TInt KNotSupportSkin = -1;
+const TInt KInvalidImg = -1 ;
+const TUint32 KDefaultTextColor = 0x000000;
+ 
+
+
+// ---------------------------------------------------------
+// Constructor
+// ---------------------------------------------------------
+//
+EXPORT_C CAknFepCtrlBaseWindowExt::CAknFepCtrlBaseWindowExt(CFepUiLayout* aFepUiLayout, 
+                                          TInt aControlId)
+    :CControlGroup(aFepUiLayout,aControlId),
+    iCloseButton(NULL),
+    iFirstTimeConstruct(ETrue), 
+    iCoeEnv(CCoeEnv::Static())
+    {
+    }
+
+// ---------------------------------------------------------
+// Constructor
+// ---------------------------------------------------------
+//
+EXPORT_C void CAknFepCtrlBaseWindowExt::BaseConstructL()
+    {
+    CControlGroup::ConstructL();
+    }
+    
+// ---------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------
+//
+EXPORT_C CAknFepCtrlBaseWindowExt::~CAknFepCtrlBaseWindowExt()
+    {
+    }
+
+// ---------------------------------------------------------
+// Draw window frame and sub controls
+// ---------------------------------------------------------
+//
+EXPORT_C void CAknFepCtrlBaseWindowExt::Draw()
+    {
+    if(Hiden() || !Ready())
+        {
+        return;
+        }
+
+    //Clear();
+    
+    DrawOpaqueMaskBackground( Rect() );
+    CFbsBitGc* gc= static_cast<CFbsBitGc*> ( BitGc());
+    /*
+    gc->Activate( MaskBitmapDevice() );
+    gc->SetBrushStyle( CGraphicsContext::ENullBrush );
+    gc->SetBrushColor( MaskBkCol() );
+    gc->SetPenSize( PenSize());
+    gc->SetPenColor( PenColor() );
+    gc->DrawRect( Rect());
+	*/
+    // ----- draw bitmaps -----
+
+    gc->Activate( BitmapDevice() ); 
+    gc->SetBrushColor( TRgb(KOpaqueColor) );
+    gc->SetPenColor( TRgb(KOpaqueColor) );
+    gc->DrawRect( Rect());
+    if( BackgroundBmp() && BackgroundBmp()->SizeInPixels() != Rect().Size() )    
+    	AknIconUtils::SetSize(BackgroundBmp(), Rect().Size(), EAspectRatioNotPreserved);
+    
+	DrawBackground();
+	CControlGroup::Draw();
+	/*
+    for(TInt i=0; i< NumOfControls(); i++)        
+        {
+        CFepUiBaseCtrl* ctrl = At(i);
+        if(!ctrl->Hiden())
+            {
+            ctrl->Draw();        
+            }
+        }*/
+    }
+
+// ---------------------------------------------------------
+// Close window
+// ---------------------------------------------------------
+//
+EXPORT_C void CAknFepCtrlBaseWindowExt::Close()
+    {
+    if (DoClose())
+        {
+        Hide(ETrue);
+        }
+    }
+
+// ---------------------------------------------------------
+// Enable or disable drag window
+// ---------------------------------------------------------
+//
+EXPORT_C void CAknFepCtrlBaseWindowExt::SetDragEnable(TBool /*aEnable*/)
+    {
+    /*if (iMoveButton)
+        {
+        iMoveButton->EnableDragging(aEnable);
+        }*/
+    }
+
+// ---------------------------------------------------------
+// Handle close event
+// ---------------------------------------------------------
+//
+EXPORT_C void CAknFepCtrlBaseWindowExt::HandleControlEvent(TInt aEventType, 
+                                             CFepUiBaseCtrl* aCtrl, 
+                                             const TDesC& /*aEventData*/)
+    {
+    if (aEventType == EEventButtonUp)
+        {
+        if (aCtrl->ControlId() == EPeninutWindowCtrlIdCloseBtn)
+            {
+            Close();
+            }
+        }
+    }
+
+EXPORT_C TBool CAknFepCtrlBaseWindowExt::DoClose()
+    {
+    return ETrue;
+    }
+    
+EXPORT_C CFepUiBaseCtrl* CAknFepCtrlBaseWindowExt::Control(TInt aCtrlId)
+    {
+    CFepUiBaseCtrl* ctrl = NULL;
+    RPointerArray<CFepUiBaseCtrl> todo;
+    TInt current = 0;
+    TBool notFound = ETrue;
+    
+    todo.Append(this);
+    
+    while (current < todo.Count() && notFound)
+        {
+        ctrl = todo[current];
+        if(ctrl->ControlId() == aCtrlId)
+            {
+            notFound = EFalse;     
+            }
+        else
+            {
+            if(ctrl->IsKindOfControl(ECtrlControlGroup))
+                {
+                CControlGroup* temp = static_cast<CControlGroup*>(ctrl);
+                for (int i = 0; i < temp->NumOfControls(); i++)
+                    {
+                    todo.Append(temp->At(i));
+                    }
+                }
+            current++;
+            }
+        }
+        
+    todo.Close();
+    
+    return notFound ? NULL : ctrl;
+    }    
+
+EXPORT_C void CAknFepCtrlBaseWindowExt::ConstructFromResourceL()
+    {    
+    if (iResourceId == KInvalidResId)
+    	{
+        User::Leave(KErrArgument);
+    	}
+
+    TResourceReader reader;
+    iCoeEnv->CreateResourceReaderLC(reader, iResourceId);
+
+    TInt supportskin = reader.ReadInt16();
+    
+    if (iFirstTimeConstruct&& (supportskin != KNotSupportSkin))
+        {
+    	UiLayout()->AddControlL(this);
+        }
+        
+    // Read information of shadow
+    const TInt32 shadowResId = reader.ReadInt32(); 
+    ReadShadowInfoL( shadowResId );
+     
+    // Read information of background 
+    const TInt32 backgroundResId = reader.ReadInt32(); 
+    ReadBackgroundInfoL( backgroundResId ); 
+    
+    // Read resource information to create base window controls
+     const TInt count = reader.ReadInt16();
+	
+	if( iFirstTimeConstruct )
+		{
+		for( TInt i = 0; i < count && iFirstTimeConstruct; i++ )
+	        {
+	        const TInt16 id = reader.ReadInt16();
+	        const TInt32 image = reader.ReadInt32();
+	        CreateBaseWindowControlsL( id, image );
+	        }    	
+		}
+	else
+		{
+		CControlGroup::ConstructFromResourceL();
+		// ReConstruct ICF when resource changed
+        CFepLayoutMultiLineIcf* multiIcf = 
+		    static_cast<CFepLayoutMultiLineIcf*>( Control(EPeninputWindowCtrlIdMultiLineICF));
+		if( multiIcf )
+			{
+			TResourceReader reader;
+			iCoeEnv->CreateResourceReaderLC( reader, multiIcf->ResourceId() );  
+			ReadMultiLineIcfInforL( reader, multiIcf );     
+			CleanupStack::PopAndDestroy( 1 );				
+			}
+		}
+    CleanupStack::PopAndDestroy(); // reader
+    
+    iFirstTimeConstruct = EFalse;
+    }
+
+TBool CAknFepCtrlBaseWindowExt::CreateCustomControlL( TInt16 /*aControlId*/, TInt32 /*aImageId*/ )
+	{
+	return EFalse;	
+	}
+	
+void CAknFepCtrlBaseWindowExt::AddCustomControlGroupL(CFepUiBaseCtrl* aCtrl)
+	{
+	AddControlL(aCtrl);
+	}
+
+EXPORT_C void CAknFepCtrlBaseWindowExt::CreateBaseWindowControlsL( TInt16 aControlId, 
+                                                                   TInt32 aImageId )
+    {
+    if (CreateCustomControlL(aControlId, aImageId))
+    	{
+    	return;	
+    	}
+    
+    switch ( aControlId )
+        {
+        case EPeninutWindowCtrlIdCloseBtn:
+            {
+            CAknFepCtrlCommonButton* closeButton = 
+            	CAknFepCtrlCommonButton::NewL(UiLayout(), aControlId, 
+            								  KAknsIIDQsnFrFunctionButtonNormal,
+        									  KAknsIIDQsnFrFunctionButtonPressed,
+        									  KAknsIIDQsnFrFunctionButtonInactive);
+
+            AddCustomControlGroupL( closeButton );
+
+            closeButton->AddEventObserver(this);
+            closeButton->SetResourceId( aImageId );
+            closeButton->ConstructFromResourceL();
+            SetCloseButton(closeButton);
+            }
+            break;
+        case EPeninutWindowCtrlIdInputContextField:
+            {
+            CFepInputContextField* icf= CFepInputContextField::NewL( TRect(), 
+                UiLayout(), aControlId ); 
+                
+            AddCustomControlGroupL( icf );
+
+            icf->SetFocus(ETrue);
+            icf->AddEventObserver( UiLayout() );
+            
+            TResourceReader reader;
+            iCoeEnv->CreateResourceReaderLC( reader, aImageId );  
+            ReadIcfInfoL( reader, icf);     
+            CleanupStack::PopAndDestroy( 1 );
+            }
+            break;
+        case EPeninputWindowCtrlIdMultiLineICF:
+            {
+            const CFont* icfFont = NULL;
+            TAknTextLineLayout textPaneTextLayout;
+    
+            textPaneTextLayout = 
+            AknLayoutScalable_Avkon::fep_vkb_top_text_pane_t1().LayoutLine();
+                        
+            icfFont = AknLayoutUtils::FontFromId( textPaneTextLayout.iFont, NULL );    
+            CFepLayoutMultiLineIcf* multiLineIcf = NULL;
+
+            if ( icfFont )
+                {
+                multiLineIcf = CFepLayoutMultiLineIcf::NewL( TRect(), 
+                    UiLayout(), aControlId, icfFont->HeightInPixels(),
+                    icfFont->FontMaxHeight(),icfFont );    
+                
+                AddCustomControlGroupL( multiLineIcf );
+
+                // Add layout as event observer
+                multiLineIcf->AddEventObserver( UiLayout() );
+                multiLineIcf->SetResourceId( aImageId );
+                multiLineIcf->SetFocus(ETrue);
+
+	            TResourceReader reader;
+	            iCoeEnv->CreateResourceReaderLC( reader, aImageId );  
+	            ReadMultiLineIcfInforL( reader,multiLineIcf );     
+	            CleanupStack::PopAndDestroy( 1 );
+                }
+            }
+            break;
+        case EPeninutWindowCtrlIdOptionBtn:
+            {
+            CAknFepCtrlEventButton* touchInputOptionButton = CAknFepCtrlEventButton::NewL( 
+        									  UiLayout(),
+        									  aControlId, EPeninputLayoutEventOption, 0, 
+        									  KAknsIIDQsnFrFunctionButtonNormal,
+        									  KAknsIIDQsnFrFunctionButtonPressed,
+        									  KAknsIIDQsnFrFunctionButtonInactive );
+            
+            AddCustomControlGroupL( touchInputOptionButton );
+
+            touchInputOptionButton->AddEventObserver( UiLayout() );
+            touchInputOptionButton->SetResourceId( aImageId ); 
+            touchInputOptionButton->ConstructFromResourceL();  
+            }
+            break;
+        case EPeninutWindowCtrlIdBackspaceBtn:
+            {
+            CAknFepCtrlRepeatButton* backspaceButton = CAknFepCtrlRepeatButton::NewL( 
+        									  UiLayout(), aControlId, EPeninputLayoutEventBack, EKeyBackspace, 
+        									  KAknsIIDQsnFrFunctionButtonNormal,
+        									  KAknsIIDQsnFrFunctionButtonPressed,
+        									  KAknsIIDQsnFrFunctionButtonInactive );
+                
+            AddCustomControlGroupL( backspaceButton );
+
+            backspaceButton->AddEventObserver( UiLayout() );
+            backspaceButton->SetResourceId( aImageId );
+            backspaceButton->ConstructFromResourceL();  
+            }
+            break;
+        case EPeninutWindowCtrlIdSpaceBtn:
+            {
+            CAknFepCtrlEventButton* spaceButton = CAknFepCtrlEventButton::NewL( 
+        									  UiLayout(), aControlId, EPeninputLayoutEventSpace, EKeySpace,
+        									  KAknsIIDQsnFrFunctionButtonNormal,
+        									  KAknsIIDQsnFrFunctionButtonPressed,
+        									  KAknsIIDQsnFrFunctionButtonInactive );
+            AddCustomControlGroupL( spaceButton );
+            spaceButton->AddEventObserver( UiLayout() );
+            spaceButton->SetResourceId( aImageId );
+            spaceButton->ConstructFromResourceL();  
+            }
+            break;
+        case EPeninutWindowCtrlIdEnterBtn:
+            {
+            CAknFepCtrlEventButton* enterButton = CAknFepCtrlEventButton::NewL( 
+        									  UiLayout(), aControlId, EPeninputLayoutEventEnter, EKeyEnter, 
+        									  KAknsIIDQsnFrFunctionButtonNormal,
+        									  KAknsIIDQsnFrFunctionButtonPressed,
+        									  KAknsIIDQsnFrFunctionButtonInactive  );
+            
+            AddCustomControlGroupL( enterButton );
+            enterButton->AddEventObserver(UiLayout());
+            enterButton->SetResourceId( aImageId );
+            enterButton->ConstructFromResourceL();  
+            }
+            break;
+        case EPeninutWindowCtrlIdSwitcherPopupWindow:
+            {
+            CPeninputLayoutInputmodelChoice* modeSwitchChoice = 
+                                                CPeninputLayoutInputmodelChoice::NewL( UiLayout(),
+                 EPeninutWindowCtrlIdSwitcherPopupWindow, 
+                 (TPluginInputMode)(UiLayout()->PenInputType()));
+                 modeSwitchChoice->SetListSkinID( KAknsIIDQsnFrList, KAknsIIDQsnFrPopupSub );
+            AddCustomControlGroupL( modeSwitchChoice );
+            modeSwitchChoice->AddEventObserver( UiLayout() );   
+            }   
+            break;
+        default:
+            {
+            }
+            break;
+        }
+    }
+    
+// ---------------------------------------------------------------------------
+// CAknFepCtrlBaseWindowExt::ReadShadowInfoL
+// (other items were commented in a header)
+// ---------------------------------------------------------------------------
+// 
+void CAknFepCtrlBaseWindowExt::ReadShadowInfoL( TInt aResId )
+    {
+    TResourceReader resReader;
+    iCoeEnv->CreateResourceReaderLC( resReader, aResId );
+     
+    TPtrC bmpFileName = resReader.ReadTPtrC();
+    TInt32 imgMajorSkinId = resReader.ReadInt32();
+
+    TAknsItemID id;
+    TInt skinitemid;
+    
+    MAknsSkinInstance* skininstance = AknsUtils::SkinInstance();
+
+    for ( TInt i = 0; i < KShadowBmpBr + 1; i++ )
+    	{
+        const TInt16 bmpId = resReader.ReadInt16();
+        const TInt16 bmpMskId = resReader.ReadInt16();
+        skinitemid = resReader.ReadInt16();
+        
+        id.Set(TInt(imgMajorSkinId), skinitemid);
+    	
+        if (bmpId != KInvalidImg)
+        	{
+            CFbsBitmap* shadowImg = NULL;
+            CFbsBitmap* shadowMaskImg = NULL;
+
+            if (bmpMskId != KInvalidImg)
+                {
+                AknsUtils::CreateIconL(skininstance, 
+                                       id,
+                                       shadowImg,
+                                       shadowMaskImg,
+                                       bmpFileName,
+                                       bmpId,
+                                       bmpMskId);
+                }
+            else
+                {
+                AknsUtils::CreateIconL(skininstance,
+                                       id,
+                                       shadowImg,
+                                       bmpFileName,
+                                       bmpId);
+                }
+            
+            UiLayout()->SetShadowBmp(shadowImg, shadowMaskImg, TShadowBitmapIndex(i));
+        	}
+    	}
+    CleanupStack::PopAndDestroy( 1 );
+    }
+    
+// ---------------------------------------------------------------------------
+// CAknFepCtrlBaseWindowExt::ReadBackgroundInfoL
+// (other items were commented in a header)
+// ---------------------------------------------------------------------------
+// 
+void CAknFepCtrlBaseWindowExt::ReadBackgroundInfoL( TInt aResId )
+    {
+    if( aResId == 0 )
+    	return;
+    
+    if( BackgroundBmp() )
+    	{
+    	CFbsBitmap* bkBmp = BackgroundBmp();
+    	delete bkBmp;	
+    	SetBackgroundBmp( NULL );
+    	}
+    if( BkMaskBmp() )
+    	{
+    	CFbsBitmap* bkMaskBmp = BkMaskBmp();
+    	delete bkMaskBmp;
+		SetBackgroundMaskBmp( NULL );
+    	}    
+    
+    TResourceReader resReader;
+    iCoeEnv->CreateResourceReaderLC( resReader, aResId );
+     
+    TPtrC bmpFileName = resReader.ReadTPtrC();
+    TInt32 imgMajorSkinId = resReader.ReadInt32();
+
+    TAknsItemID id;
+    TInt skinitemid;
+    
+    MAknsSkinInstance* skininstance = AknsUtils::SkinInstance();
+    const TInt16 bmpId = resReader.ReadInt16();
+    const TInt16 bmpMskId = resReader.ReadInt16();
+    skinitemid = resReader.ReadInt16();   
+    id.Set(TInt(imgMajorSkinId), skinitemid);
+	
+    if (bmpId != KInvalidImg)
+    	{
+    	CFbsBitmap* backgroundImg = NULL;
+    	CFbsBitmap* backgroundMaskImg = NULL;
+        if (bmpMskId != KInvalidImg)
+            {
+            AknsUtils::CreateIconL(skininstance, 
+                                   id,
+                                   backgroundImg,
+                                   backgroundMaskImg,
+                                   bmpFileName,
+                                   bmpId,
+                                   bmpMskId);
+            }
+        else
+            {
+            AknsUtils::CreateIconL(skininstance,
+                                   id,
+                                   backgroundImg,
+                                   bmpFileName,
+                                   bmpId);
+            }
+       
+        SetBackgroundBmp( backgroundImg );
+        SetBackgroundMaskBmp( backgroundMaskImg );           
+    	}
+    CleanupStack::PopAndDestroy( 1 );
+    }
+    
+// ---------------------------------------------------------------------------
+// CAknFepCtrlBaseWindowExt::ReadIcfInfoL
+// (other items were commented in a header)
+// ---------------------------------------------------------------------------
+// 
+void CAknFepCtrlBaseWindowExt::ReadIcfInfoL(TResourceReader aResReader,
+                                           CFepInputContextField* icf )
+    {
+    TPtrC bmpFileName = aResReader.ReadTPtrC();  
+    TInt32 imgMajorSkinId = aResReader.ReadInt32();
+
+    TAknsItemID id;
+    TInt skinitemid;
+    
+    MAknsSkinInstance* skininstance = AknsUtils::SkinInstance();
+
+    const TInt16 icfbgId = aResReader.ReadInt16();
+    const TInt16 icfbgmaskId = aResReader.ReadInt16();
+    skinitemid = aResReader.ReadInt16();
+
+    id.Set( TInt( imgMajorSkinId ), skinitemid );
+    
+    if ( icfbgId != KInvalidImg )
+    	{
+        CFbsBitmap* icfImg = NULL;
+
+        if (icfbgmaskId != KInvalidImg)
+            {
+            CFbsBitmap* icfmaskImg = NULL;
+            
+            AknsUtils::CreateIconL(skininstance,
+                                   id,
+                                   icfImg,
+                                   icfmaskImg,
+                                   bmpFileName,
+                                   icfbgId,
+                                   icfbgmaskId);
+            
+            AknIconUtils::SetSize(icfmaskImg, TSize(1,1), EAspectRatioNotPreserved);
+            icf->SetBackgroundMaskBitmapL(icfmaskImg);
+            }
+        else
+            {
+            AknsUtils::CreateIconL(skininstance,
+                                   id,
+                                   icfImg,
+                                   bmpFileName,
+                                   icfbgId);
+            }
+    	
+    	AknIconUtils::SetSize(icfImg, TSize(1,1), EAspectRatioNotPreserved);
+    	icf->SetBackgroundBitmapL(icfImg);
+    	}
+
+    // read text color
+    TRgb textcolor;
+    TInt32 colorMajorSkinId = aResReader.ReadInt32();
+    skinitemid = aResReader.ReadInt16();
+    
+    id.Set(TInt(colorMajorSkinId), skinitemid);
+
+    const TInt16 textcoloridx = aResReader.ReadInt16();
+    
+    TInt error = AknsUtils::GetCachedColor(skininstance, 
+                                           textcolor,
+                                           id,
+                                           textcoloridx);
+
+    if (error == KErrNone)
+        {
+        icf->SetTextColor( textcolor );
+        }
+    else
+        {
+        icf->SetTextColor( TRgb( KDefaultTextColor ) );
+        }    
+    }    
+    
+void CAknFepCtrlBaseWindowExt::ReadMultiLineIcfInforL( TResourceReader aResReader ,
+													  CFepLayoutMultiLineIcf* icf)
+    {
+    TPtrC bmpFileName = aResReader.ReadTPtrC();  
+    TInt32 imgMajorSkinId = aResReader.ReadInt32();
+
+    TAknsItemID id;
+    TInt skinitemid;
+    
+    MAknsSkinInstance* skininstance = AknsUtils::SkinInstance();
+
+    const TInt16 icfbgId = aResReader.ReadInt16();
+    const TInt16 icfbgmaskId = aResReader.ReadInt16();
+    skinitemid = aResReader.ReadInt16();
+
+    id.Set( TInt( imgMajorSkinId ), skinitemid );
+    
+    if ( icfbgId != KInvalidImg )
+    	{
+        CFbsBitmap* icfImg = NULL;
+
+        if (icfbgmaskId != KInvalidImg)
+            {
+            CFbsBitmap* icfmaskImg = NULL;
+            
+            AknsUtils::CreateIconL(skininstance,
+                                   id,
+                                   icfImg,
+                                   icfmaskImg,
+                                   bmpFileName,
+                                   icfbgId,
+                                   icfbgmaskId);
+            
+            AknIconUtils::SetSize(icfmaskImg, TSize(1,1), EAspectRatioNotPreserved);
+            icf->SetBackgroundMaskBitmapL(icfmaskImg);
+            }
+        else
+            {
+            AknsUtils::CreateIconL(skininstance,
+                                   id,
+                                   icfImg,
+                                   bmpFileName,
+                                   icfbgId);
+            }
+    	
+    	AknIconUtils::SetSize(icfImg, TSize(1,1), EAspectRatioNotPreserved);
+    	icf->SetBackgroundBitmapL(icfImg);
+    	}
+
+    // read text color
+    TRgb textcolor;
+    TInt32 colorMajorSkinId = aResReader.ReadInt32();
+    skinitemid = aResReader.ReadInt16();
+    
+    id.Set(TInt(colorMajorSkinId), skinitemid);
+
+    const TInt16 textcoloridx = aResReader.ReadInt16();
+    
+    TInt error = AknsUtils::GetCachedColor(skininstance, 
+                                           textcolor,
+                                           id,
+                                           textcoloridx);
+
+    if (error == KErrNone)
+        {
+        icf->SetTextColorL( textcolor );
+        }
+    else
+        {
+        icf->SetTextColorL( TRgb( KDefaultTextColor ) );
+        }    
+    }
+    
+    
+    
+// End Of File