locationsystemui/locationsysui/locverifier/src/lpdglobalplugindialog.cpp
changeset 0 667063e416a2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/locverifier/src/lpdglobalplugindialog.cpp	Tue Feb 02 01:06:48 2010 +0200
@@ -0,0 +1,233 @@
+/*
+* 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:  List query dialog suitable for verifier plug-in use.
+*
+*/
+
+
+// INCLUDE FILES
+#include "lpdglobalplugindialog.h"
+#include "lpddlgobserver.h"
+#include "locverifierdlg.hrh"
+#include <uikon/eiksrvui.h>
+#include <AknNotiferAppServerApplication.h>
+#include <e32des16.h>
+#include "lpdbkupevtlistenerao.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CLpdGlobalPluginDialog::CLpdGlobalPluginDialog
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CLpdGlobalPluginDialog::CLpdGlobalPluginDialog(                    
+    MLpdDlgObserver& aCallBack,
+    CLpdGlobalPluginDialog ** aSelfPtr,
+    CListBoxView::CSelectionIndexArray* aSelected)
+    : CAknListQueryDialog( &iDummyIndex ),
+      iCallBack( aCallBack ),
+      iAppSwitchSuppressed( EFalse ),
+      iSelected( aSelected ),
+      iSelfPtr( aSelfPtr )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdGlobalPluginDialog::ConstructL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+void CLpdGlobalPluginDialog::ConstructL()
+	{
+	iBkupListener = CLpdBkupEvtListenerAO::NewL( *this );
+	iBkupListener->StartL();
+	}
+
+
+// -----------------------------------------------------------------------------
+// CLpdGlobalPluginDialog::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CLpdGlobalPluginDialog* CLpdGlobalPluginDialog::NewL(                    
+    MLpdDlgObserver& aCallBack,
+    CLpdGlobalPluginDialog ** aSelfPtr,
+    CListBoxView::CSelectionIndexArray* aSelected)
+    {
+    CLpdGlobalPluginDialog* self =
+        new( ELeave ) CLpdGlobalPluginDialog( aCallBack, aSelfPtr, aSelected);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop(self);  
+    return self;
+    }
+
+// Destructor
+CLpdGlobalPluginDialog::~CLpdGlobalPluginDialog()
+	{
+    if ( iSelfPtr )
+        {
+        *iSelfPtr = NULL;
+        }
+    if ( iBkupListener )
+    	{
+    	delete iBkupListener;	
+    	}
+	}
+
+// -----------------------------------------------------------------------------
+// CLpdGlobalPluginDialog::PrepareLC
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdGlobalPluginDialog::PrepareLC( TInt aResourceId )
+	{
+	CAknDialog::PrepareLC( aResourceId );
+	}
+
+// -----------------------------------------------------------------------------
+// CLpdGlobalPluginDialog::RunLD
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CLpdGlobalPluginDialog::RunLD()
+    {
+ 		if ( !iAppSwitchSuppressed )
+      {
+			TInt err = 
+				((CAknNotifierAppServerAppUi *)
+					iEikonEnv->EikAppUi())->SuppressAppSwitching(ETrue);
+	 		if (!err)        
+	 			{
+	 			iAppSwitchSuppressed = ETrue;	
+	 			}
+      }
+    return CAknQueryDialog::RunLD();
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdGlobalPluginDialog::OfferKeyEventL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TKeyResponse CLpdGlobalPluginDialog::OfferKeyEventL(
+    const TKeyEvent& aKeyEvent,
+    TEventCode aType )
+    {
+    if ( aType != EEventKey )
+        {
+        return EKeyWasNotConsumed;
+        }
+    
+    TInt code = aKeyEvent.iCode;
+
+    switch ( code )
+        {
+        case EKeyEscape:
+            { // emergency call support
+            TryExitL( ELpdCmdEmergency );
+			return EKeyWasConsumed;
+            }
+        default:
+        	break;
+        }
+    return ListBox()->OfferKeyEventL( aKeyEvent, aType );
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdGlobalPluginDialog::SetHeaderTextL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdGlobalPluginDialog::SetHeaderTextL( const TDesC& aText )
+    {
+    CAknPopupHeadingPane* heading = NULL;
+    User::LeaveIfNull( heading = QueryHeading() );
+    heading->SetTextL( aText );
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdGlobalPluginDialog::ExitDialogL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdGlobalPluginDialog::ExitDialogL()
+    {
+    TryExitL( EEikCmdExit );
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdGlobalPluginDialog::ExitDialogL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdGlobalPluginDialog::ExitDialogQuietlyL()
+    {
+    TryExitL( ELpdCmdQuietExit );
+    }
+
+// -----------------------------------------------------------------------------
+// CLpdGlobalPluginDialog::OkToExitL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TBool CLpdGlobalPluginDialog::OkToExitL( TInt aButtonId )
+    {
+    if ( aButtonId == EAknSoftkeyCancel || aButtonId == EAknSoftkeyOk )
+        {
+        TInt currentIndex = ListBox()->CurrentItemIndex();
+        const CListBoxView::CSelectionIndexArray* aSelectionIndex = 
+            ListBox()->View()->SelectionIndexes();
+        if ( iSelected && aSelectionIndex->Count() > 0 )
+            { // CSelectionIndexArray was given in constructor and
+              // listbox view also has selection indexes.
+            ListBox()->View()->GetSelectionIndexesL( iSelected );
+            }
+        iCallBack.HandleDlgDismissedL( aButtonId, currentIndex );
+        }
+    else if ( ( aButtonId == EEikCmdExit ) || 
+              ( aButtonId == ELpdCmdEmergency ) )
+        { // Dialog needs to be exited or emergency key has been pressed.
+        iCallBack.HandleDlgDismissedL( aButtonId, -1 );
+        }
+    else if ( aButtonId == ELpdCmdQuietExit )
+        {
+        // No callback.
+        }
+    else
+        {
+        return EFalse; //dialog is not exited
+        }
+
+    if ( iAppSwitchSuppressed )
+        {
+				TInt er = 
+					((CAknNotifierAppServerAppUi *)
+						iEikonEnv->EikAppUi())->SuppressAppSwitching(EFalse);
+		 		if (!er)
+		 			{
+		 			iAppSwitchSuppressed = EFalse;
+		 			}
+        }
+    return ETrue; // dialog is exited
+    }
+
+void CLpdGlobalPluginDialog::HandleResourceChange(TInt aType)
+	{
+	CAknListQueryDialog::HandleResourceChange(aType);
+	}
+// End of file
+