diff -r 000000000000 -r e686773b3f54 logsui/AppSrc/CLogsDetailView.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/logsui/AppSrc/CLogsDetailView.h Tue Feb 02 10:12:17 2010 +0200 @@ -0,0 +1,225 @@ +/* +* 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 "Detail" view +* +*/ + + +#ifndef __Logs_App_CLogsDetailView_H__ +#define __Logs_App_CLogsDetailView_H__ + +// INCLUDES +#include "CLogsBaseView.h" +#include "MLogsObserver.h" +#include "LogsEng.hrh" + +#include + +// CONSTANTS + +// MACROS + +// DATA TYPES + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS +class CLogsDetailControlContainer; +class CEikListBox; +class TListBoxEvent; + +// CLASS DECLARATION + +/** + * Logs application "Detail" view class implementation. + * This view show the details of the selected event. + */ +class CLogsDetailView : public CLogsBaseView, + public MAknNaviDecoratorObserver + { + public: // interface + /** + * Standard creation function. Creates and returns a new object + * of this class. + * + * @return The new view object. + */ + static CLogsDetailView* NewL(); + /** + * Destructor. + */ + ~CLogsDetailView(); + + public: // from CAknView + /** + * Framework calls to init menu items. + * + * @param aResourceId resource read + * @param aMenuPane menu pane + */ + void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); + + /** + * If touch support is on, we handle the touch related events here. + * + * @param aListBox the listbox reference + * @param aEventType the listbox event + */ + void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType); + + private: // from CAknView + /** + * Returns the ID of the view. + * @return view id + */ + TUid Id() const; + + /** + * HandleClientRectChange. Called by the framework the view rectangle + * changes + */ + void HandleClientRectChange(); + + /** + * 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(); + + /** + * Early detection of view activation. + * Overrides the baseclass implementation calls CAknView::ViewActivatedL(). + * + * @param aPrevViewId Specifies the view previously active. + * @param aCustomMessageId Specifies the message type. + * @param aCustomMessage Activation message. + */ + void ViewActivatedL(const TVwsViewId& aPrevViewId, + TUid aCustomMessageId, + const TDesC8& aCustomMessage); + + /** + * Early detection of view activation. + * Overrides the baseclass implementation calls CAknView::ViewDeactivated(). + */ + void ViewDeactivated(); + + + public: // from MEikCommandObserver + /** + * View specific command handler. + * + * @param aCommandId This is an id for command. + * Most of the commands are forwarded to LogAppUI. + */ + void HandleCommandL( TInt aCommand ); + + + 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: // from MAknNaviDecoratorObserver + /** + * Handler for pointer events, when the Navi Pane arrows have been tapped + * + * @param aEventID The enum indicating wether right or left arrow was tapped + */ + void HandleNaviDecoratorEventL( TInt aEventID ); + + public: // from MLogsModelObserver + void StateChangedL( MLogsStateHolder* aHolder ); + + + public: // Command handlers (use "Cmd" prefix) + + /** + * Command handler: Open the context sensive menu. + */ + void CmdContextMenuL(); + + /** + * Show the next event's details. + */ + void CmdNextEventL(); + + /** + * Show the previous event's details. + */ + void CmdPreviousEventL(); + + /** + * Restore original Logs title pane text according to current view. + */ + void ChangeTitlePaneTextToDefaultL(); + + + private: // operations + /** + * Constructor, second phase. + */ + void ConstructL(); + + /** + * Show 1.5 second long confirmation note to the user. + */ + void PopUpNoteL(); + + /** + * Draws the listbox. + */ + void DrawComponents(); + + /** + * Sets all menu items item specific property. + * + * @param aMenuPane Pointer to menu pane. + * @param aItemSpecific ETrue if command should be item specific. + * EFalse otherwise. + */ + void SetMenuItemsItemSpecificProperty( + CEikMenuPane* aMenuPane, TBool aItemSpecific ); + + private: // data + + /// Own: This view's control container. + CLogsDetailControlContainer* iContainer; + + /// Own: + TLogsState iState; + }; + + +#endif // __Logs_App_CLogsDetailView_H__ + + +// End of File +