logsui/AppSrc/CLogsEventListView.h
changeset 0 e686773b3f54
child 68 9da50d567e3c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/logsui/AppSrc/CLogsEventListView.h	Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,216 @@
+/*
+* 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: 
+*     Logs application "Event list" view class implementation
+*
+*/
+
+
+#ifndef     __Logs_App_CLogsEventListView_H__
+#define     __Logs_App_CLogsEventListView_H__
+
+//  INCLUDES
+#include "CLogsBaseView.h"
+#include "LogsEng.hrh"
+
+// CONSTANTS
+
+// MACROS
+
+// DATA TYPES
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+class CEikMenuPane;
+class CLogsEventListControlContainer;
+class MLogsStateHolder;
+
+// CLASS DECLARATION
+
+/**
+ * Logs application "Event list" view class implementation.
+ */
+class   CLogsEventListView :    public  CLogsBaseView
+    {
+    public:  // interface
+        /**
+         *  Standard creation function. Creates and returns a new object
+         *  of this class.
+         *
+         *  @return The new view object.
+         */
+        static CLogsEventListView* NewL();
+
+        /**
+         *  Destructor.
+         */
+        ~CLogsEventListView();
+
+     private:
+
+        /**
+         *  Default constructor
+         */
+        CLogsEventListView();
+
+        /**
+         *   Constructor, second phase. 
+         */
+        void ConstructL();
+
+        
+    public:  // from CAknView
+        /**
+         *  Framework calls to init menu items.
+         *
+         *  @param aResourceId   resource read
+         *  @param aMenuPane     menu pane
+         */ 
+        void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
+
+    private:  // from CAknView
+        /**
+         * Returns the ID of the view.
+         * @return view id
+         */
+        TUid Id() const;
+
+       /**
+        *  Called when the client rectangle of this view changes
+        */
+        void HandleClientRectChange();
+        
+       /**
+        * Draws the listbox.
+        */
+        void DrawComponents();
+
+        /**
+         *  Called by the framework when this view is activated.
+         *
+         *  @param aPrevViewId      This is ID for previous view.
+         *  @param aCustomMessageId ID of the custom message. Not used.
+         *  @param aCustomMessage   custom message. Not used.
+         */
+        void DoActivateL( const TVwsViewId& aPrevViewId,
+                          TUid aCustomMessageId,
+                          const TDesC8& aCustomMessage );
+
+        /**
+         *  Called by the framework when this view is deactivated.
+         */
+        void DoDeactivate();
+        
+
+    public:
+
+        /**
+         *  Currently used filter
+         *
+         *  @return current filter
+         */
+
+        TLogsFilter CurrentFilter() const;
+
+        /**
+         *  State of underlying model
+         *
+         *  @return state of model
+         */
+        TLogsState State() const;
+    
+    public: // from MEikCommandObserver
+        /**
+         *  Handles the view specific commands.
+         *
+         *  @param aCommandId This is an id for command.
+         *                    Most of the commands are forwarded to LogAppUI.
+         */
+        void HandleCommandL( TInt aCommand );
+        
+        /**
+         * Overrides the baseclass handler
+         * 
+         * @param aCommand	The id of the command
+         */   
+        void ProcessCommandL( TInt aCommand ); 
+        
+        /**
+         * Restore original Logs title pane text according to current view.
+         * Calls CLogsBaseControlContainer::SetTitlePaneTextToDefaultL which
+         * does the actual work.
+         */
+        void ChangeTitlePaneTextToDefaultL();
+               
+    public: // from MLogsKeyProcessor
+        TBool ProcessKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
+
+    public: // from MLogsModelObserver
+        void StateChangedL( MLogsStateHolder* aHolder ); 
+           
+    private:
+
+        /**
+         *  Initialize filter popup view.
+         *
+         *  @return Index of selected filter.
+         */
+        TLogsFilter InitFilterPopupListL();
+
+        /**
+         *  Makes filter list's one line with the current information
+         *
+         *  @param  aItems              Array where to put the line information
+         *  @param  aFirstResourceText  First line's resource id
+         */
+        void AddOneListBoxTextLineL( CDesCArrayFlat* aItems,
+                                     TInt aResourceText );
+
+        /**
+         *  Function clears all the events from log db.
+         */
+        void CmdClearListL();
+
+        /**
+         *  Function filters the events from log db.
+         */
+        void CmdFilterL();
+
+    private:  // data
+
+        /// Own:  control container
+        CLogsEventListControlContainer* iContainer;
+        
+        /// Own:
+        TLogsFilter iCurrentFilter;
+
+        /// Own:
+        TLogsState iState;
+        
+        /// Own:
+        TBool iClearListInProgress;
+
+#ifdef _DEBUG // for performance evaluation
+        /// Own: view construction time
+        TTime iCreationTime;
+        /// Own: construction time calculated
+        TBool iCreationTimeCalculated;
+#endif
+
+    };
+
+#endif  // __Logs_App_CLogsEventListView_H__
+
+// End of File