diff -r 000000000000 -r e686773b3f54 logsui/AppSrc/CLogsRecentListView.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/logsui/AppSrc/CLogsRecentListView.h Tue Feb 02 10:12:17 2010 +0200 @@ -0,0 +1,272 @@ +/* +* Copyright (c) 2002 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: +* View for recent lists +* +*/ + + +#ifndef __CLogsRecentListView_H__ +#define __CLogsRecentListView_H__ + +// INCLUDES +#include +#include "CLogsBaseView.h" +#include "MLogsExtObserver.h" +#include "MLogsModel.h" + +#include "LogsEng.hrh" +#include "Logs.hrh" + +// CONSTANTS + +// MACROS + +// DATA TYPES + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS +class CLogsRecentListControlContainer; +class CLogsViewGlobals; +class MLogsViewExtension; +class MLogsEventGetter; + +// CLASS DECLARATION + +/** +* Abstract base class for recent views +*/ +class CLogsRecentListView : public CLogsBaseView, + public MLogsExtObserver, + public MCoeForegroundObserver + { + public: // Constructors and destructor + + enum TLogsDrawNow + { + ELogsDrawNow, + ELogsDontDraw + }; + /** + * Symbian OS constructor + * @param recentlist type + * @return new object + */ + + static CLogsRecentListView* NewL( TLogsModel aModel ); + + /** + * Destructor. + */ + virtual ~CLogsRecentListView(); + + /** + * Recentlist state + */ + TLogsState State() const; + + /** + * Getter for recent type + * + * @return type of recent list (model) + */ + TLogsModel RecentListType() const; + + public: // from MLogsObserver + void StateChangedL( MLogsStateHolder* aHolder ); + + public: // from MLogsExtObserver + void ExtStateChangedL(); + + public: // from MLogsKeyProcessor + TBool ProcessKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType); + + /** + * Overrides the baseclass handler + * + * @param aIndex The index of the item tapped + */ + void ProcessPointerEventL(TInt aIndex); + + public: // CAknView + void HandleCommandL( TInt aCommandId ); + void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); + + + void DoActivateL(const TVwsViewId& aPrevViewId,TUid aCustomMessageId,const TDesC8& aCustomMessage); + void DoDeactivate(); + TUid Id() const; + + /** + * Called when the client rectangle of this view changes + */ + void HandleClientRectChange(); + + /** + * Draws the listbox. + */ + void DrawComponents(); + + /** + * Restore original Logs title pane text according to current view. + * Calls CLogsBaseControlContainer::SetTitlePaneTextToDefaultL which + * does the actual work. + */ + void ChangeTitlePaneTextToDefaultL(); + + /** + * Store the event list current focused item information + */ + void StoreEvenListCurrentFocus(); + + /** + * Early detection of view activation. + * Overrides the baseclass implementation calls CAknView::ViewDeactivated(). + */ + void ViewDeactivated(); + + /** + * Overrides the baseclass handler + * + * @param aCommand The id of the command + */ + void ProcessCommandL( TInt aCommand ); + + + public: // from MCoeForegroundObserver + void HandleGainingForeground(); + void HandleLosingForeground(); + + public: // From MAiwNotifyCallback + TInt HandleNotifyL( TInt aCmdId, + TInt aEventId, + CAiwGenericParamList& aEventParamList, + const CAiwGenericParamList& aInParamList); + + private: + + /** + * C++ default constructor. + * @param recentlist type + */ + CLogsRecentListView( TLogsModel aModel ); + + /** + * By default Symbian OS constructor is private. + * Calls AknViews BaseConstruct + */ + void ConstructL(); + + /** + * Delayed constructor + * + * Performs time consuming construction operations once. Calling this is needed before anything + * needing objects constructed here can be used (e.g. pressing Send key or launching a command from + * ui's menu. + */ + // void ConstructDelayedL(); + + /** + * Getter for view id + * + * @return Return view id + */ + TLogsViewIds LogsCurrentRecentViewId() const; + + /** + * Retrieves event relating current selection of listbox. + * @return Current event or NULL + */ + const MLogsEventGetter* CurrentEvent(); + + /** + * Clear listbox contents + */ + void CmdClearRecentListL(); + + /** + * Delete selected recent event from recent list + */ + void CmdDeleteEventL(); + + /** + * Overwrites Option_Exit CBA with Option_Back CBA + * @return ETrue if cba changed else return EFalse + */ + TBool ChangeCba2ToBackL(); + + /** + * Overwrites Option_Back CBA with Option_Exit CBA + * + * @param aDrawNow draw now or just change command + * @return ETrue if cba changed else return EFalse + */ + TBool ChangeCba2ToExitL(TLogsDrawNow aDrawNow); + + /** + * Helper function to check wether event reading has + * finished. + */ + TBool ReadingFinished(); + + /** + * Helper function to check wether view deactivated operation may be + * ignored to aviod the list flicking, see EJZO-7RJB3V + */ + TBool IgnoreViewDeactivatedOperation(); + + + private: // Data + /// Own: view's control container + CLogsRecentListControlContainer* iContainer; + + /// Own: exit cba text + HBufC* iExitCbaButton; + + /// Own: back cba text + HBufC* iBackCbaButton; + + /// Own: + TLogsState iState; + +#ifdef _DEBUG // for performance evaluation + /// Own: view construction time + TTime iCreationTime; + /// Own: construction time calculated + TBool iCreationTimeCalculated; +#endif + + /// Own: + CLogsViewGlobals* iViewGlobal; + + /// Own: + MLogsViewExtension* iViewExtension; + + + /// Own: text for send SMS menu item + //HBufC* iSendSMSText; + /// Own: text for send MMS menu item + //HBufC* iSendMMSText; + + TInt iEventListCurrentNoChange;//Points to current event in special Logs processing when Logs has lost + //foreground and hence iEventListCurrent (in base class) may already + //have been set to KErrNotFound. Typical case is adding entry to phonebook. + MLogsModel::TDoActivate iResetAndRefreshOnGainingForeground; + + }; + +#endif // __CLogsRecentListView_H__ + +// End of File