diff -r 000000000000 -r 72b543305e3a mobilemessaging/postcard/postcardinc/PostcardController.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mobilemessaging/postcard/postcardinc/PostcardController.h Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,288 @@ +/* +* 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: PostcardController declaration +* +*/ + + +#ifndef POSTCARDCONTROLLER +#define POSTCARDCONTROLLER + +#include +#include +#include +#include "PostcardDocument.h" +#ifdef RD_SCALABLE_UI_V2 +#include "PostcardPointerObserver.h" +#endif + +// FOWARD DECLARTIONS +class CGulIcon; +class CAknsBasicBackgroundControlContext; + +// CLASS DECLARATION +/** +* Container control class. +* +*/ +class CPostcardController : public CCoeControl + { + public: // Constructors and destructor + /** + * Constructor. + * @return pointer to the object + */ + static CPostcardController* NewL( CPostcardDocument& aDocument +#ifdef RD_SCALABLE_UI_V2 + , MPocaPointerEventObserver& aObserver +#endif + ); + + /** + * Destructor. + */ + ~CPostcardController(); + + public: // New functions + + /** + * Returns ETrue if front page is focused. + */ + TBool Frontpage( ); + + /** + * Returns ETrue if aPart is focused + */ + TBool IsFocused( TPostcardPart& aPart ); + + /** + * Returns the focused part + */ + TPostcardPart Focused( ); + + /** + * Sets aPart as focused item + */ + void SetFocused( TPostcardPart aPart ); + + /** + * Sets the bitmap of part aPart. Takes the ownership. + * Deletes the previous one. + */ + void SetBitmap( TPostcardPart aPart, CGulIcon* aIcon ); + + /** + * Removes and deletes bitmap aPart + */ + void RemoveBitmap( TPostcardPart aPart ); + + /** + * Reloads icons. Called from AppUi, if skin has changed. + */ + void ReLoadIconsL(); + + /** + * Rereads the coordinates of bitmaps from LAF + */ + void RefreshCoordinates( ); + + /** + * Calls MoveHorizontally or MoveVertically according to aKeyEvent + */ + void Move( TInt aScanCode ); + + /** + * Changes the focus in the back side if possible + */ + void MoveHorizontally( TBool aRight ); + + /** + * Changes the focus from back to front or vice versa if possible + */ + void MoveVertically( TBool aUp ); + + /** + * Makes itself focused, visible and active. + */ + void ActivateL( ); + + /** + * Gets an array of TRects and sets them as greeting field lines + */ + void SetGreetingLines( CArrayPtrFlat& aGreetingLines ); + + /** + * Gets an array of TRects and sets them as recipient field lines + */ + void SetRecipientLines( CArrayPtrFlat& aRecipientLines ); + + private: // New functions + + /** + * Default C++ constructor. + */ + CPostcardController( CPostcardDocument& aDocument +#ifdef RD_SCALABLE_UI_V2 + , MPocaPointerEventObserver& aObserver +#endif + ); + + /** + * 2nd phase Constructor. + */ + void ConstructL( ); + + private: // Functions from base classes + + /** + * From CoeControl,CountComponentControls. Returns always 0. + */ + TInt CountComponentControls( ) const; + + /** + * From CCoeControl,ComponentControl. Returns always NULL. + */ + CCoeControl* ComponentControl( TInt aIndex ) const; + + /** + * Calls DrawBackground. + * Also calls DrawIcons for the objects we have on top of the background + */ + void Draw( const TRect& aRect ) const; + + /** + * Draws possible skin background. + * Draws the background icons. + */ + void DrawBackground( ) const; + + /** + * Draws the image side. + */ + void DrawImageSide( ) const; + + /** + * Draws the text side. + */ + void DrawTextSide( ) const; + + /** + * Draws icon aIcon in rect aRect. Called by DrawImageSide or DrawTextSide. + */ + void DrawIcon( const CGulIcon& aIcon, const TRect& aRect ) const; + + /** + * Draws arrow down or up icon based on the side and whether in editor or + * in viewer mode. + */ + void DrawScrollArrows() const; + + /** + * Draws focus lines. Called by DrawTextSide. + */ + void DrawFocus( ) const; + + protected: // From CCoeControl + + /** + * Returns the Mop supply object for skin drawing + */ + TTypeUid::Ptr MopSupplyObject(TTypeUid aId); + +#ifdef RD_SCALABLE_UI_V2 + /** + * Handle pointer event + */ + void HandlePointerEventL(const TPointerEvent& aPointerEvent); +#endif + + private: + + /** + * LoadIconsL + * Calls DoLoadIconL to load icons needed by controller + */ + void LoadIconsL(); + + /** + * DoLoadIconL + * Calls AknsUtils::CreateIconL to load icons defined by parameters. + * Param IN aId - the id of the icon in AknsConstants.h + * aFileName - the name of the file where icons are loaded + * aFileBitmapId - the id of the bitmap file + * Returns - icon created by the function + */ + CGulIcon* DoLoadIconL( const TAknsItemID& aId, + const TDesC& aFileName, + const TInt aFileBitmapId, + const TInt aFileMaskId = -1 ); + + private: //Data + + // Reference to AppUi + CPostcardDocument& iDocument; + + // Related to frontside + CGulIcon* iFrontBg; + CGulIcon* iImage; + CGulIcon* iInsertImage; + CGulIcon* iInsertImageBg; + + // Related to backside + CGulIcon* iBgBg; + CGulIcon* iStamp; + CGulIcon* iEmptyGreetingFocused; + CGulIcon* iEmptyGreeting; + CGulIcon* iGreeting; + CGulIcon* iEmptyAddressFocused; + CGulIcon* iEmptyAddress; + CGulIcon* iAddress; + + // Focus lines are here + CArrayPtrFlat* iGreetingLines; + CArrayPtrFlat* iRecipientLines; + + // Related to arrows + CGulIcon* iUpperArrow; + CGulIcon* iLowerArrow; + + // Related to frontside + TRect iFrontBgC; + TRect iImageC; + TRect iInsertImageC; + TRect iInsertImageBgC; + + // Related to backside + TRect iBgBgC; + TRect iStampC; + TRect iGreetingC; + TRect iAddressC; + + // Related to arrows + TRect iUpperArrowC; + TRect iLowerArrowC; + + TPostcardPart iFocusedItem; + + CAknsBasicBackgroundControlContext* iBgContext; // Skin background control context + +#ifdef RD_SCALABLE_UI_V2 + TBool iPenEnabled; + MPocaPointerEventObserver& iEventObserver; +#endif + }; + +#endif // POSTCARDCONTROLLER_H + +// End of File