--- a/classicui_plat/ganes_api/inc/ganes/HgScroller.h Tue May 25 12:58:19 2010 +0300
+++ b/classicui_plat/ganes_api/inc/ganes/HgScroller.h Wed Jun 09 09:58:37 2010 +0300
@@ -504,7 +504,7 @@
RBuf iPopupText1;
RBuf iPopupText2;
- TBool iFirstTime; // Flag to indicating first time run.
+ TBool iResetViewPosition; // ETrue on the first time run, and when iViewPosition must be reset.
TBool iPointerDown;
CPeriodic* iHighlightTimer; // Higlight timer, own.
--- a/classicui_pub/lists_api/inc/EIKLBX.H Tue May 25 12:58:19 2010 +0300
+++ b/classicui_pub/lists_api/inc/EIKLBX.H Wed Jun 09 09:58:37 2010 +0300
@@ -242,8 +242,16 @@
/**
* Construction flag for disabling item specific stylus popup menu.
*/
- EDisableItemSpecificMenu = 0x00040000
+ EDisableItemSpecificMenu = 0x00040000,
+
+ /**
+ * Construction flag to make item specific stylus popup menu always
+ * shown regardless of list's marking state if the tapped item has
+ * associated commands.
+ */
+ EItemSpecificMenuAlwaysShown = 0x00080000
};
+
enum {KEikMaxMatchingBufferLength = 2};
/**
--- a/classicui_pub/screen_clearer_api/inc/AknClearer.h Tue May 25 12:58:19 2010 +0300
+++ b/classicui_pub/screen_clearer_api/inc/AknClearer.h Wed Jun 09 09:58:37 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002-2006 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-2010 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"
@@ -86,6 +86,19 @@
* Sets skin background and shape for the cleared window.
*/
void SetSkinShapeL();
+
+ /**
+ * Creates the extension class.
+ */
+ void CreateExtensionL();
+
+ /**
+ * Sets the clearer as transparent or opaque.
+ *
+ * @param aTransparent @c ETrue to set transparency on,
+ * @c EFalse otherwise.
+ */
+ void SetTransparent( TBool aTransparent );
private:
CAknScreenClearerBaseExtension* iExtension;
@@ -115,7 +128,16 @@
* @c EFalse if not.
*/
IMPORT_C static CAknLocalScreenClearer* NewLC(TBool aBlankAppStatusPane);
-
+
+ /**
+ * Two-phased constructor.
+ * @param aBlankAppStatusPane @c ETrue if application status pane is blank,
+ * @c EFalse if not.
+ * @param aTransparent @c ETrue to construct a transparent clearer,
+ * @c EFalse to create an opaque one that draws
+ * the skin background.
+ */
+ IMPORT_C static CAknLocalScreenClearer* NewLC(TBool aBlankAppStatusPane, TBool aTranparent);
/**
* Two-phased constructor.
* @param aBlankAppStatusPane @c ETrue if application status pane is blank,
@@ -124,6 +146,16 @@
IMPORT_C static CAknLocalScreenClearer* NewL(TBool aBlankAppStatusPane);
/**
+ * Two-phased constructor.
+ * @param aBlankAppStatusPane @c ETrue if application status pane is blank,
+ * @c EFalse if not.
+ * @param aTransparent @c ETrue to construct a transparent clearer,
+ * @c EFalse to create an opaque one that draws
+ * the skin background.
+ */
+ IMPORT_C static CAknLocalScreenClearer* NewL(TBool aBlankAppStatusPane, TBool aTransparent);
+
+ /**
* From CCoeControl
*/
IMPORT_C void HandleResourceChange(TInt aType);
--- a/classicui_pub/tsrc/bc/apps/bctestlauncher/group/uid_range.txt Tue May 25 12:58:19 2010 +0300
+++ b/classicui_pub/tsrc/bc/apps/bctestlauncher/group/uid_range.txt Wed Jun 09 09:58:37 2010 +0300
@@ -1,3 +1,19 @@
+#
+# Copyright (c) 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:
+#
+
(1)
0x20004742 - 0x2000474B
--- a/classicui_pub/tsrc/bc/apps/bctestutil/group/release_note.txt Tue May 25 12:58:19 2010 +0300
+++ b/classicui_pub/tsrc/bc/apps/bctestutil/group/release_note.txt Wed Jun 09 09:58:37 2010 +0300
@@ -1,3 +1,19 @@
+#
+# Copyright (c) 2006-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:
+#
+
50.9.6
[what's new]
1.Moved the existing BC test cases from \s60\mw\classicui\uifw\AvKon\internal\tsrc to \s60\mw\classicui\uifw\AvKon\tsrc
--- a/classicui_pub/ui_framework_definitions_api/inc/avkon.hrh Tue May 25 12:58:19 2010 +0300
+++ b/classicui_pub/ui_framework_definitions_api/inc/avkon.hrh Wed Jun 09 09:58:37 2010 +0300
@@ -41,17 +41,18 @@
#define EEikStatusPaneLayoutAknLafDefined 0x10
// internal, do not use (maybe you might need to use LoopScrolling though, but use it with some other flags...)
-#define EAknListBoxMultipleSelection EEikListBoxMultipleSelection
-#define EAknListBoxIncrementalMatching EEikListBoxIncrementalMatching
-#define EAknListBoxScrollBarSizeExcluded 0x0080
-#define EAknListBoxLoopScrolling 0x1000
-#define EAknListBoxEnterMarks 0x2000
-#define EAknListBoxShiftEnterMarks 0x4000
+#define EAknListBoxMultipleSelection EEikListBoxMultipleSelection
+#define EAknListBoxIncrementalMatching EEikListBoxIncrementalMatching
+#define EAknListBoxScrollBarSizeExcluded 0x0080
+#define EAknListBoxLoopScrolling 0x1000
+#define EAknListBoxEnterMarks 0x2000
+#define EAknListBoxShiftEnterMarks 0x4000
// Note there's also EAknListBoxViewerFlags, which is better for apps.
-#define EAknListBoxViewerFlag 0x8000
-#define EAknListBoxPointerMultiselectionList 0x10000
-#define EAknListBoxPointerMarkableList 0x20000
-#define EAknListBoxDisableItemSpecificMenu 0x40000
+#define EAknListBoxViewerFlag 0x8000
+#define EAknListBoxPointerMultiselectionList 0x10000
+#define EAknListBoxPointerMarkableList 0x20000
+#define EAknListBoxDisableItemSpecificMenu 0x40000
+#define EAknListBoxAlwaysShowItemSpecificMenu 0x80000
// These are combined to the viewerflag to make it fit to WORD in resources.
@@ -93,6 +94,7 @@
#define EAknListBoxMenuGrid (EAknListBoxMenuList)
#define EAknListBoxItemSpecificMenuDisabled ( EAknListBoxDisableItemSpecificMenu )
+#define EAknListBoxItemSpecificMenuAlwaysShown ( EAknListBoxAlwaysShowItemSpecificMenu )
//
// Viewers (see Selection service)
//
--- a/commonuis/CommonDialogs/src/CAknFileSelectionDialog.cpp Tue May 25 12:58:19 2010 +0300
+++ b/commonuis/CommonDialogs/src/CAknFileSelectionDialog.cpp Wed Jun 09 09:58:37 2010 +0300
@@ -324,10 +324,10 @@
KAknsIIDQgnPropNrtypNote, KAvkonBitmapFile,
EMbmAvkonQgn_prop_nrtyp_note, EMbmAvkonQgn_prop_nrtyp_note_mask );
- // Add sis file icon.
+ // Add app file icon.
AknCFDUtility::AppendSkinnedImageToArrayL( *eikEnv, *iconArray, skin,
KAknsIIDQgnPropAmSis, KCommonDialogsBitmapFile,
- EMbmCommondialogsQgn_prop_am_sis, EMbmCommondialogsQgn_prop_am_sis_mask );
+ EMbmCommondialogsQgn_prop_fmgr_file_apps, EMbmCommondialogsQgn_prop_fmgr_file_apps_mask );
// Add video file icon.
AknCFDUtility::AppendSkinnedImageToArrayL( *eikEnv, *iconArray, skin,
@@ -338,11 +338,6 @@
AknCFDUtility::AppendSkinnedImageToArrayL( *eikEnv, *iconArray, skin,
KAknsIIDQgnPropFmgrFileGame, KCommonDialogsBitmapFile,
EMbmCommondialogsQgn_prop_fmgr_file_game, EMbmCommondialogsQgn_prop_fmgr_file_game_mask );
-
- // Add java file icon.
- AknCFDUtility::AppendSkinnedImageToArrayL( *eikEnv, *iconArray,
- skin, KAknsIIDQgnPropAmMidlet, KCommonDialogsBitmapFile,
- EMbmCommondialogsQgn_prop_am_midlet, EMbmCommondialogsQgn_prop_am_midlet_mask );
// Add unknow file type icon.
AknCFDUtility::AppendSkinnedImageToArrayL( *eikEnv, *iconArray,
--- a/commonuis/CommonDialogs/src/CAknFileSelectionModel.cpp Tue May 25 12:58:19 2010 +0300
+++ b/commonuis/CommonDialogs/src/CAknFileSelectionModel.cpp Wed Jun 09 09:58:37 2010 +0300
@@ -51,6 +51,13 @@
_LIT( KCFDMimeTypeJava, "application/java-archive" );
_LIT( KCFDMimeTypeFlash, "application/x-shockwave-flash" );
+_LIT( KCFDMimeTypeJad, "text/vnd.sun.j2me.app-descriptor" );
+_LIT( KCFDMimeTypePdf, "application/pdf" );
+_LIT( KCFDMimeTypeZip, "application/*zip*");
+_LIT( KCFDMimeTypeDoc, "application/vnd.ms-word");
+_LIT( KCFDMimeTypePpt, "application/vnd.ms-powerpoint");
+_LIT( KCFDMimeTypeXls, "application/vnd.ms-excel");
+
_LIT( KCFDFileExtSis, ".sis" );
_LIT( KCFDFileExtSisx, ".sisx");
_LIT( KCFDFileExtMid, ".mid" );
@@ -714,18 +721,27 @@
{
iconIndex = EGameFileIcon;
}
- else if( dataTypeBuf.MatchF( KCFDMimeTypeNote ) == 0 )
+ else if( dataTypeBuf.MatchF( KCFDMimeTypeJava ) == 0
+ || dataTypeBuf.MatchF( KCFDMimeTypeJad ) == 0 )
{
- iconIndex = ENoteFileIcon;
- }
- else if( dataTypeBuf.MatchF( KCFDMimeTypeJava ) == 0 )
- {
- iconIndex = EJavaFileIcon;
+ iconIndex = EAppFileIcon;
}
else if ( dataTypeBuf.MatchF( KCFDMimeTypeFlash ) == 0 )
{
iconIndex = EFlashFileIcon;
}
+ else if ( dataTypeBuf.MatchF( KCFDMimeTypeZip ) == 0 )
+ {
+ iconIndex = EAppFileIcon;
+ }
+ else if ( dataTypeBuf.MatchF( KCFDMimeTypePdf ) == 0
+ || dataTypeBuf.MatchF( KCFDMimeTypeDoc ) == 0
+ || dataTypeBuf.MatchF( KCFDMimeTypePpt ) == 0
+ || dataTypeBuf.MatchF( KCFDMimeTypeXls ) == 0
+ || dataTypeBuf.MatchF( KCFDMimeTypeNote ) == 0 )
+ {
+ iconIndex = ENoteFileIcon;
+ }
else
{
// Check from the file name extension, if it's a SIS file:
@@ -740,7 +756,7 @@
if( ext.CompareF( KCFDFileExtSis ) == 0
|| ext.CompareF( KCFDFileExtSisx ) == 0 )
{
- iconIndex = ESisFileIcon;
+ iconIndex = EAppFileIcon;
}
// RApaLsSession does not recognize .mid's:
else if( ext.CompareF( KCFDFileExtMid ) == 0 )
--- a/commonuis/CommonDialogs/src/CAknFileSelectionModel.h Tue May 25 12:58:19 2010 +0300
+++ b/commonuis/CommonDialogs/src/CAknFileSelectionModel.h Wed Jun 09 09:58:37 2010 +0300
@@ -63,10 +63,9 @@
EPlaylistFileIcon,
ECompoFileIcon,
ENoteFileIcon,
- ESisFileIcon,
+ EAppFileIcon,
EVideoFileIcon,
EGameFileIcon,
- EJavaFileIcon,
EUnknowTypeIcon,
EFolderEmptyIcon,
EFlashFileIcon
--- a/commonuisupport/uikon/test/scripts/uiktest_T_Backup.script Tue May 25 12:58:19 2010 +0300
+++ b/commonuisupport/uikon/test/scripts/uiktest_T_Backup.script Wed Jun 09 09:58:37 2010 +0300
@@ -16,6 +16,10 @@
//
PRINT Run TBackup test
//
+
+// Init MTM before it will be used by backup service
+RUN_WS_PROGRAM mailinit.exe
+
LOAD_SUITE UiktestServer
RUN_TEST_STEP 1000 UiktestServer TBackup
--- a/lafagnosticuifoundation/bmpanimation/inc/bmpansrv.h Tue May 25 12:58:19 2010 +0300
+++ b/lafagnosticuifoundation/bmpanimation/inc/bmpansrv.h Wed Jun 09 09:58:37 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-2010 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"
@@ -272,7 +272,7 @@
// Returns ETrue every time the index frame is valid, otherwise it returns EFalse.
inline TBool CBitmapAnim::IsFrameDisplayable() const
- { return ( (iIndex >= 0) && iBitmapAnimFrameDataArray[iIndex]->iBitmap ); }
+ { return ( (iIndex >= 0) && (iIndex < Count()) && iBitmapAnimFrameDataArray[iIndex]->iBitmap ); }
// Returns ETrue if the animation is running, otherwise it returns EFalse.
inline TBool CBitmapAnim::IsRunning() const
--- a/psln/pslnslidesetdialog/data/pslnslidesetdialogrsc.rss Tue May 25 12:58:19 2010 +0300
+++ b/psln/pslnslidesetdialog/data/pslnslidesetdialogrsc.rss Wed Jun 09 09:58:37 2010 +0300
@@ -238,7 +238,7 @@
RESOURCE SLIDER r_psln_duration_slider
{
layout = EAknSettingsItemSliderLayout;
- minvalue = 1;
+ minvalue = 5;
maxvalue = 60;
step = 1;
valuetype = EAknSliderValueBareFigure;
--- a/psln/pslnslidesetdialog/loc/pslnslidesetdialog.loc Tue May 25 12:58:19 2010 +0300
+++ b/psln/pslnslidesetdialog/loc/pslnslidesetdialog.loc Wed Jun 09 09:58:37 2010 +0300
@@ -112,7 +112,7 @@
// l:slider_set_pane_2
// r:3.2
//
-#define qtn_sanim_duration_slider_min "1 sec."
+#define qtn_sanim_duration_slider_min "5 sec."
// d:Text in slider control.
// d:Maximum setting value for Slide set duration.
--- a/psln/pslnslidesetdialog/src/pslnslidesetmodel.cpp Tue May 25 12:58:19 2010 +0300
+++ b/psln/pslnslidesetdialog/src/pslnslidesetmodel.cpp Wed Jun 09 09:58:37 2010 +0300
@@ -47,8 +47,8 @@
const TInt KPslnSlideSetBacklightOff = 0;
// Slide set interval default value: 10min.
const TInt KPslnSlideSetDefaultInterval = EPslnSlideSetInterval10Min;
-// Slide set minimum duration is 1 second.
-const TInt KPslnSlideSetMinDuration = 1;
+// Slide set minimum duration is 5 second.
+const TInt KPslnSlideSetMinDuration = 5;
// Slide set maximum duration is 60 seconds.
const TInt KPslnSlideSetMaxDuration = 60;
// Slide set maximum backlight period is 30secs.
--- a/uifw/AknGlobalUI/AknCapServer/src/AknCapServerEntry.cpp Tue May 25 12:58:19 2010 +0300
+++ b/uifw/AknGlobalUI/AknCapServer/src/AknCapServerEntry.cpp Wed Jun 09 09:58:37 2010 +0300
@@ -371,10 +371,6 @@
TFileName fileName(KEikSrvUIResFileName);
BaflUtils::NearestLanguageFile(iEikonEnv->FsSession(),fileName);
iResourceFileOffset=iCoeEnv->AddResourceFileL(fileName);
-
- // Create FSW
- iFSControl= new (ELeave) CAknFastSwapWindowControl(*this);
- iFSControl->ConstructL();
// MMC unlocker
iMMCUnlock = CAknMMCPasswordRequester::NewL();
@@ -489,8 +485,14 @@
// Create capserver discreetpopuphandler
CAknCapServerDiscreetPopupHandler::CreateDiscreetPopupHandlerL();
- LoadAlternateFsPlugin();
-
+
+ LoadAlternateFsPlugin();
+ // Create FSW
+ if ( iAlternateFS == NULL )
+ {
+ iFSControl= new (ELeave) CAknFastSwapWindowControl(*this);
+ iFSControl->ConstructL();
+ }
ProcessInitFlipStatus();
}
@@ -584,19 +586,22 @@
}
else
{
- if ( aMessage.Int0() )
- {
- TInt err = KErrNone;
- TRAP( err, iFSControl->InitializeWindowGroupListL( EFalse ));
- if ( !err )
- {
- iFSControl->RunFastSwapL();
+ if ( iFSControl )
+ {
+ if ( aMessage.Int0() )
+ {
+ TInt err = KErrNone;
+ TRAP( err, iFSControl->InitializeWindowGroupListL( EFalse ));
+ if ( !err )
+ {
+ iFSControl->RunFastSwapL();
+ }
}
- }
- else
- {
- iFSControl->CloseFastSwap();
- }
+ else
+ {
+ iFSControl->CloseFastSwap();
+ }
+ }
}
}
aMessage.Complete(KErrNone);
@@ -607,7 +612,10 @@
TInt err = UpdateTaskListL( ETrue );
if ( err != KErrNone )
{
- iFSControl->CloseFastSwap();
+ if ( iFSControl )
+ {
+ iFSControl->CloseFastSwap();
+ }
}
aMessage.Complete(err);
break;
@@ -802,11 +810,15 @@
iAlternateFS->HandleShortAppKeyPress();
return ETrue;
}
- if (iFSControl->IsVisible())
- {
- iFSControl->HandleShortAppsKeyPressL();
- return ETrue;
- }
+ if ( iFSControl )
+ {
+ if (iFSControl->IsVisible())
+ {
+ iFSControl->HandleShortAppsKeyPressL();
+ return ETrue;
+ }
+ }
+
return EFalse;
}
@@ -821,21 +833,25 @@
}
else
{
- if (iFSControl->IsVisible())
- {
- iFSControl->HandleLongAppsKeyPressL();
- }
- else
- {
- if (iFSControl->VisibleWindowGroupsCountL()<1)
+ if ( iFSControl )
+ {
+ if ( iFSControl->IsVisible())
{
- return EFalse;
+ iFSControl->HandleLongAppsKeyPressL();
}
else
{
- iFSControl->RunFastSwapL();
+ if (iFSControl->VisibleWindowGroupsCountL()<1)
+ {
+ return EFalse;
+ }
+ else
+ {
+ iFSControl->RunFastSwapL();
+ }
}
- }
+ }
+
}
}
return ETrue;
@@ -1007,7 +1023,9 @@
void CAknCapAppServerAppUi::HandleWsEventL(const TWsEvent& aEvent,CCoeControl* aDestination)
{
- if ( iMessageReaderLongPressDetector && !IsAppsKeySuppressed() && !iFSControl->IsDisplayed() )
+ if ( iMessageReaderLongPressDetector &&
+ !IsAppsKeySuppressed() &&
+ ( iFSControl == NULL || !iFSControl->IsDisplayed() ) )
{
// Message Reader can be launched by long pressing left soft key
// events need to be intercepted/consumed before they are forwarded to cba
@@ -1067,7 +1085,7 @@
TInt CAknCapAppServerAppUi::UpdateTaskListL( TBool aTaskListRefreshNeeded )
{
TInt err = KErrNone;
- if ( iFSControl->IsDisplayed() )
+ if ( iFSControl && iFSControl->IsDisplayed() )
{
// update window group list (task list)
TInt windowGroupListChanged = ETrue;
--- a/uifw/AknGlobalUI/OldStyleNotif/Inc/AknSoftNotificationPlugin.h Tue May 25 12:58:19 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Inc/AknSoftNotificationPlugin.h Wed Jun 09 09:58:37 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-2010 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"
@@ -31,7 +31,6 @@
#include <AknNotify.h>
#include "AknSystemPopup.h"
#include "AknGroupedNotifierNote.h"
-#include "AknNotifierControllerPlugin.h"
#include "aknprivatesoftnotificationparameters.h"
#include "aknmessagereaderlongpressdetector.h" // MAknGroupedNoteObserver
@@ -69,24 +68,15 @@
NONSHARABLE_CLASS(CAknSoftNotificationSubject) :
public CBase,
public MEikSrvNotifierBase2,
- public MAknGroupedNotifierNoteObserver,
- public MAknKeyLockObserver,
+ public MAknGroupedNotifierNoteObserver,
public MSoftNotificationObserver,
public MAknMessageNotifierObserver
{
public: // Constructors and destructor
static CAknSoftNotificationSubject* NewL(
- MAknKeyLockController* aKeyLockObserver,
- CAknGlobalNoteSubject* aGlobalNoteController);
+ CAknGlobalNoteSubject* aGlobalNoteController );
public: // Functions from base classes
- /**
- * From MAknKeyLockController
- * Called when the status of keylock changes.
- *
- * @param aStatus the new status of the keylock.
- */
- virtual void KeyLockStatusChange(TKeyLockStatus aStatus);
/**
* From MEikSrvNotifierBase.
@@ -222,8 +212,7 @@
* The constructor is private.
*/
CAknSoftNotificationSubject(
- MAknKeyLockController* aKeyLockObserver,
- CAknGlobalNoteSubject* aGlobalNoteController);
+ CAknGlobalNoteSubject* aGlobalNoteController );
void HandleNotifierMessageL(const TDesC8& aBuffer, TInt& aNoteId );
@@ -284,8 +273,6 @@
TBool CheckIfAlreadyExists(TAknSoftNotificationType aType);
- TBool AutoLockEnabled();
-
void SetNcnFlag(TBool aValue);
static TInt HandleNcnFlagStateChange(TAny *aPtr);
@@ -301,7 +288,7 @@
private: // Data
TNotifierInfo iInfo;
- MAknKeyLockController* iKeyLockController;
+
CAknGlobalNoteSubject* iGlobalNoteController;
// The array keeps track of unselected soft notifications in priority order.
@@ -351,7 +338,6 @@
TBool iNotificationsSaved;
CIdle* iIdle;
static TInt SetIdleStateFalse(TAny* aThis);
- TBool iKeysLocked;
public: // To allow static method above access this.
TBool iIdleStateActive;
--- a/uifw/AknGlobalUI/OldStyleNotif/Src/AknSoftNotificationPlugin.cpp Tue May 25 12:58:19 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/AknSoftNotificationPlugin.cpp Wed Jun 09 09:58:37 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-2010 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"
@@ -409,12 +409,10 @@
// might leave.
//
CAknSoftNotificationSubject::CAknSoftNotificationSubject(
- MAknKeyLockController* aKeyLockController,
- CAknGlobalNoteSubject* aGlobalNoteController)
-:iKeyLockController(aKeyLockController),
- iGlobalNoteController(aGlobalNoteController),
- iNotificationsSaved(ETrue), // We'll have to assume there are saved notifications on startup
- iUniqueIdCounter(KMinimumUniqueId)
+ CAknGlobalNoteSubject* aGlobalNoteController )
+ : iGlobalNoteController( aGlobalNoteController ),
+ iNotificationsSaved( ETrue ), // We'll have to assume there are saved notifications on startup
+ iUniqueIdCounter( KMinimumUniqueId )
{
iMessagingRepository = NULL;
iDynamicSoftNoteManager = CAknDynamicSoftNoteEventManager::UniqueInstance();
@@ -424,8 +422,6 @@
// EPOC default constructor can leave.
void CAknSoftNotificationSubject::ConstructL()
{
- iKeyLockController->AddObserverL(this);
-
iSoftNoteEntryList = new(ELeave)CArrayFixFlat<TSoftNoteEntry>(KSoftNoteGranularity);
iGlobalNoteController->SetSoftNoteObserver(this);
// Set initial state to 'non-idle'
@@ -471,11 +467,6 @@
delete iIdle;
delete iCoverClient;
-
- if(iKeyLockController)
- {
- iKeyLockController->RemoveObserver(this);
- }
if ( iMessagingRepository )
{
@@ -486,52 +477,17 @@
// Two-phased constructor.
CAknSoftNotificationSubject* CAknSoftNotificationSubject::NewL(
- MAknKeyLockController* aKeyLockController,
CAknGlobalNoteSubject* aGlobalNoteController )
{
CAknSoftNotificationSubject* self = new (ELeave) CAknSoftNotificationSubject(
- aKeyLockController,
- aGlobalNoteController);
+ aGlobalNoteController );
CleanupStack::PushL( self );
self->ConstructL();
- CleanupStack::Pop( self);
+ CleanupStack::Pop( self );
return self;
}
-
-// ---------------------------------------------------------
-// CAknSoftNotificationSubject::KeyLockStatusChange
-// ---------------------------------------------------------
-//
-void CAknSoftNotificationSubject::KeyLockStatusChange(TKeyLockStatus aStatus)
- {
- if ( aStatus == EKeyLockEnabled )
- {
- iKeysLocked = ETrue;
- }
- else if ( aStatus == EKeyLockDisabled )
- {
- iKeysLocked = EFalse;
- }
-
- if ( iGroupedNote && iGroupedNote->ListBox())
- {
- if ( aStatus == EKeyLockEnabled )
- {
- iGroupedNote->ListBox()->View()->ItemDrawer()->SetFlags(
- CListItemDrawer::EDisableHighlight);
-
- iGroupedNote->DrawDeferred();
- }
- else if ( aStatus == EKeyLockDisabled )
- {
- iGroupedNote->ListBox()->View()->ItemDrawer()->ClearFlags(
- CListItemDrawer::EDisableHighlight);
-
- iGroupedNote->DrawDeferred();
- }
- }
- }
+
// ---------------------------------------------------------
// CAknSoftNotificationSubject::Release()
@@ -1651,11 +1607,6 @@
delete iGroupedNote;
iGroupedNote = note;
- if ( iKeysLocked && note )
- {
- iGroupedNote->ListBox()->View()->ItemDrawer()->SetFlags(
- CListItemDrawer::EDisableHighlight );
- }
}
// ---------------------------------------------------------
@@ -2323,11 +2274,6 @@
}
-TBool CAknSoftNotificationSubject::AutoLockEnabled()
- {
- return EFalse;
- }
-
void CAknSoftNotificationSubject::AddNewCustomNoteL(
RReadStream& readStream, TInt aCount, TBool aNewNote )
{
--- a/uifw/AknGlobalUI/OldStyleNotif/Src/OldStylePlugin.cpp Tue May 25 12:58:19 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/OldStylePlugin.cpp Wed Jun 09 09:58:37 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-2010 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"
@@ -74,8 +74,7 @@
// Soft note notifier.
// ----------------------------
CAknSoftNotificationSubject* softNotificationSubject = CAknSoftNotificationSubject::NewL(
- keyLockNotifier,
- globalNoteSubject);
+ globalNoteSubject );
CleanupStack::PushL(softNotificationSubject);
subjects->AppendL(softNotificationSubject);
--- a/uifw/AknGlobalUI/OldStyleNotif/Src/aknkeylocknotifier.cpp Tue May 25 12:58:19 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/aknkeylocknotifier.cpp Wed Jun 09 09:58:37 2010 +0300
@@ -1325,13 +1325,14 @@
}
}
} // PenEnabled()
+ }
- if (aNotifySysApp)
- {
- SendMessageToSysAp( EEikKeyLockDisabled );
- }
- }
- if ( iNotif )
+ if (aNotifySysApp)
+ {
+ SendMessageToSysAp( EEikKeyLockDisabled );
+ }
+
+ if ( iNotif )
{
iNotif->NotifyStatusChange( EKeyLockDisabled );
}
@@ -2385,7 +2386,6 @@
{
if ( IsKeyLockEnabled() )
{
- iKeyLockControl->AutolockEnabled( EFalse );
iKeyLockControl->DisableKeylock();
}
}
--- a/uifw/AvKon/AknExtendedFader/group/perf.txt Tue May 25 12:58:19 2010 +0300
+++ b/uifw/AvKon/AknExtendedFader/group/perf.txt Wed Jun 09 09:58:37 2010 +0300
@@ -1,3 +1,19 @@
+#
+# Copyright (c) 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:
+#
+
First:
------
--- a/uifw/AvKon/src/AknTextSettingPage.cpp Tue May 25 12:58:19 2010 +0300
+++ b/uifw/AvKon/src/AknTextSettingPage.cpp Wed Jun 09 09:58:37 2010 +0300
@@ -411,7 +411,14 @@
// Construct an appropriate control context for the contained editor areas.
// Context produced is owned by CAknSettingPage.
SetEditedItemFrameIID( KAknsIIDQsnFrInput, KAknsIIDQsnFrInputCenter );
- TextControl()->ScrollBarFrame()->VerticalScrollBar()->SetMopParent(this);
+
+ // ScrollBarFrame always exists in this phase
+ CEikScrollBar* sb = editor->ScrollBarFrame()->VerticalScrollBar();
+ if ( sb )
+ {
+ sb->SetMopParent( this );
+ sb->MakeVisible( ETrue );
+ }
}
/**
--- a/uifw/AvKon/src/AknViewAppUi.cpp Tue May 25 12:58:19 2010 +0300
+++ b/uifw/AvKon/src/AknViewAppUi.cpp Wed Jun 09 09:58:37 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-2010 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"
@@ -235,11 +235,19 @@
AddToStackL( iExtension->iNavigator, ECoeStackPriorityDefault - 1, ECoeStackFlagRefusesFocus );
#endif // RD_SPLIT_VIEW
- if ( iEikonEnv->RootWin().OrdinalPosition() == 0 && // only clear the window for foreground apps
+ // Only clear the window for foreground apps.
+ if ( iEikonEnv->RootWin().OrdinalPosition() == 0 &&
iExtension->iUseDefaultScreenClearer )
- {
- iClearer = CAknLocalScreenClearer::NewL( ETrue );
- }
+ {
+ if ( !iEikonEnv->StartedAsServerApp() )
+ {
+ iClearer = CAknLocalScreenClearer::NewL( ETrue );
+ }
+ else
+ {
+ iClearer = CAknLocalScreenClearer::NewL( ETrue, ETrue );
+ }
+ }
}
// -----------------------------------------------------------------------------
--- a/uifw/AvKon/src/AknVolumePopup.cpp Tue May 25 12:58:19 2010 +0300
+++ b/uifw/AvKon/src/AknVolumePopup.cpp Wed Jun 09 09:58:37 2010 +0300
@@ -382,6 +382,7 @@
{
TInt feedbackStyle = (TAknFeedbackStyle)reader.ReadInt16();
iFlags = reader.ReadInt16();
+ reader.Rewind( 4 ); // Rewind to the beginning, then construct slider.
}
else
{
@@ -521,7 +522,7 @@
iExt->TryLoadDefaultSliderVolumeBitmap();
iExt->iSliderControl->ReportMarkerDragEvent( ETrue );
iExt->iSliderControl->SuppressDrawing( ETrue );
- }
+ }
else
{
iExt->iSliderControl = new( ELeave )CAknSlider;
--- a/uifw/AvKon/src/Aknslider.cpp Tue May 25 12:58:19 2010 +0300
+++ b/uifw/AvKon/src/Aknslider.cpp Wed Jun 09 09:58:37 2010 +0300
@@ -1497,7 +1497,12 @@
TResourceReader reader;
CEikonEnv::Static()->CreateResourceReaderLC( reader, aResourceId );
- reader.ReadInt16(); // ignore layout
+ TInt sliderType = reader.ReadInt16();
+ if ( sliderType == EAknSliderWithFeedbackStyle )
+ {
+ reader.ReadInt16(); // ignore type
+ reader.ReadInt16(); // ignore layout
+ }
TInt minValue = reader.ReadInt16();
TInt maxValue = reader.ReadInt16();
CleanupStack::PopAndDestroy(); // reader
@@ -1538,7 +1543,12 @@
TResourceReader reader;
CEikonEnv::Static()->CreateResourceReaderLC( reader, aResourceId );
- reader.ReadInt16(); // ignore layout
+ TInt sliderType = reader.ReadInt16();
+ if ( sliderType == EAknSliderWithFeedbackStyle )
+ {
+ reader.ReadInt16(); // ignore type
+ reader.ReadInt16(); // ignore layout
+ }
TInt minValue = reader.ReadInt16();
TInt maxValue = reader.ReadInt16();
CleanupStack::PopAndDestroy(); // reader
@@ -4248,12 +4258,16 @@
MTouchFeedback* feedback = MTouchFeedback::Instance();
if ( feedback )
{
+ TTouchContinuousFeedback type = ETouchContinuousSmooth;
TInt intensity = KStableFeedbackIntesity;
+
if ( SliderData()->iFeedbackStyle == EAknSliderFbDynamic )
{
+ type = ETouchDynamicSlider;
intensity = FeedbackIntensity();
}
- feedback->StartFeedback( this, ETouchDynamicSlider, aPointerEvent, intensity, aTimeout );
+
+ feedback->StartFeedback( this, type, aPointerEvent, intensity, aTimeout );
iExt->SetFlag( CAknSliderExtension::EFlagPlayingContinuousFb );
}
}
--- a/uifw/AvKon/src/aknlongtapanimation.cpp Tue May 25 12:58:19 2010 +0300
+++ b/uifw/AvKon/src/aknlongtapanimation.cpp Wed Jun 09 09:58:37 2010 +0300
@@ -367,6 +367,11 @@
{
iExtension->iTimer->Cancel();
iExtension->iFlags &= ~EAnimationStarted;
+ MTouchFeedback* feedback = MTouchFeedback::Instance();
+ if ( feedback )
+ {
+ feedback->StopFeedback( this );
+ }
}
}
--- a/uifw/AvKon/src/aknlongtapdetector.cpp Tue May 25 12:58:19 2010 +0300
+++ b/uifw/AvKon/src/aknlongtapdetector.cpp Wed Jun 09 09:58:37 2010 +0300
@@ -254,6 +254,7 @@
{
StopAnimation();
}
+ iState = EWaiting;
}
@@ -321,7 +322,6 @@
&& aEvent.Pointer()->iType == TPointerEvent::EButton1Up ) )
{
Cancel();
- iState = EWaiting;
}
}
--- a/uifw/AvKon/src/aknnavide.cpp Tue May 25 12:58:19 2010 +0300
+++ b/uifw/AvKon/src/aknnavide.cpp Wed Jun 09 09:58:37 2010 +0300
@@ -800,20 +800,6 @@
{
CCoeControl::HandlePointerEventL( aPointerEvent );
}
-
- // feedback is also given on up event from arrows
- if ( rightArrowTapped || leftArrowTapped )
- {
- MTouchFeedback* feedback = MTouchFeedback::Instance();
- if ( feedback &&
- ( iDecoratedControl && !iDecoratedControl->IsDimmed() ) )
- {
- feedback->InstantFeedback( this,
- ETouchFeedbackBasicButton,
- ETouchFeedbackVibra,
- aPointerEvent );
- }
- }
}
else
{
--- a/uifw/AvKon/src/aknview.cpp Tue May 25 12:58:19 2010 +0300
+++ b/uifw/AvKon/src/aknview.cpp Wed Jun 09 09:58:37 2010 +0300
@@ -601,8 +601,6 @@
DoDeactivate();
- AknItemActionMenuRegister::RemoveConstructingMenuBarOwner( this );
-
if ( iCba )
{
iCba->MakeVisible( EFalse );
@@ -861,7 +859,7 @@
if ( iCba )
{
if ( aVisible )
- {
+ {
iCba->DrawableWindow()->SetOrdinalPosition( 0 );
iCba->MakeVisible( ETrue );
iCba->DrawNow(); // This is needed because problems if TRANSPARENCY is set, see MTVN-6HXCN4
--- a/uifw/AvKon/src/eikfrlb.cpp Tue May 25 12:58:19 2010 +0300
+++ b/uifw/AvKon/src/eikfrlb.cpp Wed Jun 09 09:58:37 2010 +0300
@@ -827,11 +827,11 @@
TInt lastPotentialItemIndex =
Min( numberOfItems,
- iTopItemIndex + NumberOfItemsThatFitInRect( iViewRect ) );
+ iTopItemIndex + NumberOfItemsThatFitInRect( iViewRect ) - 1 ) ;
gc->SetClippingRect( iViewRect );
- while ( i < lastPotentialItemIndex )
+ while ( i <= lastPotentialItemIndex )
{
DrawItem( i++ );
}
--- a/uifw/AvKon/src/eikfrlbd.cpp Tue May 25 12:58:19 2010 +0300
+++ b/uifw/AvKon/src/eikfrlbd.cpp Wed Jun 09 09:58:37 2010 +0300
@@ -2868,9 +2868,18 @@
&& iExtension->iMarkingIconArray->Count() == 2 )
#endif // RD_TOUCH2_MARKING
{
- textRect.iTl.iX +=
+ if ( AknLayoutUtils::LayoutMirrored() )
+ {
+ textRect.iBr.iX -=
AknLayoutScalable_Avkon::list_double_graphic_pane_t1(
- 0 ).LayoutLine().il;
+ 0 ).LayoutLine().ir;
+ }
+ else
+ {
+ textRect.iTl.iX +=
+ AknLayoutScalable_Avkon::list_double_graphic_pane_t1(
+ 0 ).LayoutLine().il;
+ }
TAknLayoutRect layoutRect;
layoutRect.LayoutRect( aItemRect,
@@ -4227,6 +4236,7 @@
CEikListBox* listbox = static_cast<CEikListBox*>( Control() );
DrawMarkingModeIcons( aProperties, aGc, itemRect );
+ TInt iconOffset = aItemRect.Width() - itemRect.Width();
const TColors* subcellColors = &aColors;
@@ -4334,6 +4344,7 @@
}
TRect bRect = TRect(sc->iPosition,sc->iSize);
+ bRect.iBr.iX -= iconOffset;
TMargins m = sc->iMargin;
TRect cRect = TRect(bRect.iTl+TSize(m.iLeft,m.iTop),bRect.Size()-TSize(m.iRight+m.iLeft,m.iBottom+m.iTop));
const TBool istrans = sc->iTransparent;
@@ -4424,6 +4435,7 @@
if ( layoutMirrored )
{
TRect bRect( sc->iPosition, sc->iSize );
+ bRect.iBr.iX -= iconOffset;
TRect cRect2( bRect.iTl + TSize( m.iLeft, m.iTop ),
bRect.Size() - TSize( m.iRight + m.iLeft,
m.iBottom + m.iTop ) );
--- a/uifw/AvKon/srcdata/smiley.rss Tue May 25 12:58:19 2010 +0300
+++ b/uifw/AvKon/srcdata/smiley.rss Wed Jun 09 09:58:37 2010 +0300
@@ -159,7 +159,7 @@
{
code = EAknSmileyIconIrritated;
smileyIconId = EMbmSmileyQgn_indi_smiley_irritated;
- strings = ":X :-X";
+ strings = ":X :x :-X :-x";
},
SMILEY_ICON_ITEM
{
@@ -201,7 +201,7 @@
{
code = EAknSmileyIconNerd;
smileyIconId = EMbmSmileyQgn_indi_smiley_nerd;
- strings = "8-)";
+ strings = "8) 8-)";
},
SMILEY_ICON_ITEM
{
@@ -217,7 +217,7 @@
code = EAknSmileyAnimCoffee;
smileyIconId = EMbmSmileyQgn_indi_smiley_anim_coffee;
smileyStaticIconId = EMbmSmileyQgn_indi_smiley_coffee;
- strings = "c[_]";
+ strings = "c[_] C[_]";
},
SMILEY_ICON_ITEM
{
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomavkonpsln/readme.txt Tue May 25 12:58:19 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomavkonpsln/readme.txt Wed Jun 09 09:58:37 2010 +0300
@@ -1,3 +1,19 @@
+#
+# Copyright (c) 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:
+#
+
case : bctestakncase
tested header files:
<aknskinnableclock.h>
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomavkonpsln/readme.txt Tue May 25 12:58:19 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomavkonpsln/readme.txt Wed Jun 09 09:58:37 2010 +0300
@@ -1,3 +1,19 @@
+#
+# Copyright (c) 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:
+#
+
case : bctestakncase
tested header files:
<aknskinnableclock.h>
--- a/uifw/AvKon/tsrc/bc/bctestlauncher/group/uid_range.txt Tue May 25 12:58:19 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestlauncher/group/uid_range.txt Wed Jun 09 09:58:37 2010 +0300
@@ -1,3 +1,19 @@
+#
+# Copyright (c) 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:
+#
+
(1)
0x20004742 - 0x2000474B
--- a/uifw/AvKon/tsrc/bc/release_note.txt Tue May 25 12:58:19 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/release_note.txt Wed Jun 09 09:58:37 2010 +0300
@@ -1,3 +1,19 @@
+#
+# Copyright (c) 2006-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:
+#
+
2009-12-03, BC test release v2.09
[what's new]
1. Added new test driver for single click API changes (bctestsingleclick).
--- a/uifw/AvKon/tsrc/bc/script/codetest_script/readme.txt Tue May 25 12:58:19 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/script/codetest_script/readme.txt Wed Jun 09 09:58:37 2010 +0300
@@ -1,3 +1,19 @@
+#
+# Copyright (c) 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:
+#
+
Quick start:
1. build the API table: (If you have built it before, skip this step.)
--- a/uifw/EikStd/EABI/EIKCOCTLU.DEF Tue May 25 12:58:19 2010 +0300
+++ b/uifw/EikStd/EABI/EIKCOCTLU.DEF Wed Jun 09 09:58:37 2010 +0300
@@ -2015,4 +2015,6 @@
_ZN11CEikListBox14SetMarkingModeEi @ 2014 NONAME
_ZN11CEikListBox22SetMarkingModeObserverEP23MAknMarkingModeObserver @ 2015 NONAME
_ZN10CAknButton14EnableFeedbackEi @ 2016 NONAME
+ _ZN22CAknLocalScreenClearer4NewLEii @ 2017 NONAME
+ _ZN22CAknLocalScreenClearer5NewLCEii @ 2018 NONAME
--- a/uifw/EikStd/bwins/EIKCOCTLU.DEF Tue May 25 12:58:19 2010 +0300
+++ b/uifw/EikStd/bwins/EIKCOCTLU.DEF Wed Jun 09 09:58:37 2010 +0300
@@ -1626,4 +1626,5 @@
?SetMarkingModeObserver@CEikListBox@@QAEXPAVMAknMarkingModeObserver@@@Z @ 1625 NONAME ; void CEikListBox::SetMarkingModeObserver(class MAknMarkingModeObserver *)
?SetMarkingMode@CEikListBox@@QAEXH@Z @ 1626 NONAME ; void CEikListBox::SetMarkingMode(int)
?EnableFeedback@CAknButton@@QAEXH@Z @ 1627 NONAME ; void CAknButton::EnableFeedback(int)
-
+ ?NewLC@CAknLocalScreenClearer@@SAPAV1@HH@Z @ 1628 NONAME ; class CAknLocalScreenClearer * CAknLocalScreenClearer::NewLC(int, int)
+ ?NewL@CAknLocalScreenClearer@@SAPAV1@HH@Z @ 1629 NONAME ; class CAknLocalScreenClearer * CAknLocalScreenClearer::NewL(int, int)
--- a/uifw/EikStd/coctlsrc/AknClearer.cpp Tue May 25 12:58:19 2010 +0300
+++ b/uifw/EikStd/coctlsrc/AknClearer.cpp Wed Jun 09 09:58:37 2010 +0300
@@ -20,7 +20,6 @@
#include <eikspane.h>
#include "aknclearer.h"
#include <aknconsts.h>
-#include <aknnavi.h>
#include <avkon.mbg>
#include <AknLayout.lag>
#include <AknSgcc.h>
@@ -51,153 +50,91 @@
enum TAknScreenClearerBaseFlags
{
- EAknScreenClearerDrawNavi,
- EAknScreenClearerBlankAppStatusPane,
- EAknScreenClearerDrawNaviSolid,
+ EAknScreenClearerBlankAppStatusPane
};
enum
{
- ELayerCbaBackground=0,
- ELayerBackground = 1,
- ELayerExtension = 2,
- ELayerStripe = 3,
- ELayerWallpaper = 4,
- ELayerN = 5
+ ELayerBackground = 0,
+ ELayerExtension = 1,
+ ELayerStripe = 2,
+ ELayerWallpaper = 3,
+ ELayerN = 4
};
- enum
- {
- ELayerStaconCbaBackground=0,
- ELayerStaconTop = 1,
- ELayerStaconBottom = 2,
- ELayerStaconMain = 3,
- ELayerStaconWallpaper = 4,
- ELayerStaconN = 5
- };
-
enum
{
- ELayerFlatCbaBackground=0,
- ELayerFlatBackground = 1,
- ELayerFlatTl = 2,
- ELayerFlatTr = 3,
- ELayerFlatBl = 4,
- ELayerFlatBr = 5,
- ELayerFlatT = 6,
- ELayerFlatB = 7,
- ELayerFlatR = 8,
- ELayerFlatL = 9,
- ELayerFlatCenter = 10,
- ELayerFlatMain = 11,
- ELayerFlatWallpaper = 12,
- ELayerSCtrl1 = 13,
- ELayerSCtrl2 = 14,
- ELayerSCtrl3 = 15,
- ELayerSCtrl4 = 16,
- ELayerSCtrl5 = 17,
- ELayerFlatN = 18
+ ELayerStaconTop = 0,
+ ELayerStaconBottom = 1,
+ ELayerStaconMain = 2,
+ ELayerStaconWallpaper = 3,
+ ELayerStaconN = 4
+ };
+
+enum
+ {
+ ELayerFlatBackground = 0,
+ ELayerFlatTl = 1,
+ ELayerFlatTr = 2,
+ ELayerFlatBl = 3,
+ ELayerFlatBr = 4,
+ ELayerFlatT = 5,
+ ELayerFlatB = 6,
+ ELayerFlatR = 7,
+ ELayerFlatL = 8,
+ ELayerFlatCenter = 9,
+ ELayerFlatMain = 10,
+ ELayerFlatWallpaper = 11,
+ ELayerFlatN = 12
};
class CAknScreenClearerBaseExtension : public CBase
{
- public:
- ~CAknScreenClearerBaseExtension()
- {
- delete iNaviWipe;
- delete iNaviMask;
- delete iBgContext;
- }
- public:
- CFbsBitmap* iNaviWipe;
- CFbsBitmap* iNaviMask;
- CAknsLayeredBackgroundControlContext* iBgContext;
- TInt iOrdinalPosition;
+public:
+ ~CAknScreenClearerBaseExtension()
+ {
+ delete iBgContext;
+ }
+public:
+ CAknsLayeredBackgroundControlContext* iBgContext;
+ TInt iOrdinalPosition;
+ TBool iTransparent;
};
-/* THIS FUNCTION IS NOT USED
-
-static void LoadAndFlipBitmapL(
- CFbsBitmap* aTrg, const TDesC& aFile, const TInt aIndex )
- {
- User::LeaveIfNull(aTrg);
-
- CFbsBitmap* sourceBitmap = new (ELeave) CFbsBitmap();
- CleanupStack::PushL(sourceBitmap);
- User::LeaveIfError(sourceBitmap->Load(aFile, aIndex, ETrue));
- TSize sourceBitmapSize = sourceBitmap->SizeInPixels();
-
- User::LeaveIfError(aTrg->Create(sourceBitmapSize, sourceBitmap->DisplayMode()));
-
- CFbsBitmapDevice* destinationDevice = CFbsBitmapDevice::NewL( aTrg );
- CleanupStack::PushL(destinationDevice);
-
- CFbsBitGc* destinationGc;
- User::LeaveIfError( destinationDevice->CreateContext( destinationGc ) );
-
- TRect sourceBitmapBlittingRect( 0,0,1,sourceBitmapSize.iHeight );
-
- for ( TInt xPos=sourceBitmapSize.iWidth-1; xPos >= 0; xPos-- )
- {
- destinationGc->BitBlt( TPoint(xPos,0), sourceBitmap, sourceBitmapBlittingRect );
- sourceBitmapBlittingRect.iTl.iX++;
- sourceBitmapBlittingRect.iBr.iX++;
- }
-
- delete destinationGc;
- CleanupStack::PopAndDestroy(2); // sourceBitmap, destinationDevice
- }
-*/
-
-/* THIS FUNCTION IS NOT USED
-
-static CFbsBitmap* FlipBitmapL( CFbsBitmap* aBitmap )
- {
- User::LeaveIfNull(aBitmap);
-
- TSize sourceBitmapSize = aBitmap->SizeInPixels();
-
- // get a copy of wanted rect of source bitmap to tmpBitmap
- CFbsBitmap* tmpBitmap = new (ELeave) CFbsBitmap();
- CleanupStack::PushL( tmpBitmap );
-
- User::LeaveIfError( tmpBitmap->Create( sourceBitmapSize, aBitmap->DisplayMode() ) );
-
- CFbsBitmapDevice* destinationDevice = CFbsBitmapDevice::NewL( tmpBitmap );
- CleanupStack::PushL( destinationDevice );
-
- CFbsBitGc* destinationGc;
- User::LeaveIfError( destinationDevice->CreateContext( destinationGc ) );
-
- TRect sourceBitmapBlittingRect( 0,0,1,sourceBitmapSize.iHeight );
-
- for ( TInt xPos=sourceBitmapSize.iWidth-1; xPos >= 0; xPos-- )
- {
- destinationGc->BitBlt( TPoint(xPos,0), aBitmap, sourceBitmapBlittingRect );
- sourceBitmapBlittingRect.iTl.iX++;
- sourceBitmapBlittingRect.iBr.iX++;
- }
-
- delete destinationGc;
- CleanupStack::PopAndDestroy(); // destinationDevice
- CleanupStack::Pop(); // tmpBitmap
-
- return tmpBitmap;
- }
-*/
EXPORT_C CAknScreenClearerBase::~CAknScreenClearerBase()
{
delete iExtension;
}
+
+void CAknScreenClearerBase::CreateExtensionL()
+ {
+ if ( !iExtension )
+ {
+ iExtension = new (ELeave) CAknScreenClearerBaseExtension;
+ }
+ }
+
+
+void CAknScreenClearerBase::SetTransparent( TBool aTransparent )
+ {
+ iExtension->iTransparent = aTransparent;
+ }
+
+
EXPORT_C void CAknScreenClearerBase::ConstructL(RWindowGroup& aParent, TInt aOrdinalPos, TBool aBlankAppStatusPane)
{
- iExtension = new (ELeave) CAknScreenClearerBaseExtension();
+ CreateExtensionL();
CreateWindowL(&aParent);
+ if ( iExtension->iTransparent )
+ {
+ EnableWindowTransparency();
+ }
+
CAlfEffectObserver* alfEffectObserver = CAlfEffectObserver::NewL();
alfEffectObserver->SetDistractionWindow(*DrawableWindow());
delete alfEffectObserver;
@@ -231,7 +168,17 @@
{
CWindowGc& gc = SystemGc();
MAknsSkinInstance* skin = AknsUtils::SkinInstance();
- AknsDrawUtils::Background( skin, iExtension->iBgContext, this, gc, Rect() );
+
+ if ( !iExtension->iTransparent )
+ {
+ AknsDrawUtils::Background( skin, iExtension->iBgContext, this, gc, Rect() );
+ }
+ else
+ {
+ gc.SetDrawMode( CGraphicsContext::EDrawModeWriteAlpha );
+ gc.Clear( Rect() );
+ gc.Reset();
+ }
iEikonEnv->WsSession().Flush();
return;
@@ -264,31 +211,51 @@
CEikStatusPaneBase* sp = CEikStatusPaneBase::Current();
- if (iFlags[EAknScreenClearerBlankAppStatusPane])
+ // Set the clearer window's size so that it covers the screen in both
+ // portrait and landscape orientations simultaneously.
+ // This is done in order to prevent NGA from drawing control groups
+ // underneath the fullscreen foreground application in cases the clearer
+ // orientation can't be readily updated during the layout switch, due
+ // to e.g. application startup taking a long time.
+ // Note that only the clearer window's size is set to be larger, the
+ // skin background is still the screen size so that the skin background
+ // won't get stretched.
+ TRect screenRect( KWholeScreen );
+ TRect squareScreenRect( screenRect );
+ if ( squareScreenRect.Width() > squareScreenRect.Height() )
{
- shape.AddRect(KWholeScreen);
+ squareScreenRect.SetHeight( squareScreenRect.Width() );
}
else
{
- shape.AddRect(KWholeScreen);
- sp->GetShapeL(appStatuspaneShape, !iFlags[EAknScreenClearerBlankAppStatusPane], ETrue);
- shape.SubRegion(appStatuspaneShape);
+ squareScreenRect.SetWidth( squareScreenRect.Height() );
+ }
+
+ if ( iFlags[EAknScreenClearerBlankAppStatusPane] )
+ {
+ shape.AddRect( squareScreenRect );
+ }
+ else
+ {
+ // Square shape is used only if the clearer is used to clear the
+ // whole screen.
+ shape.AddRect( screenRect );
+ sp->GetShapeL( appStatuspaneShape,
+ !iFlags[EAknScreenClearerBlankAppStatusPane],
+ ETrue );
+ shape.SubRegion( appStatuspaneShape );
}
- if (shape.CheckError())
- User::Leave(KErrNoMemory);
-
- SetRect(KWholeScreen);
- DrawableWindow()->SetShape(shape);
+ if ( shape.CheckError() )
+ {
+ User::Leave( KErrNoMemory );
+ }
- CleanupStack::PopAndDestroy(2); // close shapes
+ SetRect( iFlags[EAknScreenClearerBlankAppStatusPane] ? squareScreenRect :
+ screenRect );
+ DrawableWindow()->SetShape( shape );
- TBool drawNavi =
- iFlags[EAknScreenClearerBlankAppStatusPane] &&
- sp->IsVisible() &&
- sp->PaneCapabilities(TUid::Uid(EEikStatusPaneUidNavi)).IsInCurrentLayout();
-
- iFlags.Assign(EAknScreenClearerDrawNavi, drawNavi);
+ CleanupStack::PopAndDestroy( 2, &shape ); // close shapes
}
@@ -508,41 +475,7 @@
iExtension->iBgContext->SetLayerRect( 0, main_pane.Rect() );
iExtension->iBgContext->SetLayerRect( 1, staconTop );
iExtension->iBgContext->SetLayerRect( 2, staconBottom );
- }
-
- if (Layout_Meta_Data::IsPenEnabled())
- {
- TAknLayoutRect area_side_right_pane;
- TInt variety = 0;
- area_side_right_pane.LayoutRect(application_window, AknLayoutScalable_Avkon::area_side_right_pane(variety));
-
- TAknLayoutRect sctrl_sk_top_pane;
- sctrl_sk_top_pane.LayoutRect(area_side_right_pane.Rect(), AknLayoutScalable_Avkon::sctrl_sk_top_pane(0));
-
- TAknLayoutRect sctrl_sk_bottom_pane;
- sctrl_sk_bottom_pane.LayoutRect(area_side_right_pane.Rect(), AknLayoutScalable_Avkon::sctrl_sk_bottom_pane(0));
-
- TAknLayoutRect grid_sctrl_middle_pane;
- grid_sctrl_middle_pane.LayoutRect(area_side_right_pane.Rect(), AknLayoutScalable_Avkon::grid_sctrl_middle_pane(0));
-
- TAknLayoutRect cell_sctrl_middle_pane1;
- cell_sctrl_middle_pane1.LayoutRect(grid_sctrl_middle_pane.Rect(), AknLayoutScalable_Avkon::cell_sctrl_middle_pane(0,0,0));
- TAknLayoutRect cell_sctrl_middle_pane2;
- cell_sctrl_middle_pane2.LayoutRect(grid_sctrl_middle_pane.Rect(), AknLayoutScalable_Avkon::cell_sctrl_middle_pane(0,0,1));
- TAknLayoutRect cell_sctrl_middle_pane3;
- cell_sctrl_middle_pane3.LayoutRect(grid_sctrl_middle_pane.Rect(), AknLayoutScalable_Avkon::cell_sctrl_middle_pane(0,0,2));
-
-
-
- iExtension->iBgContext->SetLayerImage( ELayerFlatCbaBackground, KAknsIIDQsnBgScreen );
-
-
- iExtension->iBgContext->SetLayerRect( ELayerFlatCbaBackground, application_window );
- }
-
-
-
-
+ }
}
else
{
@@ -684,13 +617,35 @@
return(self);
}
+
+EXPORT_C CAknLocalScreenClearer* CAknLocalScreenClearer::NewLC(TBool aBlankAppStatusPane, TBool aTransparent)
+ {
+ CAknLocalScreenClearer* self=new(ELeave) CAknLocalScreenClearer;
+ CleanupStack::PushL(self);
+ self->CreateExtensionL();
+ self->SetTransparent(aTransparent);
+ CEikonEnv& eikEnv = *static_cast<CEikonEnv*>(self->ControlEnv());
+ self->ConstructL(eikEnv.RootWin(), 0, aBlankAppStatusPane);
+ return(self);
+ }
+
+
EXPORT_C CAknLocalScreenClearer* CAknLocalScreenClearer::NewL(TBool aBlankAppStatusPane)
{
CAknLocalScreenClearer* self = CAknLocalScreenClearer::NewLC(aBlankAppStatusPane);
CleanupStack::Pop(self);
return(self);
}
-
+
+
+EXPORT_C CAknLocalScreenClearer* CAknLocalScreenClearer::NewL(TBool aBlankAppStatusPane, TBool aTransparent)
+ {
+ CAknLocalScreenClearer* self = CAknLocalScreenClearer::NewLC(aBlankAppStatusPane, aTransparent);
+ CleanupStack::Pop(self);
+ return(self);
+ }
+
+
EXPORT_C void CAknLocalScreenClearer::HandleResourceChange(TInt aType)
{
if (aType == KEikDynamicLayoutVariantSwitch)
--- a/uifw/EikStd/coctlsrc/EIKEDWIN.CPP Tue May 25 12:58:19 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKEDWIN.CPP Wed Jun 09 09:58:37 2010 +0300
@@ -653,9 +653,9 @@
{
TInt length( Min( aLengthToRetrieve, iEdwin.TextLength() - aDocumentPosition ) );
iEdwin.iText->Extract( aEditorContent, aDocumentPosition, length );
- if ( iEdwin.IsSmileyEnabled() )
- {
- CSmileyManager* smiley( iEdwin.iEdwinExtension->iSmiley );
+ CSmileyManager* smiley( iEdwin.iEdwinExtension->iSmiley );
+ if ( smiley && smiley->HasSmileyIconsInText() )
+ {
CAknEdwinState* state( iEdwin.EditorState() );
if ( state )
{
@@ -663,17 +663,22 @@
if ( aDocumentPosition >= inlineText.LowerPos() &&
aDocumentPosition + length <= inlineText.HigherPos() )
{
- smiley->ConvertTextForSmileyL( aDocumentPosition, aEditorContent,
- EFalse );
+ TRAP_IGNORE( smiley->ConvertTextForSmileyL( aDocumentPosition, aEditorContent,
+ EFalse ); )
}
}
+ TInt smileyEndPos( 0 );
for ( TInt i( 0 ); i < length; i++ )
{
- if ( smiley->SmileyCodeByPos( aDocumentPosition + i ) > 0 &&
- !CSmileyManager::IsSmileyCode( aEditorContent[i] ) )
+ if ( aEditorContent[i] == CSmileyManager::KCompensateChar &&
+ i < smileyEndPos )
{
aEditorContent[i] = CSmileyManager::KPlaceHolder;
}
+ else if ( smiley->IsSmileyCode( aEditorContent[i] ) )
+ {
+ smileyEndPos = i + smiley->SmileyLength( aDocumentPosition + i );
+ }
}
}
}
@@ -8510,9 +8515,7 @@
checkPos--;
checkPos = checkPos >= 0 ? checkPos : 0;
}
- if ( CSmileyManager::IsSmileyCode( iEdwinExtension->iSmiley->
- SmileyCodeByPos( checkPos ) ) &&
- !iEdwinExtension->iSmiley->IsDisabledSmileyIcon( checkPos ) )
+ if ( iEdwinExtension->iSmiley->SmileyCodeByPos( checkPos ) > 0 )
{
TInt codeLength( iEdwinExtension->iSmiley->SmileyLength( checkPos ) );
iEdwinExtension->iSmiley->DisableSmileyIcon( checkPos );
@@ -8940,7 +8943,6 @@
}
}
-
// ---------------------------------------------------------------------------
// CEikEdwin::SkipBackgroundDrawer
// ---------------------------------------------------------------------------
--- a/uifw/EikStd/coctlsrc/EIKLABEL.CPP Tue May 25 12:58:19 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKLABEL.CPP Wed Jun 09 09:58:37 2010 +0300
@@ -270,7 +270,7 @@
TInt CEikLabel::HeightInPixels() const
{
- return(iMargin.iTop+iMargin.iBottom + iGapBetweenLines*(iNumberOfLines-1) + iNumberOfLines*iFont->HeightInPixels());
+ return(iMargin.iTop+iMargin.iBottom + iGapBetweenLines*(iNumberOfLines-1) + iNumberOfLines*iFont->FontMaxHeight());
}
TInt CEikLabel::WidthInPixels(TPtrC& aText) const
@@ -403,7 +403,7 @@
const TRect rect = Rect();
- const TInt deltaHeight=rect.Height()-HeightInPixels();
+ const TInt deltaHeight=rect.Height() - HeightInPixels();
TInt preHeight=iMargin.iTop; // used on first line
TInt postHeight=iMargin.iBottom; // used on last line
if (deltaHeight>0)
@@ -437,14 +437,14 @@
}
else
{
- textPaneTopToBaseline = iFont->AscentInPixels();
- textPaneHeight = iFont->HeightInPixels();
+ textPaneTopToBaseline = iFont->FontMaxAscent();
+ textPaneHeight = iFont->FontMaxHeight();
}
// iGapBetweenLines is defined as baseline separation - CFont::HeightInPixels
// Since we are using the better metrics above, we have to actually use something which is
// derived from iGapBetweenLines, but is e.g. reduced if textpaneheight > heightInPixels
- TInt gapBetweenTextPanes( iGapBetweenLines - (textPaneHeight - iFont->HeightInPixels()) );
+ TInt gapBetweenTextPanes( iGapBetweenLines - (textPaneHeight - iFont->FontMaxHeight() ) );
FOREVER
{
--- a/uifw/EikStd/coctlsrc/EIKLBV.CPP Tue May 25 12:58:19 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKLBV.CPP Wed Jun 09 09:58:37 2010 +0300
@@ -657,15 +657,33 @@
EXPORT_C TInt CListBoxView::NumberOfItemsThatFitInRect(const TRect& aRect) const
{
+ TInt itemNumber = 0;
if (iItemHeight == 0)
{
_AKNTRACE( "Number of items is 0" );
- return 0;
+ return itemNumber;
}
- TInt items = aRect.Height() / iItemHeight;
- if ( ( iVerticalOffset != 0 ) || ( (aRect.Height() - iVerticalOffset) % iItemHeight > 0 ) ) items++;
- _AKNTRACE( "Number of items is %d", items );
- return items;
+ TInt items = aRect.Height() / iItemHeight;
+ TInt extraHeight = aRect.Height() % iItemHeight;
+ // if there is offset or extra height, then there is at least one partical
+ // displayed item
+ if ( iVerticalOffset != 0 || extraHeight > 0 )
+ {
+ items++;
+ }
+ // if extra height is not totally taken by top partically displayed item,
+ // then there is still place to display a partcial item in bottom. consider
+ // a example which view height is 35 and item height is 10, then it's possible
+ // to display 5 items with the height like 3,10,10,10,2
+ if ( iVerticalOffset != 0 &&
+ extraHeight != 0 &&
+ ( iItemHeight + iVerticalOffset ) < extraHeight )
+ {
+ items++;
+ }
+ itemNumber = items;
+ _AKNTRACE( "Number of items is %d", itemNumber );
+ return itemNumber;
}
EXPORT_C void CListBoxView::DeselectRangeL(TInt aItemIndex1, TInt aItemIndex2)
@@ -1193,16 +1211,17 @@
RDebug::Print( _L( "CListBoxView::CalcNewTopItemIndexSoItemIsVisible" ) );
#endif // _DEBUG
TInt newTopItemIndex=iTopItemIndex;
- const TInt numItemsThatFitInRect=NumberOfItemsThatFitInRect(iViewRect);
- if (aItemIndex < iTopItemIndex || numItemsThatFitInRect == 0)
+ const TInt numItemsThatFitInRect=NumberOfItemsThatFitInRect( iViewRect );
+ if ( aItemIndex < iTopItemIndex || numItemsThatFitInRect == 0 )
+ {
newTopItemIndex = aItemIndex;
- else if (aItemIndex > iBottomItemIndex)
- newTopItemIndex = aItemIndex - numItemsThatFitInRect + 1;
- else if ( ( iVerticalOffset < 0 )
- && ( aItemIndex == iBottomItemIndex )
- && ( 0 == iViewRect.Height() % iItemHeight ) )
+ }
+ else
{
- newTopItemIndex += 1;
+ if (aItemIndex > iBottomItemIndex)
+ {
+ newTopItemIndex = aItemIndex - numItemsThatFitInRect + 1;
+ }
}
if (!ITEM_EXISTS_ONCE(newTopItemIndex) && newTopItemIndex != 0 )
@@ -1229,6 +1248,13 @@
{
me->SetItemOffsetInPixels( 0 );
}
+ //after reset vertical offset,
+ //the number of items which fit in the view maybe change
+ TInt newNumItemsThatFitInRect = NumberOfItemsThatFitInRect( iViewRect );
+ if ( newNumItemsThatFitInRect != numItemsThatFitInRect )
+ {
+ newTopItemIndex = aItemIndex - newNumItemsThatFitInRect + 1;
+ }
}
_AKNTRACE_FUNC_EXIT;
--- a/uifw/EikStd/coctlsrc/EIKLBX.CPP Tue May 25 12:58:19 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKLBX.CPP Wed Jun 09 09:58:37 2010 +0300
@@ -526,6 +526,11 @@
void DisableSingleClick();
/**
+ * Enables single click
+ */
+ void EnableSingleClickL();
+
+ /**
* Disables item specific menu.
*/
void DisableItemSpecificMenu();
@@ -757,6 +762,12 @@
* Ordinal position of listbox window, before stylus menu is opened.
*/
TInt iOldWinPos;
+
+ /**
+ * If double click modifier is set on PointerEvent, the event may be ignored
+ * in some situation(To prevent extra dialog launched by AO).
+ */
+ TBool iDoubleClickEventIgnored;
private:
CMatchBuffer* iBuffer;
@@ -790,7 +801,7 @@
/**
* Height of the list in pixels.
*/
- TInt iListBottomLimit;
+ TInt iListBottomLimit;
};
// CEikListBoxExt
@@ -1270,6 +1281,28 @@
_AKNTRACE_FUNC_EXIT;
}
+// -----------------------------------------------------------------------------
+// CListBoxExt::EnableSingleClickL
+// -----------------------------------------------------------------------------
+//
+void CListBoxExt::EnableSingleClickL()
+ {
+ _AKNTRACE_FUNC_ENTER;
+ if ( !iLongTapDetector )
+ {
+ iLongTapDetector = CAknLongTapDetector::NewL( this );
+ }
+ if ( !iItemActionMenu )
+ {
+ iItemActionMenu = CAknItemActionMenu::RegisterCollectionL(
+ *this, &iListBox );
+ iListBox.iListBoxFlags &= ( ~CEikListBox::EDisableItemSpecificMenu );
+ }
+ iSingleClickEnabled = ETrue;
+ EnableHighlight( EFalse );
+ // iListBox.UpdateHighlightL( iListBox.iView->CurrentItemIndex() );
+ _AKNTRACE_FUNC_EXIT;
+ }
// -----------------------------------------------------------------------------
// CListBoxExt::DisableItemSpecificMenu
@@ -1299,8 +1332,9 @@
// Send event on down only if item specific items were found.
// Long tap is also disabled if current item is not marked while
// there are some marked items or marking mode is active.
- if ( !( ( iListBox.MarkingMode() || MarkedItems() )
+ if ( ( !( ( iListBox.MarkingMode() || MarkedItems() )
&& !iListBox.View()->ItemIsSelected( iListBox.CurrentItemIndex() ) )
+ || ( iListBox.iListBoxFlags & CEikListBox::EItemSpecificMenuAlwaysShown ) )
&& ( aPointerEvent.iType != TPointerEvent::EButton1Down
|| iItemActionMenu->InitMenuL() ) )
{
@@ -4192,6 +4226,11 @@
case MEikListBoxObserver::EEventFlickStarted:
case MEikListBoxObserver::EEventPanningStarted:
{
+ if ( iListBoxExt && ( iListBoxExt->iWorldSize.iHeight
+ <= iListBoxExt->iViewSize.iHeight ) )
+ {
+ return;
+ }
iItemDrawer->SetFlags( CListItemDrawer::EDisableMarquee );
if ( iListBoxExt )
{
@@ -4210,6 +4249,11 @@
case MEikListBoxObserver::EEventFlickStopped:
case MEikListBoxObserver::EEventPanningStopped:
{
+ if ( iListBoxExt && ( iListBoxExt->iWorldSize.iHeight
+ <= iListBoxExt->iViewSize.iHeight ) )
+ {
+ return;
+ }
iItemDrawer->ClearFlags( CListItemDrawer::EDisableMarquee );
if ( iListBoxExt )
{
@@ -4999,6 +5043,7 @@
}
iListBoxExt->iFeedbackType = ETouchFeedbackList;
+ iListBoxExt->iDoubleClickEventIgnored = EFalse;
if ( !iListBoxExt->iSingleClickEnabled &&
itemIndex != iView->CurrentItemIndex() )
@@ -5068,6 +5113,7 @@
if(Buffer()->iPressedIndex == itemIndex)
{
Buffer()->iPressedIndex = KEikListBoxInvalidIndex;
+ iListBoxExt->iDoubleClickEventIgnored = ETrue;
_AKNTRACE_FUNC_EXIT;
return;
}
@@ -5350,7 +5396,7 @@
( !( ( iListBoxFlags & EViewerFlag ) &&
( iListBoxFlags & EDisableItemSpecificMenu ) ) )&&
( iListBoxExt->iLastDownTappedItem == itemIndex ) &&
- (Buffer()->iPressedIndex != KEikListBoxInvalidIndex) &&
+ ( !iListBoxExt->iDoubleClickEventIgnored ) &&
itemIndex == iView->CurrentItemIndex() )
{
TTouchLogicalFeedback fbType = ETouchFeedbackList;
@@ -5411,7 +5457,8 @@
}
if ( !s60StyleMultiselection )
{
- if ( !iListBoxExt->iSingleClickEnabled )
+ if ( !iListBoxExt->iSingleClickEnabled &&
+ itemIndex == iListBoxExt->iLastDownTappedItem )
{
ReportListBoxEventL(MEikListBoxObserver::EEventItemClicked);
}
@@ -6596,6 +6643,14 @@
iListBoxExt->DisableSingleClick();
iItemDrawer->ClearFlags( CListItemDrawer::ESingleClickEnabled);
}
+ else if ( !aDisabled &&
+ iListBoxExt &&
+ !iListBoxExt->iSingleClickEnabled &&
+ iItemDrawer )
+ {
+ TRAP_IGNORE( iListBoxExt->EnableSingleClickL() );
+ iItemDrawer->SetFlags( CListItemDrawer::ESingleClickEnabled );
+ }
_AKNTRACE_FUNC_EXIT;
}
--- a/uifw/EikStd/coctlsrc/EIKMENUB.CPP Tue May 25 12:58:19 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKMENUB.CPP Wed Jun 09 09:58:37 2010 +0300
@@ -785,7 +785,12 @@
EXPORT_C TKeyResponse CEikMenuBar::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType)
{
const TInt code=aKeyEvent.iCode;
-
+ //Filter msk event from dialog page.
+ if ( aKeyEvent.iCode == EKeyOK && aKeyEvent.iModifiers & EModifierSpecial )
+ {
+ return EKeyWasConsumed;
+ }
+
if (MenuHasPane())
{
iMenuPane->OfferKeyEventL(aKeyEvent, aType);
@@ -1139,6 +1144,26 @@
// menu pane captures all pointer events, and forwards them to CBA if neccessary
iMenuPane->SetGloballyCapturing(ETrue);
iMenuPane->SetPointerCapture(ETrue);
+ if ( feedback )
+ {
+ TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
+ if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
+ {
+ if( iExt->iMenuType == EMenuContext || iExt->iMenuType == EMenuEdit )
+ {
+ fbLogicalType = ETouchFeedbackIncreasingPopUp;
+ }
+ else
+ {
+ fbLogicalType = ETouchFeedbackOptionsMenuOpened;
+ }
+ }
+ feedback->InstantFeedback(
+ this,
+ fbLogicalType,
+ ETouchFeedbackVibra,
+ TPointerEvent() );
+ }
}
iMenuPane->MakeVisible( EFalse );
@@ -1149,16 +1174,6 @@
if( optMenuFg )
{
GfxTransEffect::Begin( iMenuPane, KGfxControlAppearAction );
- if( feedback && CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ))
- {
- TTouchLogicalFeedback fbLogicalType = ETouchFeedbackOptionsMenuOpened;
- if( iExt->iMenuType == EMenuContext || iExt->iMenuType == EMenuEdit )
- {
- fbLogicalType = ETouchFeedbackIncreasingPopUp;
- }
- feedback->InstantFeedback( this, fbLogicalType,
- ETouchFeedbackVibra, TPointerEvent() );
- }
}
iMenuPane->StartDisplayingMenuPane(NULL, menuPosition, NULL, screenSize.iWidth, EPopupTargetBottomLeft);
@@ -1176,11 +1191,6 @@
GfxTransEffect::SetDemarcation( iMenuPane, demarcation );
GfxTransEffect::End( iMenuPane );
}
- if( feedback )
- {
- feedback->InstantFeedback( this, ETouchFeedbackPopUp,
- ETouchFeedbackVibra, TPointerEvent() );
- }
_AKNTRACE_FUNC_EXIT;
}
--- a/uifw/EikStd/coctlsrc/EIKMENUP.CPP Tue May 25 12:58:19 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKMENUP.CPP Wed Jun 09 09:58:37 2010 +0300
@@ -841,11 +841,6 @@
{
cascadeMenuPane->SetParent( iControl );
GfxTransEffect::Begin( cascadeMenuPane, KGfxControlAppearAction );
- if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
- {
- ImmediateFeedback( ETouchFeedbackSubMenuOpened,
- ETouchFeedbackVibra );
- }
cascadeMenuPane->StartDisplayingMenuPane( iControl->iHotKeyTable,
iControl->Position(),
NULL,
@@ -1256,6 +1251,7 @@
iFlags.Clear( EContextSensitive );
iFlags.Clear( EHighlightEnabled );
iFlags.Clear( EHideViewSpecificCommands );
+ iFlags.Clear( EHideMarkAndUnmark );
_AKNTRACE_FUNC_EXIT;
}
@@ -2287,7 +2283,13 @@
{
iExtension->StartCascadeMenuAppearTransition();
}
- iExtension->ImmediateFeedback( ETouchFeedbackPopUp,
+
+ TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
+ if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
+ {
+ fbLogicalType = ETouchFeedbackSubMenuOpened;
+ }
+ iExtension->ImmediateFeedback( fbLogicalType,
ETouchFeedbackVibra );
_AKNTRACE_FUNC_EXIT;
}
--- a/uifw/EikStd/coctlsrc/aknitemactionmenuregister.cpp Tue May 25 12:58:19 2010 +0300
+++ b/uifw/EikStd/coctlsrc/aknitemactionmenuregister.cpp Wed Jun 09 09:58:37 2010 +0300
@@ -920,11 +920,10 @@
{
TAknUnregisteredMenuData& data( iUnregisteredMenus[i] );
- if ( data.iOwner == iMenuBarOwner )
+ if ( data.iOwner == aMenuBarOwner )
{
- data.iOwner = iMenuBarOwner = NULL;
+ data.iOwner = NULL;
}
-
++i;
}
--- a/uifw/EikStd/coctlsrc/akntoolbarextension.cpp Tue May 25 12:58:19 2010 +0300
+++ b/uifw/EikStd/coctlsrc/akntoolbarextension.cpp Wed Jun 09 09:58:37 2010 +0300
@@ -22,6 +22,10 @@
#include <aknconsts.h>
#include <akntoolbar.h>
+#include <touchfeedback.h>
+#include <akntranseffect.h>
+#include <akntransitionutils.h>
+
#include "akntoolbarextensionview.h"
@@ -309,6 +313,28 @@
iView->SetFocusing( !nonFocusing );
if ( IsVisible() )
{
+
+ //
+ // the pop up feedback for droping out toolbar extention view
+ //
+ if ( AknLayoutUtils::PenEnabled() )
+ {
+ MTouchFeedback* feedback = MTouchFeedback::Instance();
+ if ( feedback )
+ {
+ TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
+ if ( CAknTransitionUtils::TransitionsEnabled(
+ AknTransEffect::EComponentTransitionsOff ) )
+ {
+ fbLogicalType = ETouchFeedbackIncreasingPopUp;
+ }
+
+ feedback->InstantFeedback( this,
+ fbLogicalType,
+ ETouchFeedbackVibra, TPointerEvent() );
+ }
+ }
+
iToolbar->DynInitExtensionL( this );
iView->MakeVisible( ETrue ); // show view
}
--- a/uifw/EikStd/coctlsrc/akntoolbarextensionview.cpp Tue May 25 12:58:19 2010 +0300
+++ b/uifw/EikStd/coctlsrc/akntoolbarextensionview.cpp Wed Jun 09 09:58:37 2010 +0300
@@ -873,17 +873,19 @@
MAknsSkinInstance* skin = AknsUtils::SkinInstance();
if ( iExtension->ExtensionFlags() & KAknTbExtensionDsaMode )
{
+ TSize cornerSize(20,20);
gc.SetDrawMode( CGraphicsContext::EDrawModeWriteAlpha );
gc.SetBrushColor( TRgb( KToolbarExtensionBgColor, KToolBarExtensionBgAlpha ) );
gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
- gc.DrawRect( rect );
+ gc.DrawRoundRect( rect, cornerSize );
+
gc.SetDrawMode( CGraphicsContext::EDrawModePEN );
TSize penSize( 1, 1 );
gc.SetPenSize( penSize );
- gc.SetPenStyle( CGraphicsContext::EDottedPen );
- gc.SetPenColor( KRgbWhite );
+ gc.SetPenStyle( CGraphicsContext::ESolidPen );
+ gc.SetPenColor( KRgbDarkGray );
gc.SetBrushStyle( CGraphicsContext::ENullBrush );
- gc.DrawRect( rect );
+ gc.DrawRoundRect( rect, cornerSize );
}
else
{
--- a/uifw/EikStd/coctlsrc/eikspane.cpp Tue May 25 12:58:19 2010 +0300
+++ b/uifw/EikStd/coctlsrc/eikspane.cpp Wed Jun 09 09:58:37 2010 +0300
@@ -2612,8 +2612,7 @@
{
if ( aParentWindowGroup )
{
- MakeVisible( EFalse );
-
+
SetMopParent( iEikonEnv->EikAppUi() );
SetParent( NULL );
@@ -2626,8 +2625,8 @@
}
CreateWindowL( aParentWindowGroup );
-
- RWindow& window = Window();
+
+ RWindow& window = Window();
if ( aRedrawStoreHandler )
{
aRedrawStoreHandler->SetStore( &window, KEnableRedrawStoring );
@@ -2652,6 +2651,10 @@
SetContainersL( *iControl, *this );
+ //these 2 lines is to fix the error ou1cimx1#390645
+ MakeVisible( ETrue );
+ MakeVisible( EFalse );
+
window.SetFaded( aIsFaded, RWindowTreeNode::EFadeIncludeChildren );
window.SetOrdinalPosition( ordinalPos );
--- a/uifw/EikStd/coctlsrc/smileymanager.cpp Tue May 25 12:58:19 2010 +0300
+++ b/uifw/EikStd/coctlsrc/smileymanager.cpp Wed Jun 09 09:58:37 2010 +0300
@@ -265,7 +265,7 @@
TText CSmileyManager::SmileyCodeByPos( TInt aDocPos )
{
CSmileyIcon* icon( iIconRecord->SmileyIconAtPos( aDocPos ) );
- if ( icon )
+ if ( icon && !icon->IsDisabled() )
{
return icon->Code();
}
--- a/uifw/EikStd/dlgsrc/EIKCAPC.CPP Tue May 25 12:58:19 2010 +0300
+++ b/uifw/EikStd/dlgsrc/EIKCAPC.CPP Wed Jun 09 09:58:37 2010 +0300
@@ -3645,7 +3645,7 @@
{ // popup field will be same size as text element
TAknLayoutText r;
r.LayoutText(layoutRect, labelLayout);
- TRect resultRect = r.TextRect();
+ TRect resultRect( r.TextRect() );
aPopfield->SetRect(resultRect);
}
else
--- a/uifw/EikStd/dlgsrc/EIKCAPCA.CPP Tue May 25 12:58:19 2010 +0300
+++ b/uifw/EikStd/dlgsrc/EIKCAPCA.CPP Wed Jun 09 09:58:37 2010 +0300
@@ -653,8 +653,12 @@
TRect formRect = formtLayoutRect.Rect();
CEikCapCArrayExtension *extension_or_null = ExtensionOrNull();
+
+ TBool rectChanged = ETrue;
+
if (extension_or_null)
{
+ rectChanged = ( extension_or_null->iRect != formRect );
extension_or_null->iRect = formRect;
}
@@ -665,7 +669,11 @@
if ( control->DialogPage()->IsForm() )
{
- SetRealRect( aRect, aTop, aBottom );
+ if ( rectChanged )
+ {
+ SetRealRect( aRect, aTop, aBottom );
+ }
+
_AKNTRACE_FUNC_EXIT;
return;
}
@@ -1137,7 +1145,12 @@
topLeft.SetXY( Rect().iTl.iX, LineIndexToYPosition( aLine, aTopY ) );
}
- line->SetRect( TRect( topLeft, line->Size() ) );
+ TRect newRect( topLeft, line->Size() );
+
+ if ( newRect != line->Rect() )
+ {
+ line->SetRect( TRect( topLeft, line->Size() ) );
+ }
}
_AKNTRACE_FUNC_EXIT;
}
--- a/uifw/EikStd/dlgsrc/EIKDIALG.CPP Tue May 25 12:58:19 2010 +0300
+++ b/uifw/EikStd/dlgsrc/EIKDIALG.CPP Wed Jun 09 09:58:37 2010 +0300
@@ -300,9 +300,9 @@
// assume that dialog didn't properly call CEikDialog::SizeChanged thus
// embedded softkeys won't work.
// In that case softkeys are deleted and re-created as a window-owning
- // component in "legacy" way.
- if ( checkCba && extension->iDeleteEmbeddedCba
- && extension->iButtonGroupResourceId != 0 )
+ // component in "legacy" way.
+ if (checkCba && extension->iButtonGroupResourceId != 0 &&
+ (extension->iDeleteEmbeddedCba || Size().iWidth <= 0))
{
delete iButtonGroupContainer;
iButtonGroupContainer = NULL;
@@ -1656,15 +1656,23 @@
#endif
GfxTransEffect::Begin(this, KGfxControlAppearAction);
MTouchFeedback* feedback = NULL;
- if(AknLayoutUtils::PenEnabled())
- {
- feedback = static_cast<MTouchFeedback*>(ExtensionInterface(KExIfTactileFeedbackUid));
- }
- if(feedback && CAknTransitionUtils::TransitionsEnabled(AknTransEffect::EComponentTransitionsOff ))
- {
- feedback->InstantFeedback(this, ETouchFeedbackIncreasingPopUp,
- ETouchFeedbackVibra, TPointerEvent());
- }
+ if( AknLayoutUtils::PenEnabled() )
+ {
+ feedback = static_cast<MTouchFeedback*>( ExtensionInterface( KExIfTactileFeedbackUid ) );
+ }
+ if( feedback )
+ {
+ if( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
+ {
+ feedback->InstantFeedback( this, ETouchFeedbackIncreasingPopUp,
+ ETouchFeedbackVibra, TPointerEvent() );
+ }
+ else
+ {
+ feedback->InstantFeedback( this, ETouchFeedbackPopUp,
+ ETouchFeedbackVibra, TPointerEvent() );
+ }
+ }
GfxTransEffect::NotifyExternalState(ECaptureComponentsBegin, (const TDesC8*)this);
TRect demarcation;
@@ -1677,11 +1685,6 @@
GfxTransEffect::NotifyExternalState(ECaptureComponentsEnd, (const TDesC8*)this);
GfxTransEffect::End(this);
- if(feedback)
- {
- feedback->InstantFeedback(this, ETouchFeedbackPopUp,
- ETouchFeedbackVibra, TPointerEvent());
- }
}
else
{
@@ -2432,7 +2435,13 @@
else if (iExtension)
iExtension->iFlags.Set(CEikDialogExtension::ELayoutChangeWhileInvisible);
- CCoeControl::HandleResourceChange(aType);
+ TBool isForm = ( iPageSelector && iPageSelector->IsForm() );
+
+ if ( !isForm )
+ {
+ CCoeControl::HandleResourceChange( aType );
+ }
+
_AKNTRACE_FUNC_EXIT;
return;
}
@@ -2454,16 +2463,22 @@
// Must work through all pages
_AKNTRACE_FUNC_ENTER;
Layout();
- SizeChanged();
+
+ TBool isForm = ( iPageSelector && iPageSelector->IsForm() );
+
+ if ( !isForm )
+ {
+ SizeChanged();
- TInt lastPage = ( iPageSelector->PageContainer()->NumPages() - 1 );
- TInt pageIndex = 0;
- CEikDialogPage* page;
-
- while ( pageIndex++ <= lastPage )
- {
- page = iPageSelector->PageContainer()->Page( pageIndex );
- page->HandleResourceChange( KEikDynamicLayoutVariantSwitch );
+ TInt lastPage = ( iPageSelector->PageContainer()->NumPages() - 1 );
+ TInt pageIndex = 0;
+ CEikDialogPage* page;
+
+ while ( pageIndex++ <= lastPage )
+ {
+ page = iPageSelector->PageContainer()->Page( pageIndex );
+ page->HandleResourceChange( KEikDynamicLayoutVariantSwitch );
+ }
}
if (iExtension)
--- a/uifw/EikStd/dlgsrc/EIKDPAGE.CPP Tue May 25 12:58:19 2010 +0300
+++ b/uifw/EikStd/dlgsrc/EIKDPAGE.CPP Wed Jun 09 09:58:37 2010 +0300
@@ -218,44 +218,46 @@
TInt aCurrentLine )
{
CEikCaptionedControl* firstLine( aDPage.LineOnPageOrNull( 0 ) );
- TBool viewMode( !aDPage.IsEditable() );
- // note, that iFormControl is checked in Feedback()
- if ( aPointerEvent.iType == TPointerEvent::EButton1Down &&
- aCurrentLine != aTouchedLineIndex &&
- firstLine )
+ if( aDPage.IsEditable() )
{
- // feedback for edit/view mode form, when non-focused line is clicked
- // feedback for focused item is responsibility of the item
- // no feedback with focus change when single click is enabled
- if ( !iUsesSingleClick )
- {
- Feedback( aDPage, ETouchFeedbackSensitiveList );
- }
- iFocusItemChanged = ETrue;
- }
- else if ( viewMode && firstLine )
- {
+ // note, that iFormControl is checked in Feedback()
if ( aPointerEvent.iType == TPointerEvent::EButton1Down &&
- aTouchedLineIndex == aCurrentLine )
+ aCurrentLine != aTouchedLineIndex &&
+ firstLine )
+ {
+ // feedback for edit mode form, when non-focused line is clicked
+ // feedback for focused item is responsibility of the item
+ // no feedback with focus change when single click is enabled
+ if ( !iUsesSingleClick )
+ {
+ Feedback( aDPage, ETouchFeedbackSensitiveList );
+ }
+ iFocusItemChanged = ETrue;
+ }
+ else if ( firstLine )
{
- // Feedback for view mode form, when focused item is
- // clicked. Basically same case as for msk simulation later on
- // the function, but on pointer
- // down. iExtension->iFocusedClicked is not valid here, since
- // it can't be known in this phase whether user drags pointer
- // away.
- Feedback( aDPage, ETouchFeedbackList );
- iFocusItemChanged = EFalse;
- }
- else if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
- {
- // When focus changed, it should not send feedback on up event.
- // When up event comes, aTouchedLineIndex always equal to
- // aCurrentLine.
- if ( !iFocusItemChanged )
+ if ( aPointerEvent.iType == TPointerEvent::EButton1Down &&
+ aTouchedLineIndex == aCurrentLine )
{
- SilentFeedback( aDPage, ETouchFeedbackList, aPointerEvent );
+ // Feedback for edit mode form, when focused item is
+ // clicked. Basically same case as for msk simulation later on
+ // the function, but on pointer
+ // down. iExtension->iFocusedClicked is not valid here, since
+ // it can't be known in this phase whether user drags pointer
+ // away.
+ Feedback( aDPage, ETouchFeedbackList );
+ iFocusItemChanged = EFalse;
+ }
+ else if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
+ {
+ // When focus changed, it should not send feedback on up event.
+ // When up event comes, aTouchedLineIndex always equal to
+ // aCurrentLine.
+ if ( !iFocusItemChanged )
+ {
+ SilentFeedback( aDPage, ETouchFeedbackList, aPointerEvent );
+ }
}
}
}
@@ -268,8 +270,7 @@
if ( iFeedback &&
aDPage.IsForm() &&
!aDPage.IsDimmed() &&
- aDPage.IsVisible() &&
- aDPage.IsEditable() )
+ aDPage.IsVisible() )
{
iFeedback->InstantFeedback( aFeedback );
}
@@ -284,8 +285,7 @@
if ( iFeedback &&
aDPage.IsForm() &&
!aDPage.IsDimmed() &&
- aDPage.IsVisible() &&
- aDPage.IsEditable() )
+ aDPage.IsVisible() )
{
iFeedback->InstantFeedback( &aDPage,
aFeedback,
@@ -685,18 +685,16 @@
AknsUtils::RegisterControlPosition(capCtrl->iTrailer);
AknsUtils::RegisterControlPosition(capCtrl->iBitmap);
- if ( capCtrl->iIsFormControl && iCurrentLine != i)
- {
-
- if (capCtrl->ControlIsAnEdwin(capCtrl->iControlType))
+ if ( capCtrl->iIsFormControl && iCurrentLine != i)
{
- CEikEdwin *edwin = (CEikEdwin*)capCtrl->iControl;
- TRAP_IGNORE(edwin->TextView()->SetDocPosL(0)
- );
+ if (capCtrl->ControlIsAnEdwin(capCtrl->iControlType))
+ {
+ CEikEdwin *edwin = (CEikEdwin*)capCtrl->iControl;
+ TRAP_IGNORE( edwin->TextView()->SetDocPosL( 0 ) );
+ }
}
- }
-
}
+
_AKNTRACE_FUNC_EXIT;
}
@@ -778,12 +776,6 @@
continue;
ChangeFocusTo(ii);
focusSet=ETrue;
-
- if ( IsForm() )
- {
- // move line with initial focus to the screen
- iLines->MoveLineToScreen( ii, iPhysics->ViewTopY(), ETrue );
- }
break;
}
iExtension->iSetInitialFocusDone = ETrue;
@@ -1516,6 +1508,37 @@
void CEikDialogPage::SizeChanged()
{
_AKNTRACE_FUNC_ENTER;
+ if ( IsForm() )
+ {
+ iExtension->iInitialLayoutDone = EFalse;
+
+ iScroll->SetOutsideRect( Rect() );
+
+ // force each line to resize
+ TInt count = iLines->Count();
+
+ for ( TInt i = 0; i < count; ++i )
+ {
+ (*iLines)[i]->HandleResourceChange( KEikDynamicLayoutVariantSwitch );
+ }
+
+ iLines->SetRect( Rect(), iScroll->Top(), iScroll->Middle(), iScroll->Bottom() );
+
+ iExtension->iInitialLayoutDone = ETrue;
+ UpdatePhysics();
+
+ if ( ( count > 0 ) && ( iCurrentLine >= 0 ) )
+ {
+ ExposeLine( iCurrentLine, ETrue );
+ }
+
+ TRAP_IGNORE( UpdateScrollBarL() ); // ignore any errors.
+ AknsUtils::RegisterControlPosition( this );
+
+ _AKNTRACE_FUNC_EXIT;
+ return;
+ }
+
// update form area's size to scroll control
iScroll->SetOutsideRect( Rect() );
iLines->SetRect( Rect(), iScroll->Top(), iScroll->Middle(), iScroll->Bottom() );
@@ -1528,7 +1551,6 @@
TRAP_IGNORE( UpdateScrollBarL() ); // ignore any errors.
AknsUtils::RegisterControlPosition( this );
- UpdatePhysics();
iExtension->iInitialLayoutDone = ETrue;
_AKNTRACE_FUNC_EXIT;
}
@@ -1677,8 +1699,8 @@
{
iExtension->iPopFieldEvents = 1;
}
-
- ReconsiderPageSize();
+
+ (*iLines)[iCurrentLine]->SetRect( (*iLines)[iCurrentLine]->Rect() );
ExposeLine( index, ETrue );
DrawNow();
@@ -1814,9 +1836,19 @@
size.iHeight = height;
// Must force a size change on current captioned contrl even if control doesn't change size (so that edwin is resized by aknutils)
- aEdwin->SetSize(size);
- ReconsiderPageSize();
- ExposeLine(iCurrentLine, ETrue);
+ aEdwin->SetSize(size);
+
+ if ( IsForm() )
+ {
+ (*iLines)[iCurrentLine]->SetRect( (*iLines)[iCurrentLine]->Rect() );
+ ExposeLine( iCurrentLine, ETrue );
+ }
+ else
+ {
+ ReconsiderPageSize();
+ ExposeLine(iCurrentLine, ETrue);
+ }
+
PrepareToDrawVerticalLine(); // do flushes here.
/* improved redraw code
@@ -2146,11 +2178,18 @@
if ( ( oldLine != iCurrentLine && IsForm() ) &&
iExtension->iInitialLayoutDone )
{
+ // Set temporarily for EFalse to prevent one extra physics update
+ // because of two calls to iLines->MoveLineToScreen
+ iExtension->iInitialLayoutDone = EFalse;
+
if ( oldLine != -1 )
{
iLines->MoveLineToScreen( oldLine, 0, EFalse );
TRAP_IGNORE( RecordLineL( oldLine ) );
}
+
+ // set back to correct value
+ iExtension->iInitialLayoutDone = ETrue;
TRAP_IGNORE( RecordLineL( iCurrentLine ) );
iLines->MoveLineToScreen( iCurrentLine, iPhysics->ViewTopY(), ETrue );
@@ -2182,7 +2221,7 @@
void CEikDialogPage::HandleResourceChange(TInt aType)
{
_AKNTRACE_FUNC_ENTER;
- if ( aType==KEikDynamicLayoutVariantSwitch )
+ if ( aType==KEikDynamicLayoutVariantSwitch && !IsForm() )
{
const TInt numLines=iLines->Count();
for ( TInt i=0; i < numLines; i++ )
@@ -2377,6 +2416,9 @@
_AKNTRACE( "CEikDialogPage::SetEditableL() aEditable: [%d]", aEditable );
iIsEditable = aEditable;
+ TBool initialLayoutDone = iExtension->iInitialLayoutDone;
+ iExtension->iInitialLayoutDone = EFalse;
+
HighlightVisible( aEditable );
if ( iExtension->iUsesSingleClick && iExtension->iSetInitialFocusDone )
@@ -2453,6 +2495,14 @@
{
ExposeLine(iCurrentLine,ETrue);
}
+
+ iExtension->iInitialLayoutDone = initialLayoutDone;
+
+ if ( IsForm() )
+ {
+ UpdatePhysics();
+ }
+
_AKNTRACE_FUNC_EXIT;
}
@@ -2897,8 +2947,12 @@
iCurrentLine );
iExtension->iWasScrolling = ( iPhysics->OngoingPhysicsAction() !=
- CAknPhysics::EAknPhysicsActionNone );
- iPhysics->Stop();
+ CAknPhysics::EAknPhysicsActionNone );
+ if(iExtension->iWasScrolling)
+ {
+ iPhysics->Stop();
+ iExtension->Feedback( *this, ETouchFeedbackList );
+ }
iExtension->iLastTouchedLine = touchedLine;
iExtension->iDragStartPosition = aPointerEvent.iPosition;
iExtension->iLastPointerPos = aPointerEvent.iPosition;
@@ -3079,13 +3133,7 @@
( iExtension->iFocusedClicked || iExtension->iUsesSingleClick ) &&
!iExtension->iScrolling )
{
- // Not need to sent key event when focus lost.
- CEikCaptionedControl* currentLine = (*iLines)[iCurrentLine];
- if ( currentLine->IsFocused() )
- {
- mskPress = ETrue;
- }
-
+ mskPress = ETrue;
callDefaultImplementation = EFalse;
}
if ( callDefaultImplementation && ( iExtension->iFocusedClicked ||
@@ -3114,7 +3162,7 @@
{
TKeyEvent key;
key.iCode=EKeyOK;
- key.iModifiers=0;
+ key.iModifiers=EModifierSpecial;
key.iRepeats = 0;
iEikonEnv->SimulateKeyEventL( key, EEventKey );
}
@@ -3303,6 +3351,13 @@
void CEikDialogPage::UpdateLineInCache( CEikCaptionedControl* aLine )
{
_AKNTRACE_FUNC_ENTER;
+
+ if ( !IsActivated() )
+ {
+ _AKNTRACE_FUNC_EXIT;
+ return;
+ }
+
TInt lineIndex = iLines->FindLineIndex( aLine );
if ( lineIndex != KErrNotFound )
@@ -4412,7 +4467,9 @@
CCoeControl::HandleResourceChange(aType);
- if(aType==KEikDynamicLayoutVariantSwitch)
+ // if this is a form then its size has been set already by
+ // CEikDialog::HandleResourceChange
+ if ( aType == KEikDynamicLayoutVariantSwitch && !iForm )
{
SizeChanged();
}
--- a/uifw/EikStd/srvuisrc/EIKSRVUI.CPP Tue May 25 12:58:19 2010 +0300
+++ b/uifw/EikStd/srvuisrc/EIKSRVUI.CPP Wed Jun 09 09:58:37 2010 +0300
@@ -624,13 +624,12 @@
EXPORT_C void CEikServAppUiBase::HandleThreadExitL(RThread& aThread)
{
- _LIT(KAppArcServerThread, "AppArcServerThread");
if (aThread.Name() == ASCliDefinitions::ServerAndThreadName()) // alarm server died
{
aThread.Close(); // need to Close() before restarting with same name
iServerToRestart |= EAlwlSvr; // restarted under active object
}
- else if (aThread.Name() == KAppArcServerThread) // AppArc server died
+ else if (aThread.Name()==NameApaServServerThread()) // AppArc server died
{
aThread.Close();
iServerToRestart|=EApaSvr;
--- a/uifw/eikctl/src/EIKCLB.CPP Tue May 25 12:58:19 2010 +0300
+++ b/uifw/eikctl/src/EIKCLB.CPP Wed Jun 09 09:58:37 2010 +0300
@@ -840,7 +840,7 @@
TInt firstPotentialItemIndex = iTopItemIndex;
TInt lastPotentialItemIndex =
- iTopItemIndex + NumberOfItemsThatFitInRect( iViewRect );
+ iTopItemIndex + NumberOfItemsThatFitInRect( iViewRect ) - 1;
TBool backgroundDrawingSuppressed = ( listbox && listbox->BackgroundDrawingSuppressed() );
if ( iModel->NumberOfItems() == 0 )
--- a/uifw/eikctl/src/EIKCLBD.CPP Tue May 25 12:58:19 2010 +0300
+++ b/uifw/eikctl/src/EIKCLBD.CPP Wed Jun 09 09:58:37 2010 +0300
@@ -2076,20 +2076,18 @@
}
#endif // RD_UI_TRANSITION_EFFECTS_LIST
}
-
+ if ( iExtension->iCurrentRow < listbox->BottomItemIndex() )
+ {
+ AknListUtils::DrawSeparator( aGc, aRect, aColors.iText, skin );
+ }
+
+ DrawHighLight( aGc, aRect, aHighlight, skin );
TRect itemRect( aRect );
DrawMarkingModeIcons( aItemProperties, aGc, itemRect );
if ( iExtension->iSubCellsMightIntersect )
{
CheckIfSubCellsIntersect( &textLines[0], &rectClipped[0], *aText, itemRect );
}
- if ( iExtension->iCurrentRow < listbox->BottomItemIndex() )
- {
- AknListUtils::DrawSeparator( aGc, aRect, aColors.iText, skin );
- }
- DrawHighLight( aGc, aRect, aHighlight, skin );
-
-
// The column draw loop
column = 0;
TInt subCellIndex = 0;
@@ -2464,7 +2462,11 @@
}
#endif // RD_UI_TRANSITION_EFFECTS_LIST
}
-
+ if ( iExtension->iCurrentRow < listbox->BottomItemIndex() )
+ {
+ AknListUtils::DrawSeparator( aGc, aRect, aColors.iText, skin );
+ }
+ DrawHighLight( aGc, aRect, aHighlight, skin );
DrawMarkingModeIcons( aItemProperties, aGc, itemRect );
TRect textRect( itemRect );
textRect.iBr.iX = itemRect.iTl.iX;
@@ -2548,13 +2550,6 @@
// pass 3 drawing
- if ( iExtension->iCurrentRow < listbox->BottomItemIndex() )
- {
- AknListUtils::DrawSeparator( aGc, aRect, aColors.iText, skin );
- }
-
- // LISTBOX LINES NEED TO BE DRAWN HERE.
- DrawHighLight( aGc, aRect, aHighlight, skin );
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
if ( transApi )
@@ -2848,9 +2843,18 @@
iExtension->iMarkingIconArray->Count() == 2 )
#endif // RD_TOUCH2_MARKING
{
- textRect.iTl.iX +=
- AknLayoutScalable_Avkon::list_single_graphic_pane_t1(
+ if ( AknLayoutUtils::LayoutMirrored() )
+ {
+ textRect.iBr.iX -=
+ AknLayoutScalable_Avkon::list_single_graphic_pane_t1(
+ 0 ).LayoutLine().ir;
+ }
+ else
+ {
+ textRect.iTl.iX +=
+ AknLayoutScalable_Avkon::list_single_graphic_pane_t1(
0 ).LayoutLine().il;
+ }
TAknLayoutRect layoutRect;
layoutRect.LayoutRect( aItemRect,
AknLayoutScalable_Avkon::list_single_graphic_pane_g1( 0 ) );
--- a/uifw/ganes/src/HgScroller.cpp Tue May 25 12:58:19 2010 +0300
+++ b/uifw/ganes/src/HgScroller.cpp Wed Jun 09 09:58:37 2010 +0300
@@ -372,7 +372,7 @@
iCurrentRow(-1),
iSelectedIndex(KErrNotFound),
iScrollBarType( EHgScrollerScrollBar ),
- iFirstTime(ETrue),
+ iResetViewPosition(ETrue),
iOldWinPos(KErrNotFound)
{
// No implementation required
@@ -423,15 +423,21 @@
// The world is set to be at least the size of the view.
TSize worldSize = TotalSize();
- if( !iLandscapeScrolling && (worldSize.iHeight < iHeight) )
+ if( !iLandscapeScrolling && (worldSize.iHeight <= iHeight) )
+ {
worldSize.iHeight = iHeight;
+ iResetViewPosition = ETrue;
+ }
- if( iLandscapeScrolling && (worldSize.iWidth < iWidth) )
+ if( iLandscapeScrolling && (worldSize.iWidth <= iWidth) )
+ {
worldSize.iWidth = iWidth;
+ iResetViewPosition = ETrue;
+ }
iPhysics->InitPhysicsL( worldSize,
- TSize(iWidth, iHeight),
- iLandscapeScrolling);
+ TSize(iWidth, iHeight),
+ iLandscapeScrolling);
}
// -----------------------------------------------------------------------------
@@ -516,10 +522,10 @@
iPopupDrawer->Init( Rect(), iPopupFont );
}
- if(iFirstTime)
+ if(iResetViewPosition)
{
iViewPosition = TPoint(iWidth/2, iHeight/2);
- iFirstTime = EFalse;
+ iResetViewPosition = EFalse;
}
HandleViewPositionChanged();
@@ -607,7 +613,6 @@
iDetector->PointerEventL( aEvent );
HandleUpEventL( aEvent );
- iPointerDown = EFalse;
}
}
}
@@ -777,15 +782,17 @@
if(iLandscapeScrolling && AknLayoutUtils::LayoutMirrored())
drag = -drag;
iPhysics->StartPhysics(drag, iStartTime);
+ iPointerDown = EFalse;
}
else
{
- HandleSelectionL();
MTouchFeedback* feedback = MTouchFeedback::Instance();
if ( feedback && iSelectedIndex != KErrNotFound )
{
feedback->InstantFeedback( this, ETouchFeedbackList, ETouchFeedbackVibra, aEvent );
}
+
+ HandleSelectionL();
}
}
@@ -804,6 +811,8 @@
// this is not usually the case since interval is 50ms but just to be sure.
SetHighlightL();
}
+
+ iPointerDown = EFalse;
// selection needs to be valid.
if( iSelectedIndex >= 0 && iSelectedIndex < iItems.Count() )
@@ -831,6 +840,10 @@
}
}
}
+ else
+ {
+ iPointerDown = EFalse;
+ }
}
// -----------------------------------------------------------------------------
@@ -1180,21 +1193,21 @@
{
if( iSelectedIndex != KErrNotFound && HasHighlight() )
{
+ iShowHighlight = EFalse;
+ iDrawUtils->EnableMarquee(HasHighlight());
if( iSelectionObserver )
TRAP_IGNORE( iSelectionObserver->HandleOpenL( iSelectedIndex ); )
- iShowHighlight = EFalse;
- iDrawUtils->EnableMarquee(HasHighlight());
return EKeyWasConsumed;
}
else if( iItemCount )
{
iSelectedIndex = iCurrentRow;
- if( iSelectionObserver )
- TRAP_IGNORE( iSelectionObserver->HandleSelectL( iSelectedIndex ); )
FitSelectionToView();
iShowHighlight = ETrue;
iDrawUtils->EnableMarquee(HasHighlight());
DrawDeferred();
+ if( iSelectionObserver )
+ TRAP_IGNORE( iSelectionObserver->HandleSelectL( iSelectedIndex ); )
return EKeyWasConsumed;
}
return EKeyWasNotConsumed;
--- a/uifw/tsrc/public/basic/AknSoundServerStifTest/group/AknSoundServerStifTest_DoxyFile.txt Tue May 25 12:58:19 2010 +0300
+++ b/uifw/tsrc/public/basic/AknSoundServerStifTest/group/AknSoundServerStifTest_DoxyFile.txt Wed Jun 09 09:58:37 2010 +0300
@@ -1,3 +1,19 @@
+#
+# Copyright (c) 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:
+#
+
# Doxyfile 1.4.1
#---------------------------------------------------------------------------