diff -r 1fc85118c3ae -r 870918037e16 simpsyconfigurator/src/simpsyuicontainer.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/simpsyconfigurator/src/simpsyuicontainer.cpp Wed Sep 01 12:31:27 2010 +0100 @@ -0,0 +1,177 @@ +/* +* Copyright (c) 2005-2006 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: Simulation PSY Configuration UI server application class. +* +*/ + +#include + +#include "simpsyuiappui.h" +#include "simpsyuicontainer.h" +#include "simpsyuilbmodel.h" + +// --------------------------------------------------------- +// void CSimPsyUiContainer::ConstructL +// --------------------------------------------------------- +// +void CSimPsyUiContainer::ConstructL( const TRect& aRect, + CSimPsyUiAppUi* aAppUi ) + { + if( !aAppUi ) + { + User::Leave( KErrArgument ); + } + iAppUi = aAppUi; + CreateWindowL(); + CreateListboxL(); + SetRect(aRect); + ActivateL(); + } + +// --------------------------------------------------------- +// CSimPsyUiContainer::~CSimPsyUiContainer +// --------------------------------------------------------- +// +CSimPsyUiContainer::~CSimPsyUiContainer() + { + delete iListBox; + iListBox = NULL; + } + +// --------------------------------------------------------- +// TKeyResponse CSimPsyUiContainer::OfferKeyEventL +// --------------------------------------------------------- +// +TKeyResponse CSimPsyUiContainer::OfferKeyEventL + ( const TKeyEvent& /*aKeyEvent*/, + TEventCode /*aType*/ ) + { + return TKeyResponse( EKeyWasConsumed ) ; + } + +// --------------------------------------------------------- +// void CSimPsyUiContainer::UpdateListBox +// --------------------------------------------------------- +// +void CSimPsyUiContainer::UpdateListBox() + { + if ( iListBox ) + { + iListBox->DrawDeferred(); + } + } + +// --------------------------------------------------------- +// void CSimPsyUiContainer::CreateListboxL +// --------------------------------------------------------- +// +void CSimPsyUiContainer::CreateListboxL() + { + + delete iListBox; + iListBox = NULL; + + iListBox = new( ELeave ) CAknDoubleStyleListBox; + iListBox->SetContainerWindowL( *this ); + iListBox->ConstructL( this, EAknGenericListBoxFlags); + + CSimPsyUiLBModel* lLBModel = CSimPsyUiLBModel::NewLC(); + + iListBox->Model()->SetItemTextArray( lLBModel ); + iListBox->Model()->SetOwnershipType( ELbmOwnsItemArray ); + CleanupStack::Pop(lLBModel); // model + + iListBox->DrawNow(); + } + +// --------------------------------------------------------- +// CSimPsyUiContainer::SizeChanged() +// Called by framework when the view size is changed +// --------------------------------------------------------- +// +void CSimPsyUiContainer::SizeChanged() + { + if ( iListBox ) + { + iListBox->SetRect( Rect() ); + } + } + +// --------------------------------------------------------- +// CSimPsyUiContainer::CountComponentControls() const +// --------------------------------------------------------- +// +TInt CSimPsyUiContainer::CountComponentControls() const + { + if( iListBox ) + { + return 1; + } + else + { + return 0; + } + } + +// --------------------------------------------------------- +// CSimPsyUiContainer::ComponentControl +// --------------------------------------------------------- +// +CCoeControl* CSimPsyUiContainer::ComponentControl( TInt /*aIndex*/ ) const + { + if( iListBox ) + { + return iListBox; + } + else + { + return NULL; + } + } +// --------------------------------------------------------- +// CSimPsyUiContainer::FocusChanged +// --------------------------------------------------------- +// +void CSimPsyUiContainer::FocusChanged(TDrawNow aDrawNow) + { + if( iListBox ) + { + iListBox->SetFocus( IsFocused(), aDrawNow ); + } + } + +// ----------------------------------------------------------------------------- +// CLocMainContainer::HandleResourceChange +// ----------------------------------------------------------------------------- +// +void CSimPsyUiContainer::HandleResourceChange(TInt aType) + { + CCoeControl::HandleResourceChange(aType); + switch( aType ) + { + case KEikDynamicLayoutVariantSwitch: + { + if( iAppUi ) + { + SetRect(iAppUi->ClientRect()); + DrawDeferred(); + } + break; + } + default: + { + break; + } + } + }