fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/aknfepuilayoutdatamgr.cpp
changeset 40 2cb9bae34d17
parent 31 f1bdd6b078d1
child 49 37f5d84451bd
equal deleted inserted replaced
31:f1bdd6b078d1 40:2cb9bae34d17
     1 /*
       
     2 * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0""
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Implementation for phrase creation layout data managment
       
    15  *
       
    16 */
       
    17 
       
    18 
       
    19 // INCLUDE FILES
       
    20 #include <gulfont.h> 
       
    21 #include <eiklabel.h>
       
    22 #include <AknLayout.lag>
       
    23 #include <AknsDrawUtils.h>
       
    24 #include <skinlayout.cdl.h>
       
    25 #include <aknlayoutscalable_avkon.cdl.h>
       
    26 
       
    27 #include "aknfepuilayoutdatamgr.h"
       
    28 
       
    29 // -----------------------------------------------------------------------------
       
    30 // CAknFepUiLayoutDataMgr::GetPinyinPhraseCreationContainerHeight()
       
    31 // Get the pinyin phrase creation container Height data 
       
    32 // -----------------------------------------------------------------------------
       
    33 //
       
    34 CAknFepUiLayoutDataMgr* CAknFepUiLayoutDataMgr::NewL()
       
    35     {
       
    36     CAknFepUiLayoutDataMgr* self = new(ELeave)CAknFepUiLayoutDataMgr();
       
    37     CleanupStack::PushL( self );
       
    38     self->ConstructL( );
       
    39     CleanupStack::Pop( ); // self
       
    40     return self;
       
    41     }
       
    42 
       
    43 CAknFepUiLayoutDataMgr::CAknFepUiLayoutDataMgr()
       
    44     {
       
    45     }
       
    46 
       
    47 void CAknFepUiLayoutDataMgr::ConstructL()
       
    48     {
       
    49     ReadLafInfo();
       
    50     }
       
    51 
       
    52 void CAknFepUiLayoutDataMgr::ReadLafInfo()
       
    53     {
       
    54     // Screen
       
    55     TRect rect;
       
    56     AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EScreen, rect);
       
    57     iScreenSize = rect.Size();
       
    58 
       
    59     iLandScape = iScreenSize.iWidth < iScreenSize.iHeight ? EFalse : ETrue;
       
    60     
       
    61     TAknWindowLineLayout layoutLineEntry, layoutLineCandidate, layoutLineEEP;
       
    62     TAknLayoutRect layoutRectEntry, layoutRectCandidate, layoutRectEEP;
       
    63     
       
    64     layoutLineEntry = AKN_LAYOUT_WINDOW_popup_fep_china_uni_window(0,0);
       
    65     layoutRectEntry.LayoutRect(iScreenSize,layoutLineEntry);
       
    66     iPopupRectEntry = layoutLineEntry.Rect();
       
    67     iPopupHeightEntry = layoutLineEntry.iH;
       
    68     
       
    69     //PinyinPopupWindowRect
       
    70     iEntryPaneWindowLine = AKN_LAYOUT_WINDOW_fep_china_uni_entry_pane;
       
    71     iLayoutEntryItem = AKN_LAYOUT_WINDOW_fep_entry_item_pane;
       
    72     
       
    73     iLayoutLineRectEntryPane.LayoutRect(iPopupRectEntry, iEntryPaneWindowLine);
       
    74     
       
    75     layoutLineCandidate = AKN_LAYOUT_WINDOW_popup_fep_china_uni_window(0,1);
       
    76     layoutRectCandidate.LayoutRect(iScreenSize,layoutLineCandidate);
       
    77     iPopupRectCandidate = layoutLineCandidate.Rect();
       
    78     
       
    79     layoutLineEEP = AKN_LAYOUT_WINDOW_popup_fep_china_uni_window(0,2);//need updated
       
    80     layoutRectEEP.LayoutRect(iScreenSize,layoutLineEEP);
       
    81     iPopupRectEEP = layoutLineEEP.Rect();
       
    82     iPopupHeightEEP = layoutLineEEP.iH;
       
    83     
       
    84     
       
    85     iCandidatePaneWindowLine = AKN_LAYOUT_WINDOW_fep_china_uni_candidate_pane( 0 );
       
    86     
       
    87     //Candidate
       
    88     
       
    89     iCandidatePaneTextLine = AKN_LAYOUT_TEXT_Chinese_universal_FEP_candidate_pane_texts_Line_1;
       
    90     iOrdinalCandidateTextLayout = AKN_LAYOUT_TEXT_Chinese_universal_FEP_candidate_pane_texts_Line_3;
       
    91     iCandidateWindowLine1 = AKN_LAYOUT_WINDOW_Chinese_universal_FEPcandidate_pane_elements_Line_1;
       
    92     iCandidateWindowLine2 = AKN_LAYOUT_WINDOW_Chinese_universal_FEPcandidate_pane_elements_Line_2;
       
    93     iCandidateWindowLine3 = AKN_LAYOUT_WINDOW_Chinese_universal_FEPcandidate_pane_elements_Line_3;
       
    94     iCandidateWindowLine4 = AKN_LAYOUT_WINDOW_Chinese_universal_FEPcandidate_pane_elements_Line_4;
       
    95     
       
    96     iLayoutCandidateItem = AKN_LAYOUT_WINDOW_fep_candidate_item_pane;
       
    97     
       
    98     //EEP   
       
    99     TAknWindowComponentLayout EEPWindowComponentLayout = AknLayoutScalable_Avkon::fep_china_uni_eep_pane();     
       
   100     iEEPWindowLayout = EEPWindowComponentLayout.LayoutLine();
       
   101     TAknLayoutRect EEPLayout;
       
   102     EEPLayout.LayoutRect( iPopupRectEEP, iEEPWindowLayout );
       
   103     iEEPWindowRect = EEPLayout.Rect();
       
   104     //
       
   105     iRectCoverMainPaneInputEntry.LayoutRect(iPopupRectEntry, AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_1(iPopupRectEntry));
       
   106     iRectFirstShadowInputEntry.LayoutRect(iPopupRectEntry, AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_2(iPopupRectEntry));
       
   107     iRectOutlineFrameInputEntry.LayoutRect(iPopupRectEntry, AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_3(iPopupRectEntry));
       
   108     iRectInsideAreaInputEntry.LayoutRect(iPopupRectEntry, AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_4(iPopupRectEntry));
       
   109     
       
   110     iRectCoverMainPaneInputCandidate.LayoutRect(iPopupRectCandidate, 
       
   111                                                 AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_1(iPopupRectCandidate));
       
   112     iRectFirstShadowInputCandidate.LayoutRect(iPopupRectCandidate, 
       
   113                                               AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_2(iPopupRectCandidate));
       
   114     iRectOutlineFrameInputCandidate.LayoutRect(iPopupRectCandidate,
       
   115                                                AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_3(iPopupRectCandidate));
       
   116     iRectInsideAreaInputCandidate.LayoutRect(iPopupRectCandidate, 
       
   117                                              AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_4(iPopupRectCandidate));
       
   118     
       
   119     iRectCoverMainPaneInputEEP.LayoutRect(iPopupRectEEP, AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_1(iPopupRectEEP));
       
   120     iRectFirstShadowInputEEP.LayoutRect(iPopupRectEEP, AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_2(iPopupRectEEP));
       
   121     iRectOutlineFrameInputEEP.LayoutRect(iPopupRectEEP, AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_3(iPopupRectEEP));
       
   122     iRectInsideAreaInputEEP.LayoutRect(iPopupRectEEP, AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_4(iPopupRectEEP));    
       
   123        
       
   124     //HorizLine
       
   125 
       
   126     iEntryHorizLineWindow = AknLayoutScalable_Avkon::popup_fep_china_uni_window_g(0,0).LayoutLine();
       
   127     iEEPSecondHorizLineWindow = AknLayoutScalable_Avkon::popup_fep_china_uni_window_g(0,1).LayoutLine();
       
   128     iEEPFirstHorizLineWindow = AknLayoutScalable_Avkon::popup_fep_china_uni_window_g(1,0).LayoutLine();
       
   129     iHorizLine.LayoutRect(iPopupRectEntry, iEntryHorizLineWindow);
       
   130     iEEPFirstHorizLine.LayoutRect(iPopupRectEEP, iEEPFirstHorizLineWindow);
       
   131     iEEPSecondHorizLine.LayoutRect(iPopupRectEEP, iEEPSecondHorizLineWindow);
       
   132 
       
   133     iEntryPaneRect = iLayoutLineRectEntryPane.Rect( );
       
   134     iEntryTextLayout
       
   135         = AKN_LAYOUT_TEXT_Chinese_universal_FEP_entry_pane_texts_Line_1(0);
       
   136     TAknLayoutRect labelRect;
       
   137     labelRect.LayoutRect( iEntryPaneRect,
       
   138         AKN_LAYOUT_WINDOW_fep_entry_item_pane );
       
   139     iLayoutInputPaneText.LayoutText( labelRect.Rect( ), iEntryTextLayout );
       
   140 
       
   141     TRect windowRect = layoutRectEntry.Rect();    
       
   142     TInt height = windowRect.Height();
       
   143     TInt width = windowRect.Width();
       
   144     windowRect.iTl.iY = 0;
       
   145     windowRect.iTl.iX = 0;
       
   146     windowRect.SetHeight(height);
       
   147     windowRect.SetWidth(width);
       
   148     
       
   149     TAknLayoutRect layoutLineRectEntryPane;
       
   150     layoutLineRectEntryPane.LayoutRect(windowRect, iEntryPaneWindowLine);
       
   151     TRect entryPane = layoutLineRectEntryPane.Rect();
       
   152     // left and right arrow
       
   153     TAknWindowLineLayout leftArrowLayoutLine, rithgArrowLayoutLine;	
       
   154     leftArrowLayoutLine = AKN_LAYOUT_WINDOW_Chinese_universal_FEP_entry_pane_elements_Line_1;
       
   155     iIndiFepArrowLeft.LayoutRect(entryPane,leftArrowLayoutLine);
       
   156     rithgArrowLayoutLine = AKN_LAYOUT_WINDOW_Chinese_universal_FEP_entry_pane_elements_Line_2;
       
   157     iIndiFepArrowRight.LayoutRect(entryPane,rithgArrowLayoutLine);   	
       
   158     
       
   159     iRectCoverMainPaneInput.LayoutRect(windowRect, AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_1(windowRect));
       
   160     iRectFirstShadowInput.LayoutRect(windowRect, AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_2(windowRect));
       
   161     iRectOutlineFrameInput.LayoutRect(windowRect, AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_3(windowRect));
       
   162     iRectInsideAreaInput.LayoutRect(windowRect, AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_4(windowRect));
       
   163     
       
   164     //eep text
       
   165     TAknTextComponentLayout textLayout = AknLayoutScalable_Avkon::fep_china_uni_eep_pane_t1();
       
   166     iEEPTextLine = textLayout.LayoutLine();
       
   167     TAknLayoutText eepTextLayout;
       
   168     eepTextLayout.LayoutText( iEEPWindowRect, iEEPTextLine );
       
   169     iEEPTextColor = eepTextLayout.Color();
       
   170     const CFont* font = AknLayoutUtils::FontFromId(iEEPTextLine.FontId());
       
   171     iEEPCursorHeight = font->HeightInPixels();    
       
   172     }
       
   173 
       
   174 TAny* CAknFepUiLayoutDataMgr::RequestData(TInt aDataType)
       
   175     {
       
   176     switch ( aDataType )
       
   177         {
       
   178         case EPopupRectEntry:
       
   179             return &iPopupRectEntry;
       
   180         case EPopupRectCandatate:
       
   181             return &iPopupRectCandidate;
       
   182         case EPopupRectEEP:
       
   183             return &iPopupRectEEP;
       
   184         case EPopupHeightEntry:
       
   185             return &iPopupHeightEntry;
       
   186         case EPopupHeightEEP:
       
   187             return &iPopupHeightEEP;
       
   188         case EEntryPaneWindowLine:
       
   189             return &iEntryPaneWindowLine;
       
   190         case ECandidatePaneWindowLine:
       
   191             return &iCandidatePaneWindowLine;
       
   192         case ECandidatePaneTextLine:
       
   193             return &iCandidatePaneTextLine;
       
   194         case ECandidateWindowLine1:
       
   195             return &iCandidateWindowLine1;
       
   196         case ECandidateWindowLine2:
       
   197             return &iCandidateWindowLine2;
       
   198         case ECandidateWindowLine3:
       
   199             return &iCandidateWindowLine3;
       
   200         case ECandidateWindowLine4:
       
   201             return &iCandidateWindowLine4;
       
   202         case ELayoutCandidateItem:
       
   203             return &iLayoutCandidateItem;
       
   204         case ELayoutEntryItem:
       
   205             return &iLayoutEntryItem;
       
   206         case EOrdinalCandidateTextLayout:
       
   207             return &iOrdinalCandidateTextLayout;
       
   208         case EEEPWindowRect:
       
   209             return &iEEPWindowRect;
       
   210         case EEEPWindowLayout:
       
   211             return &iEEPWindowLayout;
       
   212         case ERectCoverMainPaneInputEntry:
       
   213             return &iRectCoverMainPaneInputEntry;
       
   214         case ERectFirstShadowInputEntry:
       
   215             return &iRectFirstShadowInputEntry;
       
   216         case ERectOutlineFrameInputEntry:
       
   217             return &iRectOutlineFrameInputEntry;
       
   218         case ERectInsideAreaInputEntry:
       
   219             return &iRectInsideAreaInputEntry;
       
   220         case ERectCoverMainPaneInputCandidate:
       
   221             return &iRectCoverMainPaneInputCandidate;
       
   222         case ERectFirstShadowInputCandidate:
       
   223             return &iRectFirstShadowInputCandidate;
       
   224         case ERectOutlineFrameInputCandidate:
       
   225             return &iRectOutlineFrameInputCandidate;
       
   226         case ERectInsideAreaInputCandidate:
       
   227             return &iRectInsideAreaInputCandidate;
       
   228         case ERectCoverMainPaneInputEEP:
       
   229             return &iRectCoverMainPaneInputEEP;
       
   230         case ERectFirstShadowInputEEP:
       
   231             return &iRectFirstShadowInputEEP;
       
   232         case ERectOutlineFrameInputEEP:
       
   233             return &iRectOutlineFrameInputEEP;
       
   234         case ERectInsideAreaInputEEP:
       
   235             return &iRectInsideAreaInputEEP;
       
   236         case ELayoutInputPaneText:
       
   237             return &iLayoutInputPaneText;
       
   238         case ELayoutLineRectEntryPane:
       
   239             return &iLayoutLineRectEntryPane;
       
   240         case EEntryTextLayout:
       
   241             return &iEntryTextLayout;
       
   242         case EEntryPaneRect:
       
   243             return &iEntryPaneRect;
       
   244         case EIndiFepArrowLeft:
       
   245             return &iIndiFepArrowLeft;
       
   246         case EIndiFepArrowRight:
       
   247             return &iIndiFepArrowRight;
       
   248         case ERectCoverMainPaneInput:
       
   249             return &iRectCoverMainPaneInput;
       
   250         case ERectFirstShadowInput:
       
   251             return &iRectFirstShadowInput;
       
   252         case ERectOutlineFrameInput:
       
   253             return &iRectOutlineFrameInput;
       
   254         case ERectInsideAreaInput:
       
   255             return &iRectInsideAreaInput;
       
   256         case EEEPTextLine:
       
   257             return &iEEPTextLine;
       
   258         case EEEPCursorHeight:
       
   259             return &iEEPCursorHeight;
       
   260         case EHorizLine:
       
   261             return &iHorizLine;
       
   262         case EEEPFirstHorizLine:
       
   263             return &iEEPFirstHorizLine;
       
   264         case EEEPSecondHorizLine:
       
   265             return &iEEPSecondHorizLine;
       
   266         case EEntryHorizLineWindow:
       
   267             return &iEntryHorizLineWindow;
       
   268         case EEEPSecondHorizLineWindow:
       
   269             return &iEEPSecondHorizLineWindow;
       
   270         case EEEPFirstHorizLineWindow:
       
   271             return &iEEPFirstHorizLineWindow;
       
   272         case EEEPTextColor:
       
   273             return &iEEPTextColor;
       
   274         default:
       
   275             break;
       
   276         }
       
   277     return NULL;
       
   278     }
       
   279 
       
   280 // End of File