--- a/uiservicetab/vimpstdetailsviewplugin/src/cvimpstdetailsviewcontainer.cpp Thu Aug 19 09:41:53 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,413 +0,0 @@
-/*
-* Copyright (c) 2008 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: Implementation of detailsview plugin control container
- *
-*/
-
-
-// INCLUDE FILES
-#include "cvimpstdetailsviewcontainer.h"
-
-#include "cvimpstdetailsheadercontrol.h"
-#include "cvimpstdetailsviewlistboxmodel.h"
-#include "cvimpstdetailsviewbrandhandler.h"
-#include "mvimpstdetailspresencehandler.h"
-#include "cvimpstfieldpropertyarray.h"
-#include "cvimpstfieldproperty.h"
-#include "vimpstdetailsview.hrh"
-#include <vimpstdetailsviewpluginrsc.rsg>
-
-// System includes
-#include <aknlists.h>
-#include <bautils.h>
-#include <layoutmetadata.cdl.h>
-#include <aknlayoutscalable_apps.cdl.h>
-#include <AknsBasicBackgroundControlContext.h>
-// virtual phonebook
-#include <MVPbkStoreContact.h>
-
-#include "vimpstextentionuiuid.h"
-#include "meco.hlp.hrh"
-
-_LIT(KVIMPSTDetailsViewDllResFileName, "\\resource\\vimpstdetailsviewpluginrsc.rsc" );
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CVIMPSTDetailsViewContainer::ConstructL()
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CVIMPSTDetailsViewContainer::ConstructL()
- {
- // Create the listbox
- RFs& fsSession( CCoeEnv::Static()->FsSession() );
- TFileName fileName( KVIMPSTDetailsViewDllResFileName );
- BaflUtils::NearestLanguageFile( fsSession , fileName);
-
- iResourceFile.OpenL(fsSession, fileName);
- iResourceFile.ConfirmSignatureL();
-
- // Create the header
- iHeaderCtrl = CVIMPSTDetailsHeaderControl::NewL( iBrandHandler, iPresenceHandler );
- iHeaderCtrl->SetContainerWindowL( *this );
-
- // Get the skin background for the view
- iBackground = CAknsBasicBackgroundControlContext::NewL(
- KAknsIIDQsnBgAreaMain, TRect( 0, 0, 0, 0 ), EFalse );
-
-
- iListBox = new(ELeave) CAknFormDoubleGraphicStyleListBox;
-
- iListBox->ConstructL(this, EAknListBoxLoopScrolling);
- iListBox->View()->SetListEmptyTextL(KNullDesC);
- iListBox->SetContainerWindowL(*this);
- iListBox->CreateScrollBarFrameL(ETrue);
- iListBox->ScrollBarFrame()->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff,
- CEikScrollBarFrame::EAuto);
- iListBox->SetMopParent(this);
-
- iListBox->ItemDrawer()->FormattedCellData()->EnableMarqueeL( ETrue );
-
- CAknIconArray* iconArray = iBrandHandler.LoadIconsLC();
- // Set icon array
- iListBox->ItemDrawer()->ColumnData()->SetIconArray(iconArray);
- CleanupStack::Pop(); // iconArray
-
- // Read field property resource strucutre array
- HBufC8* fieldBuffer = iResourceFile.AllocReadLC( R_VIMPST_FIELD_PROPERTIES ) ;
- // reader ownership to model
- iListBoxModel = CVIMPSTDetailsViewListBoxModel::NewL(*iListBox, iPresenceHandler, fieldBuffer);
- CleanupStack::Pop(); // fieldBuffer
- iListBox->Model()->SetItemTextArray(iListBoxModel);
- iListBox->Model()->SetOwnershipType(ELbmDoesNotOwnItemArray);
-
- //Set listbox observer
- iListBox->SetListBoxObserver( this );
- iListBox->ActivateL();
-
- }
-
-// -----------------------------------------------------------------------------
-// CVIMPSTDetailsViewContainer::CVIMPSTDetailsViewContainer()
-// C++ default constructor can NOT contain any code, that might leave.
-// -----------------------------------------------------------------------------
-//
-CVIMPSTDetailsViewContainer::CVIMPSTDetailsViewContainer(const TUid& aPluginUid,
- CVIMPSTDetailsViewBrandHandler& aBrandHandler,
- MVIMPSTDetailsPresenceHandler& aPresenceHandler,
- TInt aFocusedListIndex )
- :
- iPluginUid(aPluginUid),
- iBrandHandler( aBrandHandler ),
- iPresenceHandler( aPresenceHandler ),
- iFocusedListIndex( aFocusedListIndex )
- {
- //No implementation needed.
- }
-
-
-// -----------------------------------------------------------------------------
-// CVIMPSTDetailsViewContainer::~CVIMPSTDetailsViewContainer()
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CVIMPSTDetailsViewContainer::~CVIMPSTDetailsViewContainer()
- {
- delete iBackground;
- delete iListBoxModel;
- delete iListBox;
- delete iHeaderCtrl;
- iResourceFile.Close();
- }
-
-// -----------------------------------------------------------------------------
-// CVIMPSTDetailsViewContainer::Draw()
-// -----------------------------------------------------------------------------
-//
-void CVIMPSTDetailsViewContainer::Draw(const TRect& /*aRect*/) const
- {
- // Draw the background using skin
- if ( iBackground )
- {
- AknsDrawUtils::Background(
- AknsUtils::SkinInstance(), iBackground, this, SystemGc(), Rect() );
- }
- }
-
-// --------------------------------------------------------------------------
-// CVIMPSTDetailsViewContainer::CountComponentControls
-// --------------------------------------------------------------------------
-//
-TInt CVIMPSTDetailsViewContainer::CountComponentControls() const
- {
- // two control has been used , one header control and another list box
- return 2;
- }
-
-// --------------------------------------------------------------------------
-// CVIMPSTDetailsViewContainer::ComponentControl
-// --------------------------------------------------------------------------
-//
-CCoeControl* CVIMPSTDetailsViewContainer::ComponentControl(TInt aIndex) const
- {
- switch ( aIndex )
- {
- case 0:
- return iHeaderCtrl;
- case 1:
- return iListBox;
- default:
- return NULL;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CVIMPSTDetailsViewContainer::MopSupplyObject()
-// -----------------------------------------------------------------------------
-//
-TTypeUid::Ptr CVIMPSTDetailsViewContainer::MopSupplyObject(TTypeUid aId)
- {
- // For skinning
- if ( iBackground && aId.iUid == MAknsControlContext::ETypeId )
- {
- return MAknsControlContext::SupplyMopObject( aId, iBackground );
- }
- return CCoeControl::MopSupplyObject( aId );
- }
-
- // -----------------------------------------------------------------------------
-// CVIMPSTDetailsViewContainer::FocusChanged()
-// -----------------------------------------------------------------------------
-//
-void CVIMPSTDetailsViewContainer::FocusChanged( TDrawNow aDrawNow )
- {
- // For enabling animated hilight (if in skin supports it)
- CCoeControl::FocusChanged( aDrawNow );
- if( iListBox )
- {
- iListBox->SetFocus( IsFocused(), aDrawNow );
- }
- }
-
-// --------------------------------------------------------------------------
-// CVIMPSTDetailsViewContainer::ListBox
-// --------------------------------------------------------------------------
-//
-CAknFormDoubleGraphicStyleListBox& CVIMPSTDetailsViewContainer::ListBox() const
- {
- return *iListBox;
- }
-
-// --------------------------------------------------------------------------
-// CVIMPSTDetailsViewContainer::ListBoxModel
-// --------------------------------------------------------------------------
-//
-CVIMPSTDetailsViewListBoxModel& CVIMPSTDetailsViewContainer::ListBoxModel() const
- {
- return *iListBoxModel;
- }
-
-// --------------------------------------------------------------------------
-// CVIMPSTDetailsViewContainer::OfferKeyEventL
-// --------------------------------------------------------------------------
-//
-TKeyResponse CVIMPSTDetailsViewContainer::OfferKeyEventL(
- const TKeyEvent& aKeyEvent, TEventCode aType)
- {
- //Temporary solution for handling key events.
- TKeyResponse result = EKeyWasNotConsumed;
-
- switch (aKeyEvent.iCode)
- {
- case EKeyLeftArrow:
- case EKeyRightArrow:
- return result;
- }
-
- result = iListBox->OfferKeyEventL(aKeyEvent, aType);
-
- /* FIX for KBAA-7R3AXC bug */
- if (result == EKeyWasNotConsumed && IsFocused())
- {
- // Ignore Send Key up and down events to prevent Dialer appearance
- // on top of cca application.
- if ((aType == EEventKeyDown || aType == EEventKeyUp)
- && aKeyEvent.iScanCode == EStdKeyYes)
- {
- result = EKeyWasConsumed;
- }
- }
-
- return result;
- }
-
-// --------------------------------------------------------------------------
-// CVIMPSTDetailsViewContainer::SizeChanged
-// --------------------------------------------------------------------------
-//
-void CVIMPSTDetailsViewContainer::SizeChanged()
- {
- TRect drawRect( Rect() );
-
- // Listbox and header
- if (!Layout_Meta_Data::IsLandscapeOrientation())
- {// Portrait
- AknLayoutUtils::LayoutControl(
- iListBox, drawRect, AknLayoutScalable_Apps::cl_listscroll_pane(0));
- TRect listRect = iListBox->Rect();
- listRect.iTl.iX = Rect().iTl.iX;
- listRect.iBr.iX = Rect().iBr.iX;
- iListBox->SetRect(listRect);
- TAknLayoutRect headerRect;
- headerRect.LayoutRect(Rect(), AknLayoutScalable_Apps::cl_header_pane(0));
- iHeaderCtrl->SetRect(headerRect.Rect());
- }
- else
- {// Landscape
- AknLayoutUtils::LayoutControl(
- iListBox, drawRect, AknLayoutScalable_Apps::cl_listscroll_pane(1));
- TRect listRect = iListBox->Rect();
- listRect.iBr.iX = Rect().iBr.iX;
- iListBox->SetRect(listRect);
- TAknLayoutRect headerRect;
- headerRect.LayoutRect(Rect(), AknLayoutScalable_Apps::cl_header_pane(1));
- iHeaderCtrl->SetRect(headerRect.Rect());
- }
- // Background skin
- if ( iBackground )
- {
- iBackground->SetRect( drawRect );
- }
-
- DrawNow();
- }
-
-// --------------------------------------------------------------------------
-// CVIMPSTDetailsViewContainer::HandleResourceChange
-// --------------------------------------------------------------------------
-//
-void CVIMPSTDetailsViewContainer::HandleResourceChange(TInt aType)
- {
- CCCAppViewPluginAknContainer::HandleResourceChange(aType);
- }
-
-// -----------------------------------------------------------------------------
-// CVIMPSTDetailsViewContainer::GetHelpContext
-// -----------------------------------------------------------------------------
-//
-void CVIMPSTDetailsViewContainer::GetHelpContext(TCoeHelpContext& aContext ) const
- {
- TUid KHelpUid = { KHELPUID };
- aContext.iMajor = KHelpUid;
- aContext.iContext = KSERVTAB_HLP_CONTACT_DETAILS;
- }
-
-// -----------------------------------------------------------------------------
-// CVIMPSTDetailsViewContainer::HandleListBoxEventL()
-// -----------------------------------------------------------------------------
-//
-void CVIMPSTDetailsViewContainer::HandleListBoxEventL(
- CEikListBox* /*aListBox*/, TListBoxEvent /*aEventType*/ )
- {
- // Handle pointer events
- }
-
-// --------------------------------------------------------------------------
-// CVIMPSTDetailsViewContainer::PresenceChangedL
-// --------------------------------------------------------------------------
-//
-void CVIMPSTDetailsViewContainer::PresenceChangedL()
- {
- iListBox->HandleItemRemovalL();
- iListBoxModel->AddFieldsDataL();
- iHeaderCtrl->LabelsSizeChangedL();
- iHeaderCtrl->HeaderSizeChangedL();
- }
-
-// --------------------------------------------------------------------------
-// CVIMPSTDetailsViewContainer::GetTitleTextL
-// --------------------------------------------------------------------------
-//
-HBufC* CVIMPSTDetailsViewContainer::GetTitleTextLC( TStoreType aStoreType )
- {
- TInt count = 0;
- HBufC* titleText = NULL;
-
- if( iListBoxModel )
- {
- count = iListBoxModel->FieldsCount();
- }
- if( aStoreType == EStoreLocal && count >0 )
- {
- CVIMPSTFieldPropertyArray& fieldArry = iListBoxModel->FieldsArray();
-
- CVIMPSTFieldProperty* field = fieldArry.GetFieldById( EVIMPSTFieldIdFirstName );
- TPtrC firstName = field ? field->FieldDataL() : KNullDesC;
-
- field = fieldArry.GetFieldById( EVIMPSTFieldIdLastName );
- TPtrC lastName = field ? field->FieldDataL() : KNullDesC;
- if( firstName.Length() || lastName.Length() )
- {
- titleText = HBufC::NewLC( firstName.Length() + lastName.Length() +1 ); // pushed on clean up stack
- if( titleText)
- {
- TPtr titleTextPtr( titleText->Des() );
- titleTextPtr.Append(firstName);
- titleTextPtr.Append(KSpace);
- titleTextPtr.Append(lastName);
- }
- }
- }
- else if( count >0)
- {
- CVIMPSTFieldPropertyArray& fieldArry = iListBoxModel->FieldsArray();
- CVIMPSTFieldProperty* field = fieldArry.GetFieldById( EVIMPSTFieldIdImpp );
- TPtrC title = field ? field->FieldDataL() : KNullDesC;
- titleText = iListBoxModel->DisplayId( title ).AllocLC(); // pushed on clean up stack
- }
- return titleText;
- }
-// --------------------------------------------------------------------------
-// CVIMPSTDetailsViewContainer::CreatePresentationL
-// --------------------------------------------------------------------------
-//
-void CVIMPSTDetailsViewContainer::CreatePresentationL(MVPbkStoreContact& aContact,TDesC& aServiceName, TStoreType aStoreType )
- {
- iListBoxModel->CreateListPresentationL( aContact,
- iFocusedListIndex,
- aServiceName, aStoreType);
-
- iHeaderCtrl->CreateHeaderPresentationL( aContact );
- iHeaderCtrl->HeaderSizeChangedL();
- }
-
-// --------------------------------------------------------------------------
-// CVIMPSTDetailsViewContainer::CreateEmptyPresentationL
-// --------------------------------------------------------------------------
-//
-void CVIMPSTDetailsViewContainer::CreateEmptyPresentationL()
- {
- if( !iListBoxModel->MdcaCount() )
- {
- iListBoxModel->SetEmptyTextsToListboxL();
- iHeaderCtrl->ClearL(); // clear the header data
- }
- }
-// End of File
-
-
-
-
-