diff -r 12af337248b1 -r bd7edf625bdd calendarui/settings/settingsui/inc/calensetting.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/calendarui/settings/settingsui/inc/calensetting.h Wed Sep 01 12:32:31 2010 +0100 @@ -0,0 +1,243 @@ +/* +* 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: CCalenSetting has calendar setting data. + * +*/ + + +#ifndef CALENSETTING_H +#define CALENSETTING_H + +// INCLUDES +#include +#include // TCalenWeekTitle +#include + +#include "calencustomisationmanager.h" +#include "CalendarVariant.hrh" + +// FORWARD DECLARATIONS +class RWriteStream; +class RReadStream; +class CRepository; + +// CLASS DEFINITIONS + +/** + * Have calendar setting data + */ +NONSHARABLE_CLASS( CCalenSetting ) : public CBase + { +public: // Construction + /** + * Returns an instance of the singleton. + */ + IMPORT_C static CCalenSetting* InstanceL(); + + /** + * Releases an instance of the singleton. + */ + IMPORT_C void Release(); + +public: // New functions + /** + * Returns an array of UIDs of plugins known to be disabled or enabled. + */ + IMPORT_C CCalenCustomisationManager::CCalenPluginStatusArray& + PluginAvailability(); + + /** + * Return default view + * @return Default view - could be a native or a custom view uid. + */ + IMPORT_C TUid DefaultView() const; + + /** + * Return setting type of week format + * @return startday of week - TDay + */ + IMPORT_C TDay WeekFormat() const; + + /** + * Return setting type of week title + * @return Week title - EWeekTitleNumber | EWeekTitleDuration + */ + IMPORT_C TCalenWeekTitle WeekTitle() const; + + /** + * Return week number + * @return TCalenWeekNumber + */ + IMPORT_C TCalenWeekNumber WeekNumberEnable() const; + /** + * Return setting for calendar alarm snooze time. + * @return Minutes to snooze. + */ + IMPORT_C TInt SnoozeTime() const; + +#ifdef RD_CALEN_EXTERNAL_CAL + /** + * Return setting for the external calendar availability + * @return 1 if there is ext calendar. + */ + IMPORT_C TInt ExtCalendar() const; + + /** + * Writes External calendar enabled flag to central repository + * + */ + IMPORT_C void SetExtCalendar(TInt aEnabled); +#endif //RD_CALEN_EXTERNAL_CAL + + + /** + * Return setting for toolbar. + * @return on/off. + */ + IMPORT_C TInt Toolbar(); + + + /** + * Gets the list of all plugins available and enables/disables them + * in the customisation manager, based on their enabled setting. + */ + IMPORT_C void UpdatePluginListL( CCalenCustomisationManager& aCustomisationManager ); + + /** + * Sets a plugin on or off. + */ + IMPORT_C void SetPluginStatusL( TUid aPluginUid, TBool aEnabled ); + + /** + * Set default view + * @param aDefView CCalenView::EDayView | CCalenView::EWeekView | + * CCalenView::EMonthView + */ + IMPORT_C void SetDefaultView( TUid aDefView ); + + /** + * Set startday of week + * @param aFormat TDay + */ + IMPORT_C void SetWeekFormat( TDay aDay ); + + /** + * Set week title + * @param aTitle EWeekTitleNumber | EWeekTitleDuration + */ + IMPORT_C void SetWeekTitle( TCalenWeekTitle aTitle ); + + /** + * Set week number + * @param TCalenWeekNumber + */ + IMPORT_C void SetWeekNumber( TCalenWeekNumber aNumber ); + /** + * Set snooze time. + * @param aSnoozeTime Snooze time in minutes. + */ + IMPORT_C void SetSnoozeTime( TInt aSnoozeTime ); + + + /** + * Set toolbar. + * @param aShown 1 on, 0 off. + */ + IMPORT_C void SetToolbar(TInt aShown); + + + /** + * Load setting data from shared data or central repository + */ + IMPORT_C void LoadL(); + + /** + * Save setting data to shared data or central repository + */ + IMPORT_C void SaveL() const; + +private: // Typedefs + typedef TPckg TPluginStatusPckg; + typedef TPckgBuf TPluginStatusPckgBuf; + +private: + /** + * C++ default constructor. + */ + CCalenSetting(); + + /** + * Destructor + */ + ~CCalenSetting(); + + // Prevent assignment and copy constructor + //lint -e{1526} + CCalenSetting& operator=(const CCalenSetting&); + //lint -e{1526} + CCalenSetting(const CCalenSetting&); + +private: // New functions + /** + * Checks the list of enabled/disabled plugins (iPluginAvailability), and if + * any are no longer installed, remove them from the list. + * Returns ETrue if action taken, EFalse otherwise. + */ + TBool RemovePluginsNoLongerInstalled( const RImplInfoPtrArray& aAvailablePlugins ); + + /** + * Checks the list of enabled/disabled plugins (iPluginAvailability) against + * the given array of available plugins, and if any plugins are not in the + * availability list, add them. + * Returns ETrue if action taken, EFalse otherwise. + */ + TBool AddPluginsNewlyInstalledL( const RImplInfoPtrArray& aAvailablePlugins , + CCalenCustomisationManager& aCustomisationManager ); + + /** + * Saves the list of enabled/disabled plugins to repository. + */ + void SavePluginListL( CRepository& aRepository ) const; + + /** + * Converts the string to the plugin status array. + */ + void PopulatePluginAvailabilityFromBufferL( const TDesC& aBuf ); + + /** + * Converts the plugins status array to a buffer. + */ + void PopulateBufferFromPluginAvailabilityL( RBuf& aBuf ) const; + +private: // Data + TInt iRefCount; + TUid iDefaultView; + TDay iWeekFormat; + TCalenWeekTitle iWeekTitle; + TCalenWeekNumber iWeekNumber; + TInt iSnoozeTime; + CCalenCustomisationManager::CCalenPluginStatusArray iPluginAvailability; +#ifdef RD_CALEN_EXTERNAL_CAL + TInt iExtCalendar; +#endif //RD_CALEN_EXTERNAL_CAL + + + TInt iToolbar; + + }; + +#endif // CALENSETTING_H + + +// End of File