--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingappbase/msgeditor/viewsrc/MsgBaseControl.cpp Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,417 @@
+/*
+* Copyright (c) 2002-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: MsgBaseControl implementation
+*
+*/
+
+
+
+// ========== INCLUDE FILES ================================
+
+#include <eikenv.h> // for CEikonEnv
+#include <AknUtils.h> // for AknUtils
+#include <aknenv.h> // for CAknEnv
+
+#include <applayout.cdl.h>
+
+#include "MsgEditorCommon.h" //
+#include "MsgBaseControl.h" // for CMsgBaseControl
+#include "MsgBaseControlObserver.h" // for MMsgBaseControlObserver
+#include "MsgEditorPanic.h" // for CMsgEditor panics
+
+// ========== EXTERNAL DATA STRUCTURES =====================
+
+// ========== EXTERNAL FUNCTION PROTOTYPES =================
+
+// ========== CONSTANTS ====================================
+
+// ========== MACROS =======================================
+
+// ========== LOCAL CONSTANTS AND MACROS ===================
+
+// ========== MODULE DATA STRUCTURES =======================
+
+// ========== LOCAL FUNCTION PROTOTYPES ====================
+
+// ========== LOCAL FUNCTIONS ==============================
+
+// ========== MEMBER FUNCTIONS =============================
+
+// ---------------------------------------------------------
+// CMsgBaseControl::CMsgBaseControl
+//
+// Constructor.
+// ---------------------------------------------------------
+//
+EXPORT_C CMsgBaseControl::CMsgBaseControl( MMsgBaseControlObserver& aBaseControlObserver ) :
+ iBaseControlObserver( &aBaseControlObserver ),
+ iLineHeight( MsgEditorCommons::MsgBaseLineDelta() ),
+ iMaxBodyHeight( MsgEditorCommons::MaxBodyHeight() )
+ {
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::CMsgBaseControl
+//
+// Constructor.
+// ---------------------------------------------------------
+//
+EXPORT_C CMsgBaseControl::CMsgBaseControl() :
+ iLineHeight( MsgEditorCommons::MsgBaseLineDelta() ),
+ iMaxBodyHeight( MsgEditorCommons::MaxBodyHeight() )
+ {
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::~CMsgBaseControl
+//
+// Destructor.
+// ---------------------------------------------------------
+//
+EXPORT_C CMsgBaseControl::~CMsgBaseControl()
+ {
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::ConstructFromResourceL
+//
+// nop
+// ---------------------------------------------------------
+//
+EXPORT_C void CMsgBaseControl::ConstructFromResourceL( TInt /*aResourceId*/ )
+ {
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::NotifyViewEvent
+//
+// nop
+// ---------------------------------------------------------
+//
+EXPORT_C void CMsgBaseControl::NotifyViewEvent( TMsgViewEvent /*aEvent*/,
+ TInt /*aParam*/ )
+ {
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::Reset
+//
+// nop
+// ---------------------------------------------------------
+//
+EXPORT_C void CMsgBaseControl::Reset()
+ {
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::SetModified
+//
+// Sets the modified flag of the control.
+// ---------------------------------------------------------
+//
+EXPORT_C void CMsgBaseControl::SetModified( TBool aModified )
+ {
+ if ( aModified )
+ {
+ iControlModeFlags |= EMsgControlModeModified;
+ }
+ else
+ {
+ iControlModeFlags &= ~EMsgControlModeModified;
+ }
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::IsModified
+//
+// Return ETrue if contents of control has been modified.
+// ---------------------------------------------------------
+//
+EXPORT_C TBool CMsgBaseControl::IsModified() const
+ {
+ return iControlModeFlags & EMsgControlModeModified;
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::SetReadOnly
+//
+// Sets the control read only or not. Before setting the read only flag on or
+// off, calls virtual PrepareForReadOnly function.
+// ---------------------------------------------------------
+//
+EXPORT_C void CMsgBaseControl::SetReadOnly( TBool aReadOnly )
+ {
+ PrepareForReadOnly( aReadOnly );
+
+ if ( aReadOnly )
+ {
+ iControlModeFlags |= EMsgControlModeReadOnly;
+ }
+ else
+ {
+ iControlModeFlags &= ~EMsgControlModeReadOnly;
+ }
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::IsReadOnly
+//
+// Returns the read only status of the control.
+// ---------------------------------------------------------
+//
+EXPORT_C TBool CMsgBaseControl::IsReadOnly() const
+ {
+ return iControlModeFlags & EMsgControlModeReadOnly;
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::ControlId
+//
+// Returns the control id.
+// ---------------------------------------------------------
+//
+EXPORT_C TInt CMsgBaseControl::ControlId() const
+ {
+ return iControlId;
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::SetControlId
+//
+// Sets the control id.
+// ---------------------------------------------------------
+//
+EXPORT_C void CMsgBaseControl::SetControlId( TInt aControlId )
+ {
+ iControlId = aControlId;
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::DistanceFromComponentAbove
+//
+// Returns a distance from above to this control in pixels.
+// ---------------------------------------------------------
+//
+EXPORT_C TInt CMsgBaseControl::DistanceFromComponentAbove() const
+ {
+ return iDistanceFromComponentAbove;
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::SetDistanceFromComponentAbove
+//
+// Sets a distance from above control in pixels.
+// ---------------------------------------------------------
+//
+EXPORT_C void CMsgBaseControl::SetDistanceFromComponentAbove( TInt aDistance )
+ {
+ iDistanceFromComponentAbove = aDistance;
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::Margins
+//
+// Returns the margins of the control.
+// ---------------------------------------------------------
+//
+EXPORT_C TMargins CMsgBaseControl::Margins() const
+ {
+ return iMargins;
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::SetMargins
+//
+// Sets margins for the control.
+// ---------------------------------------------------------
+//
+EXPORT_C void CMsgBaseControl::SetMargins( const TMargins& aMargins )
+ {
+ iMargins = aMargins;
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::SetBaseControlObserver
+//
+// Sets base control observer.
+// ---------------------------------------------------------
+//
+EXPORT_C void CMsgBaseControl::SetBaseControlObserver(
+ MMsgBaseControlObserver& aBaseControlObserver )
+ {
+ iBaseControlObserver = &aBaseControlObserver;
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::VirtualHeight
+//
+// Returns approximate height of the control.
+// ---------------------------------------------------------
+//
+EXPORT_C TInt CMsgBaseControl::VirtualHeight()
+ {
+ return iSize.iHeight;
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::VirtualVisibleTop
+//
+// Returns a topmost visible text position.
+// ---------------------------------------------------------
+//
+EXPORT_C TInt CMsgBaseControl::VirtualVisibleTop()
+ {
+ return 0;
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::BaseConstructL
+//
+// Sets default margins for the control.
+// ---------------------------------------------------------
+//
+EXPORT_C void CMsgBaseControl::BaseConstructL()
+ {
+ iMargins.iLeft = 0;
+ iMargins.iRight = 0;
+ iMargins.iTop = 0;
+ iMargins.iBottom = 0;
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::NormalTextFontL
+//
+// Returns a pointer to the normal text font.
+// ---------------------------------------------------------
+//
+EXPORT_C const CFont* CMsgBaseControl::NormalTextFontL() const
+ {
+ //TODO: Should this be read from LAF?
+ const CFont* font = iEikonEnv->NormalFont();
+ return font;
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::LabelFontL
+//
+// Returns a pointer to the normal label font.
+// ---------------------------------------------------------
+//
+EXPORT_C const CFont* CMsgBaseControl::LabelFontL() const
+ {
+ TRect msgPane = MsgEditorCommons::MsgMainPane();
+ TAknLayoutText labelLayout;
+ labelLayout.LayoutText(
+ msgPane,
+ AppLayout::Message_writing_texts_Line_1( 0 ) );
+ return labelLayout.Font();
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::CountComponentControls
+//
+// Returns a number of controls.
+// ---------------------------------------------------------
+//
+EXPORT_C TInt CMsgBaseControl::CountComponentControls() const
+ {
+ __ASSERT_DEBUG( EFalse, Panic( EMsgInheritedFunctionIsMissing ) );
+ return 0;
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::ComponentControl
+//
+// Returns a control of index aIndex.
+// ---------------------------------------------------------
+//
+EXPORT_C CCoeControl* CMsgBaseControl::ComponentControl( TInt /*aIndex*/ ) const
+ {
+ __ASSERT_DEBUG( EFalse, Panic( EMsgInheritedFunctionIsMissing ) );
+ return NULL;
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::SizeChanged
+//
+// nop
+// ---------------------------------------------------------
+//
+EXPORT_C void CMsgBaseControl::SizeChanged()
+ {
+ __ASSERT_DEBUG( EFalse, Panic( EMsgInheritedFunctionIsMissing ) );
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::FocusChanged
+//
+// nop
+// ---------------------------------------------------------
+//
+EXPORT_C void CMsgBaseControl::FocusChanged( TDrawNow /*aDrawNow*/ )
+ {
+ __ASSERT_DEBUG( EFalse, Panic( EMsgInheritedFunctionIsMissing ) );
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::ItemFinder
+//
+// nop
+// ---------------------------------------------------------
+//
+EXPORT_C CItemFinder* CMsgBaseControl::ItemFinder()
+ {
+ return NULL;
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::SetupAutomaticFindAfterFocusChangeL
+//
+// nop
+// ---------------------------------------------------------
+//
+EXPORT_C void CMsgBaseControl::SetupAutomaticFindAfterFocusChangeL( TBool /*aBeginning */ )
+ {
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::ScrollL
+//
+// nop
+// ---------------------------------------------------------
+//
+EXPORT_C TInt CMsgBaseControl::ScrollL( TInt /*aPixelsToScroll*/,
+ TMsgScrollDirection /*aDirection*/ )
+ {
+ return 0;
+ }
+
+// ---------------------------------------------------------
+// CMsgBaseControl::HandleResourceChange
+//
+// nop
+// ---------------------------------------------------------
+//
+EXPORT_C void CMsgBaseControl::HandleResourceChange( TInt aType )
+ {
+ if ( aType == KEikDynamicLayoutVariantSwitch )
+ {
+ iLineHeight = MsgEditorCommons::MsgBaseLineDelta();
+ iMaxBodyHeight = MsgEditorCommons::MaxBodyHeight();
+ }
+
+ CCoeControl::HandleResourceChange( aType );
+ }
+
+// End of File