calendarui/customisationmanager/src/calenviewinfo.cpp
changeset 0 f979ecb2b13e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/calendarui/customisationmanager/src/calenviewinfo.cpp	Tue Feb 02 10:12:19 2010 +0200
@@ -0,0 +1,248 @@
+/*
+* 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 action ui
+*
+*/
+
+
+
+// INCLUDES
+//debug
+#include "calendarui_debug.h"
+
+#include "calenviewinfo.h"
+
+// ----------------------------------------------------------------------------
+// CCalenViewInfo::NewL
+// Two phased constructor.
+// ----------------------------------------------------------------------------
+//
+EXPORT_C CCalenViewInfo* CCalenViewInfo::NewL( TUid aViewUid,
+                                               TUid aPluginUid,
+                                               const TDesC& aMenuName,
+                                               const TDesC& aSettingsName,
+                                               CCalenView::TCyclePosition aPos )
+    {
+    TRACE_ENTRY_POINT;
+
+    CCalenViewInfo* self = new( ELeave )CCalenViewInfo( aViewUid,
+                                                        aPluginUid,
+                                                        aPos );
+    CleanupStack::PushL( self );
+    self->ConstructL( aMenuName, aSettingsName );
+    CleanupStack::Pop( self );
+
+    TRACE_EXIT_POINT;
+    return self;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenViewInfo::CCalenViewInfo
+// C++ constructor.
+// ----------------------------------------------------------------------------
+//
+CCalenViewInfo::CCalenViewInfo( TUid aViewUid,
+                                TUid aPluginUid,
+                                CCalenView::TCyclePosition aCyclePos )
+    : iViewUid( aViewUid ),
+      iPluginUid( aPluginUid ),
+      iCyclePos( aCyclePos )
+    {
+    TRACE_ENTRY_POINT;
+    TRACE_EXIT_POINT;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenViewInfo::ConstructL
+// Second phase of construction.
+// ----------------------------------------------------------------------------
+//
+void CCalenViewInfo::ConstructL( const TDesC& aMenuName,
+                                 const TDesC& aSettingsName) 
+    {
+    TRACE_ENTRY_POINT;
+
+    iMenuName = aMenuName.AllocL();
+    iSettingsName = aSettingsName.AllocL();
+
+    TRACE_EXIT_POINT;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenViewInfo::~CCalenViewInfo
+// Destructor.
+// ----------------------------------------------------------------------------
+//
+CCalenViewInfo::~CCalenViewInfo()
+    {
+    TRACE_ENTRY_POINT;
+
+    delete iMenuName;
+    delete iSettingsName;
+
+    TRACE_EXIT_POINT;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenViewInfo::ViewUid
+// UID of the view.
+// ----------------------------------------------------------------------------
+//
+EXPORT_C TUid CCalenViewInfo::ViewUid() const
+    {
+    TRACE_ENTRY_POINT;
+    TRACE_EXIT_POINT;
+    return iViewUid;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenViewInfo::PluginUid
+// UID of the plugin.
+// ----------------------------------------------------------------------------
+//
+EXPORT_C TUid CCalenViewInfo::PluginUid() const
+    {
+    TRACE_ENTRY_POINT;
+    TRACE_EXIT_POINT;
+    return iPluginUid;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenViewInfo::MenuName
+// Localised view name for view cycle menu.
+// ----------------------------------------------------------------------------
+//
+EXPORT_C const TDesC& CCalenViewInfo::MenuName() const
+    {
+    TRACE_ENTRY_POINT;
+    TRACE_EXIT_POINT;
+    return *iMenuName;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenViewInfo::SettingsName
+// Localised view name for default view setting.
+// ----------------------------------------------------------------------------
+//
+EXPORT_C const TDesC& CCalenViewInfo::SettingsName() const
+    {
+    TRACE_ENTRY_POINT;
+    TRACE_EXIT_POINT;
+    return *iSettingsName;
+    }
+
+// ----------------------------------------------------------------------------
+// CCalenViewInfo::CyclePosition
+// Position the view would like to go in view cycling.
+// ----------------------------------------------------------------------------
+//
+EXPORT_C CCalenView::TCyclePosition CCalenViewInfo::CyclePosition() const
+    {
+    TRACE_ENTRY_POINT;
+    TRACE_EXIT_POINT;
+    
+    return ( Hidden() ? CCalenView::ENoCyclePosition : iCyclePos );
+    }
+    
+// ----------------------------------------------------------------------------
+// CCalenViewInfo::MenuName
+// Localised view name for view cycle menu.
+// ----------------------------------------------------------------------------
+//
+EXPORT_C TBool CCalenViewInfo::Hidden() const
+    {
+    TRACE_ENTRY_POINT;
+    TRACE_EXIT_POINT;
+    return iHidden;
+    }
+         
+// ----------------------------------------------------------------------------
+// CCalenViewInfo::MenuName
+// Localised view name for view cycle menu.
+// ----------------------------------------------------------------------------
+//
+EXPORT_C void CCalenViewInfo::Hide( TBool aHide )
+    {
+    TRACE_ENTRY_POINT;
+    
+    iHidden = aHide;
+    
+    TRACE_EXIT_POINT;
+    }
+    
+// ----------------------------------------------------------------------------
+// CCalenViewInfo::CyclePositionComparison
+// Compares two views based upon their cycle position
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------      
+//
+EXPORT_C TInt CCalenViewInfo::CyclePositionComparison( 
+                                             const CCalenViewInfo& aFirstView,
+                                             const CCalenViewInfo& aSecondView )
+    {
+    TRACE_ENTRY_POINT;
+
+    CCalenView::TCyclePosition first = aFirstView.CyclePosition();
+    CCalenView::TCyclePosition second = aSecondView.CyclePosition();
+
+    TInt returnValue( 0 );
+    if ( first < second )
+        {
+        returnValue = -1;
+        }
+    else if ( first > second )
+        {
+        returnValue = 1;
+        }
+    else
+        {
+        returnValue = 0;
+        }
+
+    TRACE_EXIT_POINT; 
+    return returnValue;
+    }
+    
+// ----------------------------------------------------------------------------
+// CCalenViewInfo::ViewPluginIdentifier
+// Matches a uid and a plugin uid. Used by when finding the views offered by
+// a plugin with a given uid. 
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//  
+EXPORT_C TBool CCalenViewInfo::ViewPluginIdentifier( const TUid* aUid, 
+                                              const CCalenViewInfo& aArrayItem )
+    {
+    TRACE_ENTRY_POINT; 
+    TRACE_EXIT_POINT;
+    
+    return ( *aUid == aArrayItem.PluginUid() ); 
+    }
+    
+// ----------------------------------------------------------------------------
+// CCalenViewInfo::Identifier
+// Matches an uid and a view uid. 
+// (other items were commented in a header).
+// ----------------------------------------------------------------------------
+//
+EXPORT_C TBool CCalenViewInfo::ViewInfoIdentifier( const TUid* aUid,
+                                               const CCalenViewInfo& aArrayItem )
+    {
+    TRACE_ENTRY_POINT;
+    TRACE_EXIT_POINT;
+
+    return ( *aUid == aArrayItem.ViewUid() );
+    }
+
+// End of file