diff -r 000000000000 -r e686773b3f54 logsui/LogsPlugin/CLogsSettingsView.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/logsui/LogsPlugin/CLogsSettingsView.h Tue Feb 02 10:12:17 2010 +0200 @@ -0,0 +1,320 @@ +/* +* 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 "Settings" view class implementation +* +*/ + + +#ifndef __Logs_App_CLogsSettingsView_H__ +#define __Logs_App_CLogsSettingsView_H__ + +// INCLUDES +#include +#include +#include +#include + +#include "CLogsBaseView.h" +#include "MLogsObserver.h" + +#include "LogsEng.hrh" + +// CONSTANTS + +// MACROS + +// DATA TYPES + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS +class CLogsSettingsControlContainer; +class CLogsEngine; +class MCoeForegroundObserver; +class CAknQueryDialog; + +// CLASS DECLARATION + +/** + * Logs application "Settings" view class implementation. + * Several application settings can be modified in this view. + */ +class CLogsSettingsView : public CGSPluginInterface, + public MLogsObserver, + public MEikListBoxObserver, + public MLogsKeyProcessor, + public MCoeForegroundObserver + { + public: // interface + + + /** + * Creates new GS plugin having the given UID. + * Uses Leave code KErrNotFound if implementation is not found. + * + * @param aImplementationUid Implementation UID of the plugin to be + * created. + * @param aInitParams Plugin's initialization parameters. Make sure you know + * what the plugin expects as initialization parameters. This + * should be an agreement between the plugin client and the + * plugin. Parameter can be used for example as sharing a common + * data model between multiple plugins. + */ + static CGSPluginInterface* NewPluginL( + const TUid aImplementationUid, + TAny* aInitParams); + + /** + * Destructor. + */ + ~CLogsSettingsView(); + + + private: + /** + * Constructor, second phase. + */ + void ConstructL(); + + /** + * C++ constructor + */ + CLogsSettingsView(); + + /** + * Framework calls to init menu items. + * + * @param aResourceId resource read + * @param aMenuPane menu pane + */ + void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); + + /** + * Framework calls to init process commands + * + * @param aCommand + */ + void ProcessCommandL( TInt aCommand ); + + // 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); + + //void FocusChangedL(); + + MAknTabObserver* TabObserver(); + + // from MEikListBoxObserver + void HandleListBoxEventL( CEikListBox* aListBox, TListBoxEvent aEventType ); + + // from MLogsModelObserver + void StateChangedL( MLogsStateHolder* aHolder ); + + 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(); + + /** + * 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(); + + /* + * Show note dialog + * @param aResourceId, note to show. + */ + void ShowNoteL( TInt aResourceID ); + + + /** + * Is call active + * @return ETrue if call is active, else return EFalse + */ + // TBool CallIsActiveL(); + + private: // From MCoeForegroundObserver. + + /** + * Called by the framework when this view gains foreground + */ + void HandleGainingForeground(); + + /** + * Called by the framework when this view loses foreground + */ + void HandleLosingForeground(); + + private: // Command handlers (use "Cmd" prefix) + + /** + * Manage setting log length possible changes. + */ + void CmdLogLengthL(); + + //Below: "Show Call Duration" moved General Settings application, not in use any more in Logs + /** + * Makes the change in to the "Call Duration" and handles the + * rules, which have been given + * + * @param aDurationItem The selected item + */ + // void MakeCallDurationChangeL( TBool aChange ); + + /** + * Manage setting show call duration possible changes. + */ + // void CmdShowCallDurationPhoneL(); + + + /** + * Makes opposite selection to "Call Duration" + */ + // void MakeCallDurationOppositeL(); + + public: + /** + * Log age getter + * + * @return log age + */ + TLogAge LogAge() const; + + /** + * Logs Engine getter + * + * @return Logs engine + */ + CLogsEngine* Engine(); + + private: // from CGSPluginInterface + + /** + * Provides caption of this plugin. This should be the + * localized name of the Logs settings view to be shown in parent view + * (i.e. GS applications view) + * + * @param aCaption pointer to Caption variable + */ + void GetCaptionL( TDes& aCaption ) const; + + /** + * Provides the plugin provider category. See + * TGSPluginProviderCategory. PluginProviderCategory can be used for + * sorting plugins. + * + * Default value is EGSPluginProvider3rdParty. Override this function + * to change the category. + * + * @return Plugin provider category ID defined by + * TGSPluginProviderCategory + */ + TInt PluginProviderCategory() const; + + /** + * Creates a new icon of desired type. Override this to provide custom + * icons. Othervise default icon is used. Ownership of the created icon + * is transferred to the caller. + * + * Icon type UIDs (use these defined constants): + * KGSIconTypeLbxItem - ListBox item icon. + * KGSIconTypeTab - Tab icon. + * + * @param aIconType UID Icon type UID of the icon to be created. + * @return Pointer of the icon. NOTE: Ownership of this icon is + * transferred to the caller. + */ + virtual CGulIcon* CreateIconL( const TUid aIconType ); + + virtual TAny* CustomOperationL( TAny* aParam1, TAny* aParam2 ); + + private: // 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); + + + private: // operations + + /** + * Makes view's one line with the given information + * + * @param aItems Array where to put the line information + * @param aResourceText The resource index of text to be shown + */ + void MakeSettingLineL( CDesCArrayFlat* aItems, TInt aResourceText ); + + /** + * User log length selection "No log" query. + * + * @return The ETrue value indicates that log lenght "No log" + * should be activated. + */ + TBool NoLogQueryL(); + + void SetForGS( TBool aForGS ); + + private: // data + /// Own: This view's control container + CLogsSettingsControlContainer* iContainer; + CAknRadioButtonSettingPage* iDialog; + CAknQueryDialog* iNoLogQueryDlg; + CDesCArrayFlat* iSettingItems; + + /// Own: config info + TLogConfig iConfig; + CLogsEngine* iEngine; + TVwsViewId iPrevViewId; + CEikonEnv* iEikEnv; // Local eikonenv + TInt iResourceFileOffset; // Offset for eikon env. + TBool iForGs; + TLogsState iState; + + TInt iLastMaxEventAge; + }; + +#endif // __Logs_App_CLogsSettingsView_H__ + + +// End of File +