--- /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 <coemain.h>
+#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