diff -r 000000000000 -r 72b543305e3a messagingappbase/msgeditor/viewsrc/MsgBaseControl.cpp --- /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 // for CEikonEnv +#include // for AknUtils +#include // for CAknEnv + +#include + +#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