diff -r ebe688cedc25 -r 7fdbb852d323 messagingappbase/msgeditor/viewinc/MsgHeader.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingappbase/msgeditor/viewinc/MsgHeader.h Wed Sep 01 12:31:54 2010 +0100 @@ -0,0 +1,141 @@ +/* +* 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: MsgHeader declaration +* +*/ + + + +#ifndef CMSGHEADER_H +#define CMSGHEADER_H + +// ========== INCLUDE FILES ================================ + +#include "MsgFormComponent.h" // for CMsgFormComponent + +// ========== CONSTANTS ==================================== + +// ========== MACROS ======================================= + +// ========== DATA TYPES =================================== + +// ========== FUNCTION PROTOTYPES ========================== + +// ========== FORWARD DECLARATIONS ========================= + +class CMsgCaptionedHighlight; +class CMsgDummyHeaderCleaner; + +// ========== CLASS DECLARATION ============================ + +/** +* Defines header control container for message editors/viewers. +* +*/ +class CMsgHeader : public CMsgFormComponent, + public MCoeControlHitTest + { + public: + + /** + * Factory method that creates this control. + * @param aParent + * @param aMargins + * @return + */ + static CMsgHeader* NewL( const CCoeControl& aParent, + const TMargins& aMargins); + + /** + * Destructor. + */ + virtual ~CMsgHeader(); + + public: // Methods from base classes + + /** + * Calculates and sets the size for the header and returns new size as + * reference aSize. If aInit == ETrue, sets also size for the controls + * by calling their SetAndGetSizeL functions. + * + * @param aSize + * @param aInit + */ + void SetAndGetSizeL( TSize& aSize, TBool aInit ); + + /** + * Draws the header. + * @param aRect + */ + void Draw( const TRect& aRect ) const; + + /** + * Returns a number of controls. + * @return + */ + TInt CountComponentControls() const; + + /** + * Returns a control of index aIndex. + * @param aIndex + * @return + */ + CCoeControl* ComponentControl( TInt aIndex ) const; + + /** + * Evaluates whether control is "hit" by touch event. + */ + TBool HitRegionContains( const TPoint& aPoint, const CCoeControl& aControl ) const; + + protected: // from CCoeControl + + /** + * Sets new position for all the controls. + */ + void SizeChanged(); + + /** + * This is called when the focus of the control is changed. + * @param aDrawNow + */ + void FocusChanged( TDrawNow aDrawNow ); + + private: + + /** + * Constructor (not available). + */ + CMsgHeader(); + + /** + * Constructor. + * @param aMargins + */ + CMsgHeader( const TMargins& aMargins ); + + /** + * 2nd phase constructor. + * @param aParent + */ + void ConstructL( const CCoeControl& aParent ); + + private: + + CMsgCaptionedHighlight* iFrame; + CMsgDummyHeaderCleaner* iHeaderCleaner; + }; + +#endif // CMSGHEADER_H + +// End of File