--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookui/Phonebook/App/inc/CViewActivationTransactionImpl.h Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,122 @@
+/*
+* 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:
+* Phonebook transaction view implementation class methods.
+*
+*/
+
+
+#ifndef __CViewActivationTransactionImpl_H__
+#define __CViewActivationTransactionImpl_H__
+
+// INCLUDES
+#include "CPbkAppUi.h"
+
+// FORWARD DECLARATIONS
+class CDigViewNode;
+class CAknTitlePane;
+class CAknContextPane;
+class CEikImage;
+class CAknNavigationDecorator;
+class CAknTabGroup;
+
+
+// CLASS DECLARATION
+
+/**
+ * Transaction class for updating application-wide state leave-safely
+ * at view switch.
+ * @see CPbkAppUi::HandleViewActivationLC
+ */
+class CPbkAppUi::CViewActivationTransactionImpl
+ : public CPbkAppUiBase::CViewActivationTransaction
+ {
+ public: // Interface
+ /**
+ * Creates an instace of this transaction, performs all update
+ * operations of this transaction and saves rollback data in case
+ * the transaction is not committed.
+ *
+ * @param aAppUi phonebook's application UI
+ * @param aViewId activated view's id
+ * @param aPrevViewId previously active view's id
+ * @param aTitlePaneText text to put into title pane, if NULL
+ * default text is used
+ * @param aContextPanePicture picture to put into context pane, if
+ * NULL default picture is used
+ * @return instance of this class
+ */
+ static CViewActivationTransactionImpl* NewLC
+ (CPbkAppUi& aAppUi,
+ const TUid& aViewId, const TVwsViewId& aPrevViewId,
+ const TDesC* aTitlePaneText,
+ const CEikImage* aContextPanePicture,
+ TUint aFlags);
+
+ /**
+ * Destructor. Rolls back changes done in NewLC if this transaction
+ * is not committed.
+ */
+ ~CViewActivationTransactionImpl();
+
+ public: // From CViewActivationTransaction
+ /**
+ * Commits this transaction. After this call all changes done in
+ * NewLC are kept.
+ */
+ void Commit();
+
+ private: // Implementation
+ CViewActivationTransactionImpl(CPbkAppUi& aAppUi, const TUid& aViewId,
+ const TVwsViewId& aPrevViewId, TUint aFlags);
+ void ConstructL(const TDesC* aTitlePaneText,
+ const CEikImage* aContextPanePicture);
+ void UpdateViewNavigationState();
+ void UpdateNaviPaneL(TUid aViewId);
+ void SetTitlePaneTextL(const TDesC* aTitlePaneText);
+ void SetContextPanePictureL(const CEikImage* aContextPanePicture);
+ CEikImage* CopyL(const CEikImage& aSrc);
+
+ private: // Data
+ /// Ref: Phonebook Application UI
+ CPbkAppUi* iAppUi;
+ /// Own: Activated view's id
+ TUid iViewId;
+ /// Own: Deactivated view's id
+ TVwsViewId iPrevViewId;
+ /// Own: flags
+ TUint iFlags;
+ /// Ref: Saved previous view node state
+ CDigViewNode* iSavePreviousViewNode;
+ /// Ref: Application's title pane
+ CAknTitlePane* iTitlePane;
+ /// Own: Saved title pane text
+ HBufC* iSaveTitlePaneText;
+ /// Ref: Application's context pane
+ CAknContextPane* iContextPane;
+ /// Own: Saved picture from context pane
+ CEikImage* iSaveContextPanePicture;
+ /// Ref: navigation decorator pushed on the navi pane, if NULL
+ /// nothing was pushed.
+ CAknNavigationDecorator* iPushedNaviDecorator;
+ /// Ref: Modified tab group
+ CAknTabGroup* iTabGroup;
+ /// Own: Saved index of active tab in iTabGroup
+ TInt iSaveTabIndex;
+ };
+
+
+#endif // __CViewActivationTransactionImpl_H__
+
+// End of File