fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlCandidateSelected.cpp
changeset 36 a7632c26d895
parent 35 0f326f2e628e
child 42 b3eaa440ab06
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlCandidateSelected.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,309 +0,0 @@
-/*
-* Copyright (c) 2002-2004 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:           
-*       Provides the CAknFepUICtrlCandidateSelected methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include <uikon/eikdefmacros.h>
-#endif
-#include <eiklabel.h>
-#include <AknUtils.h>
-#include <AknsDrawUtils.h>
-#include "AknFepUIAvkonCtrlCandidateSelected.h"
-#include "AknFepUIAvkonCtrlPinyinPopup.h"
-#include "AknFepUiInterfacePanic.h"
-#include <skinlayout.cdl.h>
-
-class CEikLabel;
-
-CAknFepUICtrlCandidateSelected* CAknFepUICtrlCandidateSelected::NewL(RWindowTreeNode& aParent)
-    {
-    CAknFepUICtrlCandidateSelected* self = new(ELeave) CAknFepUICtrlCandidateSelected;
-    CleanupStack::PushL(self);
-    self->ConstructL(aParent);
-    CleanupStack::Pop();
-    return self;
-    }
-
-CAknFepUICtrlCandidateSelected::~CAknFepUICtrlCandidateSelected()
-    {
-    delete iOrdinalLabel;
-    delete iCandidateLabel;
-    }
-
-void CAknFepUICtrlCandidateSelected::SetText(TPtrC aCharacter)
-    {
-    // make sure that we only copy as many characters as we can show
-    TInt textLen = aCharacter.Length();
-    TInt textLength = textLen > EMaxSelectedCandidateLength? EMaxSelectedCandidateLength:textLen;
-    TPtrC newText = aCharacter.Left(textLength);
-    TPtr ptr = iBuffer.Des();
-    if(ptr != newText)
-        {
-        ptr.Copy(newText);
-        // ignore any errors... we have guaranteed that the descriptor already has sufficient characters to avoid a realloc
-        TRAP_IGNORE( iCandidateLabel->SetTextL(iBuffer)); 
-        }
-    }
-
-void CAknFepUICtrlCandidateSelected::SetOrdinal(TInt aOrdinal)
-    {
-    __ASSERT_DEBUG(aOrdinal < CAknFepUICtrlPinyinPopup::EMaxPhraseCandidate, AknFepUiInterfacePanic(EAknFepUiInterfacePanicNewVisibleCountExceedsRange));
-    __ASSERT_DEBUG(aOrdinal >= 0, AknFepUiInterfacePanic(EAknFepUiInterfacePanicNewVisibleCountExceedsRange));
-
-    TBuf<2> buf;
-    buf.Format(_L("%d"), aOrdinal);
-    TRAP_IGNORE(iOrdinalLabel->SetTextL(buf));
-    }
-
-void CAknFepUICtrlCandidateSelected::SetCandidateMode(CAknFepUICtrlCandidatePane::TCandidateMode aMode)
-    {
-    if(iCandidateMode != aMode)
-        {
-        iCandidateMode = aMode;
-        
-        LayoutRects();
-        LayoutContainedControls();
-        DrawDeferred();
-        }
-    }
-
-void CAknFepUICtrlCandidateSelected::SetLayout(CAknFepUICtrlContainerChinese::TPaneLayout aLayout)
-    {
-    iPaneLayout = aLayout;
-    }
-
-void CAknFepUICtrlCandidateSelected::ShowOrdinal(TBool aValue)
-	{
-	if(!COMPARE_BOOLS(iShowOrdinal,aValue))
-		{
-		iShowOrdinal = aValue;
-		UpdateLabelVisibility();
-		}
-	}
-
-void CAknFepUICtrlCandidateSelected::SizeChanged()
-    {
-    LayoutRects();
-    LayoutContainedControls();
-    }
-
-TInt CAknFepUICtrlCandidateSelected::CountComponentControls() const
-    {
-    CCoeControl* controls[] = 
-        {
-        iOrdinalLabel,
-        iCandidateLabel
-        } ;
-
-    TInt count = 0 ;
-    for (TUint ii = 0 ; ii < (sizeof(controls) / sizeof(CCoeControl*)) ; ii++)
-        if(controls[ii])
-            count++ ;
-    return count ;
-    }
-
-CCoeControl* CAknFepUICtrlCandidateSelected::ComponentControl(TInt aIndex) const 
-    {
-    CCoeControl* controls[] = 
-        {
-        iOrdinalLabel,
-        iCandidateLabel
-        } ;
-
-    for (TUint ii = 0; (ii < sizeof(controls) / sizeof(CCoeControl*)) ; ii++)
-        if (controls[ii] && aIndex-- == 0)
-            return controls[ii] ;
-    // shouldn't be called while no components.
-    return NULL ;
-    }
-
-void CAknFepUICtrlCandidateSelected::Draw(const TRect& /*aRect*/) const
-    {
-    CWindowGc& gc = SystemGc();
-
-    TBool skinnedDraw = EFalse;
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-    TRect outerRect;
-    TRect innerRect;
-    CalculateFrameRects(outerRect, innerRect);
-
-    // draw the whole frame background according to the containing context, which in this case
-    // is the candidate pane, to avoid corner drawing mess and to cope with masked grid frame centre
-    MAknsControlContext* cc = AknsDrawUtils::ControlContext(this);
-    AknsDrawUtils::DrawBackground(skin, cc, this, gc, 
-        outerRect.iTl, outerRect, KAknsDrawParamDefault);
-
-    skinnedDraw = AknsDrawUtils::DrawFrame(skin, gc, outerRect, innerRect,
-        KAknsIIDQsnFrGrid, KAknsIIDQsnFrGridCenter); 
-
-    if(!skinnedDraw)
-        {
-        iRectShadow.DrawRect(gc);
-        iRectHighlight.DrawRect(gc);
-        }
-    }
-
-void CAknFepUICtrlCandidateSelected::ConstructL(RWindowTreeNode& aParent)
-    {
-    CreateWindowL(aParent);
-
-    iOrdinalLabel = new(ELeave) CEikLabel;
-    iOrdinalLabel->SetBufferReserveLengthL(EOneCandidate);
-    iOrdinalLabel->SetContainerWindowL(*this);
-
-    // force label to contain required number of characters from the outset
-    iCandidateLabel = new(ELeave) CEikLabel;
-    iCandidateLabel->SetBufferReserveLengthL(EMaxSelectedCandidateLength); // this will do a realloc now, so no need to later
-    iCandidateLabel->SetContainerWindowL(*this);
-    }
-
-CAknFepUICtrlCandidateSelected::CAknFepUICtrlCandidateSelected()
-    : 
-    iCandidateMode(CAknFepUICtrlCandidatePane::ECandidateModeNormal),
-    iPaneLayout(CAknFepUICtrlContainerChinese::ELayoutCandidate),
-    iShowOrdinal(ETrue)
-    {
-    }
-
-void CAknFepUICtrlCandidateSelected::LayoutRects()
-    {
-    TRect rect = Rect();
-    iRectShadow.LayoutRect(rect, AKN_LAYOUT_WINDOW_Candidate_selection_highlight_Line_1(rect));
-    iRectHighlight.LayoutRect(rect, AKN_LAYOUT_WINDOW_Candidate_selection_highlight_Line_2(rect));
-    }
-
-void CAknFepUICtrlCandidateSelected::LayoutContainedControls()
-    {
-    TRect rect = Rect();
-
-    // layout candidate label
-    TAknTextLineLayout candidateLayout = AKN_LAYOUT_TEXT_Chinese_universal_FEP_candidate_pane_texts_Line_1;
-    TAknTextLineLayout ordinalLayout = AKN_LAYOUT_TEXT_Chinese_universal_FEP_candidate_pane_texts_Line_3; 
-    candidateLayout.il = candidateLayout.il - ordinalLayout.il;
-
-    TAknLayoutText layoutCandidate;
-    layoutCandidate.LayoutText(rect,candidateLayout);
-    
-    const CFont* font = layoutCandidate.Font();
-    TInt labelWidthInPixels = 0;
-    if(font)
-	    {
-	    TInt bufLength = iBuffer.Length();
-	    if(bufLength != 0)
-		    {
-		    TPtrC newChars = iBuffer.Left(bufLength);
-		    labelWidthInPixels = font->TextWidthInPixels(newChars);
-		    }
-	    }
-    TRect rectCandidate = layoutCandidate.TextRect();
-    if(labelWidthInPixels == 0)
-	    {
-	    rectCandidate.iTl.iX = 0;
-	    }
-    rectCandidate.SetWidth(labelWidthInPixels);
-    iCandidateLabel->SetRect(rectCandidate);
-    iCandidateLabel->SetFont(font);
-    
-    // layout ordinal label
-    TBufC16<1> buf;
-    TPtr16 ptr = buf.Des();
-    ptr = (*(iOrdinalLabel->Text())).Left(EOneCandidate);
-
-    TAknLayoutText layoutOrdinal;
-    ordinalLayout.il = 0;
-	
-    layoutOrdinal.LayoutText(rect,ordinalLayout);
-    
-    const CFont* fontOrdinal = layoutOrdinal.Font();
-    
-    TRect ordinalRect = layoutOrdinal.TextRect();
-
-    // inserted in 2006.03.29
-    TPoint ordinalPosition;
-    // end inserting
-    TInt ordinalWidth = fontOrdinal->TextWidthInPixels(ptr);
-    
-    /* removing in 2006.03.29
-    ordinalRect.iTl.iX = rectCandidate.iTl.iX - ordinalWidth;
-    ordinalRect.iTl.iY = rectCandidate.iTl.iY;
-
-    ordinalRect.SetWidth(ordinalWidth);
-    ordinalRect.SetHeight(fontOrdinal->HeightInPixels());
-    */ // end removing
-
-    // inserted in 2006.03.29
-    ordinalPosition.iX = rectCandidate.iTl.iX - ordinalWidth;
-    ordinalPosition.iY = rectCandidate.iTl.iY;
-
-    ordinalRect = TRect(ordinalPosition,
-                        TPoint(ordinalPosition.iX + ordinalRect.Width(),
-                               ordinalPosition.iY + ordinalRect.Height()));
-    // end inserting
-
-    iOrdinalLabel->SetRect(ordinalRect);
-    iOrdinalLabel->SetFont(fontOrdinal);
-
-    // override with skin text color
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-    TRgb labelTextColor;
-
-    AknsUtils::GetCachedColor(skin, labelTextColor, 
-                              KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG11);
-
-    TRAP_IGNORE( 
-	    iCandidateLabel->OverrideColorL(EColorLabelText, labelTextColor);
-	    iOrdinalLabel->OverrideColorL(EColorLabelText, labelTextColor);
-	    );
-    }
-
-void CAknFepUICtrlCandidateSelected::CalculateFrameRects(TRect& aOuterRect, TRect& aInnerRect) const
-    {
-    TRect windowRect = Rect();
-
-    TAknLayoutRect topLeft;
-    topLeft.LayoutRect(windowRect, SkinLayout::Highlight_skin_placing__grid__Line_2());
-
-    TAknLayoutRect bottomRight;
-    bottomRight.LayoutRect(windowRect, SkinLayout::Highlight_skin_placing__grid__Line_5());
-
-    aOuterRect = TRect(topLeft.Rect().iTl, bottomRight.Rect().iBr);
-    aInnerRect = TRect(topLeft.Rect().iBr, bottomRight.Rect().iTl);
-    }
-
-void CAknFepUICtrlCandidateSelected::UpdateLabelVisibility()
-	{
-	if(iShowOrdinal)
-		{
-		iOrdinalLabel->MakeVisible(ETrue);
-		}
-	else
-		{
-		iOrdinalLabel->MakeVisible(EFalse);
-		}
-	}
-
-// End of file