/*
* 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:
* Implementation of wrappers for standard note types
*
*/
#include <barsread.h>
#include <avkon.rsg>
#include <avkon.hrh>
#include "aknnotewrappers.h"
#include <StringLoader.h>
#include <touchfeedback.h>
#include <AknTasHook.h> // for testability hooks
#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
#include <gfxtranseffect/gfxtranseffect.h>
#include <akntransitionutils.h>
#endif
void TAknNoteResData::ReadFromResource(TResourceReader& aResReader)
{
iResId = aResReader.ReadInt32();
iTimeout = STATIC_CAST(CAknNoteDialog::TTimeout, aResReader.ReadInt32());
iTone = STATIC_CAST(CAknNoteDialog::TTone, aResReader.ReadInt16());
iText = aResReader.ReadTPtrC();
}
EXPORT_C CAknNoteWrapper::CAknNoteWrapper()
{
iTimeoutInMicroseconds = -1;
iTone = STATIC_CAST(TTone,-1);
AKNTASHOOK_ADD( this, "CAknNoteWrapper" );
}
EXPORT_C CAknNoteWrapper::CAknNoteWrapper(CAknNoteWrapper** aSelfPtr)
: CAknNoteDialog(REINTERPRET_CAST(CEikDialog**,aSelfPtr))
{
iTimeoutInMicroseconds = -1;
iTone = STATIC_CAST(TTone,-1);
AKNTASHOOK_ADD( this, "CAknNoteWrapper" );
}
EXPORT_C TInt CAknNoteWrapper::ExecuteLD(TInt aResId)
{
TAknNoteResData resData = ReadResDataAndPrepareL(aResId);
if (resData.iText.Length() > 0)
{
SetTextL(resData.iText);
}
if (iTimeoutInMicroseconds == -1)
{
SetTimeout(resData.iTimeout);
}
if (iTone == STATIC_CAST(TTone,-1))
{
SetTone(resData.iTone);
}
return RunLD();
}
EXPORT_C TInt CAknNoteWrapper::ExecuteLD(TInt aResId, const TDesC& aPrompt)
{
TAknNoteResData resData = ReadResDataAndPrepareL(aResId);
SetTextL(aPrompt);
if (iTimeoutInMicroseconds == -1)
{
SetTimeout(resData.iTimeout);
}
if (iTone == STATIC_CAST(TTone,-1))
{
SetTone(resData.iTone);
}
return RunLD();
}
TAknNoteResData CAknNoteWrapper::ReadResDataAndPrepareL(TInt aResId)
{
TResourceReader resReader;
CleanupStack::PushL( this );
iCoeEnv->CreateResourceReaderLC(resReader, aResId);
TAknNoteResData resData;
resData.ReadFromResource(resReader);
CleanupStack::PopAndDestroy(); // Resource reader
CleanupStack::Pop(); // this
PrepareLC(resData.iResId);
return resData;
}
EXPORT_C void CAknNoteWrapper::CEikDialog_Reserved_1()
{
}
EXPORT_C void CAknNoteWrapper::CEikDialog_Reserved_2()
{
}
EXPORT_C void CAknNoteWrapper::CAknNoteDialog_Reserved()
{
}
EXPORT_C void* CAknNoteWrapper::ExtensionInterface( TUid /*aInterface*/ )
{
return NULL;
}
//-------------------------------------------------------------------------------------
// CAknNoteWrapper::HandlePointerEventL()
// Due to the functionality of dialogs inherited from this father class it
// isn't necessary to check is the pointer down anywhere. Any tap, anywhere
// will close the dialog. If the up pointerevent is directed inside the area
// the HandleDialogPageEventL( EDialogPageTapped ) is called.
//-------------------------------------------------------------------------------------
//
EXPORT_C void CAknNoteWrapper::HandlePointerEventL(const TPointerEvent& aPointerEvent)
{
if ( AknLayoutUtils::PenEnabled() )
{
if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
{
MTouchFeedback* feedback = MTouchFeedback::Instance();
if ( feedback )
{
feedback->InstantFeedback( ETouchFeedbackPopUp );
}
}
if (aPointerEvent.iType == TPointerEvent::EButton1Up)
{
StaticDeleteL(this);
}
}
}
//-------------------------------------------------------------------------------------
// CAknNoteWrapper::HandleDialogPageEventL()
// This method is called when the CEikDialogPage, which has an observer handle
// to this class, is tapped. (it is called only on PointerUp event.)
//-------------------------------------------------------------------------------------
//
EXPORT_C void CAknNoteWrapper::HandleDialogPageEventL( TInt aEventID)
{
if ( AknLayoutUtils::PenEnabled() )
{
if ( aEventID == MEikDialogPageObserver::EDialogPageTapped )
{
StaticDeleteL(this);
}
}
}
EXPORT_C CAknConfirmationNote::CAknConfirmationNote()
: CAknResourceNoteDialog(R_AKN_CONFIRMATION_NOTE)
{
#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
GfxTransEffect::Register( this, KGfxConfirmationNoteControlUid );
#endif
AKNTASHOOK_ADD( this, "CAknConfirmationNote" );
}
//-------------------------------------------------------------------------------------
// CAknNoteWrapper::Reserved1
//-------------------------------------------------------------------------------------
//
EXPORT_C void CAknNoteWrapper::Reserved1()
{
}
EXPORT_C CAknConfirmationNote::CAknConfirmationNote( TBool aWaitingDialog )
: CAknResourceNoteDialog( ( aWaitingDialog ? R_AKN_CONFIRMATION_NOTE_WAIT :
R_AKN_CONFIRMATION_NOTE) )
{
#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
GfxTransEffect::Register( this, KGfxConfirmationNoteControlUid );
#endif
AKNTASHOOK_ADD( this, "CAknConfirmationNote" );
}
EXPORT_C CAknConfirmationNote::CAknConfirmationNote(CAknConfirmationNote** aSelfPtr)
: CAknResourceNoteDialog(
R_AKN_CONFIRMATION_NOTE,
REINTERPRET_CAST(CAknNoteWrapper**, aSelfPtr))
{
#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
GfxTransEffect::Register( this, KGfxConfirmationNoteControlUid );
#endif
AKNTASHOOK_ADD( this, "CAknConfirmationNote" );
}
EXPORT_C void CAknConfirmationNote::HandlePointerEventL(const TPointerEvent& aPointerEvent)
{
CAknResourceNoteDialog::HandlePointerEventL(aPointerEvent);
}
EXPORT_C void* CAknConfirmationNote::ExtensionInterface( TUid /*aInterface*/ )
{
return NULL;
}
EXPORT_C void CAknConfirmationNote::CEikDialog_Reserved_1()
{
}
EXPORT_C void CAknConfirmationNote::CEikDialog_Reserved_2()
{
}
EXPORT_C void CAknConfirmationNote::CAknNoteDialog_Reserved()
{
}
EXPORT_C void CAknConfirmationNote::CAknResourceNoteDialog_Reserved()
{
}
EXPORT_C CAknInformationNote::CAknInformationNote()
: CAknResourceNoteDialog(R_AKN_INFORMATION_NOTE)
{
#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
GfxTransEffect::Register( this, KGfxInformationNoteControlUid );
#endif
AKNTASHOOK_ADD( this, "CAknInformationNote" );
}
EXPORT_C CAknInformationNote::CAknInformationNote( TBool aWaitingDialog )
: CAknResourceNoteDialog( ( aWaitingDialog ? R_AKN_INFORMATION_NOTE_WAIT :
R_AKN_INFORMATION_NOTE) )
{
#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
GfxTransEffect::Register( this, KGfxInformationNoteControlUid );
#endif
AKNTASHOOK_ADD( this, "CAknInformationNote" );
}
EXPORT_C CAknInformationNote::CAknInformationNote(CAknInformationNote** aSelfPtr)
: CAknResourceNoteDialog(
R_AKN_INFORMATION_NOTE,
REINTERPRET_CAST(CAknNoteWrapper**, aSelfPtr))
{
#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
GfxTransEffect::Register( this, KGfxInformationNoteControlUid );
#endif
AKNTASHOOK_ADD( this, "CAknInformationNote" );
}
EXPORT_C void CAknInformationNote::HandlePointerEventL(const TPointerEvent& aPointerEvent)
{
CAknResourceNoteDialog::HandlePointerEventL(aPointerEvent);
}
EXPORT_C void* CAknInformationNote::ExtensionInterface( TUid /*aInterface*/ )
{
return NULL;
}
EXPORT_C void CAknInformationNote::CEikDialog_Reserved_1()
{
}
EXPORT_C void CAknInformationNote::CEikDialog_Reserved_2()
{
}
EXPORT_C void CAknInformationNote::CAknNoteDialog_Reserved()
{
}
EXPORT_C void CAknInformationNote::CAknResourceNoteDialog_Reserved()
{
}
EXPORT_C CAknErrorNote::CAknErrorNote()
: CAknResourceNoteDialog(R_AKN_ERROR_NOTE)
{
#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
GfxTransEffect::Register( this, KGfxErrorNoteControlUid );
#endif
AKNTASHOOK_ADD( this, "CAknErrorNote" );
}
EXPORT_C CAknErrorNote::CAknErrorNote( TBool aWaitingDialog )
: CAknResourceNoteDialog(( aWaitingDialog ? R_AKN_ERROR_NOTE_WAIT :
R_AKN_ERROR_NOTE ) )
{
#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
GfxTransEffect::Register( this, KGfxErrorNoteControlUid );
#endif
AKNTASHOOK_ADD( this, "CAknErrorNote" );
}
EXPORT_C CAknErrorNote::CAknErrorNote(CAknErrorNote** aSelfPtr)
: CAknResourceNoteDialog(
R_AKN_ERROR_NOTE,
REINTERPRET_CAST(CAknNoteWrapper**, aSelfPtr))
{
#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
GfxTransEffect::Register( this, KGfxErrorNoteControlUid );
#endif
AKNTASHOOK_ADD( this, "CAknErrorNote" );
}
EXPORT_C void CAknErrorNote::HandlePointerEventL(const TPointerEvent& aPointerEvent)
{
CAknResourceNoteDialog::HandlePointerEventL(aPointerEvent);
}
EXPORT_C void* CAknErrorNote::ExtensionInterface( TUid /*aInterface*/ )
{
return NULL;
}
EXPORT_C void CAknErrorNote::CEikDialog_Reserved_1()
{
}
EXPORT_C void CAknErrorNote::CEikDialog_Reserved_2()
{
}
EXPORT_C void CAknErrorNote::CAknNoteDialog_Reserved()
{
}
EXPORT_C void CAknErrorNote::CAknResourceNoteDialog_Reserved()
{
}
EXPORT_C CAknWarningNote::CAknWarningNote()
: CAknResourceNoteDialog(R_AKN_WARNING_NOTE)
{
#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
GfxTransEffect::Register( this, KGfxWarningNoteControlUid );
#endif
AKNTASHOOK_ADD( this, "CAknWarningNote" );
}
EXPORT_C CAknWarningNote::CAknWarningNote( TBool aWaitingDialog )
: CAknResourceNoteDialog(( aWaitingDialog ? R_AKN_WARNING_NOTE_WAIT :
R_AKN_WARNING_NOTE ) )
{
#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
GfxTransEffect::Register( this, KGfxWarningNoteControlUid );
#endif
AKNTASHOOK_ADD( this, "CAknWarningNote" );
}
EXPORT_C CAknWarningNote::CAknWarningNote(CAknWarningNote** aSelfPtr)
: CAknResourceNoteDialog(
R_AKN_WARNING_NOTE,
REINTERPRET_CAST(CAknNoteWrapper**, aSelfPtr))
{
#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
GfxTransEffect::Register( this, KGfxWarningNoteControlUid );
#endif
AKNTASHOOK_ADD( this, "CAknWarningNote" );
}
EXPORT_C void CAknWarningNote::HandlePointerEventL(const TPointerEvent& aPointerEvent)
{
CAknResourceNoteDialog::HandlePointerEventL(aPointerEvent);
}
EXPORT_C void* CAknWarningNote::ExtensionInterface( TUid /*aInterface*/ )
{
return NULL;
}
EXPORT_C void CAknWarningNote::CEikDialog_Reserved_1()
{
}
EXPORT_C void CAknWarningNote::CEikDialog_Reserved_2()
{
}
EXPORT_C void CAknWarningNote::CAknNoteDialog_Reserved()
{
}
EXPORT_C void CAknWarningNote::CAknResourceNoteDialog_Reserved()
{
}
EXPORT_C TInt CAknResourceNoteDialog::ExecuteLD()
{
return CAknNoteWrapper::ExecuteLD(iResId);
}
EXPORT_C TInt CAknResourceNoteDialog::ExecuteLD(const TDesC& aPrompt)
{
return CAknNoteWrapper::ExecuteLD(iResId, aPrompt);
}
EXPORT_C void CAknResourceNoteDialog::HandlePointerEventL(const TPointerEvent& aPointerEvent)
{
CAknNoteWrapper::HandlePointerEventL(aPointerEvent);
}
EXPORT_C void* CAknResourceNoteDialog::ExtensionInterface( TUid /*aInterface*/ )
{
return NULL;
}
EXPORT_C void CAknResourceNoteDialog::CEikDialog_Reserved_1()
{
}
EXPORT_C void CAknResourceNoteDialog::CEikDialog_Reserved_2()
{
}
EXPORT_C void CAknResourceNoteDialog::CAknNoteDialog_Reserved()
{
}
EXPORT_C void CAknResourceNoteDialog::CAknResourceNoteDialog_Reserved()
{
}
// End of File