diff -r 5aadd1120515 -r b57382753122 calendarui/customisationmanager/inc/calenviewinfo.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/calendarui/customisationmanager/inc/calenviewinfo.h Wed Nov 03 17:12:22 2010 +0530 @@ -0,0 +1,121 @@ +/* +* Copyright (c) 2007 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: Calendar controller +* +*/ + + +#ifndef CALENVIEWINFO_H +#define CALENVIEWINFO_H + +// INCLUDES +#include +#include + +// FORWARD DECLARATIONS + +// CLASS DEFINITIONS + +/** + * Wrapper around views. This lets us quickly get info on views. + * When accessed through general settings, native views won't be + * constructed so their iView pointer will be NULL. + */ +class CCalenViewInfo : public CBase + { + public: // Construction and destruction + IMPORT_C static CCalenViewInfo* NewL( TUid aViewUid, + TUid aPluginUid, + const TDesC& aMenuName, + const TDesC& aSettingsName, + CCalenView::TCyclePosition aCyclePos ); + virtual ~CCalenViewInfo(); + + public: // New functions + /** + * UID of the view. + */ + IMPORT_C TUid ViewUid() const; + + /** + * UID of the plugin. + */ + IMPORT_C TUid PluginUid() const; + + /** + * Localised view name, as appears in e.g. view cycle menu. + */ + IMPORT_C const TDesC& MenuName() const; + + /** + * Localised view name, as appears in default view settings page. + */ + IMPORT_C const TDesC& SettingsName() const; + + /** + * Position the view would like to go in view cycling. + */ + IMPORT_C CCalenView::TCyclePosition CyclePosition() const; + + /** + * Is the view hidden? + */ + IMPORT_C TBool Hidden() const; + + /** + * Hide the view from the view cycle list + */ + IMPORT_C void Hide( TBool aHide ); + + public: + /** + * Compares two views based upon their view cycle position + * used for sorting CCalenViewInfo arrays. + */ + IMPORT_C static TInt CyclePositionComparison( + const CCalenViewInfo& aFirstView, + const CCalenViewInfo& aSecondView ); + + /** + * Matches a CCalenViewInfo object with its plugin uid. + */ + IMPORT_C static TBool ViewPluginIdentifier( const TUid* aUid, + const CCalenViewInfo& aArrayItem ); + + /** + * Matches a CCalenViewInfo object with its view Uid + */ + IMPORT_C static TBool ViewInfoIdentifier( const TUid* aUid, + const CCalenViewInfo& aArrayItem ); + + private: // Construction and destruction + CCalenViewInfo( TUid aViewUid, + TUid aPluginUid, + CCalenView::TCyclePosition aCyclePos ); + + void ConstructL( const TDesC& aMenuName, + const TDesC& aSettingsName ); + + private: // Data + TUid iViewUid; // View uid. + TUid iPluginUid; // Plugin uid. + HBufC* iMenuName; // Localised name for view cycle menu. Owned. + HBufC* iSettingsName;// Localised name for default view setting. Owned. + CCalenView::TCyclePosition iCyclePos; // Cycle position. + TBool iHidden; // Has the view been hidden + }; + +#endif // CALENVIEWINFO_H + +// End of file