--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingappbase/msgeditor/viewsrc/MsgDummyHeaderCleaner.cpp Wed Nov 03 09:52:46 2010 +0530
@@ -0,0 +1,123 @@
+/*
+* Copyright (c) 2005 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: MsgDummyHeaderCleaner implementation
+*
+*/
+
+
+
+// ========== INCLUDE FILES ================================
+
+#include <eikenv.h> // for CEikonEnv
+#include <AknUtils.h> // for AknUtils
+#include <aknenv.h> // for CAknEnv
+#include <AknDef.h>
+
+#include <applayout.cdl.h> // LAF
+#include <aknlayoutscalable_apps.cdl.h>
+#include <aknlayoutscalable_avkon.cdl.h>
+
+#include <AknsDrawUtils.h> // for Skinned drawing
+#include <AknsBasicBackgroundControlContext.h>
+
+#include "MsgEditorCommon.h"
+#include "MsgBaseControl.h"
+#include "MsgHeader.h"
+#include "MsgDummyHeaderCleaner.h"
+
+// ---------------------------------------------------------
+// CMsgDummyHeaderCleaner::CMsgDummyHeaderCleaner
+// ---------------------------------------------------------
+CMsgDummyHeaderCleaner::CMsgDummyHeaderCleaner( const CMsgHeader* aParent )
+ : iParent( aParent )
+ {
+ }
+
+// ---------------------------------------------------------
+// CMsgDummyHeaderCleaner::ConstructL
+// ---------------------------------------------------------
+void CMsgDummyHeaderCleaner::ConstructL( )
+ {
+ SetContainerWindowL( *iParent );
+
+ // Lets check the position of the dashed bar
+ TRect dataPane = MsgEditorCommons::MsgDataPane();
+ iDashBar.LayoutRect(
+ dataPane,
+ AknLayoutScalable_Avkon::bg_list_pane_g4( 2 ).LayoutLine() );
+ }
+
+// ---------------------------------------------------------
+// CMsgDummyHeaderCleaner::Draw
+// ---------------------------------------------------------
+void CMsgDummyHeaderCleaner::Draw(const TRect& /*aRect*/) const
+ {
+ CWindowGc& gc = SystemGc();
+
+ TRect rect( iParent->Rect() );
+
+ // The rect clearing will be divided into two parts:
+ // First one is the rect on the left side of the dashed bar in the header
+ // ie. the area on top of the label (eg. To)
+ // The second one is the rect on right side of the dashed bar
+ // ie. on top of the field itself (eg. To )
+ TRect rectLabel(
+ 0,
+ 0,
+ iDashBar.Rect( ).iTl.iX-1,
+ MsgEditorCommons::MsgBaseLineOffset( ) );
+
+ TRect rectField(
+ iDashBar.Rect( ).iBr.iX+1,
+ 0,
+ rect.iBr.iX,
+ MsgEditorCommons::MsgBaseLineOffset( ) );
+
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+ MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
+
+ // Either draw the skin context or just clear it
+ if ( !AknsDrawUtils::Background( skin, cc, this, gc, rectLabel ) )
+ {
+ gc.SetBrushColor( AKN_LAF_COLOR( 0 ) );
+ gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
+ gc.SetPenStyle( CGraphicsContext::ENullPen );
+ gc.DrawRect( rectLabel );
+ }
+
+ if ( !AknsDrawUtils::Background( skin, cc, this, gc, rectField ) )
+ {
+ gc.SetBrushColor( AKN_LAF_COLOR( 0 ) );
+ gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
+ gc.SetPenStyle( CGraphicsContext::ENullPen );
+ gc.DrawRect( rectField );
+ }
+ }
+
+// ---------------------------------------------------------
+// CMsgDummyHeaderCleaner::HandleResourceChange
+// ---------------------------------------------------------
+void CMsgDummyHeaderCleaner::HandleResourceChange( TInt aType )
+ {
+ CCoeControl::HandleResourceChange( aType );
+ if ( aType == KEikDynamicLayoutVariantSwitch )
+ {
+ TRect dataPane = MsgEditorCommons::MsgDataPane();
+ iDashBar.LayoutRect(
+ dataPane,
+ AknLayoutScalable_Avkon::bg_list_pane_g4( 2 ).LayoutLine() );
+ }
+ }
+
+// End of File