meetingui/attendeeview/UiSrc/CAttendeeViewerDlg.cpp
changeset 0 f979ecb2b13e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/meetingui/attendeeview/UiSrc/CAttendeeViewerDlg.cpp	Tue Feb 02 10:12:19 2010 +0200
@@ -0,0 +1,233 @@
+/*
+* Copyright (c) 2004 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:  Provides methods for .
+*
+*/
+
+
+
+// INCLUDE FILES
+#include "cattendeeviewerdlg.h"
+#include "cattendeedialogbase.h"
+#include "mattendeeeng.h"
+#include "cattendeedetailsdlg.h"
+#include "attendeeviewuid.h"
+#include "attendeeview.hrh"
+
+#include <attendeeview_res.rsg>
+#include <stringloader.h>
+#include <caluser.h>
+#include <csxhelp/cale.hlp.hrh>
+#include <mrcommands.hrh>
+
+// ============================ MEMBER FUNCTIONS ==============================
+CAttendeeViewerDlg* CAttendeeViewerDlg::NewL( 
+                                 MDesCArray *aArray,
+                                 TInt aMenuBarResourceId,                                          
+                                 TInt aOkMenuBarResourceId,
+                                 MAttendeeEng& aEngine,
+                                 TCoeHelpContext& aHelpContext,
+                                 MAgnEntryUiCallback& aEntryUiCallback )
+    {
+    CAttendeeViewerDlg* self = NewLC( aArray,
+                                      aMenuBarResourceId,
+                                      aOkMenuBarResourceId,
+                                      aEngine,
+                                      aHelpContext,
+                                      aEntryUiCallback );
+    CleanupStack::Pop(self); //self
+  
+    return self;
+    }
+
+CAttendeeViewerDlg* CAttendeeViewerDlg::NewLC( 
+                                   MDesCArray *aArray,
+                                   TInt aMenuBarResourceId,
+                                   TInt aOkMenuBarResourceId,
+                                   MAttendeeEng& aEngine,
+                                   TCoeHelpContext& aHelpContext,
+                                   MAgnEntryUiCallback& aEntryUiCallback )
+    {
+    CAttendeeViewerDlg* self = 
+        new(ELeave)CAttendeeViewerDlg( aArray, 
+                                       aEngine,
+                                       aMenuBarResourceId,
+                                       aOkMenuBarResourceId,
+                                       aHelpContext,
+                                       aEntryUiCallback );
+    CleanupStack::PushL( self );
+    self->ConstructL( aMenuBarResourceId );
+    
+    return self;
+    }
+// ----------------------------------------------------------------------------
+// CAttendeeViewerDlg::CAttendeeViewerDlg
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// ----------------------------------------------------------------------------
+//
+CAttendeeViewerDlg::CAttendeeViewerDlg( 
+                                 MDesCArray *aArray, 
+                                 MAttendeeEng& aEngine,
+                                 TInt aMenuBarResourceId,
+                                 TInt aOkMenuBarResourceId,
+                                 TCoeHelpContext& aHelpContext,
+                                 MAgnEntryUiCallback& aEntryUiCallback ):
+    CAttendeeDialogBase( aArray, 
+                         aEngine, 
+                         aMenuBarResourceId, 
+                         aOkMenuBarResourceId,
+                         aEntryUiCallback ),
+    iHelpContext( aHelpContext )
+    {
+
+    }
+
+// ---------------------------------------------------------
+// CAttendeeViewerDlg::~CAttendeeViewerDlg
+// ---------------------------------------------------------
+//
+CAttendeeViewerDlg::~CAttendeeViewerDlg()
+    {
+    }
+
+// ---------------------------------------------------------
+// CAttendeeViewerDlg::DynInitMenuPaneL
+// ---------------------------------------------------------
+//
+void CAttendeeViewerDlg::DynInitMenuPaneL( TInt aResourceId,
+                                            CEikMenuPane* aMenuPane )
+    {
+
+    const TInt visible( ListBox()->Model()->NumberOfItems() );
+    const TInt marked( ListBox()->SelectionIndexes()->Count() );
+    switch( aResourceId )
+        {      
+        case R_ATTENDEEVIEW_VIEWER_MENU:
+            {
+            if ( iEntryUiCallback.IsCommandAvailable( EMRCommandRespondAccept )
+                    && marked <= 0 )
+                {
+                aMenuPane->SetItemDimmed( EAttCmdRespond, EFalse );
+                }
+            else
+                {
+                aMenuPane->SetItemDimmed( EAttCmdRespond, ETrue );
+                }
+                
+            if ( marked > 0 )
+                {
+                aMenuPane->SetItemDimmed( EAttDetails, ETrue );
+                }
+            if ( visible <= 0 ) 
+                {
+                aMenuPane->SetItemDimmed( EAttDetails, ETrue );
+                }
+            break;
+            }
+        case R_ATTENDEEVIEW_VIEWER_CONTEXT_MENU:
+            {
+            if ( marked > 0 )
+                {                
+                aMenuPane->SetItemDimmed( EAttDetails, ETrue );                
+                aMenuPane->SetItemDimmed( EAttCmdRespond, ETrue );
+                aMenuPane->SetItemDimmed( EAttCmdSend, EFalse );                               
+                }
+            else
+                {                
+                if ( iEntryUiCallback.IsCommandAvailable( EMRCommandRespondAccept ) )
+                    {
+                    aMenuPane->SetItemDimmed( EAttCmdRespond, EFalse );
+                    }
+                else
+                    {
+                    aMenuPane->SetItemDimmed( EAttCmdRespond, ETrue );
+                    }
+                    
+                aMenuPane->SetItemDimmed( EAttCmdSend, ETrue );
+                }
+            break;
+            }
+        default:
+            {
+            CAttendeeDialogBase::DynInitMenuPaneL( aResourceId, aMenuPane );
+            break;
+            }
+        }
+    }
+
+// ----------------------------------------------------
+// CAttendeeViewerDlg::MakeEmptyTextListBoxL
+// ----------------------------------------------------
+//
+void CAttendeeViewerDlg::MakeEmptyTextListBoxL()
+    {
+    HBufC* textFromResourceFile;
+    textFromResourceFile = 
+        StringLoader::LoadLC( R_ATTENDEE_VIEWER_EMPTY_TEXT, 
+                              CEikonEnv::Static() );    
+    ListBox()->View()->SetListEmptyTextL( *textFromResourceFile );
+    CleanupStack::PopAndDestroy( textFromResourceFile ); 
+    }
+
+// ----------------------------------------------------
+// CAttendeeDialogBase::DetailsCmdL
+// ---------------------------------------------------------
+//
+void CAttendeeViewerDlg::DetailsCmdL()
+    {
+    TInt index( ListBox()->CurrentItemIndex() );
+    if ( index >= 0 && index < ListBox()->Model()->NumberOfItems() 
+         && index < iEngine.NumberOfItems())
+        {
+        CPbkContactItem* item = iEngine.PbkContactItemL( index );
+        if ( !item )
+            {
+            item = CreateContactL(
+                    iEngine.At( index ).AgnAttendee()->Address() );
+            }
+        CleanupStack::PushL( item );
+
+        CAttendeeDetailsDlg* dlg = CAttendeeDetailsDlg::NewL(
+                                item,
+                                &iEngine.ContactEngine(),
+                                iEngine.At( index ).AgnAttendee()->StatusL(),
+                                EFalse ); 
+        dlg->RunLD();
+
+        CleanupStack::PopAndDestroy( item );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CAttendeeDialogBase::GetHelpContext
+// -----------------------------------------------------------------------------
+//
+void CAttendeeViewerDlg::GetHelpContext( TCoeHelpContext& aContext ) const
+    {
+    
+    //If help text was given in construction use it 
+    if(!iHelpContext.IsNull())
+        {
+        aContext = iHelpContext;
+        }
+    else
+        {
+        //Remove comments after new cale.hlp.hrh is ready
+        //aContext.iContext = KCALE_HLP_ATTENDEE_VIEW;
+        //aContext.iMajor = TUid::Uid( KEcomDllUID );
+        }    
+    }
+   
+// End of File