--- a/uifw/eikctl/src/EIKMFNE.CPP Thu Aug 19 10:11:06 2010 +0300
+++ b/uifw/eikctl/src/EIKMFNE.CPP Tue Aug 31 15:28:30 2010 +0300
@@ -104,128 +104,6 @@
User::Panic(KPanicCat, aPanic);
}
-NONSHARABLE_CLASS(CEikTimeEditorExtension) : public CBase,
- public CAknExtendedInputCapabilities::MAknEventObserver
- {
-public:
- static CEikTimeEditorExtension* NewL();
- virtual ~CEikTimeEditorExtension();
-private:
- CEikTimeEditorExtension();
-
- void ConstructL();
-public:
- /**
- * From CAknExtendedInputCapabilities::MAknEventObserver
- * Handle an event
- *
- * @since S60 v9.2
- * @param aEvent An event, see TInputCapabilitiesEvent
- * @param aParams Event dependent parameters
- */
-
- void HandleInputCapabilitiesEventL( TInt aEvent, TAny* aParams );
-public:
- CEikTimeEditor * iEditor;
- };
-
-CEikTimeEditorExtension* CEikTimeEditorExtension::NewL()
- {
- CEikTimeEditorExtension* self = new (ELeave) CEikTimeEditorExtension();
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- }
-
-CEikTimeEditorExtension::~CEikTimeEditorExtension()
- {
-
- }
-
-CEikTimeEditorExtension::CEikTimeEditorExtension()
- {
- }
-
-void CEikTimeEditorExtension::ConstructL()
- {
- }
-
-void CEikTimeEditorExtension::HandleInputCapabilitiesEventL( TInt aEvent, TAny* /*aParams*/ )
- {
- switch ( aEvent )
- {
- case CAknExtendedInputCapabilities::MAknEventObserver::EChangeAmPm:
- if ( iEditor )
- {
- iEditor->ChangeAmPm();
- }
- break;
- }
- return;
- }
-
-
-NONSHARABLE_CLASS(CEikTimeAndDateEditorExtension) : public CBase,
- public CAknExtendedInputCapabilities::MAknEventObserver
- {
-public:
- static CEikTimeAndDateEditorExtension* NewL();
- virtual ~CEikTimeAndDateEditorExtension();
-private:
- CEikTimeAndDateEditorExtension();
-
- void ConstructL();
-public:
- /**
- * From CAknExtendedInputCapabilities::MAknEventObserver
- * Handle an event
- *
- * @since S60 v9.2
- * @param aEvent An event, see TInputCapabilitiesEvent
- * @param aParams Event dependent parameters
- */
-
- void HandleInputCapabilitiesEventL( TInt aEvent, TAny* aParams );
-public:
- CEikTimeAndDateEditor * iEditor;
- };
-
-CEikTimeAndDateEditorExtension* CEikTimeAndDateEditorExtension::NewL()
- {
- CEikTimeAndDateEditorExtension* self = new (ELeave) CEikTimeAndDateEditorExtension();
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- }
-
-CEikTimeAndDateEditorExtension::~CEikTimeAndDateEditorExtension()
- {
-
- }
-
-CEikTimeAndDateEditorExtension::CEikTimeAndDateEditorExtension()
- {
- }
-
-void CEikTimeAndDateEditorExtension::ConstructL()
- {
- }
-
-void CEikTimeAndDateEditorExtension::HandleInputCapabilitiesEventL( TInt aEvent, TAny* /*aParams*/ )
- {
- switch ( aEvent )
- {
- case CAknExtendedInputCapabilities::MAknEventObserver::EChangeAmPm:
- if ( iEditor )
- {
- iEditor->ChangeAmPm();
- }
- break;
- }
- return;
- }
NONSHARABLE_CLASS(CEikMfneExtension) : public CBase, public MCoeFepAwareTextEditor
{
public:
@@ -277,6 +155,7 @@
iExtendedInputCapabilitiesProvider;
TInt iClipGcToRect; // Mainly for 0/1 values
TInt iDisablePenInput; // Mainly for 0/1 values
+ TBool iTwiceTap;
TBool iCursorShown;
TBool iFingerSupport;
TInt iFingerParam;
@@ -287,7 +166,6 @@
MTouchFeedback* iFeedback;
TBool iLaunchPenInputAutomatic;
TBool iPartialScreenInput;
- TBool iChangeAmPm;
};
// Implementation of the extension
@@ -1734,7 +1612,7 @@
if ( !ConsumesUpAndDownKeys() && (code==EKeyDownArrow || code==EKeyUpArrow))
return EKeyWasNotConsumed;
- if ((aType==EEventKey) && (iCurrentField!=ENullIndex) && iExtension &&
+ if ((aType==EEventKey) && (iCurrentField!=ENullIndex) &&
( aKeyEvent.iRepeats == 0 || code == EKeyLeftArrow ||
code == EKeyRightArrow || code == EKeyDownArrow || code == EKeyUpArrow ) )
{
@@ -1864,7 +1742,7 @@
{
const CFont& font=*Font();
TBool drawAllFields = ETrue;
- if ( aHandleDeHighlight && iExtension )
+ if (aHandleDeHighlight)
{
iFields[iCurrentField]->HandleDeHighlight(font, *iEikonEnv, aDataAltered, aError);
iExtension->iValidateValueCallBack.CallBack();
@@ -1966,7 +1844,7 @@
return;
}
}
- if ( aAlignment >= ELayoutAlignNone )
+ if ( aAlignment >= ELayoutAlignNone && iExtension )
{
iAlignment = aAlignment;
TUint capabilities = iExtension->
@@ -2053,7 +1931,6 @@
iExtension->iDisablePenInput = !( iExtension->iFingerSupport );
iExtension->iFingerParam = aFeatureParam;
iExtension->iHighlightAll = ( iExtension->iFingerSupport &&
- !iExtension->iTouchActivated &&
aFeatureParam == EnableWithAllHighlight );
}
else
@@ -2091,26 +1968,6 @@
ret = KErrGeneral;
}
break;
- case EChangeAmPm:
- if ( iExtension )
- {
- iExtension->iChangeAmPm = aFeatureParam;
- TUint caps( iExtension->iExtendedInputCapabilities->Capabilities() );
- if ( aFeatureParam )
- {
- caps |= CAknExtendedInputCapabilities::EInputEditorAmPm;
- }
- else
- {
- caps &= ~CAknExtendedInputCapabilities::EInputEditorAmPm;
- }
- iExtension->iExtendedInputCapabilities->SetCapabilities( caps );
- }
- else
- {
- ret = KErrGeneral;
- }
- break;
default:
ret = KErrNotSupported;
break;
@@ -2183,16 +2040,6 @@
ret = KErrGeneral;
}
break;
- case EChangeAmPm:
- if ( iExtension )
- {
- aFeatureParam = iExtension->iChangeAmPm;
- }
- else
- {
- ret = KErrGeneral;
- }
- break;
default:
ret = KErrNotSupported;
break;
@@ -2213,8 +2060,7 @@
EDisablePenInput,
EFingerSupport,
ELaunchPenInputAutomatic,
- EPartialScreenInput,
- EChangeAmPm
+ EPartialScreenInput
};
TBool ret = EFalse;
@@ -2407,12 +2253,18 @@
}
if (newField==ENullIndex)
newField=iCurrentField;
+ if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
+ {
+ iExtension->iTwiceTap = ( iExtension->iFingerSupport ? ETrue :
+ newField == iCurrentField );
+ }
if (iExtension && aPointerEvent.iType == TPointerEvent::EButton1Down)
{
// Edit feedback on down event in current field,
// Edit feedback when changing fields
- TTouchLogicalFeedback feedback = ETouchFeedbackEdit;
+ TTouchLogicalFeedback feedback =
+ ( iExtension->iTwiceTap ? ETouchFeedbackEditor : ETouchFeedbackEditor );
iExtension->iFeedback->InstantFeedback( this, feedback );
}
TBool createPopoutIfRequired=((newField==iCurrentField) && aPointerEvent.iType==TPointerEvent::EButton1Down && IsFocused());
@@ -2427,10 +2279,10 @@
}
else if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
{
- if ( iExtension && !iExtension->iDisablePenInput )
+ if ( iExtension && !iExtension->iDisablePenInput && iExtension->iTwiceTap )
{
iExtension->iFeedback->InstantFeedback( this,
- ETouchFeedbackEdit,
+ ETouchFeedbackEditor,
ETouchFeedbackVibra,
aPointerEvent );
LaunchPenInputL();
@@ -2594,7 +2446,7 @@
{
if (i>=aFirstField)
{
- if (focused && iExtension && ( iExtension->iHighlightAll || ( i == iCurrentField
+ if (focused && ( iExtension->iHighlightAll || ( i == iCurrentField
&& iFields[i]->HighlightType() == CEikMfneField::EInverseVideo
&& iFields[i]->FieldText().Length() > 0 ) ) && !isEmpty )
{
@@ -2603,7 +2455,10 @@
}
else
{
-
+ if (IsDimmed())
+ SetGcToDimmedVideo(aGc);
+ else
+ SetGcToNormalVideo(aGc);
// Note!! This is taking responsibility away from the CEikMfne Field for drawing
// Skin background is drawn for the fields here
@@ -2638,15 +2493,6 @@
// Set up null brush GC here for the upcoming draw
aGc.SetBrushStyle(CGraphicsContext::ENullBrush);
}
- // set aGc for drawing field text
- if ( IsDimmed() )
- {
- SetGcToDimmedVideo( aGc );
- }
- else
- {
- SetGcToNormalVideo( aGc );
- }
}
// This draw must only draw the text with a null brush or draw block highlight
iFields[i]->Draw(aGc, font, topLeftOfField);
@@ -2857,15 +2703,12 @@
GetCursorInfo( cursorPosition, cursorHeight, cursorWidth, cursorAscent );
iEikonEnv->DrawCursor(this, cursorPosition, cursorWidth, cursorAscent, cursorHeight);
- if ( iExtension )
- {
- iExtension->iCursorShown = ETrue;
- }
+ iExtension->iCursorShown = ETrue;
}
void CEikMfne::HideCursor()
{
- if ( iExtension && iExtension->iCursorShown )
+ if ( iExtension->iCursorShown )
{
iEikonEnv->HideCursor(this);
iExtension->iCursorShown = EFalse;
@@ -3307,8 +3150,7 @@
void SetUninitialised(TBool aUninitialised);
TBool IsUninitialised() const;
void RefreshFromLocale(const CFont& aFont);
- void ChangeAmPm();
- TBool HasAmPm();
+
private:
void AddAmPmFieldsIfNecessaryL(CEikMfne& aOwner, TAmPm aAmPm, TLocalePos aPos);
private:
@@ -3579,25 +3421,7 @@
(iAmPm && iAmPm->IsUninitialised());
}
-void CTimeEditor::ChangeAmPm()
- {
- if ( iAmPm && HasAmPm() )
- {
- if ( iAmPm->IdOfCurrentSymbolicItem() == EPm )
- {
- iAmPm->SetCurrentSymbolicItemToId(EAm);
- }
- else
- {
- iAmPm->SetCurrentSymbolicItemToId(EPm);
- }
- }
- }
-
-TBool CTimeEditor::HasAmPm()
- {
- return iAmPm && ( iFlags&EIn12HourFormat );
- }
+
// CDateEditor
class CDateEditor : public CBase
@@ -3995,9 +3819,7 @@
EXPORT_C CEikTimeEditor::~CEikTimeEditor()
{
AKNTASHOOK_REMOVE();
- iExtension->iExtendedInputCapabilities->UnregisterObserver(iTimeExtension);
delete iTimeEditor;
- delete iTimeExtension;
}
EXPORT_C void CEikTimeEditor::ConstructL(const TTime& aMinimumTime, const TTime& aMaximumTime, const TTime& aInitialTime, TUint32 aFlags)
@@ -4008,10 +3830,6 @@
iTimeEditor->ConstructFieldsL(*this, aInitialTime, *Font());
iTimeEditor->RefreshFromLocale(*Font());
DoSetMinimumAndMaximum(aMinimumTime, aMaximumTime);
- iTimeExtension = CEikTimeEditorExtension::NewL();
- iTimeExtension->iEditor = this;
- iExtension->iExtendedInputCapabilities->RegisterObserver(iTimeExtension);
- SetFeature( CEikMfne::EChangeAmPm, iTimeEditor->HasAmPm() );
}
EXPORT_C void CEikTimeEditor::SetMinimumAndMaximum(const TTime& aMinimumTime, const TTime& aMaximumTime)
@@ -4107,19 +3925,6 @@
return iTimeEditor->IsUninitialised();
}
-void CEikTimeEditor::ChangeAmPm( )
- {
- TInt para( 0 );
- GetFeature( CEikMfne::EChangeAmPm, para );
- if ( para )
- {
- iTimeEditor->ChangeAmPm();
- DrawDeferred();
- TRAP_IGNORE ( ReportEventL( MCoeControlObserver::EEventStateChanged ) );
- ReportUpdate();
- }
- return;
- }
// CEikDateEditor
EXPORT_C CEikDateEditor::CEikDateEditor()
@@ -4184,24 +3989,18 @@
return(Date());
}
-EXPORT_C TKeyResponse CEikDateEditor::OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType )
- {
- TKeyResponse ret = EKeyWasNotConsumed;
- if ( iDateEditor->OfferKeyEventL( aKeyEvent, aType ) == EKeyWasConsumed )
- {
- ret = EKeyWasConsumed;
- }
- else
+EXPORT_C TKeyResponse CEikDateEditor::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType)
+ {
+ if (iDateEditor->OfferKeyEventL(aKeyEvent, aType)==EKeyWasConsumed)
+ return EKeyWasConsumed;
+ if ( ( aType==EEventKey)&&
+ ( aKeyEvent.iCode == EKeyLeftArrow || aKeyEvent.iCode == EKeyRightArrow ||
+ aKeyEvent.iCode == EKeyDownArrow || aKeyEvent.iCode == EKeyUpArrow ) )
{
- ret = CEikMfne::OfferKeyEventL( aKeyEvent, aType );
- if ( ( aType == EEventKey ) &&
- ( aKeyEvent.iCode == EKeyDownArrow || aKeyEvent.iCode == EKeyUpArrow ) )
- {
- iDateEditor->UpdateMaxDay( *Font() );
- this->DrawDeferred();
- }
+ iDateEditor->UpdateMaxDay( *Font() );
}
- return ret;
+
+ return CEikMfne::OfferKeyEventL(aKeyEvent, aType);
}
EXPORT_C void CEikDateEditor::ConstructFromResourceL(TResourceReader& aResourceReader)
@@ -4302,10 +4101,8 @@
EXPORT_C CEikTimeAndDateEditor::~CEikTimeAndDateEditor()
{
AKNTASHOOK_REMOVE();
- iExtension->iExtendedInputCapabilities->UnregisterObserver(iTimeDateExtension);
delete iTimeEditor;
delete iDateEditor;
- delete iTimeDateExtension;
}
EXPORT_C void CEikTimeAndDateEditor::ConstructL(const TTime& aMinimumTimeAndDate, const TTime& aMaximumTimeAndDate,
@@ -4351,10 +4148,6 @@
// do stuff that can only be done when all leaving functions have successfully been done
if (aInterveningText)
interveningText->SetText(aInterveningText);
- iTimeDateExtension = CEikTimeAndDateEditorExtension::NewL();
- iTimeDateExtension->iEditor = this;
- iExtension->iExtendedInputCapabilities->RegisterObserver(iTimeDateExtension);
- SetFeature( CEikMfne::EChangeAmPm, iTimeEditor->HasAmPm() );
}
EXPORT_C void CEikTimeAndDateEditor::SetMinimumAndMaximum(const TTime& aMinimumTimeAndDate, const TTime& aMaximumTimeAndDate)
@@ -4494,19 +4287,6 @@
{
}
-void CEikTimeAndDateEditor::ChangeAmPm( )
- {
- TInt para( 0 );
- GetFeature( CEikMfne::EChangeAmPm, para );
- if ( para )
- {
- iTimeEditor->ChangeAmPm();
- DrawDeferred();
- TRAP_IGNORE ( ReportEventL( MCoeControlObserver::EEventStateChanged ) );
- ReportUpdate();
- }
- return;
- }
// CEikDurationEditor
@@ -4798,19 +4578,10 @@
EXPORT_C void CEikMfne::MakeVisible( TBool aVisible )
{
CEikBorderedControl::MakeVisible( aVisible );
- if ( !aVisible && iExtension && iExtension->iCursorShown )
+ if ( !aVisible && iExtension->iCursorShown )
{
HideCursor();
}
-
- if ( iExtension && !aVisible )
- {
- TRAP_IGNORE (
- iExtension->iExtendedInputCapabilities->ReportEventL(
- CAknExtendedInputCapabilities::MAknEventObserver::EClosePenInputRequest,
- 0 );
- )
- }
}
void CEikMfne::SetValidateCallBack( TCallBack aCallBack )