uiservicetab/vimpstdetailsviewplugin/src/cvimpstdetailsheadercontrol.cpp
branchRCL_3
changeset 22 3104fc151679
parent 21 2b7283837edb
child 23 9a48e301e94b
--- a/uiservicetab/vimpstdetailsviewplugin/src/cvimpstdetailsheadercontrol.cpp	Thu Aug 19 09:41:53 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,386 +0,0 @@
-/*
-* Copyright (c) 2008-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 the header part control(s) of the details view layout
-*
-*/
-
-
-#include "cvimpstdetailsheadercontrol.h"
-
-#include "cvimpstdetailsimagedecoder.h"
-#include "mvimpstdetailspresencehandler.h"
-#include "cvimpstdetailsviewbrandhandler.h"
-#include <vimpstui.mbg>
-#include <conversations.mbg>
-#include <eikimage.h> 
-#include <eiklabel.h> 
-#include <AknUtils.h>
-#include <layoutmetadata.cdl.h>
-#include <applayout.cdl.h> //cdl
-#include <aknlayoutscalable_apps.cdl.h>
-#include <AknsUtils.h>
-
-// virtual phonebook
-#include <MVPbkStoreContactField.h>
-#include <MVPbkContactFieldData.h>
-#include <MVPbkFieldType.h>
-#include <MVPbkContactFieldBinaryData.h>
-#include <VPbkEng.rsg>
-#include <MVPbkStoreContact.h>
-
-#include "uiservicetabtracer.h"
-// constants declaration
-const TInt KLabelLineCount = 3;
-
-// Size of thumbnail images stored to contacts
-#define KPbkPersonalImageSize TSize(80,96)
-
-// ---------------------------------------------------------------------------
-// NewL, two-phase construction
-// ---------------------------------------------------------------------------
-//
-CVIMPSTDetailsHeaderControl* CVIMPSTDetailsHeaderControl::NewL(CVIMPSTDetailsViewBrandHandler& aBrandHandler,
-												MVIMPSTDetailsPresenceHandler& aPresenceHandler)
-    {
-    CVIMPSTDetailsHeaderControl* self= new (ELeave) CVIMPSTDetailsHeaderControl(aBrandHandler, aPresenceHandler );
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// C++ (first phase) constructor
-// ---------------------------------------------------------------------------
-//
-CVIMPSTDetailsHeaderControl::CVIMPSTDetailsHeaderControl(CVIMPSTDetailsViewBrandHandler& aBrandHandler, 
-							MVIMPSTDetailsPresenceHandler& aPresenceHandler)
-   : iBrandHandler( aBrandHandler),
-   iPresenceHandler( aPresenceHandler )
-    {
-    // No implementation required
-    }
-
-// ---------------------------------------------------------------------------
-// ConstructL, second phase constructor
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTDetailsHeaderControl::ConstructL()
-	{ 
-	TRACER_AUTO;
-	// Create the header image
-	iImage = new (ELeave) CEikImage();
-	iImage->SetPictureOwnedExternally(ETrue); //EHLeftVCenter
-	iImage->SetAlignment(EHCenterVCenter);
-	// Create the header labels
-    for (TInt i=0; i < KLabelLineCount; i++)
-        {
-        CEikLabel* label = new(ELeave) CEikLabel;
-        CleanupStack::PushL(label);
-        label->SetTextL(KNullDesC());
-        label->SetAlignment(EHLeftVCenter);// EHCenterVCenter, EHLeftVCenter        
-        iLabels.AppendL(label);
-        CleanupStack::Pop(label);
-        }
-    iContactImageSize = KPbkPersonalImageSize;
-   	}
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CVIMPSTDetailsHeaderControl::~CVIMPSTDetailsHeaderControl()
-    {
-    iLabels.ResetAndDestroy();
-  
-    if (iImageDecoder)
-        {
-        if (iImageDecoder->IsActive())
-            {
-            iImageDecoder->Cancel();
-            }
-        delete iImageDecoder;
-        iImageDecoder = NULL;
-        }
-    delete iHeaderField;
-       
-    if (iImage)
-        {
-        delete iImage;
-        iImage = NULL;
-        }
-  
-    if (iBitmap)
-        {
-        delete iBitmap;
-        iBitmap = NULL;
-        }
-    if (iMask)
-        {
-        delete iMask;
-        iMask = NULL;
-        }
-     }
-
-
-// ---------------------------------------------------------------------------
-// From CCoeControl, returns the number of child controls to the framework
-// ---------------------------------------------------------------------------
-//
-TInt CVIMPSTDetailsHeaderControl::CountComponentControls() const
-    {
-    // image control + Label Count
-    return 1 + iLabels.Count();
-    }
-
-// ---------------------------------------------------------------------------
-// From CCoeControl, returns the child controls to the framework by index
-// ---------------------------------------------------------------------------
-//
-CCoeControl* CVIMPSTDetailsHeaderControl::ComponentControl(TInt aIndex)  const
-    {
-    if (aIndex == 0)
-        {
-        return iImage;
-        }
-    else if (aIndex - 1 < iLabels.Count())
-        {
-        return iLabels[aIndex-1];
-        }
-    else
-        {
-        return NULL;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// From CCoeControl, called when the control's size changes, handles portrait-landscape switch
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTDetailsHeaderControl::SizeChanged()
-    {
-    TInt isLandscape = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0;
-    
-    AknLayoutUtils::LayoutImage(
-            iImage, Rect(), AknLayoutScalable_Apps::cl_header_pane_g1(isLandscape));
-   
-    TPoint position = iImage->Position();
-    TSize size = iImage->Size();
-    
-    const TPoint newImagePosition = TPoint( position.iX/2, position.iY/2 );
-    iImage->SetPosition( newImagePosition );
-    
-    const TSize newImageSize = TSize( size.iWidth + 2*( position.iX - newImagePosition.iX ) ,
-            size.iHeight + 2*( position.iY - newImagePosition.iY ) );
-    
-    iImage->SetSize( newImageSize );
-    
-    iContactImageSize = newImageSize;
-    
-    if ( iImageDecoder )
-        {
-        // if bitmap was set resize it
-        if (iImageDecoder->IsActive())
-            {
-            iImageDecoder->Cancel();
-            }
-        TRAP_IGNORE( iImageDecoder->StartL( iContactImageSize ) );
-        }
-    
-    TAknLayoutRect labelsRect;
-    labelsRect.LayoutRect(Rect(), AknLayoutScalable_Apps::cl_header_name_pane(isLandscape));
-    
-    AknLayoutUtils::LayoutLabel(iLabels[0], labelsRect.Rect(), AknLayoutScalable_Apps::cl_header_name_pane_t1(2));
-    AknLayoutUtils::LayoutLabel(iLabels[1], labelsRect.Rect(), AknLayoutScalable_Apps::cl_header_name_pane_t2(2));
-    
-    AknLayoutUtils::LayoutLabel(iLabels[2], labelsRect.Rect(), AknLayoutScalable_Apps::cl_header_name_pane_t3(2));
-    
-    TRAP_IGNORE(LabelsSizeChangedL());
-    }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsHeaderControl::LabelsSizeChangedL()
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTDetailsHeaderControl::LabelsSizeChangedL()
-    {
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-    TRgb color;
-    AknsUtils::GetCachedColor( skin, color, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6 );
-        
-    if (iLabels.Count() > 0)
-        {
-         for (TInt i=0; i < iLabels.Count(); i++)
-            {
-            iLabels[i]->SetTextL( iPresenceHandler.GetHeaderLabelDataL(i) );
-            iLabels[i]->CropText();
-            iLabels[i]->OverrideColorL( EColorLabelText, color );
-            iLabels[i]->DrawDeferred();
-            }
-         }
-    }
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsHeaderControl::HeaderSizeChangedL()
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTDetailsHeaderControl::HeaderSizeChangedL()
-    {
-    CFbsBitmap* bmp = NULL;
-    CFbsBitmap* bmpMask = NULL;
-    TVIMPSTEnums::TOnlineStatus onlineStatus = iPresenceHandler.GetPresenceStatus();
-    if(TVIMPSTEnums::EPending == onlineStatus)
-        {
-        iBrandHandler.LoadBitMapLC(bmp, 
-                bmpMask,
-                EMbmVimpstuiQgn_prop_service_friend_request_sent ,
-                EMbmVimpstuiQgn_prop_service_friend_request_sent_mask  );
-        }
-    else if(TVIMPSTEnums::EBlocked == onlineStatus)
-        {
-        iBrandHandler.LoadBitMapLC(bmp, 
-                bmpMask,
-                EMbmVimpstuiQgn_servtab_avatar_blocked ,
-                EMbmVimpstuiQgn_servtab_avatar_blocked_mask  );
-        }
-     else
-        {
-        iBrandHandler.LoadBitMapLC(bmp, 
-                bmpMask,
-                EMbmVimpstuiQgn_prop_service_default_avatar ,
-                EMbmVimpstuiQgn_prop_service_default_avatar_mask  );
-        }
-    SetBitmap(bmp, bmpMask);//ownership transferred
-    CleanupStack::Pop(2); // bitmap,bmpMask 
-    SizeChanged();
-
-    }
-// ---------------------------------------------------------------------------
-// From CCoeControl, overridden to set the container windows for the child
-// controls of this control (labels and image)
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTDetailsHeaderControl::SetContainerWindowL(const CCoeControl& aContainer)
-    {
-    CCoeControl::SetContainerWindowL(aContainer);
-    iImage->SetContainerWindowL(aContainer);
-    for (TInt i=0; i < iLabels.Count(); i++)
-        {
-        iLabels[i]->SetContainerWindowL(aContainer);
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsHeaderControl :: SetBitmap
-// Sets the bitmap shown in the header image 
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTDetailsHeaderControl::SetBitmap(CFbsBitmap* aBmp, CFbsBitmap* aMask )
-    {
-    if (iBitmap)
-        {
-        delete iBitmap;
-        iBitmap = NULL;
-        }
-    if (iMask)
-        {
-        delete iMask;
-        iMask = NULL;
-        }
-    iBitmap = aBmp;
-    iMask = aMask;
-    
-    iImage->SetPicture(aBmp, NULL);
-    iImage->DrawDeferred();
-    
-    TRAP_IGNORE( LabelsSizeChangedL() );
-    }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsHeaderControl :: ClearL
-// Clears the header texts & image to blank
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTDetailsHeaderControl::ClearL()
-    {
-    iImage->SetPicture(NULL, NULL);
-    if (iBitmap)
-        {
-        delete iBitmap;
-        iBitmap = NULL;
-        }
-    if (iMask)
-        {
-        delete iMask;
-        iMask = NULL;
-        }
-    for (TInt i = 0; i < iLabels.Count(); i++)
-        {
-        iLabels[i]->SetTextL(KNullDesC());
-        }
-  
-    }
-// ---------------------------------------------------------------------------
-// CVIMPSTDetailsHeaderControl :: CreateHeaderPresentationL
-// Clears the header texts & image to blank
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTDetailsHeaderControl::CreateHeaderPresentationL(MVPbkStoreContact& aContact )
-	{
-	TRACER_AUTO;
-	if( iHeaderField )
-		{
-		delete iHeaderField;
-		iHeaderField = NULL	;
-		}
-				
-	MVPbkStoreContactFieldCollection& fieldCollection = aContact.Fields();
-	
-	TInt fieldCount = fieldCollection.FieldCount();
-	
-	for( TInt i=0; i< fieldCount; i++ )
-		{
-		MVPbkStoreContactField& field = fieldCollection.FieldAt( i );	
-		const MVPbkFieldType* type = field.BestMatchingFieldType() ;
-		if( R_VPBK_FIELD_TYPE_THUMBNAILPIC == type->FieldTypeResId() )
-			{
-			iHeaderField = field.CloneLC();
-			CleanupStack::Pop();
-			break;	
-			}
-		}
-	if( iHeaderField )
-		{
-		// field available	
-		const MVPbkContactFieldData& fieldData = iHeaderField->FieldData();
-		if( fieldData.DataType() == EVPbkFieldStorageTypeBinary )
-			{
-			TPtrC8 data = MVPbkContactFieldBinaryData::Cast(fieldData).BinaryData();
-	       	if (iImageDecoder)
-	            {
-	            if (iImageDecoder->IsActive())
-	                {
-	                iImageDecoder->Cancel();
-	                }
-	            delete iImageDecoder;
-	            iImageDecoder = NULL;
-	            }
-	        iImageDecoder = CVIMPSTDetailsImageDecoder::NewL(*this, data );
-	        iImageDecoder->StartL(iContactImageSize);
-			}
-		}
-	
-     }
-
-// end of file
-