--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/clock2/clockui/uilayer/clkdatetimeview/inc/clkdatetimeviewextension.h Tue Feb 02 10:12:19 2010 +0200
@@ -0,0 +1,449 @@
+/*
+* Copyright (c) 2008 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: This is the header file for the CClkDateTimeViewExtension class.
+*
+*/
+
+#ifndef __CLK_DATETIMEVIEW_EXTENSION_H__
+#define __CLK_DATETIMEVIEW_EXTENSION_H__
+
+// System includes
+#include <e32base.h>
+#include <cenrepnotifyhandler.h>
+#include <badesca.h>
+
+// User includes
+#include "clockecomobserver.h"
+
+// Forward includes
+class CClkDateTimeView;
+class CCoeEnv;
+class CClockEComListener;
+class CAknQueryValueTextArray;
+class CAknQueryValueText;
+class CAknPopupSettingPage;
+
+// Constants
+const TUid KTimeSourceInterfaceUID = { 0x200159A7 };
+
+// Class declaration
+/**
+* @class CClkDateTimeViewExtension
+* @brief Common "Date and Time" extension class.
+* @dll clkdatetimeview.dll
+*/
+class CClkDateTimeViewExtension : public CBase,
+ public MCenRepNotifyHandlerCallback,
+ public MClockEComObserver
+ {
+ public: // Constructor and destructor
+
+ /**
+ * @brief Two-phased constructor.
+ * @param aParent The owner of the object, in our case CClkDateTimeView.
+ * @param aEnv The control environment.
+ * @return CClkDateTimeViewExtension* Pointer to the constructed object.
+ */
+ static CClkDateTimeViewExtension* NewL( CClkDateTimeView* aParent, CCoeEnv* aEnv );
+
+ /**
+ * @brief Destructor.
+ */
+ ~CClkDateTimeViewExtension();
+
+ public: // From base classes
+
+ /**
+ * @brief From MClockEComObserver. Called whenever the a new timesource plugin gets installed or uninstalled.
+ * @param aImplInfo The information of the plugin which got installed or uninstalled.
+ * @param aInstalled ETrue if a plugin has been installed, EFalse otherwise.
+ */
+ void NotifyPluginInstallUninstallL( const CImplementationInformation& aImplInfo, TBool aInstalled );
+
+ public: // New functions
+
+ /**
+ * @brief Handles a notification change in the string.
+ * @param aId The id of the string that has changed.
+ * @param aNewValue The new value of the string.
+ */
+ void HandleNotifyStringL( TUint32 aId, const TDesC16& aNewValue );
+
+ /**
+ * @brief Get the "Alarm Snooze Time" string.
+ * @return HBufC* Heap buffer pointer to the string requested.
+ */
+ HBufC* GetAlarmSnoozeTimeStr();
+
+ /**
+ * @brief Delete the constructed resource buffers.
+ */
+ void DeleteResourceBuf();
+
+ /**
+ * @brief Re-constructs the snooze time item for the listbox.
+ */
+ void MakeSnoozeTimeItemL();
+
+ /**
+ * @brief Gets the "Snooze Time" string.
+ * @return HBufC* Heap buffer pointer to the string requested.
+ */
+ HBufC* GetSnoozeTimeStr();
+
+ /**
+ * @brief Gets the worksdays currently selected on the phone.
+ * @return TUint
+ */
+ TUint GetWorkDays();
+
+ /**
+ * @brief Sets the new workdays.
+ * @param aWorkDays The new set of workdays.
+ */
+ void SetWorkDays(TUint aWorkDays);
+
+ /**
+ * @brief Constructs the workdays string.
+ */
+ void ConstructWorkDaysStrL();
+
+ /**
+ * @brief Gets the workdays string.
+ * @return HBufC* Heap buffer pointer to the string requested.
+ */
+ HBufC* GetWorkDaysStr();
+
+ /**
+ * @brief Gets the workdays list in descriptor format.
+ * @return CDesCArrayFlat* Pointer to a flat array of workdays list.
+ */
+ CDesCArrayFlat* GetWorkDaysList();
+
+ /**
+ * @brief Start listening for cenrep changes.
+ */
+ void StartListeningL();
+
+ /**
+ * @brief Stop listening for cenrep changes.
+ */
+ void StopListening();
+
+ /**
+ * @brief Get the previously set snooze time value.
+ * @return TInt The snooze time value.
+ */
+ TInt GetSnoozeTimeValue();
+
+ /**
+ * @brief Set a new snooze time value.
+ * @param aNewValue New snooze time value.
+ */
+ void SetSnoozeTimeValue(TInt aSnoozeTimeValue);
+
+ /**
+ * @brief Gets "Silent" string for tones.
+ * @return HBufC* Heap buffer pointer to the string requested.
+ */
+ HBufC* GetSilentToneStr();
+
+ /**
+ * @brief Set whether the date time view is launched by general settings or not.
+ */
+ void SetUsedByGS();
+
+ /**
+ * @brief Returns whether the current instance of date time view is launched by GS.
+ * @return TBool ETrue if GS is using datetime.
+ */
+ TBool UsedByGS();
+
+ /**
+ * @brief Returns whether the alarm tone list in use currently.
+ * @return TBool ETrue if alarm tone list in use.
+ */
+ TBool AlarmToneListInUse();
+
+ /**
+ * @brief Sets flag to indicate the alarm tone list in use .
+ * @param aAlarmToneListInUse Tells whether list is in use or not.
+ */
+ void SetAlarmToneListInUse( TBool aAlarmToneListInUse );
+
+ /**
+ * @brief Tells whether the city is unlocalised or not.
+ * @return TBool ETrue UnLocalised city match is found.
+ */
+ TBool IsUnLocalisedCity();
+
+ /**
+ * @brief Sets the flag for unlocalised city.
+ * @param aIsUnlocalisedCity Flag for unlocalised city.
+ */
+ void UnLocalisedCity( TBool aUnlocalisedCity );
+
+ /**
+ * @brief Tells if the automatic time update page is open or not.
+ * @return TBool ETrue if the page is open, EFalse otherwise.
+ */
+ TBool IsAutoTimeUpdatePageOpen();
+
+ /**
+ * @brief Setter function for iAutoTimeUpdatePageOpen.
+ * Called by the view when the automatic time update page is open.
+ */
+ void SetAutoTimeUpdatePageOpen( TBool aOpen );
+
+ /**
+ * @brief Getter function for the query text array.
+ * @return CAknQueryValueTextArray The pointer to the newly allocated query text array.
+ */
+ CAknQueryValueTextArray* GetQueryTextArray();
+
+ /**
+ * @brief Setter function for iTextArray.
+ * @param aTextArray
+ */
+ void SetQueryTextArray( CAknQueryValueTextArray* aTextArray );
+
+ /**
+ * @brief Getter function for iQueryValue
+ * @return CAknQueryValueText The pointer to the newly allocated value text.
+ */
+ CAknQueryValueText* GetQueryValueText();
+
+ /**
+ * @brief Setter function for iQueryValue.
+ * @param aQueryValueText
+ */
+ void SetQueryValueText( CAknQueryValueText* aQueryValueText );
+
+ /**
+ * @brief Setter function for iSettingPage.
+ * @param aPopupSettingPage
+ */
+ void SetPopupSettingPage( CAknPopupSettingPage* aPopupSettingPage );
+
+ /**
+ * @brief Getter function for iPluginList.
+ * @return CDesCArrayFlat* The pointer to the newly allocated plugin list.
+ */
+ CDesCArrayFlat* GetPluginList();
+
+ /**
+ * @brief Setter function for iPluginList.
+ * @param aPluginList
+ */
+ void SetPluginList( CDesCArrayFlat* aPluginList );
+
+ /**
+ * @brief Getter function for iActiveProtocol. Returns the currently active protocol UID.
+ */
+ TInt GetActiveProtocol();
+
+ /**
+ * @brief Setter function for iActiveProtocol. Value is 1 when all the protocols are activated.
+ * Value is 0 when all the protocols are deactivated.
+ */
+ void SetActiveProtocol( TInt aProtocol );
+
+ /**
+ * @brief Shows a popup setting page.
+ * @return TInt The id of the selected protocol.
+ */
+ TInt QueryPopupSettingPageL();
+
+ private: // New functions
+
+ /**
+ * @brief C++ default constructor.
+ * @param aParent The owner of the object, in our case CClkDateTimeView.
+ * @param aEnv The control environment.
+ */
+ CClkDateTimeViewExtension( CClkDateTimeView* aParent, CCoeEnv* aEnv );
+
+ /**
+ * @brief Performs the 2nd phase of two-phase construction.
+ */
+ void ConstructL();
+
+ /**
+ * @brief Called when the page for auto time update is opened and some plugin gets
+ * installed at that very moment. This will update the page with the newly added or removed plugin.
+ */
+ void RefreshAutoTimeUpdatePageL();
+
+ private: // Data
+
+ /**
+ * @var iAlarmSnoozeTime
+ * @brief The string holder for String "Alarm Snooze Time".
+ */
+ HBufC* iAlarmSnoozeTime;
+
+ /**
+ * @var iSnoozeTime
+ * @brief The string holder for holding the value of snooze time.
+ */
+ HBufC* iSnoozeTime;
+
+ /**
+ * @var iSnoozeTimeValue
+ * @brief The value of snooze time currently on the phone.
+ */
+ TInt iSnoozeTimeValue;
+
+ /**
+ * @var iWorkDays
+ * @brief This holds the workdays currently selected on the phone.
+ */
+ TUint iWorkDays;
+
+ /**
+ * @var iWorkDaysStr
+ * @brief This will hold the currently chosen workdays on the phone in string format.
+ */
+ HBufC* iWorkDaysStr;
+
+ /**
+ * @var iWorkDaysList
+ * @brief Array to hold the workdays list.
+ */
+ CDesCArrayFlat* iWorkDaysList;
+
+ /**
+ * @var iWorkDaysShortList
+ * @brief Array of workdays list in short format.
+ */
+ CDesCArrayFlat* iWorkDaysShortList;
+
+ /**
+ * @var iAlarmToneNotifier
+ * @brief CenRep handler for alarm tone change.
+ */
+ CCenRepNotifyHandler* iAlarmToneNotifier;
+
+ /**
+ * @var iSnoozeValueNotifier
+ * @brief CenRep handler for snooze time change.
+ */
+ CCenRepNotifyHandler* iSnoozeValueNotifier;
+
+ /**
+ * @var iRepository
+ * @brief Object of CenRep.
+ */
+ CRepository* iRepository;
+
+ /**
+ * @var iSilentTone
+ * @brief String holder to hold "Silent" string.
+ */
+ HBufC* iSilentTone;
+
+ /**
+ * @var iUsedByGS
+ * @brief ETrue if datetime is being used by GS.
+ */
+ TBool iUsedByGS;
+
+ /**
+ * @var iParent
+ * @brief Pointer to the owner of this.
+ */
+ CClkDateTimeView* iParent;
+
+ /**
+ * @var iEnv
+ * @brief The control environment.
+ */
+ CCoeEnv* iEnv;
+
+ /**
+ * @var iAlarmToneListInUse
+ * @brief Flag for alarm tone list, ETrue if list in use.
+ */
+ TBool iAlarmToneListInUse;
+
+ /**
+ * @var iIsUnlocalisedCity
+ * @brief Returns ETrue or EFalse depending on the unlocalised city.
+ */
+ TBool iUnlocalisedCity;
+
+ /**
+ * @var iClockEComListener
+ * @brief Listens for changes in the ECOM registry.
+ */
+ CClockEComListener* iClockEComListener;
+
+ /**
+ * @var iAutoTimeUpdatePageOpen
+ * @brief ETrue if the automatic time update page is being shown, EFalse otherwise
+ */
+ TBool iAutoTimeUpdatePageOpen;
+
+ /**
+ * @var iTextArray
+ * @brief The array for holding text shown in the settings page.
+ */
+ CAknQueryValueTextArray* iTextArray;
+
+ /**
+ * @var iQueryValue
+ * @brief The is updated with user selection.
+ */
+ CAknQueryValueText* iQueryValue;
+
+ /**
+ * @var iSettingPage
+ * @brief The settings page pointer.
+ */
+ CAknPopupSettingPage* iSettingPage;
+
+ /**
+ * @var iPluginList
+ * @brief The array for displaying the plugin list to the user
+ */
+ CDesCArrayFlat* iPluginList;
+
+ /**
+ * @var iActiveProtocol
+ * @brief Holds 1 if all the protocols are active and 0 otherwise.
+ */
+ TInt iActiveProtocol;
+
+ /**
+ * @var iAutomaticTimeUpdateString
+ * @brief String holder for the string "Network Operator Time"
+ */
+ HBufC* iAutomaticTimeUpdateString;
+
+ /**
+ * @var iPrevTextArray
+ * @brief The array for holding text shown in the settings page.
+ */
+ // CAknQueryValueTextArray* iPrevTextArray;
+
+ /**
+ * @var iPrevQueryValue
+ * @brief The is updated with user selection.
+ */
+ // CAknQueryValueText* iPrevQueryValue;
+ };
+
+#endif // __CLK_DATETIMEVIEW_EXTENSION_H__
+
+// End of File