camerauis/cameraapp/generic/src/CamInfoListBox.cpp
changeset 0 1ddebce53859
child 12 8c55c525d5d7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraapp/generic/src/CamInfoListBox.cpp	Thu Jan 07 16:18:56 2010 +0200
@@ -0,0 +1,80 @@
+/*
+* Copyright (c) 2007 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:  Listbox used by CamInfoListBoxContainer*
+*/
+
+
+
+// INCLUDE FILES
+#include "CamInfoListBox.h"
+#include "CamInfoListBoxModel.h"
+
+#include "CamCaptureSetupListItemDrawer.h"
+#include "CamCaptureSetupControlHandler.h"
+
+#include "CamUtility.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+CCamInfoListBox::~CCamInfoListBox()
+	{
+	
+	}
+        
+/**
+* C++ default constructor.
+*/
+CCamInfoListBox::CCamInfoListBox( MCamSettingValueObserver* aObserver,
+									CCamAppController& aController )
+:CCamCaptureSetupListBox( aObserver, aController )
+	{
+	
+	}
+
+/**
+* By default Symbian 2nd phase constructor is private.
+*/
+void CCamInfoListBox::ConstructL( CCamAppController& aController,
+								   const CCoeControl* aParent,
+        						RPointerArray<HBufC>& aSummaryTitleTextArray,
+        				 		RPointerArray<HBufC>& aSummaryDescriptionTextArray,
+        				 		TInt aResourceId )
+	{
+	iBorder = TGulBorder::ENone;
+
+	//Constructing model
+    CCamInfoListBoxModel* model =
+             CCamInfoListBoxModel::NewLC( aController, aSummaryTitleTextArray, 
+             									aSummaryDescriptionTextArray, aResourceId, Rect() );
+
+    CCamCaptureSetupListItemDrawer* itemDrawer = 
+                                CCamCaptureSetupListItemDrawer::NewL( *model );
+
+                                
+    itemDrawer->SetParentControl( aParent );
+    
+    // CEikListBox takes ownership before anything can leave.
+    // Do not need the model or drawer on the stack when call ConstructL,
+    // because CEikListBox assigns objects as member variables before
+    // ConstructL calls any leaving functions.
+	CleanupStack::Pop( model ); 
+	CEikListBox::ConstructL( model, itemDrawer, aParent, 0/*aFlags*/ );
+    // The number of items is fixed after the list box has been constructed
+    const TInt KMaxListItems = 5; // This value should come from the LAF
+    // Find the number of items to be displayed in the list box
+    iRequiredHeightInNumOfItems = Min( Model()->NumberOfItems(), KMaxListItems );
+    SetItemHeightL( iItemDrawer->MinimumCellSize().iHeight );
+	}
+
+//  End of File