phonebookui/Speeddial/VPbkControlSrc/SpdiaGridVPbk.cpp
changeset 0 e686773b3f54
child 3 04ab22b956c2
equal deleted inserted replaced
-1:000000000000 0:e686773b3f54
       
     1 /*
       
     2 * Copyright (c) 2002 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:     This class provides drawing a shadow.
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 
       
    21 // INCLUDE FILES
       
    22 #include "SpdiaControl.hrh"
       
    23 #include "speeddialprivate.h"
       
    24 #include "SpdiaGridVPbk.h" 
       
    25 #include "Speeddial.laf" 
       
    26 
       
    27 #include <AknsControlContext.h>
       
    28 #include <AknsDrawUtils.h>
       
    29 #include <applayout.cdl.h>
       
    30 #include <aknlayoutscalable_apps.cdl.h>
       
    31 #include <layoutmetadata.cdl.h>
       
    32 #include <akntitle.h>
       
    33 #include <StringLoader.h>
       
    34 #include <Spdctrl.rsg>
       
    35 const TInt KItemPrimary(3);
       
    36 const TInt KItemSecondary(3);
       
    37 
       
    38 // ================= MEMBER FUNCTIONS =======================
       
    39 // ---------------------------------------------------------
       
    40 // CSpdiaGridVPbk::NewL()
       
    41 // 
       
    42 // ---------------------------------------------------------
       
    43 CSpdiaGridVPbk* CSpdiaGridVPbk::NewL(const CSpeedDialPrivate& aControl)
       
    44 {
       
    45 	CSpdiaGridVPbk* self = new (ELeave) CSpdiaGridVPbk(aControl);
       
    46 	return self;
       
    47 }
       
    48 
       
    49 // ---------------------------------------------------------
       
    50 // CSpdiaGridVPbk::CSpdiaGridVPbk()
       
    51 // 
       
    52 // ---------------------------------------------------------
       
    53 CSpdiaGridVPbk::CSpdiaGridVPbk()
       
    54 {
       
    55 }
       
    56 
       
    57 // ---------------------------------------------------------
       
    58 // CSpdiaGridVPbk::CSpdiaGridVPbk()
       
    59 // 
       
    60 // ---------------------------------------------------------
       
    61 CSpdiaGridVPbk::CSpdiaGridVPbk(const CSpeedDialPrivate& aControl)
       
    62 {
       
    63 	iControl = CONST_CAST(CSpeedDialPrivate*, &aControl);
       
    64 }
       
    65 
       
    66 // ---------------------------------------------------------
       
    67 // CSpdiaGridVPbk::~CSpdiaGridVPbk()
       
    68 // 
       
    69 // ---------------------------------------------------------
       
    70 CSpdiaGridVPbk::~CSpdiaGridVPbk()
       
    71 {
       
    72 }
       
    73 // ---------------------------------------------------------
       
    74 // CSpdiaGridVPbk::Draw()
       
    75 // 
       
    76 // ---------------------------------------------------------
       
    77 void CSpdiaGridVPbk::Draw(const TRect& aRect) const
       
    78 {
       
    79     CWindowGc& gc = SystemGc();
       
    80     AknsDrawUtils::Background(
       
    81        AknsUtils::SkinInstance(),
       
    82        AknsDrawUtils::ControlContext( iControl ),
       
    83        this,
       
    84        gc,
       
    85        iControl->Rect() );
       
    86     if(iControl)
       
    87 	{
       
    88 		iControl->DrawShadow( gc );
       
    89 	}
       
    90 
       
    91     CAknGrid::Draw(aRect);
       
    92 }
       
    93 
       
    94 // ---------------------------------------------------------
       
    95 // CSpdiaGridVPbk::SizeChanged()
       
    96 // 
       
    97 // ---------------------------------------------------------
       
    98 void CSpdiaGridVPbk::SizeChanged()
       
    99 {
       
   100 	TRAP_IGNORE(SizeChangedL());
       
   101 }
       
   102 // ---------------------------------------------------------
       
   103 // CSpdiaGridVPbk::SizeChangedL
       
   104 // 
       
   105 // ---------------------------------------------------------
       
   106 void CSpdiaGridVPbk::SizeChangedL()
       
   107 {
       
   108 	//Scalable UI.
       
   109 	TAknLayoutRect areaLayout;
       
   110 	TRect mainPaneRect ;
       
   111     TRect statusPaneRect;
       
   112    		
       
   113 	if( AknLayoutUtils::ScalableLayoutInterfaceAvailable() )
       
   114 	 {
       
   115 		TAknLayoutRect mainQdialPaneRect;
       
   116    		TAknLayoutRect gridQdialPaneRect;
       
   117   	 if (Layout_Meta_Data::IsLandscapeOrientation())
       
   118 		{
       
   119 		 AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane,mainPaneRect);
       
   120 		 AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EStatusPane,statusPaneRect);
       
   121 		 mainPaneRect.iTl = statusPaneRect.iTl;
       
   122 		}
       
   123 		else
       
   124 		{
       
   125 		 AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane,mainPaneRect);
       
   126 	     AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EStatusPane,statusPaneRect);
       
   127 	     mainPaneRect.iTl= statusPaneRect.iTl;
       
   128 		}
       
   129    		mainQdialPaneRect.LayoutRect(mainPaneRect,AknLayoutScalable_Apps::main_qdial_pane().LayoutLine());
       
   130    		gridQdialPaneRect.LayoutRect(mainQdialPaneRect.Rect(),AknLayoutScalable_Apps::grid_qdial_pane().LayoutLine());
       
   131    		TAknWindowLineLayout area = AknLayoutScalable_Apps::grid_qdial_pane().LayoutLine();
       
   132 	    areaLayout.LayoutRect(mainQdialPaneRect.Rect() ,area);
       
   133 	
       
   134 	 }
       
   135 	else
       
   136 	  {
       
   137 	   TAknWindowLineLayout area = AppLayout::Speed_Dial_descendants_Line_1();
       
   138 	   areaLayout.LayoutRect(Rect() ,area);
       
   139 	  }
       
   140 	//SetPosition( TPoint(spdia_main_pane_grid_l, spdia_main_pane_grid_t) );
       
   141 	TInt areaWidth = areaLayout.Rect().Width();
       
   142     TInt areaHeight = areaLayout.Rect().Height();
       
   143 	TInt areaIl = areaLayout.Rect().iTl.iX;
       
   144 	TInt areaIt = areaLayout.Rect().iTl.iY;
       
   145 	SetPosition( TPoint(areaIl, areaIt) );
       
   146     //SetSizeWithoutNotification( TSize(spdia_main_pane_grid_w, spdia_main_pane_grid_h) );
       
   147 	SetSizeWithoutNotification( TSize(areaWidth , areaHeight)); 
       
   148 
       
   149     CAknQdialStyleGrid::SizeChanged();
       
   150 	//Scalable UI 
       
   151 	if( AknLayoutUtils::ScalableLayoutInterfaceAvailable() )
       
   152 		{
       
   153 		TAknLayoutRect mainQdialPaneRect;
       
   154    		TAknLayoutRect gridQdialPaneRect;
       
   155    		TAknLayoutRect callQdialPaneRect;
       
   156    		
       
   157 		if (Layout_Meta_Data::IsLandscapeOrientation())
       
   158 		{
       
   159 		 AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane,mainPaneRect);
       
   160 		 AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EStatusPane,statusPaneRect);
       
   161 		 mainPaneRect.iTl = statusPaneRect.iTl;
       
   162 		}
       
   163 		else
       
   164 		{
       
   165 		 AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane,mainPaneRect);
       
   166 	     AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EStatusPane,statusPaneRect);
       
   167 	     mainPaneRect.iTl= statusPaneRect.iTl;
       
   168 		}
       
   169    		mainQdialPaneRect.LayoutRect(mainPaneRect,AknLayoutScalable_Apps::main_qdial_pane().LayoutLine());
       
   170    		gridQdialPaneRect.LayoutRect(mainQdialPaneRect.Rect(),AknLayoutScalable_Apps::grid_qdial_pane().LayoutLine());
       
   171     	areaLayout.LayoutRect(gridQdialPaneRect.Rect(), AknLayoutScalable_Apps::cell_qdial_pane(0,0).LayoutLine());
       
   172 	
       
   173 		}
       
   174 	 else
       
   175 		{
       
   176 		 TAknWindowLineLayout area = AppLayout::cell_qdial_pane(0,0);
       
   177 		 areaLayout.LayoutRect(Rect() ,area);
       
   178 		}
       
   179 	areaWidth = areaLayout.Rect().Width();
       
   180     areaHeight = areaLayout.Rect().Height();
       
   181     if(AknLayoutUtils::LayoutMirrored())
       
   182     {
       
   183     TRAP_IGNORE(SetLayoutL(
       
   184 			EFalse,  // aVerticalOrientation
       
   185 			EFalse,  // aLeftToRight
       
   186 			ETrue,  // aTopToBottom
       
   187 			KItemPrimary,  // aNumOfItemsInPrimaryOrient
       
   188 			KItemSecondary,  // aNumOfItemsInSecondaryOrient
       
   189 			TSize(areaWidth, areaHeight )  //NewScalableUI changes          // aWidthOfSpaceBetweenItems=0 
       
   190 			
       
   191 		)
       
   192 	);	
       
   193     	
       
   194     }
       
   195     else
       
   196     {
       
   197     TRAP_IGNORE(SetLayoutL(
       
   198 			EFalse,  // aVerticalOrientation
       
   199 			ETrue,  // aLeftToRight
       
   200 			ETrue,  // aTopToBottom
       
   201 			KItemPrimary,  // aNumOfItemsInPrimaryOrient
       
   202 			KItemSecondary,  // aNumOfItemsInSecondaryOrient
       
   203 			TSize(areaWidth, areaHeight )  //NewScalableUI changes          // aWidthOfSpaceBetweenItems=0 
       
   204 			
       
   205 		)
       
   206 	);
       
   207     }
       
   208 	
       
   209 	CFormattedCellListBoxData* data = ItemDrawer()->FormattedCellData();
       
   210 
       
   211 	data->SetTransparentSubCellL(SDM_TN_CIF_TURNED, ETrue);  //  5
       
   212     data->SetTransparentSubCellL(SDM_TN_CIF,        ETrue);  //  7
       
   213     data->SetTransparentSubCellL(SDM_TN_VGA_TURNED, ETrue);  //  9
       
   214     data->SetTransparentSubCellL(SDM_TN_VGA,        ETrue);  // 11
       
   215     data->SetTransparentSubCellL(SDM_TN_OTHER,      ETrue);  // 13
       
   216     
       
   217     ScrollBarFrame()->SetScrollBarVisibilityL(
       
   218         CEikScrollBarFrame::EOff, CEikScrollBarFrame::EOff );
       
   219 	data->SetBackgroundSkinStyle(&KAknsIIDQsnBgAreaMainQdial, mainPaneRect);
       
   220 	iControl->SetLayout( Rect() );
       
   221     if (Layout_Meta_Data::IsLandscapeOrientation())
       
   222 	{
       
   223 	CEikStatusPane *sp = CEikonEnv::Static()->AppUiFactory()->StatusPane();
       
   224     CAknTitlePane* title =  STATIC_CAST(CAknTitlePane*, sp->ControlL( TUid::Uid(EEikStatusPaneUidTitle) ) );
       
   225     HBufC* prompt = StringLoader::LoadLC(R_QTN_SPDIA_TITLE, iCoeEnv);
       
   226     title->SetTextL(*prompt);
       
   227     title->MakeVisible(ETrue);
       
   228     title->DrawNow();                              	
       
   229 	CleanupStack::PopAndDestroy(prompt);
       
   230 	CEikonEnv::Static()->AppUiFactory()->StatusPane()->SwitchLayoutL( R_AVKON_STATUS_PANE_LAYOUT_USUAL );
       
   231 	}
       
   232 }
       
   233 
       
   234 
       
   235 // ---------------------------------------------------------
       
   236 // CSpdiaGridVPbk::MopSupplyObject()
       
   237 // Pass skin information if need.
       
   238 // ---------------------------------------------------------
       
   239 //
       
   240 TTypeUid::Ptr CSpdiaGridVPbk::MopSupplyObject(TTypeUid aId)
       
   241 {
       
   242     if(aId.iUid == MAknsControlContext::ETypeId)
       
   243     {
       
   244         return MAknsControlContext::SupplyMopObject( aId, AknsDrawUtils::ControlContext(iControl) );
       
   245     }
       
   246     return CCoeControl::MopSupplyObject( aId );
       
   247 }
       
   248 
       
   249 // End of File