--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/engines/vmbxengine/src/vmdialog.cpp Tue Feb 02 01:11:09 2010 +0200
@@ -0,0 +1,248 @@
+/*
+* Copyright (c) 2002 - 2009 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: Implementation of CVmTextQueryDialog class.
+*
+*/
+
+
+// INCLUDE FILES
+#include <AknQueryDialog.h>
+#include <featmgr.h>
+#include "vmdialog.h"
+#include <vmbx.rsg>
+#include "vmblogger.h"
+
+
+// MEMBER FUNCTIONS
+
+// -----------------------------------------------------------------------------
+// CVmTextQueryDialog::CVmTextQueryDialog
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CVmTextQueryDialog::CVmTextQueryDialog( TDes& aDataText,
+ const TBool aSearchEnabled )
+ : CAknTextQueryDialog( aDataText ),
+ iSearchEnabled( aSearchEnabled )
+ {
+ // no tone as default
+ }
+
+// -----------------------------------------------------------------------------
+// CVmTextQueryDialog::~CVmTextQueryDialog
+// Destructor
+// -----------------------------------------------------------------------------
+//
+CVmTextQueryDialog::~CVmTextQueryDialog()
+{
+
+}
+
+// -----------------------------------------------------------------------------
+// CVmTextQueryDialog::NewL
+// Two-phased constructor
+// -----------------------------------------------------------------------------
+//
+CVmTextQueryDialog* CVmTextQueryDialog::NewL( TDes& aDataText,
+ const TDesC& aPrompt,
+ const TBool aSearchEnabled )
+ {
+ VMBLOGSTRING( "VMBX: CVmTextQueryDialog::NewL =>" );
+ CVmTextQueryDialog* query = new( ELeave ) CVmTextQueryDialog( aDataText,
+ aSearchEnabled );
+ CleanupStack::PushL( query );
+ query->SetPromptL( aPrompt );
+ CleanupStack::Pop( query );
+ VMBLOGSTRING( "VMBX: CVmTextQueryDialog: <=:NewL " );
+ return query;
+ }
+
+// -----------------------------------------------------------------------------
+// CVmTextQueryDialog::PreLayoutDynInitL
+// Pre-layout dialog initialisation
+// -----------------------------------------------------------------------------
+//
+void CVmTextQueryDialog::PreLayoutDynInitL()
+ {
+ VMBLOGSTRING( "VMBX: CVmTextQueryDialog::PreLayoutDynInitL =>" );
+ CAknTextQueryDialog::PreLayoutDynInitL();
+
+ // Change command buttons if needed
+ if ( iSearchEnabled && !QueryControl()->GetTextLength() )
+ {
+ ButtonGroupContainer().SetCommandSetL(
+ R_VMBX_SOFTKEYS_SEARCH_CANCEL_SELECT );
+ }
+
+ MakeLeftSoftkeyVisible( ETrue );
+
+ // Set Pen support flags.
+ if ( FeatureManager::FeatureSupported( KFeatureIdPenSupport ) )
+ {
+ VMBLOGSTRING( "VMBX: CVmTextQueryDialog::PreLayoutDynInitL Pen" );
+ CAknQueryControl* control = QueryControl();
+ if( control )
+ {
+ VMBLOGSTRING( "VMBX: CVmTextQueryDialog::PreLayoutDynInitL ctr" );
+ CCoeControl *controlByLayout =
+ control->ControlByLayoutOrNull( control->QueryType() );
+ if ( controlByLayout )
+ {
+ VMBLOGSTRING( "VMBX: CVmTextQueryDialog::PreLayoutDynInitL\
+ edit" );
+ CEikEdwin* numberEditor =
+ static_cast< CEikEdwin* > ( controlByLayout );
+ VMBLOGSTRING( "VMBX: CVmTextQueryDialog::PreLayoutDynInitL\
+ cast" );
+ TInt flags = numberEditor->AknEdwinFlags()
+ | EAknEditorFlagDeliverVirtualKeyEventsToApplication;
+ VMBLOGSTRING( "VMBX: CVmTextQueryDialog::PreLayoutDynInitL\
+ flag" );
+ numberEditor->SetAknEditorFlags( flags );
+ VMBLOGSTRING( "VMBX: CVmTextQueryDialog::PreLayoutDynInitL\
+ set done" );
+ }
+ }
+ }
+
+ VMBLOGSTRING( "VMBX: CVmTextQueryDialog::PreLayoutDynInitL <=" );
+ }
+
+// -----------------------------------------------------------------------------
+// CVmTextQueryDialog::HandleQueryEditorStateEventL
+// Called when query editor event happens
+// -----------------------------------------------------------------------------
+//
+TBool CVmTextQueryDialog::HandleQueryEditorStateEventL(
+ CAknQueryControl* /*aQueryControl*/,
+ TQueryControlEvent /*aEventType*/,
+ TQueryValidationStatus /*aStatus*/ )
+ {
+ VMBLOGSTRING( "VMBX: CVmTextQueryDialog::HandleQueryEditorStateEventL =>" );
+ MakeLeftSoftkeyVisible( ETrue );
+ if ( iSearchEnabled )
+ {
+ if ( !QueryControl()->GetTextLength() )
+ {
+ ButtonGroupContainer().SetCommandSetL(
+ R_VMBX_SOFTKEYS_SEARCH_CANCEL_SELECT );
+ }
+ else
+ {
+ ButtonGroupContainer().SetCommandSetL(
+ R_AVKON_SOFTKEYS_OK_CANCEL__OK );
+ }
+ ButtonGroupContainer().DrawDeferred();
+ }
+ VMBLOGSTRING( "VMBX: CVmTextQueryDialog::HandleQueryEditorStateEventL <=" );
+ return EFalse;
+ }
+
+// -----------------------------------------------------------------------------
+// CVmTextQueryDialog::OfferKeyEventL
+// Handles key events
+// -----------------------------------------------------------------------------
+//
+TKeyResponse CVmTextQueryDialog::OfferKeyEventL( const TKeyEvent& aKeyEvent,
+ TEventCode aType )
+ {
+ VMBLOGSTRING( "VMBX: CVmTextQueryDialog::OfferKeyEventL =>" );
+ TKeyResponse response = EKeyWasConsumed;
+ switch( aKeyEvent.iScanCode )
+ {
+ case EStdKeyYes:
+ // Catch this key event. EStdKeyYes would leak to other controls.
+ break;
+
+ default:
+ response = CAknTextQueryDialog::OfferKeyEventL( aKeyEvent, aType );
+ break;
+ }
+
+ VMBLOGSTRING( "VMBX: CVmTextQueryDialog::OfferKeyEventL <=" );
+ return response;
+ }
+
+// -----------------------------------------------------------------------------
+// CVmTextQueryDialog::DissmissQueryDlg
+// Dissmiss the query with cancel
+// -----------------------------------------------------------------------------
+//
+void CVmTextQueryDialog::DismissQueryDlg()
+ {
+ // try to dismiss query,leave will be ignored
+ TRAP_IGNORE( TryExitL( EAknSoftkeyCancel ) );
+ }
+
+// -----------------------------------------------------------------------------
+// CVMSimQueryDilaog::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CVMSimQueryDilaog* CVMSimQueryDilaog::NewL()
+ {
+ CVMSimQueryDilaog* query = new( ELeave )CVMSimQueryDilaog( );
+ CleanupStack::PushL( query );
+
+ CleanupStack::Pop( query );
+ return query;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CVMSimQueryDilaog::CVMSimQueryDilaog
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CVMSimQueryDilaog::CVMSimQueryDilaog(): CAknQueryDialog(
+ CAknQueryDialog::EConfirmationTone )
+ {
+ // no tone as default
+ }
+
+// -----------------------------------------------------------------------------
+// CVMSimQueryDilaog:: ~CVMSimQueryDilaog
+// Destructor
+// -----------------------------------------------------------------------------
+//
+CVMSimQueryDilaog:: ~CVMSimQueryDilaog()
+ {
+
+ }
+
+// -----------------------------------------------------------------------------
+// CVMSimQueryDilaog::SetVMSimPromptL
+// Sets query caption on the screen asking for confirmation to copy voice
+// mailbox number from sim.
+// -----------------------------------------------------------------------------
+//
+void CVMSimQueryDilaog::SetVMSimPromptL( const TDesC& aDesC )
+ {
+ SetPromptL( aDesC );
+ }
+
+// -----------------------------------------------------------------------------
+// CVMSimQueryDilaog::VMSimDismissDialogL
+// Destroys the query dialog
+// -----------------------------------------------------------------------------
+//
+void CVMSimQueryDilaog::VMSimDismissDialogL()
+ {
+ TryExitL( EEikBidCancel );
+ }
+
+
+// End of File