phonebookui/Phonebook2/UIControls/src/CPbk2ContactUiControlSubstitute.cpp
changeset 0 e686773b3f54
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookui/Phonebook2/UIControls/src/CPbk2ContactUiControlSubstitute.cpp	Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,533 @@
+/*
+* Copyright (c) 2005-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:  Phonebook 2 UI control substitute.
+*
+*/
+
+
+// INCLUDE FILES
+#include <CPbk2ContactUiControlSubstitute.h>
+
+// Virtual Phonebook
+#include <MVPbkStoreContact.h>
+#include <MVPbkBaseContact.h>
+
+// System includes
+#include <e32base.h>
+#include <AknsSkinInstance.h>
+#include <AknsUtils.h>
+#include <AknsControlContext.h>
+#include <AknsDrawUtils.h>
+#include <AknsBasicBackgroundControlContext.h>
+
+/// Unnamed namespace for local definitions
+namespace {
+
+const TInt KOnlyOneContactStore = 1;
+
+} /// namespace
+
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::CPbk2ContactUiControlSubstitute
+// --------------------------------------------------------------------------
+//
+inline CPbk2ContactUiControlSubstitute::CPbk2ContactUiControlSubstitute() :
+    iFocusedFieldIndex( KErrNotFound )
+    {
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::~CPbk2ContactUiControlSubstitute
+// --------------------------------------------------------------------------
+//
+EXPORT_C CPbk2ContactUiControlSubstitute::~CPbk2ContactUiControlSubstitute()
+    {
+    delete iBgSkinContext;
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::NewL
+// --------------------------------------------------------------------------
+//
+EXPORT_C CPbk2ContactUiControlSubstitute*
+        CPbk2ContactUiControlSubstitute::NewL()
+    {
+    CPbk2ContactUiControlSubstitute* self =
+        new ( ELeave ) CPbk2ContactUiControlSubstitute;
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::ConstructL
+// --------------------------------------------------------------------------
+//
+inline void CPbk2ContactUiControlSubstitute::ConstructL()
+    {
+    // Create background control context for skinning the background
+    iBgSkinContext = CAknsBasicBackgroundControlContext::NewL
+        ( KAknsIIDQsnBgAreaMain, Rect(), EFalse );
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::SetParentUiControl
+// --------------------------------------------------------------------------
+//
+EXPORT_C void CPbk2ContactUiControlSubstitute::SetParentUiControl
+        ( MPbk2ContactUiControl& aParentUiControl )
+    {
+    iParentUiControl = &aParentUiControl;
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::SetSelectedStore
+// --------------------------------------------------------------------------
+//
+EXPORT_C void CPbk2ContactUiControlSubstitute::SetSelectedStore
+        ( MVPbkContactStore& aContactStore )
+    {
+    iContactStore = &aContactStore;
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::SetFocusedStoreContact
+// --------------------------------------------------------------------------
+//
+EXPORT_C void CPbk2ContactUiControlSubstitute::SetFocusedStoreContact
+        ( const MVPbkStoreContact& aContact )
+    {
+    iStoreContact = &aContact;
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::SetFocusedField
+// --------------------------------------------------------------------------
+//
+EXPORT_C void CPbk2ContactUiControlSubstitute::SetFocusedField
+        ( const MVPbkBaseContactField& aContactField )
+    {
+    iContactField = &aContactField;
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::SetFocusedFieldIndex
+// --------------------------------------------------------------------------
+//
+EXPORT_C void CPbk2ContactUiControlSubstitute::SetFocusedFieldIndex
+        ( TInt aFieldIndex )
+    {
+    iFocusedFieldIndex = aFieldIndex;
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::ParentControl
+// --------------------------------------------------------------------------
+//
+MPbk2ContactUiControl* CPbk2ContactUiControlSubstitute::ParentControl() const
+    {
+    return iParentUiControl;
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::NumberOfContacts
+// --------------------------------------------------------------------------
+//
+TInt CPbk2ContactUiControlSubstitute::NumberOfContacts() const
+    {
+    return KOnlyOneContactStore;
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::FocusedContactL
+// --------------------------------------------------------------------------
+//
+const MVPbkBaseContact*
+        CPbk2ContactUiControlSubstitute::FocusedContactL() const
+    {
+    return static_cast<const MVPbkBaseContact*>( iStoreContact );
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::FocusedViewContactL
+// --------------------------------------------------------------------------
+//
+const MVPbkViewContact*
+        CPbk2ContactUiControlSubstitute::FocusedViewContactL() const
+    {
+    return NULL;
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::FocusedStoreContact
+// --------------------------------------------------------------------------
+//
+const MVPbkStoreContact*
+        CPbk2ContactUiControlSubstitute::FocusedStoreContact() const
+    {
+    return iStoreContact;
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::SetFocusedContactL
+// --------------------------------------------------------------------------
+//
+void CPbk2ContactUiControlSubstitute::SetFocusedContactL
+        ( const MVPbkBaseContact& /*aContact*/ )
+    {
+    // Do nothing
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::SetFocusedContactL
+// --------------------------------------------------------------------------
+//
+void CPbk2ContactUiControlSubstitute::SetFocusedContactL(
+        const MVPbkContactBookmark& /*aContactBookmark*/ )
+    {
+    // Do nothing
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::SetFocusedContactL
+// --------------------------------------------------------------------------
+//
+void CPbk2ContactUiControlSubstitute::SetFocusedContactL(
+        const MVPbkContactLink& /*aContactLink*/ )
+    {
+    // Do nothing
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::FocusedContactIndex
+// --------------------------------------------------------------------------
+//
+TInt CPbk2ContactUiControlSubstitute::FocusedContactIndex() const
+    {
+    return KErrNotFound;
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::SetFocusedContactIndexL
+// --------------------------------------------------------------------------
+//
+void CPbk2ContactUiControlSubstitute::SetFocusedContactIndexL
+        ( TInt /*aIndex*/ )
+    {
+    // Do nothing
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::NumberOfContactFields
+// --------------------------------------------------------------------------
+//
+TInt CPbk2ContactUiControlSubstitute::NumberOfContactFields() const
+    {
+    return KErrNotSupported;
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::FocusedField
+// --------------------------------------------------------------------------
+//
+const MVPbkBaseContactField*
+        CPbk2ContactUiControlSubstitute::FocusedField() const
+    {
+    return iContactField;
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::FocusedFieldIndex
+// --------------------------------------------------------------------------
+//
+TInt CPbk2ContactUiControlSubstitute::FocusedFieldIndex() const
+    {
+    return iFocusedFieldIndex;
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::ContactsMarked
+// --------------------------------------------------------------------------
+//
+TBool CPbk2ContactUiControlSubstitute::ContactsMarked() const
+    {
+    return EFalse;
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::SelectedContactsL
+// --------------------------------------------------------------------------
+//
+MVPbkContactLinkArray*
+        CPbk2ContactUiControlSubstitute::SelectedContactsL() const
+    {
+    return NULL;
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::SelectedContactsOrFocusedContactL
+// --------------------------------------------------------------------------
+//
+MVPbkContactLinkArray* CPbk2ContactUiControlSubstitute::
+        SelectedContactsOrFocusedContactL() const
+    {
+    return NULL;
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::SelectedContactsIteratorL
+// --------------------------------------------------------------------------
+//
+MPbk2ContactLinkIterator*
+    CPbk2ContactUiControlSubstitute::SelectedContactsIteratorL() const
+    {
+    return NULL;
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::SelectedContactStoresL
+// --------------------------------------------------------------------------
+//
+CArrayPtr<MVPbkContactStore>*
+        CPbk2ContactUiControlSubstitute::SelectedContactStoresL() const
+    {
+    CArrayPtr<MVPbkContactStore>* array =
+        new CArrayPtrFlat<MVPbkContactStore>( KOnlyOneContactStore );
+    CleanupStack::PushL( array );
+    array->AppendL( iContactStore );
+    CleanupStack::Pop( array );
+    return array;
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::ClearMarks
+// --------------------------------------------------------------------------
+//
+void CPbk2ContactUiControlSubstitute::ClearMarks()
+    {
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::SetSelectedContactL
+// --------------------------------------------------------------------------
+//
+void CPbk2ContactUiControlSubstitute::SetSelectedContactL
+        ( TInt /*aIndex*/, TBool /*aSelected*/ )
+    {
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::SetSelectedContactL
+// --------------------------------------------------------------------------
+//
+void CPbk2ContactUiControlSubstitute::SetSelectedContactL(
+        const MVPbkContactBookmark& /*aContactBookmark*/,
+        TBool /*aSelected*/ )
+    {
+    // Not supported
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::SetSelectedContactL
+// --------------------------------------------------------------------------
+//
+void CPbk2ContactUiControlSubstitute::SetSelectedContactL(
+        const MVPbkContactLink& /*aContactLink*/,
+        TBool /*aSelected*/ )
+    {
+    // Not supported
+    }
+
+TInt CPbk2ContactUiControlSubstitute::CommandItemCount() const
+	{
+	return 0; // No command items.
+	}
+
+const MPbk2UiControlCmdItem& CPbk2ContactUiControlSubstitute::CommandItemAt(
+	TInt /*aIndex*/ ) const
+	{
+	// There are no command items in this control
+	__ASSERT_ALWAYS( EFalse, User::Panic( _L("Pbk2"), 5)); //TODO
+	MPbk2UiControlCmdItem* item = NULL; // For compiler only
+	return *item; // For compiler only
+	}
+	
+const MPbk2UiControlCmdItem* CPbk2ContactUiControlSubstitute::FocusedCommandItem() const
+	{
+	// No command items in this control.
+	return NULL;
+	}
+
+void CPbk2ContactUiControlSubstitute::DeleteCommandItemL( TInt /*aIndex*/ )
+	{
+	// Ignore
+	}
+
+void CPbk2ContactUiControlSubstitute::AddCommandItemL(MPbk2UiControlCmdItem* /*aCommand*/, TInt /*aIndex*/)
+	{
+	// Ignore
+	}	
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::DynInitMenuPaneL
+// --------------------------------------------------------------------------
+//
+void CPbk2ContactUiControlSubstitute::DynInitMenuPaneL
+        ( TInt /*aResourceId*/, CEikMenuPane* /*aMenuPane*/ ) const
+    {
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::ProcessCommandL
+// --------------------------------------------------------------------------
+//
+void CPbk2ContactUiControlSubstitute::ProcessCommandL
+        ( TInt /*aCommandId*/ ) const
+    {
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::UpdateAfterCommandExecution
+// --------------------------------------------------------------------------
+//
+void CPbk2ContactUiControlSubstitute::UpdateAfterCommandExecution()
+    {
+    // Do nothing
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::GetMenuFilteringFlagsL
+// --------------------------------------------------------------------------
+//
+TInt CPbk2ContactUiControlSubstitute::GetMenuFilteringFlagsL() const
+    {
+    return 0;
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::ControlStateL
+// --------------------------------------------------------------------------
+//
+CPbk2ViewState* CPbk2ContactUiControlSubstitute::ControlStateL() const
+    {
+    return NULL;
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::RestoreControlStateL
+// --------------------------------------------------------------------------
+//
+void CPbk2ContactUiControlSubstitute::RestoreControlStateL
+        ( CPbk2ViewState* /*aState*/ )
+    {
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::FindTextL
+// --------------------------------------------------------------------------
+//
+const TDesC& CPbk2ContactUiControlSubstitute::FindTextL()
+    {
+    return KNullDesC;
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::ResetFindL
+// --------------------------------------------------------------------------
+//
+void CPbk2ContactUiControlSubstitute::ResetFindL()
+    {
+    // Do nothing
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::ShowThumbnail
+// --------------------------------------------------------------------------
+//
+void CPbk2ContactUiControlSubstitute::ShowThumbnail()
+    {
+    // Do nothing
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::HideThumbnail
+// --------------------------------------------------------------------------
+//
+void CPbk2ContactUiControlSubstitute::HideThumbnail()
+    {
+    // Do nothing
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::SetBlank
+// --------------------------------------------------------------------------
+//
+void CPbk2ContactUiControlSubstitute::SetBlank( TBool /*aBlank*/ )
+    {
+    // Do nothing
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::RegisterCommand
+// --------------------------------------------------------------------------
+//
+void CPbk2ContactUiControlSubstitute::RegisterCommand(
+        MPbk2Command* /*aCommand*/)
+    {
+    // Do nothing
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::SetTextL
+// --------------------------------------------------------------------------
+//
+void CPbk2ContactUiControlSubstitute::SetTextL(
+        const TDesC& /*aText*/ )
+    {
+    // Do nothing
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::ContactUiControlExtension
+// --------------------------------------------------------------------------
+//
+TAny* CPbk2ContactUiControlSubstitute::ContactUiControlExtension(TUid aExtensionUid )
+	{
+     if( aExtensionUid == KMPbk2ContactUiControlExtension2Uid )
+        { 
+		return static_cast<MPbk2ContactUiControl2*>( this );
+		}
+		
+    return NULL;
+    }    
+
+// --------------------------------------------------------------------------
+// CPbk2ContactUiControlSubstitute::Draw
+// --------------------------------------------------------------------------
+//
+void CPbk2ContactUiControlSubstitute::Draw( const TRect& aRect ) const
+    {
+    CWindowGc& gc = SystemGc();
+
+    // Set the layout rectangle for the skin bitmap
+    iBgSkinContext->SetRect( aRect );
+
+    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+    AknsDrawUtils::Background( skin, iBgSkinContext, this, gc, aRect,
+        KAknsDrawParamNoClearUnderImage );
+    }
+
+//  End of File