--- /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 <ConeResLoader.h>
+#include <logcli.h>
+#include <gsplugininterface.h>
+#include <aknradiobuttonsettingpage.h>
+
+#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
+