# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1271250840 -10800 # Node ID 71dd06cfe933a9dc29e6adc0523f9ea690eb9734 # Parent 08e69e956a8c6bf5e428b5daf9f25a55c56c1c93 Revision: 201013 Kit: 201015 diff -r 08e69e956a8c -r 71dd06cfe933 akntouchgesturefw/inc/akntouchgesturefwdefs.h --- a/akntouchgesturefw/inc/akntouchgesturefwdefs.h Wed Mar 31 21:59:52 2010 +0300 +++ b/akntouchgesturefw/inc/akntouchgesturefwdefs.h Wed Apr 14 16:14:00 2010 +0300 @@ -99,7 +99,7 @@ const TUint32 KAknTouchGestureFwAllGestureTypes = 0x7fffffff; /// Default feedback intensity. -const TInt KAknTouchGestureFwFeedbackIntensity = 50; +const TInt KAknTouchGestureFwFeedbackIntensity = 100; /// Pinch feedback timeout (in microseconds). const TInt KAknTouchGestureFwPinchFeedbackTimeout = 200000; diff -r 08e69e956a8c -r 71dd06cfe933 classicui_plat/avkon_localised_texts_api/loc/avkon.loc --- a/classicui_plat/avkon_localised_texts_api/loc/avkon.loc Wed Mar 31 21:59:52 2010 +0300 +++ b/classicui_plat/avkon_localised_texts_api/loc/avkon.loc Wed Apr 14 16:14:00 2010 +0300 @@ -4290,4 +4290,18 @@ // #define qtn_iim_uni_ind_default "New unread chats" +//d: Text in touch inputmethod menu list +//d: Command to change editor input mode to alpha input mode +//d: Only Korean +//l: list_single_pane_t1_cp2 +//r: 5.0 +#define qtn_activate_english_mode "Alpha mode" + +//d: Text in touch inputmethod menu list +//d: Command to change editor input mode to Korean character input mode +//d: Only Korean +//l: list_single_pane_t1_cp2 +//r: 5.0 +#define qtn_activate_korean_mode "Korean mode" + // End of File diff -r 08e69e956a8c -r 71dd06cfe933 classicui_plat/avkon_localised_texts_api/loc/avkonsct.loc --- a/classicui_plat/avkon_localised_texts_api/loc/avkonsct.loc Wed Mar 31 21:59:52 2010 +0300 +++ b/classicui_plat/avkon_localised_texts_api/loc/avkonsct.loc Wed Apr 14 16:14:00 2010 +0300 @@ -208,7 +208,21 @@ // #define qtn_sct_cdma_sp_sms_speci_chars_upper ".@?!-,&:'\"+=/$*#%;\<>{}[]_()"<0x2029>"~^`|" +//d: Special character table character set for Korean variant. +//d: Special character table opened in Messaging, Note, Contacts, and Calendar editor. +//d: Maximum 255 characters. +//d: Unicode format: <0x0041><0x0042><0x0043> etc. +//d: <0x2029> = line feed. <0x0020> = space +//d: Only Korean +//l:(none) +// +#define qtn_sct_kor_special_characters ".,'?!\"-()@/\\:_;+&%*#=<>~^`"<0x2665><0x007C><0x0020><0x2029><0x2592><0x25A4><0x25A5><0x25A0><0x25A1><0x25B2><0x25B3><0x25B6><0x25B7><0x25BC><0x25BD><0x25C0><0x25C1><0x25C6><0x25C7><0x25CB><0x25CE><0x25CF><0x2605><0x2606><0x2661><0x2660><0x2664><0x2663><0x2667><0x25D0><0x25D1><0x260E><0x266A><0x266C><0x2640><0x2642><0x2299><0x2252><0x2260><0x00B1><0x00D7><0x00F7><0x2264><0x2265><0x2282><0x2283><0x2286><0x2287><0x2208><0x220B><0x221E><0x222B><0x222E><0x2234><0x2235><0x2200><0x00B0><0x221A><0x2030><0x2153><0x2154><0x2202><0x223D><0x2211><0x2103><0x2126><0x2113><0x3389><0x338F><0x3392><0x33A1><0x005B><0x005D><0x007B><0x007D><0xFFE6><0x20AC><0x0024><0xFFE5><0xFFE1><0x203B><0x00A7><0x261C><0x261E><0x2668><0x2190><0x2191><0x2192><0x2193><0x2196><0x2197><0x2198><0x2199> +//d: Special character table character set for lockcode. +//d: Maximum 255 characters. +//l:(none) +// +#define qtn_sct_special_characters_lockcode ".,'?!\"-()@/:_;+&#%*=<>$[]{}\\~^`|" // End of File diff -r 08e69e956a8c -r 71dd06cfe933 classicui_plat/extended_options_menu_api/inc/aknitemactionmenu.h --- a/classicui_plat/extended_options_menu_api/inc/aknitemactionmenu.h Wed Mar 31 21:59:52 2010 +0300 +++ b/classicui_plat/extended_options_menu_api/inc/aknitemactionmenu.h Wed Apr 14 16:14:00 2010 +0300 @@ -105,6 +105,18 @@ MAknCollection& aCollection ); /** + * Adds collection to the item action menu of this view / dialog / appUi. + * + * @param aCollection Collection implementing MAknCollection interface. + * @param aMenuBarOwner Owner of the menubar that collection will be + * registered with. + * @return Pointer to the item action menu instance. + * Ownership does not transfer to caller. + */ + IMPORT_C static CAknItemActionMenu* RegisterCollectionL( + MAknCollection& aCollection, MObjectProvider* aMenuBarOwner ); + + /** * Removes collection of this item action menu. * * @param aCollection Collection to be removed. diff -r 08e69e956a8c -r 71dd06cfe933 classicui_plat/extended_options_menu_api/tsrc/conf/testdomoptionsmenu.cfg --- a/classicui_plat/extended_options_menu_api/tsrc/conf/testdomoptionsmenu.cfg Wed Mar 31 21:59:52 2010 +0300 +++ b/classicui_plat/extended_options_menu_api/tsrc/conf/testdomoptionsmenu.cfg Wed Apr 14 16:14:00 2010 +0300 @@ -25,3 +25,7 @@ run testscripter c:\testframework\ui_testdomoptionsmenu.cfg 5 [Endtest] +[Test] +title TestIMRegisterCollection2L +run testscripter c:\testframework\ui_testdomoptionsmenu.cfg 6 +[Endtest] diff -r 08e69e956a8c -r 71dd06cfe933 classicui_plat/extended_options_menu_api/tsrc/conf/ui_testdomoptionsmenu.cfg --- a/classicui_plat/extended_options_menu_api/tsrc/conf/ui_testdomoptionsmenu.cfg Wed Mar 31 21:59:52 2010 +0300 +++ b/classicui_plat/extended_options_menu_api/tsrc/conf/ui_testdomoptionsmenu.cfg Wed Apr 14 16:14:00 2010 +0300 @@ -37,3 +37,9 @@ delete test [Endtest] +[Test] +title TestIMRegisterCollection2L +create testdomoptionsmenu test +test TestIMRegisterCollection2L +delete test +[Endtest] diff -r 08e69e956a8c -r 71dd06cfe933 classicui_plat/extended_options_menu_api/tsrc/inc/testdomoptionsmenu.h --- a/classicui_plat/extended_options_menu_api/tsrc/inc/testdomoptionsmenu.h Wed Mar 31 21:59:52 2010 +0300 +++ b/classicui_plat/extended_options_menu_api/tsrc/inc/testdomoptionsmenu.h Wed Apr 14 16:14:00 2010 +0300 @@ -155,7 +155,16 @@ * @return Symbian OS error code. */ virtual TInt TestIMCollectionChangedL( CStifItemParser& aItem ); - + + /** + * TestIMRegisterCollection2L test function of class CAknItemActionMenu for in aknitemactionmenu.h + * @since S60 5.2 + * @param aItem never used + * @return Symbian OS error code. + */ + virtual TInt TestIMRegisterCollection2L( CStifItemParser& aItem ); + + public: // Data protected: // Data diff -r 08e69e956a8c -r 71dd06cfe933 classicui_plat/extended_options_menu_api/tsrc/inc/testoptionsmenu.h --- a/classicui_plat/extended_options_menu_api/tsrc/inc/testoptionsmenu.h Wed Mar 31 21:59:52 2010 +0300 +++ b/classicui_plat/extended_options_menu_api/tsrc/inc/testoptionsmenu.h Wed Apr 14 16:14:00 2010 +0300 @@ -25,7 +25,7 @@ * CTestOptionsMenu test class for STIF Test Framework TestScripter. * @since S60 5.0 */ -class TTestCollection : public MAknCollection +class TTestCollection : public MAknCollection, public MObjectProvider { // Constructors and destructor public: @@ -71,6 +71,17 @@ { return 0; } + +public:// Functions inherit from MObjectProvider classes + + /** + * Object provider + */ + TTypeUid::Ptr MopSupplyObject( TTypeUid aId ) + { + return TTypeUid::Null(); + } + }; #endif /*T_TESDOMMENU_H*/ diff -r 08e69e956a8c -r 71dd06cfe933 classicui_plat/extended_options_menu_api/tsrc/src/testdomoptionsmenublocks.cpp --- a/classicui_plat/extended_options_menu_api/tsrc/src/testdomoptionsmenublocks.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/classicui_plat/extended_options_menu_api/tsrc/src/testdomoptionsmenublocks.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -59,6 +59,7 @@ ENTRY( "TestIMShowMenuL", CTestDomOptionsMenu::TestIMShowMenuL ), ENTRY( "TestIMInitMenuL", CTestDomOptionsMenu::TestIMInitMenuL ), ENTRY( "TestIMCollectionChangedL", CTestDomOptionsMenu::TestIMCollectionChangedL ), + ENTRY( "TestIMRegisterCollection2L", CTestDomOptionsMenu::TestIMRegisterCollection2L ) }; const TInt count = sizeof( KFunctions ) / @@ -204,4 +205,30 @@ return KErrNone; } +// ----------------------------------------------------------------------------- +// CTestSDKOptionsMenu::TestIMRegisterCollection2L +// ----------------------------------------------------------------------------- +// +TInt CTestDomOptionsMenu::TestIMRegisterCollection2L( CStifItemParser& /*aItem*/ ) + { + // Print to UI + _LIT( KTestSDKDomMenu, "TestSDKDomMenu" ); + _LIT( KTestIMRegisterCollectionL, "In TestIMRegisterCollection2L" ); + TestModuleIf().Printf( 0, KTestSDKDomMenu, KTestIMRegisterCollectionL ); + // Print to log file + iLog->Log( KTestIMRegisterCollectionL ); + + if( !iCollection ) + { + iCollection = new(ELeave) TTestCollection; + } + + //since STIF does not enable single click now, can't get instance of CAknItemActionMenu. + //Hence following method will not be invoked. + CAknItemActionMenu::RegisterCollectionL( *iCollection, iCollection ); + return KErrNone; + + } + + // [End of File] - Do not remove diff -r 08e69e956a8c -r 71dd06cfe933 classicui_plat/find_item_ui_api/inc/finditemmenu.h --- a/classicui_plat/find_item_ui_api/inc/finditemmenu.h Wed Mar 31 21:59:52 2010 +0300 +++ b/classicui_plat/find_item_ui_api/inc/finditemmenu.h Wed Apr 14 16:14:00 2010 +0300 @@ -371,12 +371,6 @@ TBool ItemFinderExists(); TPtrC CurrentSelection(); - /** - * Returns text highlight status. - * @return ETrue if there is highlighted text, otherwise EFalse - */ - TBool HasSelection() const; - private: /** * Enumeration for menu command ids diff -r 08e69e956a8c -r 71dd06cfe933 classicui_plat/ganes_api/inc/ganes/HgScroller.h --- a/classicui_plat/ganes_api/inc/ganes/HgScroller.h Wed Mar 31 21:59:52 2010 +0300 +++ b/classicui_plat/ganes_api/inc/ganes/HgScroller.h Wed Apr 14 16:14:00 2010 +0300 @@ -316,6 +316,11 @@ */ IMPORT_C void DisableScrollBuffer(); + /** + * + */ + IMPORT_C void SetMenuProviderL( MObjectProvider* aMenuProvider ); + // Selection modes. Used in internal key marking implemention. enum TSelectionMode { diff -r 08e69e956a8c -r 71dd06cfe933 classicui_plat/ganes_api/inc/ganes/HgVgMediaWall.h --- a/classicui_plat/ganes_api/inc/ganes/HgVgMediaWall.h Wed Mar 31 21:59:52 2010 +0300 +++ b/classicui_plat/ganes_api/inc/ganes/HgVgMediaWall.h Wed Apr 14 16:14:00 2010 +0300 @@ -460,12 +460,12 @@ /** * Does transition animation, called by DoAnimation. */ - void DoTransitionAnimation(); + TBool DoTransitionAnimation(); /** * Does selection animation */ - void DoSelectionAnimation(); + TBool DoSelectionAnimation(); /** * Callback method for animation diff -r 08e69e956a8c -r 71dd06cfe933 classicui_plat/media_shared_document_api/media_shared_document_api.metaxml --- a/classicui_plat/media_shared_document_api/media_shared_document_api.metaxml Wed Mar 31 21:59:52 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ - - - Media Shared Document API - Offers embedded applications sharing documents of this type the means to exchange data. - c++ - commonuis - - - - - - - - - yes - no - - diff -r 08e69e956a8c -r 71dd06cfe933 classicui_pub/lists_api/inc/EIKLBX.H --- a/classicui_pub/lists_api/inc/EIKLBX.H Wed Mar 31 21:59:52 2010 +0300 +++ b/classicui_pub/lists_api/inc/EIKLBX.H Wed Apr 14 16:14:00 2010 +0300 @@ -1519,6 +1519,17 @@ */ IMPORT_C void DisableItemSpecificMenu(); + /** + * Checks if highlight drawing is enabled. If single click is + * enabled highlight drawing is by default disabled, but highlight comes + * visible with hardware keys. + * + * @return ETrue if highlight is enabled, EFalse if not. + * + * @since S60 5.2 + */ + IMPORT_C TBool IsHighlightEnabled(); + private: IMPORT_C virtual void CEikListBox_Reserved(); // listbox use only void HorizontalScroll(TInt aScrollAmountInPixels); diff -r 08e69e956a8c -r 71dd06cfe933 classicui_pub/lists_api/tsrc/conf/tctestsdklistseiklbx.cfg --- a/classicui_pub/lists_api/tsrc/conf/tctestsdklistseiklbx.cfg Wed Mar 31 21:59:52 2010 +0300 +++ b/classicui_pub/lists_api/tsrc/conf/tctestsdklistseiklbx.cfg Wed Apr 14 16:14:00 2010 +0300 @@ -689,3 +689,8 @@ title TestLBItemsInSingleLine run testscripter c:\testframework\ui_testsdklistseiklbx.cfg 138 [Endtest] + +[Test] +title TestLBIsHighlightEnabled +run testscripter c:\testframework\ui_testsdklistseiklbx.cfg 139 +[Endtest] diff -r 08e69e956a8c -r 71dd06cfe933 classicui_pub/lists_api/tsrc/conf/ui_testsdklistseiklbx.cfg --- a/classicui_pub/lists_api/tsrc/conf/ui_testsdklistseiklbx.cfg Wed Mar 31 21:59:52 2010 +0300 +++ b/classicui_pub/lists_api/tsrc/conf/ui_testsdklistseiklbx.cfg Wed Apr 14 16:14:00 2010 +0300 @@ -1098,3 +1098,12 @@ test TestLBItemsInSingleLine delete test [Endtest] + +[Test] //139 +title TestLBIsHighlightEnabled +create testsdklists test +test TestLBConstructorL +test TestLBConstructWithTGulBorderL +test TestLBIsHighlightEnabled +delete test +[Endtest] diff -r 08e69e956a8c -r 71dd06cfe933 classicui_pub/lists_api/tsrc/inc/testsdklists.h --- a/classicui_pub/lists_api/tsrc/inc/testsdklists.h Wed Mar 31 21:59:52 2010 +0300 +++ b/classicui_pub/lists_api/tsrc/inc/testsdklists.h Wed Apr 14 16:14:00 2010 +0300 @@ -5877,6 +5877,16 @@ */ virtual TInt TestLBItemsInSingleLine( CStifItemParser& aItem ); + /** + * TestLBSetItemsInSingleLine test function for testing the + * IsHighlightEnabled function + * @since S60 5.2 + * @param aItem never used + * @return Symbian OS error code. + */ + virtual TInt TestLBIsHighlightEnabled( CStifItemParser& aItem ); + + private: // eikslb.h // class CSettingsListBoxItemDrawer /** diff -r 08e69e956a8c -r 71dd06cfe933 classicui_pub/lists_api/tsrc/src/testsdklistsblockseiklbx.cpp --- a/classicui_pub/lists_api/tsrc/src/testsdklistsblockseiklbx.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/classicui_pub/lists_api/tsrc/src/testsdklistsblockseiklbx.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -4393,5 +4393,23 @@ return KErrNone; } +// ----------------------------------------------------------------------------- +// CTestSDKLists::TestLBIsHighlightEnabled +// ----------------------------------------------------------------------------- +// +TInt CTestSDKLists::TestLBIsHighlightEnabled( CStifItemParser& /*aItem*/) + { + // Print to UI + _LIT( KTestModule, "EIKLBXTestModule" ); + _LIT( KTestEIKLBX, "In TestLBIsHighlightEnabled" ); + TestModuleIf().Printf( 0, KTestModule, KTestEIKLBX ); + // Print to log file + iLog->Log( KTestEIKLBX ); + + TBool enabled = iListBox->IsHighlightEnabled(); + STIF_ASSERT_TRUE( enabled ); + + return KErrNone; + } // [End of file] diff -r 08e69e956a8c -r 71dd06cfe933 commonuis/CommonDialogs/src/CAknCFDFileSystemEvent.cpp --- a/commonuis/CommonDialogs/src/CAknCFDFileSystemEvent.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/commonuis/CommonDialogs/src/CAknCFDFileSystemEvent.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -109,11 +109,10 @@ // If not ENotifyDisk, do refresh when event is checked // using CheckFileSystemEvent - if ( iNotifyType == ENotifyEntry ) + if ( iNotifyType == ENotifyDisk || iNotifyType == ENotifyEntry ) { iObserver.NotifyFileSystemChangedL(); } - Setup(); } // ----------------------------------------------------------------------------- diff -r 08e69e956a8c -r 71dd06cfe933 commonuis/CommonDialogs/src/CAknFileSelectionEventHandler.cpp --- a/commonuis/CommonDialogs/src/CAknFileSelectionEventHandler.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/commonuis/CommonDialogs/src/CAknFileSelectionEventHandler.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -408,5 +408,6 @@ { iModel->UpdateItemListL(); iPopupList->HandleFileSystemChangedL(iModel); + iFSObserver->Setup(); } // End of File diff -r 08e69e956a8c -r 71dd06cfe933 commonuis/CommonUi/src/FindItemMenu.cpp --- a/commonuis/CommonUi/src/FindItemMenu.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/commonuis/CommonUi/src/FindItemMenu.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -53,7 +53,7 @@ #endif // !RD_VIRTUAL_PHONEBOOK #include "finditem.hrh" -#include +#include #include // add to gallery related @@ -356,21 +356,6 @@ *iFindItemUrlItemString ); } } - -// ----------------------------------------------------------------------------- -// HasSelection -// Returns ETrue if editor has highlighted text -// ----------------------------------------------------------------------------- -// -TBool CFindItemMenu::HasSelection() const - { - TBool retval ( EFalse ); - if ( iAutomaticFind ) - { - retval = iAutomaticFind->HasSelection(); - } - return retval; - } // ----------------------------------------------------------------------------- // AddMenuItemL @@ -556,41 +541,15 @@ TBuf tempBuf; // Adds menu items depending the selected item - if ( HasSelection() ) + switch ( itemType ) { - switch ( itemType ) + case CItemFinder::EPhoneNumber: { - case CItemFinder::EPhoneNumber: - { #ifdef RD_VOIP_REL_2_2 - if ( FeatureManager::FeatureSupported(KFeatureIdCommonVoip ) ) - { - // show call menu if allowed - if ( !( iMenuItemFlags & CFindItemMenu::ECallItem ) ) - { - // Call - iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_CALL ); - AddMenuItemL( - *iMenuPane, - EFindItemCmdCall, - ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ), - 0, - tempBuf ); - } - // if context menu, we will show call item anyway - else if ( iIsContextMenu ) - { - // Call - iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_CALL ); - AddMenuItemL( - *iMenuPane, - EFindItemCmdCall, - EFindItemContextMenuPlaceHolder, - 0, - tempBuf ); - } - } - else + if ( FeatureManager::FeatureSupported(KFeatureIdCommonVoip ) ) + { + // show call menu if allowed + if ( !( iMenuItemFlags & CFindItemMenu::ECallItem ) ) { // Call iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_CALL ); @@ -601,8 +560,21 @@ 0, tempBuf ); } - index = EFindItemCmdCall; -#else + // if context menu, we will show call item anyway + else if ( iIsContextMenu ) + { + // Call + iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_CALL ); + AddMenuItemL( + *iMenuPane, + EFindItemCmdCall, + EFindItemContextMenuPlaceHolder, + 0, + tempBuf ); + } + } + else + { // Call iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_CALL ); AddMenuItemL( @@ -611,132 +583,141 @@ ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ), 0, tempBuf ); - index = EFindItemCmdCall; + } + index = EFindItemCmdCall; +#else + // Call + iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_CALL ); + AddMenuItemL( + *iMenuPane, + EFindItemCmdCall, + ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ), + 0, + tempBuf ); + index = EFindItemCmdCall; #endif // RD_VOIP_REL_2_2 - // Write + // Write + iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_MESSAGE_SUB ); + AddMenuItemL( + *iMenuPane, + EFindItemSubMenuSend, + index, + 0,//R_FINDITEM_NUMBER_MESSAGE_SUBMENU, + tempBuf ); + index = EFindItemSubMenuSend; + + break; + } + case CItemFinder::EUrlAddress: + { + iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_GOTO_URL ); + + // check if not rstp + if ( iAutomaticFind->CurrentItemExt().iItemDescriptor->FindF( KRtspUrlAddress ) == KErrNotFound ) + { + AddMenuItemL( + *iMenuPane, + EFindItemCmdGoToUrl, + ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ), + 0, + tempBuf); + index = EFindItemCmdGoToUrl; + + if ( !iIsContextMenu ) + { + // Add bookmark + iCoeEnv->ReadResourceL( + tempBuf, R_FINDITEMMENU_ADD_BOOKMARK ); + AddMenuItemL( + *iMenuPane, + EFindItemCmdAddToBookmark, + index, + 0, + tempBuf ); + index = EFindItemCmdAddToBookmark; + } + } + else + { + AddMenuItemL( + *iMenuPane, + EFindItemCmdGoToRstp, + ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ), + 0, + tempBuf ); + index = EFindItemCmdGoToRstp; + + if ( !iIsContextMenu ) + { + iCoeEnv->ReadResourceL( + tempBuf, R_FINDITEMMENU_ADD_TO_GALLERY ); + AddMenuItemL( + *iMenuPane, + EFindItemCmdAddToGallery, + index, + 0, + tempBuf ); + index = EFindItemCmdAddToGallery; + } + } + break; + } + case CItemFinder::EEmailAddress: + { + // Checks VoIP profile count and local variation + if ( iIsContextMenu && iFindItemVoIPExtension->VoIPProfilesExistL() ) + { + //Call + iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_CALL ); + AddMenuItemL( + *iMenuPane, + EFindItemCmdCall, + EFindItemContextMenuPlaceHolder, + 0, + tempBuf ); + index = EFindItemCmdCall; // Replaces the call ui menu when email + // field is selected. + } + + // Write + if( iEmailOverSmsFeatureSupported || iMMSFeatureSupported || + iEmailUiFeatureSupported ) // Sometimes submenu can be empty. + { iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_MESSAGE_SUB ); AddMenuItemL( *iMenuPane, EFindItemSubMenuSend, - index, - 0,//R_FINDITEM_NUMBER_MESSAGE_SUBMENU, + ( ( iIsContextMenu && + !iFindItemVoIPExtension->VoIPProfilesExistL() ) ? + EFindItemContextMenuPlaceHolder : index ), + 0,//R_FINDITEM_EMAIL_MESSAGE_SUBMENU, tempBuf ); index = EFindItemSubMenuSend; - - break; } - case CItemFinder::EUrlAddress: - { - iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_GOTO_URL ); - - // check if not rstp - if ( iAutomaticFind->CurrentItemExt().iItemDescriptor->FindF( KRtspUrlAddress ) == KErrNotFound ) - { - AddMenuItemL( - *iMenuPane, - EFindItemCmdGoToUrl, - ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ), - 0, - tempBuf); - index = EFindItemCmdGoToUrl; - - if ( !iIsContextMenu ) - { - // Add bookmark - iCoeEnv->ReadResourceL( - tempBuf, R_FINDITEMMENU_ADD_BOOKMARK ); - AddMenuItemL( - *iMenuPane, - EFindItemCmdAddToBookmark, - index, - 0, - tempBuf ); - index = EFindItemCmdAddToBookmark; - } - } - else - { - AddMenuItemL( - *iMenuPane, - EFindItemCmdGoToRstp, - ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ), - 0, - tempBuf ); - index = EFindItemCmdGoToRstp; - - if ( !iIsContextMenu ) - { - iCoeEnv->ReadResourceL( - tempBuf, R_FINDITEMMENU_ADD_TO_GALLERY ); - AddMenuItemL( - *iMenuPane, - EFindItemCmdAddToGallery, - index, - 0, - tempBuf ); - index = EFindItemCmdAddToGallery; - } - } - break; - } - case CItemFinder::EEmailAddress: - { - // Checks VoIP profile count and local variation - if ( iIsContextMenu && iFindItemVoIPExtension->VoIPProfilesExistL() ) - { - //Call - iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_CALL ); - AddMenuItemL( - *iMenuPane, - EFindItemCmdCall, - EFindItemContextMenuPlaceHolder, - 0, - tempBuf ); - index = EFindItemCmdCall; // Replaces the call ui menu when email - // field is selected. - } - - // Write - if( iEmailOverSmsFeatureSupported || iMMSFeatureSupported || - iEmailUiFeatureSupported ) // Sometimes submenu can be empty. - { - iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_MESSAGE_SUB ); - AddMenuItemL( - *iMenuPane, - EFindItemSubMenuSend, - ( ( iIsContextMenu && - !iFindItemVoIPExtension->VoIPProfilesExistL() ) ? - EFindItemContextMenuPlaceHolder : index ), - 0,//R_FINDITEM_EMAIL_MESSAGE_SUBMENU, - tempBuf ); - index = EFindItemSubMenuSend; - } - break; - } - case CItemFinder::EUriScheme: - { - // Use - iCoeEnv->ReadResourceL( tempBuf, R_QTN_OPTIONS_SCHEME_USE ); - AddMenuItemL( - *iMenuPane, - EFindItemCmdUse, - ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ), - 0, - tempBuf ); - index = EFindItemCmdUse; - break; - } - default: - { - // Something else, probably nothing selected or new type which we - // don't support. - break; - } + break; + } + case CItemFinder::EUriScheme: + { + // Use + iCoeEnv->ReadResourceL( tempBuf, R_QTN_OPTIONS_SCHEME_USE ); + AddMenuItemL( + *iMenuPane, + EFindItemCmdUse, + ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ), + 0, + tempBuf ); + index = EFindItemCmdUse; + break; + } + default: + { + // Something else, probably nothing selected or new type which we + // don't support. + break; } } - // Call - if ( HasSelection() && ( + if ( ( itemType == CItemFinder::ENoneSelected ) && ( ( @@ -752,7 +733,7 @@ || ( itemType == CItemFinder::EEmailAddress && iFindItemVoIPExtension->VoIPProfilesExistL() && - !iIsContextMenu ) ) + !iIsContextMenu ) ) { #ifdef RD_VOIP_REL_2_2 @@ -842,10 +823,10 @@ CleanupStack::PopAndDestroy( ); } - if( HasSelection() && ( (!iAutomaticFind || len != 0) && + if( (!iAutomaticFind || len != 0) && highlight && ( itemType != CItemFinder::ENoneSelected || - iSenderHighlighted ) ) ) + iSenderHighlighted ) ) { iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_COPY ); AddMenuItemL( @@ -860,14 +841,14 @@ } // Add to contacts - if ( HasSelection() && ( ( itemType != CItemFinder::EUriScheme ) && + if ( ( itemType != CItemFinder::EUriScheme ) && !( itemType == CItemFinder::EUrlAddress && iIsContextMenu ) && ( ( ( ( !iIsSenderKnown && iSenderDescriptor->Length() ) || iCallbackNumber ) && itemType == CItemFinder::ENoneSelected ) || - itemType != CItemFinder::ENoneSelected ) ) ) + itemType != CItemFinder::ENoneSelected ) ) { AddMenuItemL( *iMenuPane, @@ -1699,16 +1680,11 @@ { HBufC* item = 0; TInt len = 0; - if ( iAutomaticFind && iAutomaticFind->CurrentSelection().Length() > 0 ) + if ( iAutomaticFind && iAutomaticFind->CurrentItemExt().iItemType != CItemFinder::ENoneSelected ) { item = iAutomaticFind->CurrentSelection().AllocLC(); len = item->Length(); } - else if ( iAutomaticFind && iAutomaticFind->CurrentItemExt().iItemDescriptor ) - { - item = iAutomaticFind->CurrentItemExt().iItemDescriptor->AllocLC(); - len = item->Length(); - } else if( iSenderHighlighted ) { item = iSenderDisplayText->AllocLC(); diff -r 08e69e956a8c -r 71dd06cfe933 lafagnosticuifoundation/uigraphicsutils/gulsrc/GULUTIL.CPP --- a/lafagnosticuifoundation/uigraphicsutils/gulsrc/GULUTIL.CPP Wed Mar 31 21:59:52 2010 +0300 +++ b/lafagnosticuifoundation/uigraphicsutils/gulsrc/GULUTIL.CPP Wed Apr 14 16:14:00 2010 +0300 @@ -866,6 +866,12 @@ return TRgb::Color16M(aRgb.Color16M()); case EColor4K: return TRgb::Color4K(aRgb.Color4K()); + case EColor16MU: + return TRgb::Color16MU(aRgb.Color16MU()); + case EColor16MA: + return TRgb::Color16MA(aRgb.Color16MA()); + case EColor16MAP: + return TRgb::Color16MAP(aRgb.Color16MAP()); default: return aRgb; } @@ -893,6 +899,12 @@ return aRgb.Color16M(); case EColor4K: return aRgb.Color4K(); + case EColor16MU: + return aRgb.Color16MU(); + case EColor16MA: + return aRgb.Color16MA(); + case EColor16MAP: + return aRgb.Color16MAP(); default: return aRgb.Color16M(); } diff -r 08e69e956a8c -r 71dd06cfe933 psln/Src/PslnMainViewContainer.cpp --- a/psln/Src/PslnMainViewContainer.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/psln/Src/PslnMainViewContainer.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -239,13 +239,20 @@ CleanupStack::PushL( item ); reallocItem = NULL; // do not use anymore. TPtr ptr = item->Des(); + + TInt wallpaperOffset = 0; + if ( aIndex == KPslnScreenSaverId + && !iPslnUi->ViewSupport().IsSet( CPslnUi::EPslnWallpaperView ) ) + { + wallpaperOffset = 1; + } if ( aOffset != KErrNotFound ) { - iItemArray->InsertL( aIndex + aOffset, ptr ); + iItemArray->InsertL( aIndex + aOffset - wallpaperOffset, ptr ); } else { - iItemArray->InsertL( aIndex, ptr ); + iItemArray->InsertL( aIndex - wallpaperOffset, ptr ); } CleanupStack::PopAndDestroy( item ); PSLN_TRACE_DEBUG("CPslnMainViewContainer::MakeItemL END"); diff -r 08e69e956a8c -r 71dd06cfe933 psln/cenrep/keys_themes.xls Binary file psln/cenrep/keys_themes.xls has changed diff -r 08e69e956a8c -r 71dd06cfe933 psln/conf/themes.confml Binary file psln/conf/themes.confml has changed diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AknGlobalUI/AknCapServer/inc/AknCapServerEntry.h --- a/uifw/AknGlobalUI/AknCapServer/inc/AknCapServerEntry.h Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AknGlobalUI/AknCapServer/inc/AknCapServerEntry.h Wed Apr 14 16:14:00 2010 +0300 @@ -188,6 +188,11 @@ { return iShortTimeGlobalNoteDisplaying; } + + CAknCapAppServerAlternateFs* AlternateFS() + { + return iAlternateFS; + } private: void PublishHiddenList(); diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AknGlobalUI/AknCapServer/src/AknCapServerEntry.cpp --- a/uifw/AknGlobalUI/AknCapServer/src/AknCapServerEntry.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AknGlobalUI/AknCapServer/src/AknCapServerEntry.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -33,7 +33,7 @@ #include "avkoninternalpskeys.h" // KAknIdleAppWindowGroupId #include #include -#include +#include #include #include #include diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AknGlobalUI/AknCapServer/src/AknEikSgcs.cpp --- a/uifw/AknGlobalUI/AknCapServer/src/AknEikSgcs.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AknGlobalUI/AknCapServer/src/AknEikSgcs.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include "AknCapServerEntry.h" @@ -47,7 +48,7 @@ #include #endif -#include +#include #include const TInt KCdlEComInterfaceId = 0x101f8243; const TInt KMatrixMenuAppId = 0x101F4CD2; @@ -1374,6 +1375,13 @@ void CEikSgcServer::SetIdleState(TBool aFlag) { + //idle is changed to nonidle if taskswitcher is shown + if (aFlag && iAknCapAppServerAppUi->AlternateFS() + && iAknCapAppServerAppUi->AlternateFS()->IsVisible()) + { + aFlag = EFalse; + } + // Update the P&S key only if the value has been changed. if ((iNotificationsInIdleAllowed && !aFlag) || (!iNotificationsInIdleAllowed && aFlag)) diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AknGlobalUI/AknCapServer/src/aknKeyFilter.cpp --- a/uifw/AknGlobalUI/AknCapServer/src/aknKeyFilter.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AknGlobalUI/AknCapServer/src/aknKeyFilter.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -22,10 +22,12 @@ #include #include // KUikLayoutState, KUikFlipStatus #include // KAknQwertyInputModeActive -#include +#include #include #include #include +#include +#include #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS #include #endif @@ -166,6 +168,18 @@ // Set default value for the KAknKeyBoardLayout Pub&Sub key. RProperty::Set(KCRUidAvkon, KAknKeyBoardLayout, keyboardLayout); + + #ifdef RD_SCALABLE_UI_V2 + // Define KAknFepVirtualKeyboardType Pub&sub key. + RProperty::Define( KPSUidAknFep, KAknFepVirtualKeyboardType, RProperty::EInt ); + // Set default value for KAknFepVirtualKeyboardType Pub&sub key. + RProperty::Set( KPSUidAknFep, KAknFepVirtualKeyboardType, EPtiKeyboard12Key ); + + // Define KAknFepTouchInputActive Pub&sub key + RProperty::Define( KPSUidAknFep, KAknFepTouchInputActive, RProperty::EInt ); + // Set default value for KAknFepTouchInputActive Pub&sub key. + RProperty::Set( KPSUidAknFep, KAknFepTouchInputActive, 0 ); + #endif // RD_SCALABLE_UI_V2 #else RProperty::Define( KCRUidAvkon, KAknKeyBoardLayout, RProperty::EInt ); @@ -174,6 +188,18 @@ iAvkonRepository->Get(KAknKeyBoardLayout, keyboardLayout); RProperty::Set(KCRUidAvkon, KAknKeyBoardLayout, keyboardLayout); + #ifdef RD_SCALABLE_UI_V2 + // Define KAknFepVirtualKeyboardType Pub&sub key. + RProperty::Define( KPSUidAknFep, KAknFepVirtualKeyboardType, RProperty::EInt ); + // Set default value for KAknFepVirtualKeyboardType Pub&sub key. + RProperty::Set( KPSUidAknFep, KAknFepVirtualKeyboardType, EPtiKeyboard12Key ); + + // Define KAknFepTouchInputActive Pub&sub key + RProperty::Define( KPSUidAknFep, KAknFepTouchInputActive, RProperty::EInt ); + // Set default value for KAknFepTouchInputActive Pub&sub key. + RProperty::Set( KPSUidAknFep, KAknFepTouchInputActive, 0 ); + + #endif // RD_SCALABLE_UI_V2 #endif // !__WINS__ TBool isQwertyOn = EFalse; switch(keyboardLayout) @@ -408,6 +434,17 @@ iHomeTimer = NULL; if ( !iAppUi->HandleShortAppsKeyPressL() ) { + RWsSession& ws = iEikonEnv->WsSession(); + TApaTaskList apList( ws ); + TApaTask task = apList.FindApp( iHomeViewId.iAppUid ); + if( task.Exists() && task.WgId() == ws.GetFocusWindowGroup() ) + { + GfxTransEffect::BeginFullScreen( + AknTransEffect::EApplicationExit, + TRect(), + AknTransEffect::EParameterType, + AknTransEffect::GfxTransParam( iHomeViewId.iAppUid ) ); + } ToggleShellL(); } diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemListPopup.cpp --- a/uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemListPopup.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemListPopup.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -32,7 +32,7 @@ #include #include -#include +#include #include "AknAppsKeyCleanup.inl" diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemPopup.cpp --- a/uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemPopup.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemPopup.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -772,7 +772,7 @@ } if (Rect().Contains(aPointerEvent.iPosition) && (aPointerEvent.iType == TPointerEvent::EButton1Up) - && iIsAlarm) + && iIsAlarm && iCaptured) { if (!iIsAlarmWakeup) { diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/aknhlist/src/akntreelistphysicshandler.cpp --- a/uifw/AvKon/aknhlist/src/akntreelistphysicshandler.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/aknhlist/src/akntreelistphysicshandler.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -1155,7 +1155,7 @@ // TBool CAknTreeListPhysicsHandler::PointerOnEmptyArea( TPoint aPosition ) { - if ( aPosition.iY <= WorldHeight() ) + if ( aPosition.iY - iViewRect.iTl.iY <= WorldHeight() ) { return EFalse; } diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/aknhlist/src/akntreelistview.cpp --- a/uifw/AvKon/aknhlist/src/akntreelistview.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/aknhlist/src/akntreelistview.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -861,6 +861,8 @@ if ( HighlightEnabled() ) { EnableHighlight( EFalse ); + // Redraw item + SetFocusedItem( FocusedItem(), FocusIndex(), ETrue ); } break; } @@ -897,6 +899,7 @@ { if( aPointerEvent.iType == TPointerEvent::EButton1Down ) { + iFlags.Clear( EFlagIgnoreButtonUpEvent ); iPreviouslyFocusedItem = FocusedItem(); } @@ -1288,7 +1291,8 @@ iIsPressedDownState = EFalse; iIsDragged = EFalse; - iItemActionMenu = CAknItemActionMenu::RegisterCollectionL( *this ); + iItemActionMenu = CAknItemActionMenu::RegisterCollectionL( *this, this ); + if ( iItemActionMenu ) { iLongTapDetector = CAknLongTapDetector::NewL( this ); @@ -2874,7 +2878,7 @@ AknListUtils::DrawSeparator( gc, offsetRect, textColor, skin ); } - TBool focused = ( IsFocused() && FocusedItem() && + TBool focused = ( FocusedItem() && iItems[ii].Item() == FocusedItem() ); if ( SingleClickEnabled() && !HighlightEnabled() ) diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/aknphysics/cenrep/20021192.txt Binary file uifw/AvKon/aknphysics/cenrep/20021192.txt has changed diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/aknphysics/conf/s60/aknphysics.confml Binary file uifw/AvKon/aknphysics/conf/s60/aknphysics.confml has changed diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/aknphysics/src/aknphysics.cpp --- a/uifw/AvKon/aknphysics/src/aknphysics.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/aknphysics/src/aknphysics.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -939,7 +939,6 @@ // Create Physics timer to step physics emulation iPhysics = CAknHighResPeriodic::NewL( CActive::EPriorityStandard, nullThreadOpen ? &iNullThread : NULL ); - iPhysics->SetMinCallBackPeriod( FrameDelay() * 1000 ); iEngine = CAknPhysicsEngine::NewL( this ); iParamProvider = CAknPhysicsParameterProvider::NewL(); @@ -947,6 +946,7 @@ iConeObserver = CAknPhysicsConeObserver::NewL( this, iRestrictor ); iConeObserver->SetViewWindowControl( aViewControl ); iFeedback = MTouchFeedback::Instance(); + iPhysics->SetMinCallBackPeriod( FrameDelay() * 1000 ); } diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/aknphysics/src/aknphysicsconeobserver.cpp --- a/uifw/AvKon/aknphysics/src/aknphysicsconeobserver.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/aknphysics/src/aknphysicsconeobserver.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -289,7 +289,7 @@ { if ( child->Rect().Contains( aEvent->iPosition ) ) { - target = ETargetOtherControl; + target = ETargetChildControl; } } } @@ -346,8 +346,9 @@ if ( ongoingAction == CAknPhysics::EAknPhysicsActionFlicking ) { // Event not targeted to view - stop flick - if ( ( eventTarget == ETargetOtherControl || - eventTarget == ETargetChildControl ) && aTargetControl ) + if (aTargetControl && (eventTarget == ETargetOtherControl + || (eventTarget == ETargetChildControl && aTargetControl + != iWindowControl))) { stopPhysics = ETrue; aTargetControl->IgnoreEventsUntilNextPointerUp(); diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/aknphysics/src/aknphysicsengine.cpp --- a/uifw/AvKon/aknphysics/src/aknphysicsengine.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/aknphysics/src/aknphysicsengine.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -267,7 +267,7 @@ dSpaceCollide ( iSpace, this , &CAknPhysicsEngine::CallbackFunc ); // Take a simulation step - dWorldQuickStep( iWorldId, REAL( 0.1 ) ); + dWorldQuickStep( iWorldId, REAL( 0.06 ) ); // Remove all joints in the contact dJointGroupEmpty( iContactGroup ); diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/src/AknAdaptiveSearchGrid.cpp --- a/uifw/AvKon/src/AknAdaptiveSearchGrid.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/src/AknAdaptiveSearchGrid.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -425,6 +425,7 @@ button->SetBackground(this); button->SetTextColorIds( KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG65 ); button->ActivateL(); + button->MakeVisible( EFalse ); return button; } else @@ -986,8 +987,16 @@ iPrevButton->MakeVisible( ETrue ); iPageIndicator->MakeVisible( ETrue ); } - iCloseButton->MakeVisible( ETrue ); - iDeleteButton->MakeVisible( ETrue ); + if(iGridChars) + { + iCloseButton->MakeVisible( ETrue ); + iDeleteButton->MakeVisible( ETrue ); + } + else + { + iCloseButton->MakeVisible( EFalse ); + iDeleteButton->MakeVisible( EFalse ); + } } // ----------------------------------------------------------------------------- diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/src/AknAppUi.cpp --- a/uifw/AvKon/src/AknAppUi.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/src/AknAppUi.cpp Wed Apr 14 16:14:00 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" @@ -556,6 +556,8 @@ EXPORT_C CAknAppUiBase::~CAknAppUiBase() { + AknItemActionMenuRegister::RemoveConstructingMenuBarOwner( this ); + if (iAppUiBaseExtension) { MTouchFeedback::DestroyInstance(); @@ -661,6 +663,7 @@ delete defaultOrientationCr; defaultOrientationCr = NULL; } + iAknFlags.Assign(EOrientationSpecified, orientationFlags&EAppOrientationSpecifiedFlag); iAknFlags.Assign(EOrientationLandscape, orientationFlags&EAppOrientationLandscapeFlag); iAknFlags.Assign(EOrientationAutomatic, orientationFlags&EAppOrientationAutomaticFlag); @@ -672,11 +675,21 @@ { iAknFlags.Set( ETouchCompatible ); } + else if ( aAppUiFlags & EAknSingleClickCompatibleFlag ) + { + // If application is single click compatible then it needs to + // be also touch compatible, so set that flag also if application + // has forgotten. + iAknFlags.Set( ETouchCompatible ); + } else { + // Set the touch compatible flag for all applications that + // reside on the ROM, since all platform applications should + // be touch compatible. RProcess process; TFileName fileName = process.FileName(); - _LIT(KRomDrive,"z:"); + _LIT( KRomDrive, "z:" ); if ( fileName.FindF( KRomDrive ) == 0 ) { diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/src/AknIndicatorContainer.cpp --- a/uifw/AvKon/src/AknIndicatorContainer.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/src/AknIndicatorContainer.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -835,9 +835,7 @@ EXPORT_C TInt CAknIndicatorContainer::CountComponentControls() const { - TInt n = CountShownIndicator(); - //__ASSERT_DEBUG ( n == iIndicatorsShown, User::Panic(_L( "indicatorshow"),n ) ); - return n; + return iIndicators->Count(); } TInt CAknIndicatorContainer::CountShownIndicator() const @@ -857,32 +855,15 @@ EXPORT_C CCoeControl* CAknIndicatorContainer::ComponentControl(TInt aIndex) const { - TInt count = iIndicators->Count(); - - TInt ii = 0; - for (ii = 0; (ii < count) && (aIndex >= 0); ii++) - { - if ( iIndicators->At(ii)->IndicatorState() && (iIndicators->At(ii)->Priority() != KIndicatorNotShown)) - { - aIndex--; - } - } - - if ( ii > 0 ) - { - return iIndicators->At(--ii); - } - else - { - return NULL; - } + return iIndicators->At(aIndex); } EXPORT_C void CAknIndicatorContainer::Draw( const TRect& aRect ) const { if ( iExtension->iStatusPane && - iExtension->iStatusPane->IsTransparent() ) + iExtension->iStatusPane->IsTransparent() && + ( iIndicatorContext != EQueryEditorIndicators ) ) { CWindowGc& gc = SystemGc(); TRgb rgb(TRgb::Color16MA(0)); diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/src/AknInfoPopupNote.cpp --- a/uifw/AvKon/src/AknInfoPopupNote.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/src/AknInfoPopupNote.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -449,7 +449,8 @@ } else if( aType == KEikMessageFadeAllWindows ) { - if ( IsVisible() && iHideWhenAppFaded ) + // Infopopu will be canceled when be faded no matter visible or not. + if ( iHideWhenAppFaded ) { iController.HideInfoPopupNote(); } diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/src/AknNumEdwin.cpp --- a/uifw/AvKon/src/AknNumEdwin.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/src/AknNumEdwin.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -127,6 +127,7 @@ else { SetTextL( &KEmptyText ); + ReportEventL( MCoeControlObserver::EEventStateChanged ); } } diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/src/AknPopupField.cpp --- a/uifw/AvKon/src/AknPopupField.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/src/AknPopupField.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -445,6 +445,7 @@ if ((iSelectionList->Position() != rect.iTl) || (iSelectionList->Size() != rect.Size())) { iSelectionList->SetRect(rect); + SetScrollBarSelectionL(); } AknsUtils::RegisterControlPosition(this); AknsUtils::RegisterControlPosition(iSelectionList); @@ -655,15 +656,30 @@ case MEikListBoxObserver::EEventItemSingleClicked: { CListBoxView* view = iSelectionList->View(); - - if ( view->CurrentItemIndex() != iExtension->iOldItemIndex ) + TInt selection = view->CurrentItemIndex(); + if ( selection != iExtension->iOldItemIndex ) { view->DeselectItem( iExtension->iOldItemIndex ); - iExtension->iOldItemIndex = view->CurrentItemIndex(); - view->SelectItemL( iExtension->iOldItemIndex ); + iExtension->iOldItemIndex = selection; + view->SelectItemL( selection ); + + TInt decoratedIndex; + TBool decorated = iDecorator.DecoratedIndex( decoratedIndex ); + if ( decorated && ( selection == decoratedIndex ) ) + { + TBool accepted = iValue->CreateEditorL(); + if ( !accepted ) + { + break; + } + } + else + { + iValue->SetCurrentValueIndex( selection ); + } } } - + // fall through case MEikListBoxObserver::EEventItemDoubleClicked: case MEikListBoxObserver::EEventEnterKeyPressed: { @@ -1205,23 +1221,27 @@ if (aAccept) { - // get current selection - const TInt selection=iSelectionList->CurrentItemIndex(); - TInt decoratedIndex; - TBool decorated = iDecorator.DecoratedIndex(decoratedIndex); - if (decorated && (selection == decoratedIndex)) + if ( iSelectionList->IsHighlightEnabled() ) { - TBool accepted = iValue->CreateEditorL(); - if (!accepted) + // get current selection + const TInt selection=iSelectionList->CurrentItemIndex(); + TInt decoratedIndex; + TBool decorated = iDecorator.DecoratedIndex(decoratedIndex); + if (decorated && (selection == decoratedIndex)) { - // dialog was cancelled, so popup list must remain - finished = EFalse; + TBool accepted = iValue->CreateEditorL(); + if (!accepted) + { + // dialog was cancelled, so popup list must remain + finished = EFalse; + } + } + else + { + iValue->SetCurrentValueIndex(selection); } } - else - iValue->SetCurrentValueIndex(selection); } - if (finished) { delete iCba; diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/src/AknSettingPage.cpp --- a/uifw/AvKon/src/AknSettingPage.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/src/AknSettingPage.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -47,6 +47,8 @@ #include #include #include +#include +#include #include "aknitemactionmenuregister.h" #include "aknqueryeditorindicator.h" @@ -1355,6 +1357,24 @@ */ EXPORT_C void CAknSettingPage::AttemptExitL(TBool aAccept) { + if ( AknLayoutUtils::PenEnabled() ) + { + MTouchFeedback* feedback = MTouchFeedback::Instance(); + if ( feedback ) + { + TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp; + if ( CAknTransitionUtils::TransitionsEnabled( + AknTransEffect::EComponentTransitionsOff ) ) + { + fbLogicalType = ETouchFeedbackDecreasingPopUp; + } + feedback->InstantFeedback( + this, + fbLogicalType, + ETouchFeedbackVibra, + TPointerEvent() ); + } + } if ( OkToExitL( aAccept ) ) { DismissL( aAccept ); @@ -1654,6 +1674,25 @@ // Ensure we have a menu bar by this point __ASSERT_DEBUG( iMenuBar, Panic( EAknPanicSettingPageNoMenuBar ) ) ; + 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() ); + } + } + DynamicInitL(); ActivateL(); diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/src/Aknslider.cpp --- a/uifw/AvKon/src/Aknslider.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/src/Aknslider.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -63,7 +63,7 @@ // Default draw color const TInt KAknSliderDefaultDrawColor = 120; const TInt KScrollRepeatTimeout = 250000; // 0.25 seconds -const TInt KStableFeedbackIntesity = 50; +const TInt KStableFeedbackIntesity = 100; const TInt KFeedbackTimeout = 100000; const TInt KNoFeedbackTimeout = 0; const TInt KStepThreshold = 15; diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/src/aknPopup.cpp --- a/uifw/AvKon/src/aknPopup.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/src/aknPopup.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -30,6 +30,7 @@ #include #include #include +#include #ifdef RD_UI_TRANSITION_EFFECTS_POPUPS #include @@ -239,7 +240,7 @@ // last member ste before the actiave scheduler is started. // Reset action menu register - AknItemActionMenuRegister::SetConstructingMenuBarOwnerL( NULL ); + AknItemActionMenuRegister::RemoveConstructingMenuBarOwner( this ); _AKNTRACE_FUNC_EXIT; } @@ -384,6 +385,25 @@ { _AKNTRACE_FUNC_ENTER; __ASSERT_DEBUG(iListBox,Panic(EAknPanicListboxUndefined)); + 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() ); + } + } + iPopoutCba->SetBoundingRect(TRect(iAvkonAppUi->ApplicationRect().Size())); // Disable item specific menu just before the popup is about to be shown. @@ -798,6 +818,24 @@ EXPORT_C void CAknPopupList::AttemptExitL(TBool aAccept) { _AKNTRACE_FUNC_ENTER; + if ( AknLayoutUtils::PenEnabled() ) + { + MTouchFeedback* feedback = MTouchFeedback::Instance(); + if ( feedback ) + { + TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp; + if ( CAknTransitionUtils::TransitionsEnabled( + AknTransEffect::EComponentTransitionsOff ) ) + { + fbLogicalType = ETouchFeedbackDecreasingPopUp; + } + feedback->InstantFeedback( + this, + fbLogicalType, + ETouchFeedbackVibra, + TPointerEvent() ); + } + } //EFTG-7HWDP6. if( FindBox() && !( FindBox()->Editor().AknEdwinFlags() & EAknEditorFlagTouchInputModeOpened ) diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/src/aknbattery.cpp --- a/uifw/AvKon/src/aknbattery.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/src/aknbattery.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -581,6 +581,23 @@ return; } + CEikStatusPaneBase* sp = CEikStatusPaneBase::Current(); + if( sp ) + { + TInt statusPaneCurrentLayoutResourceId = sp->CurrentLayoutResId(); + if(statusPaneCurrentLayoutResourceId == R_AVKON_STATUS_PANE_LAYOUT_POWER_OFF_RECHARGE + || statusPaneCurrentLayoutResourceId == R_AVKON_STATUS_PANE_LAYOUT_POWER_OFF_RECHARGE_MIRRORED) + { + MTouchFeedback* feedback = MTouchFeedback::Instance(); + if ( feedback ) + { + feedback->RemoveFeedbackForControl( this ); + } + + AknsUtils::DeregisterControlPosition( this ); + return; + } + } // Get the rect of battery pane. TRect rect( Rect() ); @@ -611,7 +628,7 @@ // here if the down event happened inside this control, // but the up event inside digital clock or indicator // pane area. - CEikStatusPaneBase* sp = CEikStatusPaneBase::Current(); + TBool pointerUpInIndicatorArea( EFalse ); TBool pointerUpInClockArea( EFalse ); diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/src/akncolourselectiongrid.cpp --- a/uifw/AvKon/src/akncolourselectiongrid.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/src/akncolourselectiongrid.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -1723,17 +1723,32 @@ // close the color grid: // if the NGA effects are off, use “pop-up”. // If NGA effects are on, use “pop-up closed”. - MTouchFeedback* feedback = MTouchFeedback::Instance(); - + if( AknLayoutUtils::PenEnabled() ) + { + MTouchFeedback* feedback = MTouchFeedback::Instance(); + if ( feedback ) + { + if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) ) + { + feedback->InstantFeedback( this, + ETouchFeedbackIncreasingPopUp, + ETouchFeedbackVibra, + TPointerEvent() ); + } + else + { + feedback->InstantFeedback( this, + ETouchFeedbackPopUp, + ETouchFeedbackVibra, + TPointerEvent() ); + } + } + } switch (aButton) { case EAknSoftkeyInsert: case EEikBidOk: { - if ( feedback ) - { - feedback->InstantFeedback( ETouchFeedbackBasic ); - } TInt index = iGrid->CurrentItemIndex(); if (iNoneBox) @@ -1749,20 +1764,7 @@ } default: { - if ( feedback ) - { - if( AknLayoutUtils::PenEnabled() ) - { - if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) ) - { - feedback->InstantFeedback( ETouchFeedbackDecreasingPopUp ); - } - else - { - feedback->InstantFeedback( ETouchFeedbackPopUp ); - } - } - } + break; } } @@ -1827,18 +1829,24 @@ // open the color grid: // if the NGA effects are off, use “pop-up”. // If NGA effects are on, use “increasing long touch”. + if( AknLayoutUtils::PenEnabled() ) + { MTouchFeedback* feedback = MTouchFeedback::Instance(); if ( feedback ) - { - if( AknLayoutUtils::PenEnabled() ) { if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) ) { - feedback->InstantFeedback( ETouchFeedbackIncreasingPopUp ); + feedback->InstantFeedback( this, + ETouchFeedbackIncreasingPopUp, + ETouchFeedbackVibra, + TPointerEvent() ); } else { - feedback->InstantFeedback( ETouchFeedbackPopUp ); + feedback->InstantFeedback( this, + ETouchFeedbackPopUp, + ETouchFeedbackVibra, + TPointerEvent() ); } } } diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/src/akndialog.cpp --- a/uifw/AvKon/src/akndialog.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/src/akndialog.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -87,7 +87,7 @@ */ EXPORT_C CAknDialog::~CAknDialog() { - AknItemActionMenuRegister::SetConstructingMenuBarOwnerL( NULL ); + AknItemActionMenuRegister::RemoveConstructingMenuBarOwner( this ); if ( iCoeEnv->AppUi() && iAttributes ) if (iAttributes->iAknDialogFlags&EAknDialogFlagDefaultSounds) // return original sound stack diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/src/akndiscreetpopupcontrol.cpp --- a/uifw/AvKon/src/akndiscreetpopupcontrol.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/src/akndiscreetpopupcontrol.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -755,50 +755,53 @@ const TPointerEvent& aPointerEvent ) { TBool eventInRect( Rect().Contains( aPointerEvent.iPosition ) ); - - // Pointer down - set pressed-down state (popup completely visible while - // pressed-down) - if ( aPointerEvent.iType == TPointerEvent::EButton1Down - && eventInRect - && iInternalFlags.IsClear( EDismissed ) ) + + // The discreet popup which is global won't handle pointer event if there is notifier be popping up. + if( !iInternalFlags.IsSet( EGlobal ) || iCoeEnv->RootWin().OrdinalPriority() < ECoeWinPriorityAlwaysAtFront ) { - _AKNTRACE( "CAknDiscreetPopupControl::HandlePointerEventL, TPointerEvent::EButton1Down" ); - SetPressedDownState( ETrue ); - ImmediateFeedback( ETouchFeedbackSensitive ); - } - - // Pointer drag - reset pressed-down state if pointer out of popup area - else if ( aPointerEvent.iType == TPointerEvent::EDrag ) - { - _AKNTRACE( "CAknDiscreetPopupControl::HandlePointerEventL, TPointerEvent::EDrag" ); - iInternalFlags.Set( EDragged ); - if ( !eventInRect && iInternalFlags.IsSet( EPressedDown ) ) + // Pointer down - set pressed-down state (popup completely visible while + // pressed-down) + if ( aPointerEvent.iType == TPointerEvent::EButton1Down + && eventInRect + && iInternalFlags.IsClear( EDismissed ) ) + { + _AKNTRACE( "CAknDiscreetPopupControl::HandlePointerEventL, TPointerEvent::EButton1Down" ); + SetPressedDownState( ETrue ); + ImmediateFeedback( ETouchFeedbackSensitive ); + } + + // Pointer drag - reset pressed-down state if pointer out of popup area + else if ( aPointerEvent.iType == TPointerEvent::EDrag ) { - iInternalFlags.Clear( EPressedDown ); + _AKNTRACE( "CAknDiscreetPopupControl::HandlePointerEventL, TPointerEvent::EDrag" ); + iInternalFlags.Set( EDragged ); + if ( !eventInRect && iInternalFlags.IsSet( EPressedDown ) ) + { + iInternalFlags.Clear( EPressedDown ); + } + else if ( eventInRect && !iInternalFlags.IsSet( EPressedDown ) ) + { + iInternalFlags.Set( EPressedDown ); + } } - else if ( eventInRect && !iInternalFlags.IsSet( EPressedDown ) ) - { - iInternalFlags.Set( EPressedDown ); + + // Pointer up - reset pressed-down state + else if ( aPointerEvent.iType == TPointerEvent::EButton1Up ) + { + _AKNTRACE( "CAknDiscreetPopupControl::HandlePointerEventL, TPointerEvent::EButton1Up" ); + if ( eventInRect ) + { + NotifyObserverL(); + } + // Start fading away + if ( iInternalFlags.IsClear( EDismissed ) ) + { + iInternalFlags.Set( EDismissed ); + RequestExitL(); + } + SetPressedDownState( EFalse ); } } - // Pointer up - reset pressed-down state - else if ( aPointerEvent.iType == TPointerEvent::EButton1Up ) - { - _AKNTRACE( "CAknDiscreetPopupControl::HandlePointerEventL, TPointerEvent::EButton1Up" ); - if ( eventInRect ) - { - NotifyObserverL(); - } - - // Start fading away - if ( iInternalFlags.IsClear( EDismissed ) ) - { - iInternalFlags.Set( EDismissed ); - RequestExitL(); - } - - SetPressedDownState( EFalse ); - } } diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/src/aknenv.cpp --- a/uifw/AvKon/src/aknenv.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/src/aknenv.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -41,7 +41,7 @@ #include #include #include -#include +#include #include #include #include diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/src/akngridview.cpp --- a/uifw/AvKon/src/akngridview.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/src/akngridview.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -1927,22 +1927,30 @@ { blankRect.SetRect(ItemPos(i), ItemSize()); blankRect.Intersection(iViewRect); - - MAknsSkinInstance *skin = AknsUtils::SkinInstance(); - CFormattedCellListBoxItemDrawer *id = (CFormattedCellListBoxItemDrawer*)ItemDrawer(); - if (id->FormattedCellData()->Control()) - { - MAknsControlContext *cc = AknsDrawUtils::ControlContext( id->FormattedCellData()->Control() ); - if ( !cc ) - { - cc = id->FormattedCellData()->SkinBackgroundContext(); - } - AknsDrawUtils::Background( skin, cc, id->FormattedCellData()->Control(), *iGc, blankRect ); - } - else - { - iGc->Clear(blankRect); - } + if ( blankRect.Width() > 0 && blankRect.Height() > 0 ) + { + MAknsSkinInstance *skin = AknsUtils::SkinInstance(); + CFormattedCellListBoxItemDrawer *id = + (CFormattedCellListBoxItemDrawer*)ItemDrawer(); + if ( id->FormattedCellData()->Control()) + { + MAknsControlContext *cc = + AknsDrawUtils::ControlContext( id->FormattedCellData()->Control() ); + if ( !cc ) + { + cc = id->FormattedCellData()->SkinBackgroundContext(); + } + AknsDrawUtils::Background( skin, + cc, + id->FormattedCellData()->Control(), + *iGc, + blankRect ); + } + else + { + iGc->Clear(blankRect); + } + } } _AKNTRACE_FUNC_EXIT; } diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/src/aknindicator.cpp --- a/uifw/AvKon/src/aknindicator.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/src/aknindicator.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -279,9 +279,11 @@ if ( iState == EAknIndicatorStateOn ) { iAnimState = iCountOfAnimStates - 1; + this->MakeVisible(ETrue); } else if ( iState == EAknIndicatorStateOff ) { + this->MakeVisible(EFalse); DeleteBitmaps(); } SizeChanged(); diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/src/aknindicatorpopupcontent.cpp --- a/uifw/AvKon/src/aknindicatorpopupcontent.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/src/aknindicatorpopupcontent.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2007,2008 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2007-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" @@ -1100,12 +1100,12 @@ { iClock = CAknDigitalClock::NewL( this ); TAknTextLineLayout clockLayout( - AknLayoutScalable_Avkon::uniindi_top_pane_t1( 1 ).LayoutLine() ); + AknLayoutScalable_Avkon::uniindi_top_pane_t1( 0 ).LayoutLine() ); // Ensure that the left and right values of the clock text layout // are zero, currently the whole top area is set as the parent // for this layout, so it's narrowed by reducting the - // signal pane area. + // signal and battery pane areas. clockLayout.il = 0; clockLayout.ir = 0; iClock->SetTimeLayout( clockLayout ); diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/src/aknlists.cpp --- a/uifw/AvKon/src/aknlists.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/src/aknlists.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -3371,12 +3371,12 @@ formattedCellData->SetStretchableTextSubCellL( 1, AknLayoutScalable_Avkon::list_double_graphic_pane_t1( 0 ), - AknLayoutScalable_Avkon::list_double_graphic_pane_vc_t1( 0 ) ); + AknLayoutScalable_Avkon::list_double_graphic_pane_vc_t1( 3 ) ); formattedCellData->SetStretchableTextSubCellL( 2, AknLayoutScalable_Avkon::list_double_graphic_pane_t2( 0 ), - AknLayoutScalable_Avkon::list_double_graphic_pane_vc_t2( 0 ) ); + AknLayoutScalable_Avkon::list_double_graphic_pane_vc_t2( 3 ) ); formattedCellData->SetStretchableGraphicSubCellL( 3, @@ -3389,9 +3389,11 @@ AknLayoutScalable_Avkon::list_double_graphic_pane_vc_g2( 1 ) ); // New icon below g1. - formattedCellData->SetGraphicSubCellL( + formattedCellData->SetStretchableGraphicSubCellL( 5, - AknLayoutScalable_Avkon::list_double_graphic_pane_g4( 0 ) ); + AknLayoutScalable_Avkon::list_double_graphic_pane_g4( 0 ) , + AknLayoutScalable_Avkon::list_double_graphic_pane_vc_g4( 0 ) ); + // On default new cell is always drawn but this cell should NOT be drawn! formattedCellData->SetNotAlwaysDrawnSubCellL( 5, ETrue ); @@ -3400,12 +3402,12 @@ formattedCellData->SetStretchableConditionalSubCellL( 4, AknLayoutScalable_Avkon::list_double_graphic_pane_t1( 2 ), - AknLayoutScalable_Avkon::list_double_graphic_pane_vc_t2( 2 ), 1, 2 ); + AknLayoutScalable_Avkon::list_double_graphic_pane_vc_t2( 4 ), 1, 2 ); formattedCellData->SetStretchableConditionalSubCellL( 3, AknLayoutScalable_Avkon::list_double_graphic_pane_t1( 1 ), - AknLayoutScalable_Avkon::list_double_graphic_pane_vc_t2( 1 ), 1, 2 ); + AknLayoutScalable_Avkon::list_double_graphic_pane_vc_t2( 5 ), 1, 2 ); } else { diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/src/aknnotewrappers.cpp --- a/uifw/AvKon/src/aknnotewrappers.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/src/aknnotewrappers.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -134,14 +134,17 @@ { if ( AknLayoutUtils::PenEnabled() ) { - if (aPointerEvent.iType == TPointerEvent::EButton1Up) + if ( aPointerEvent.iType == TPointerEvent::EButton1Down ) { MTouchFeedback* feedback = MTouchFeedback::Instance(); if ( feedback ) { feedback->InstantFeedback( ETouchFeedbackPopUp ); } - StaticDeleteL(this); + } + if (aPointerEvent.iType == TPointerEvent::EButton1Up) + { + StaticDeleteL(this); } } } diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/src/aknutils.cpp --- a/uifw/AvKon/src/aknutils.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/src/aknutils.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -6616,6 +6616,7 @@ color.SetAlpha( !err ? colorFromSkin.Red() : KDefaultSeparatorAlpha ); aGc.SetPenColor( color ); + aGc.SetDrawMode( CGraphicsContext::EDrawModePEN ); TRect lineRect( aRect ); TInt gap = AknLayoutScalable_Avkon::listscroll_gen_pane( 0 ).LayoutLine().it; diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/src/aknview.cpp --- a/uifw/AvKon/src/aknview.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/src/aknview.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -82,7 +82,6 @@ public: TBool iToolbarVisible; TBool iToolbarFocusing; - TBool iViewActivated; private: // data CAknToolbar* iToolbar; CAknToolbar* iFixedToolbar; @@ -428,6 +427,8 @@ delete iCba; delete iExtension; + + AknItemActionMenuRegister::RemoveConstructingMenuBarOwner( this ); } // ----------------------------------------------------------------------------- @@ -459,10 +460,7 @@ Extension()->CreateToolbarL( iViewInfo.iToolbar ); - if ( iViewInfo.iMenu ) - { - AknItemActionMenuRegister::SetConstructingMenuBarOwnerL( this ); - } + AknItemActionMenuRegister::SetConstructingMenuBarOwnerL( this ); } // ----------------------------------------------------------------------------- @@ -580,31 +578,14 @@ // EXPORT_C void CAknView::AknViewActivatedL( const TVwsViewId& aPrevViewId, TUid aCustomMessageId, const TDesC8& aCustomMessage ) { + AknItemActionMenuRegister::SetConstructingMenuBarOwnerL( this ); ConstructMenuAndCbaL( ETrue ); - if ( !iViewInfo.iMenu ) - { - AknItemActionMenuRegister::SetConstructingMenuBarOwnerL( this ); - } Extension()->PrepareToolbar(); DoActivateL( aPrevViewId, aCustomMessageId, aCustomMessage ); - if ( !Extension()->iViewActivated || !iViewInfo.iMenu ) - { - // Reset menu bar owner when view first activated - AknItemActionMenuRegister::SetConstructingMenuBarOwnerL( NULL ); - Extension()->iViewActivated = ETrue; - } - -#ifdef RD_SCALABLE_UI_V2 - if ( iAvkonAppUi->TouchPane() ) - { - iAvkonAppUi->TouchPane()->RefreshL(); - } -#endif // RD_SCALABLE_UI_V2 - ProcessForegroundEventL( ETrue ); } @@ -621,6 +602,8 @@ DoDeactivate(); + AknItemActionMenuRegister::RemoveConstructingMenuBarOwner( this ); + if ( iCba ) { iCba->MakeVisible( EFalse ); diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/src/eikfrlb.cpp --- a/uifw/AvKon/src/eikfrlb.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/src/eikfrlb.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -512,7 +512,8 @@ #ifdef RD_LIST_STRETCH EXPORT_C void CEikFormattedCellListBox::EnableStretching( const TBool aEnabled ) { - if ( ItemDrawer()->FormattedCellData()->StretchingEnabled() != aEnabled ) + if ( ItemDrawer() && + ( ItemDrawer()->FormattedCellData()->StretchingEnabled() != aEnabled ) ) { ItemDrawer()->FormattedCellData()->EnableStretching( aEnabled ); SizeChanged(); diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/src/eikfrlbd.cpp --- a/uifw/AvKon/src/eikfrlbd.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/src/eikfrlbd.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -3064,8 +3064,11 @@ TInt aFirstIndex, TInt aSecondIndex ) { - iExtension->iFirstWordWrappedSubcellIndex = (TInt16)aFirstIndex; - iExtension->iSecondWordWrappedSubcellIndex = (TInt16)aSecondIndex; + if ( iExtension ) + { + iExtension->iFirstWordWrappedSubcellIndex = (TInt16)aFirstIndex; + iExtension->iSecondWordWrappedSubcellIndex = (TInt16)aSecondIndex; + } } EXPORT_C void CFormattedCellListBoxData::EnableMarqueeL(TBool aEnable) @@ -4128,6 +4131,7 @@ aGc.UseFont(CEikonEnv::Static()->NormalFont()); aGc.DrawText(TPtrC(),aRect,0); // use draw text so that don't need to change pen color/style aGc.DiscardFont(); // Release the font cache + _AKNTRACE_FUNC_EXIT; return; } const CFont* font=SubCellFont(0); @@ -4377,6 +4381,11 @@ CGraphicsContext::TTextAlign align=sc->iAlign; if (!sc->iGraphics) { + if ( !iExtension ) + { + _AKNTRACE_FUNC_EXIT; + return; + } const CFont* rowAndCellFont=RowAndSubCellFont(iExtension->iCurrentlyDrawnItemIndex,subcell); const CFont* cellFont=sc->iBaseFont; const CFont* tempFont=(cellFont) ? cellFont : font; diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/srcdata/avkon.rss --- a/uifw/AvKon/srcdata/avkon.rss Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/srcdata/avkon.rss Wed Apr 14 16:14:00 2010 +0300 @@ -8033,7 +8033,7 @@ // common MENU_ITEM { command=EPenInputCmdHwrTraining; txt=qtn_tin_option_menu_training;}, MENU_ITEM { command=EAknCmdInputLanguage; txt=text_pup_option_input_language;}, - MENU_ITEM { command=EFepInputCmdHelp; txt=qtn_tin_option_menu_help; } + MENU_ITEM { command=EFepInputCmdHelp; txt=qtn_options_help; } }; } @@ -9845,7 +9845,7 @@ MENU_ITEM { command=EPenInputCmdVITUT; flags=EEikMenuItemDimmed; txt=qtn_input_switcher_itu_t; }, MENU_ITEM { command=EPeninputCmdFSQ; flags=EEikMenuItemDimmed; txt=qtn_input_switcher_fs_qwerty; }, MENU_ITEM { command=EPeninputCmdHwr; flags=EEikMenuItemDimmed; txt=qtn_input_switcher_hwr; }, - MENU_ITEM { command=EFepInputCmdHelp; txt=qtn_tin_option_menu_help; }, + MENU_ITEM { command=EFepInputCmdHelp; txt=qtn_options_help; }, MENU_ITEM { command=EAknCmdEditModeEnglish; flags=EEikMenuItemDimmed; txt=qtn_activate_english_mode; } }; } @@ -9905,7 +9905,7 @@ MENU_ITEM { command=EAknCmdInputLanguage; flags=EEikMenuItemDimmed; txt=text_pup_option_input_language; }, MENU_ITEM { command=EAknCmdInputMethod; flags=EEikMenuItemDimmed; txt=text_pup_option_input_language; cascade=r_avkon_input_mode_sub_menu; }, MENU_ITEM { command=EChinFepCmdModeCangJieOption; flags=EEikMenuItemDimmed; txt=qtn_chi_pup_option_cangjie_mode; }, - MENU_ITEM { command=EFepInputCmdHelp; txt=qtn_tin_option_menu_help; }, + MENU_ITEM { command=EFepInputCmdHelp; txt=qtn_options_help; }, MENU_ITEM { command=EAknCmdEditModeKorean; flags=EEikMenuItemDimmed; txt=qtn_activate_korean_mode; }, MENU_ITEM { command=EAknCmdEditModeEnglish; flags=EEikMenuItemDimmed; txt=qtn_activate_english_mode; } }; diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/srcdata/smiley.rss --- a/uifw/AvKon/srcdata/smiley.rss Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/srcdata/smiley.rss Wed Apr 14 16:14:00 2010 +0300 @@ -201,7 +201,7 @@ { code = EAknSmileyIconNerd; smileyIconId = EMbmSmileyQgn_indi_smiley_nerd; - strings = "8) 8-)"; + strings = "8-)"; }, SMILEY_ICON_ITEM { diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestsingleclick/group/bctestsingleclick.mmp --- a/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestsingleclick/group/bctestsingleclick.mmp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestsingleclick/group/bctestsingleclick.mmp Wed Apr 14 16:14:00 2010 +0300 @@ -48,6 +48,7 @@ USERINCLUDE ./../inc USERINCLUDE ../../../bctestutil/inc +USERINCLUDE ../../../../../../../inc APP_LAYER_SYSTEMINCLUDE diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestsingleclick/inc/bctestsingleclickcase.h --- a/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestsingleclick/inc/bctestsingleclickcase.h Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestsingleclick/inc/bctestsingleclickcase.h Wed Apr 14 16:14:00 2010 +0300 @@ -28,7 +28,8 @@ /** * test case for various classes */ -class CBCTESTSingleClickCase: public CBCTestCase, public MAknCollection +class CBCTESTSingleClickCase: public CBCTestCase, public MAknCollection, + public MObjectProvider { public: // constructor and destructor @@ -76,6 +77,12 @@ virtual TInt CollectionExtension( TUint aExtensionId, TAny*& a0, TAny* a1 ); + + /** + * Pure virtual from MObjectProvider. + */ + virtual TTypeUid::Ptr MopSupplyObject( TTypeUid aId); + protected: // new functions /** diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestsingleclick/src/bctestsingleclickcase.cpp --- a/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestsingleclick/src/bctestsingleclickcase.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestsingleclick/src/bctestsingleclickcase.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -18,20 +18,14 @@ #include #include #include -#ifdef RD_TOUCH2 #include #include -#else -#include -#endif // RD_TOUCH2 #include #include #include #include #include -#ifdef RD_TOUCH2 -#include -#endif // RD_TOUCH2 +#include "aknitemactionmenuregister.h" #include "bctestsingleclickcase.h" #include "bctestsingleclickcontainer.h" @@ -174,30 +168,28 @@ _LIT( KIsSingleClickCompatible, "CAknAppUiBase::IsSingleClickCompatible()" ); _LIT( KRegisterCollectionL, "CAknItemActionMenu::RegisterCollectionL" ); + _LIT( KRegisterCollection2L, + "CAknItemActionMenu::RegisterCollectionL( MAknCollection, MObjectProvider" ); _LIT( KInitMenuL, "CAknItemActionMenu::InitMenuL" ); _LIT( KShowMenuL, "CAknItemActionMenu::ShowMenuL" ); _LIT( KRemoveCollection, "CAknItemActionMenu::RemoveCollection" ); _LIT( KItemSpecificCommandsEnabled, "CEikMenuBar::ItemSpecificCommandsEnabled()" ); _LIT( KSetItemSpecific, "CEikMenuPane::SetItemSpecific()" ); -#ifdef RD_TOUCH2 _LIT( KSetOverridingMenuBarOwnerL, "AknItemActionMenuRegister::SetOverridingMenuBarOwnerL" ); _LIT( KCollectionChanged, "CAknItemActionMenu::CollectionChanged" ); -#endif // RD_TOUCH2 //AknItemActionMenuRegister::SetConstructingMenuBarOwnerL is invoked in //CAknView::BaseConstructL(). AssertTrueL( ETrue, KSetConstructingMenuBarOwnerL ); -#ifdef RD_TOUCH2 CCoeControl* dummy = new ( ELeave ) CCoeControl; CleanupStack::PushL( dummy ); AknItemActionMenuRegister::SetOverridingMenuBarOwnerL( dummy ); AknItemActionMenuRegister::SetOverridingMenuBarOwnerL( NULL ); AssertTrueL( ETrue, KSetOverridingMenuBarOwnerL ); CleanupStack::PopAndDestroy(); -#endif // RD_TOUCH2 TBool isSingleClick = iAvkonAppUiBase->IsSingleClickCompatible(); AssertTrueL( isSingleClick, KIsSingleClickCompatible ); @@ -205,6 +197,7 @@ CAknItemActionMenu* aknItemActionMenu = CAknItemActionMenu::RegisterCollectionL( *this ); AssertTrueL( ETrue, KRegisterCollectionL ); + if ( aknItemActionMenu ) { aknItemActionMenu->InitMenuL(); @@ -214,23 +207,27 @@ aknItemActionMenu->ShowMenuL( p ); AssertTrueL( ETrue, KShowMenuL ); -#ifdef RD_TOUCH2 aknItemActionMenu->CollectionChanged( *this ); AssertTrueL( ETrue, KCollectionChanged ); -#endif // RD_TOUCH2 aknItemActionMenu->RemoveCollection( *this ); AssertTrueL( ETrue, KRemoveCollection ); } + + CAknItemActionMenu* aknItemActionMenu2 = + CAknItemActionMenu::RegisterCollectionL( *this, this ); + AssertTrueL( ETrue, KRegisterCollection2L ); + + if ( aknItemActionMenu2 ) + { + aknItemActionMenu2->RemoveCollection( *this ); + } + -#ifdef RD_TOUCH2 TVwsViewId uid; iAvkonViewAppUi->GetActiveViewId( uid ); CEikMenuBar* menuBar = iAvkonViewAppUi->View( uid.iViewUid )->MenuBar(); -#else - CEikMenuBar* menuBar = CEikonEnv::Static()->AppUiFactory()->MenuBar(); -#endif // RD_TOUCH2 CEikMenuPane* menuPane = NULL; if ( menuBar ) { @@ -254,6 +251,7 @@ void CBCTESTSingleClickCase::TestListBoxL() { _LIT( KDisableSingleClick, "CEikListBox::DisableSingleClick() invoked" ); + _LIT( KIsHighlightEnabled, "CEikListBox::IsHighlightEnabled() invoked" ); CEikFormattedCellListBox* listbox = new CEikFormattedCellListBox(); CleanupStack::PushL( listbox ); @@ -271,8 +269,19 @@ listbox->DisableSingleClick( ETrue ); AssertTrueL( ETrue, KDisableSingleClick ); - + + TBool enabled = listbox->IsHighlightEnabled(); + AssertTrueL( enabled, KIsHighlightEnabled ); + CleanupStack::PopAndDestroy( text ); CleanupStack::PopAndDestroy( listbox ); } +// --------------------------------------------------------------------------- +// CBCTESTSingleClickCase::MopSupplyObject +// --------------------------------------------------------------------------- +// +TTypeUid::Ptr CBCTESTSingleClickCase::MopSupplyObject(TTypeUid /*aId*/) + { + return TTypeUid::Null(); + } diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/sis/bctestdomaiwakn.pkg Binary file uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/sis/bctestdomaiwakn.pkg has changed diff -r 08e69e956a8c -r 71dd06cfe933 uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/sis/bctestdomaiwakn.pkg Binary file uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/sis/bctestdomaiwakn.pkg has changed diff -r 08e69e956a8c -r 71dd06cfe933 uifw/EikStd/EABI/EIKCOCTLU.DEF --- a/uifw/EikStd/EABI/EIKCOCTLU.DEF Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/EikStd/EABI/EIKCOCTLU.DEF Wed Apr 14 16:14:00 2010 +0300 @@ -2009,4 +2009,7 @@ _ZN18CEikStatusPaneBase17EnableTransparentEi @ 2008 NONAME _ZNK18CEikStatusPaneBase13IsTransparentEv @ 2009 NONAME _ZN9CEikEdwin23EnableKineticScrollingLEP11CAknPhysics @ 2010 NONAME + _ZN18CAknItemActionMenu19RegisterCollectionLER14MAknCollectionP15MObjectProvider @ 2011 NONAME + _ZN25AknItemActionMenuRegister30RemoveConstructingMenuBarOwnerEP15MObjectProvider @ 2012 NONAME + _ZN11CEikListBox18IsHighlightEnabledEv @ 2013 NONAME diff -r 08e69e956a8c -r 71dd06cfe933 uifw/EikStd/bwins/EIKCOCTLU.DEF --- a/uifw/EikStd/bwins/EIKCOCTLU.DEF Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/EikStd/bwins/EIKCOCTLU.DEF Wed Apr 14 16:14:00 2010 +0300 @@ -1620,3 +1620,6 @@ ?EnableTransparent@CEikStatusPaneBase@@QAEXH@Z @ 1619 NONAME ; void CEikStatusPaneBase::EnableTransparent(int) ?IsTransparent@CEikStatusPaneBase@@QBEHXZ @ 1620 NONAME ; int CEikStatusPaneBase::IsTransparent(void) const ?EnableKineticScrollingL@CEikEdwin@@QAEXPAVCAknPhysics@@@Z @ 1621 NONAME ; void CEikEdwin::EnableKineticScrollingL(class CAknPhysics *) + ?RemoveConstructingMenuBarOwner@AknItemActionMenuRegister@@SAXPAVMObjectProvider@@@Z @ 1622 NONAME ; void AknItemActionMenuRegister::RemoveConstructingMenuBarOwner(class MObjectProvider *) + ?RegisterCollectionL@CAknItemActionMenu@@SAPAV1@AAVMAknCollection@@PAVMObjectProvider@@@Z @ 1623 NONAME ; class CAknItemActionMenu * CAknItemActionMenu::RegisterCollectionL(class MAknCollection &, class MObjectProvider *) + ?IsHighlightEnabled@CEikListBox@@QAEHXZ @ 1624 NONAME ; int CEikListBox::IsHighlightEnabled(void) diff -r 08e69e956a8c -r 71dd06cfe933 uifw/EikStd/coctlinc/aknitemactionmenuregister.h --- a/uifw/EikStd/coctlinc/aknitemactionmenuregister.h Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/EikStd/coctlinc/aknitemactionmenuregister.h Wed Apr 14 16:14:00 2010 +0300 @@ -68,14 +68,26 @@ MObjectProvider* aMenuBarOwner, TUint aFlags = 0 ); /** + * Sets the current constructing menubar owner to NULL if it matches to + * aMenuBarOwner. Otherwise constructing menubar owner is not modified. + * + * @internal + * @param aMenuBarOwner Pointer to constructing menubar owner. + */ + IMPORT_C static void RemoveConstructingMenuBarOwner( + MObjectProvider* aMenuBarOwner ); + + /** * Registers a collection. * * @internal * @param aCollection Collection to be registered. + * @param aMenuBarOwner Owner of the menubar that collection will be + * registered with. * @return Item action menu the collection was registered to. */ static CAknItemActionMenu* RegisterCollectionL( - MAknCollection& aCollection ); + MAknCollection& aCollection, MObjectProvider* aMenuBarOwner ); /** * Registers item action menu to aMenuBar. @@ -163,10 +175,12 @@ * Registers collection. * * @param aCollection State to be registered. + * @param aMenuBarOwner Owner of the menubar that collection will be + * registered with. * @return Item action menu the collection was registered to. */ CAknItemActionMenu* DoRegisterCollectionL( - MAknCollection& aCollection ); + MAknCollection& aCollection, MObjectProvider* aMenuBarOwner ); /** * Registers item action menu to aMenuBar. @@ -286,7 +300,7 @@ * @internal * @return Pointer to menu bar. */ - CEikMenuBar* FindCurrentMenuBarL(); + CEikMenuBar* FindCurrentMenuBar(); /** * Adds register entry. @@ -319,6 +333,16 @@ */ void DoSetConstructingMenuBarOwnerL( MObjectProvider* aMenuBarOwner ); + /** + * Sets the current constructing menubar owner to NULL if it matches to + * aMenuBarOwner. Otherwise constructing menubar owner is not modified. + * + * @internal + * @param aMenuBarOwner Pointer to constructing menubar owner. + */ + void DoRemoveConstructingMenuBarOwner( + MObjectProvider* aMenuBarOwner ); + private: // data /** diff -r 08e69e956a8c -r 71dd06cfe933 uifw/EikStd/coctlsrc/AknButton.cpp --- a/uifw/EikStd/coctlsrc/AknButton.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/EikStd/coctlsrc/AknButton.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -264,7 +264,7 @@ // Sets bitmaps to resource provider (if one exists) void SetProviderPressedBmpsL(); - + private: // Data CAknButton& iButton; @@ -284,6 +284,9 @@ CFbsBitmap* iPressedDownBmp; CFbsBitmap* iPressedDownBmpMask; CAknResourceProvider* iResourceProvider; + + //Previous touch down or drag position, valid only with pressed state. + TPoint iPrePointerPos; }; // ============================ MEMBER FUNCTIONS =============================== @@ -1976,6 +1979,10 @@ { // show press changes iButtonPressed = ETrue; + if ( iExtension ) + { + iExtension->iPrePointerPos.SetXY( -1, -1 ); + } if ( NeedsRedrawWhenPressed() ) { DrawNow(); @@ -2085,7 +2092,11 @@ } CAknButtonState* state = State(); - if ( !aVisible && state && state->HasHelp() ) + if ( !aVisible && iButtonPressed ) + { + ResetState(); + } + else if ( !aVisible && state && state->HasHelp() ) { HideHelp(); } @@ -2134,6 +2145,11 @@ // EXPORT_C void CAknButton::SizeChanged() { + //Reset state if observer modified the rectangel. + if ( iButtonPressed && iExtension && !Rect().Contains( iExtension->iPrePointerPos ) ) + { + ResetState(); + } // If default icon size from LAF is used re-request that, otherwise trust // that size will be updated by the utilising application. if ( iExtension->iFlags.IsSet( CAknButtonExtension::EUseDefaultIconSize ) ) @@ -2185,6 +2201,10 @@ } return; } + if ( iExtension ) + { + iExtension->iPrePointerPos = aPointerEvent.iPosition; + } TBool buttonEvent( TouchArea().Contains( aPointerEvent.iPosition ) ); CAknButtonState* state = State(); if ( !state ) @@ -2330,6 +2350,10 @@ case TPointerEvent::EButton1Up: { + if ( iExtension ) + { + iExtension->iPrePointerPos.SetXY( -1, -1 ); + } iNumberOfDragEvents = 0; HideHelp(); @@ -2459,6 +2483,12 @@ { if ( iExtension ) iExtension->HandleFeedbackAreaChange(); CAknControl::PositionChanged(); + + //Reset state if observer moved button position. + if ( iButtonPressed && iExtension && !Rect().Contains( iExtension->iPrePointerPos ) ) + { + ResetState(); + } } // ----------------------------------------------------------------------------- diff -r 08e69e956a8c -r 71dd06cfe933 uifw/EikStd/coctlsrc/AknToolbar.cpp --- a/uifw/EikStd/coctlsrc/AknToolbar.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/EikStd/coctlsrc/AknToolbar.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -1136,7 +1136,10 @@ MTouchFeedback* feedback = MTouchFeedback::Instance(); if ( feedback ) { - feedback->InstantFeedback( ETouchFeedbackBasicButton ); + feedback->InstantFeedback( button, + ETouchFeedbackBasicButton, + ETouchFeedbackVibra, + aPointerEvent ); } } @@ -2044,8 +2047,11 @@ CWindowGc& gc = SystemGc(); MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - // Draw background - if ( iFlags & KAknToolbarFixed && + + // + // Draw background + // + if ( iFlags & KAknToolbarFixed && !( iFlags & KAknToolbarNoBackground ) && iBgRect.Height() > 0 && iBgRect.Width() > 0 ) { @@ -3114,14 +3120,6 @@ aCellPaneRect = RectFromLayout( aGridPaneRect, AknLayoutScalable_Avkon::cell_sctrl_middle_pane( 0, 0, 0 ) ); - - // - // fixing bug: ELJG-7XX8RE - // (Two extra black lines are displayed around toolbar area at first) - // extend the toolbar size by hard code - // - aToolbarRect.iTl.iY -= 1; - aToolbarRect.iBr.iY += 1; } } else diff -r 08e69e956a8c -r 71dd06cfe933 uifw/EikStd/coctlsrc/EIKEDWIN.CPP --- a/uifw/EikStd/coctlsrc/EIKEDWIN.CPP Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/EikStd/coctlsrc/EIKEDWIN.CPP Wed Apr 14 16:14:00 2010 +0300 @@ -520,6 +520,9 @@ TBool paragraphContainingStartPositionOfInlineTextHasChangedFormat=EFalse; TInt numberOfCharactersSuccessfullyDeleted=0; TInt numberOfCharactersSuccessfullyInserted=0; + + iEdwin.ConvertSmileyForDeleteL( selection ); + // handle extended highlights /* @@ -633,23 +636,9 @@ void CEikEdwinFepSupport::SetCursorSelectionForFepL(const TCursorSelection& aCursorSelection) { - TInt cursorPos( aCursorSelection.iCursorPos ); - TInt anchorPos( aCursorSelection.iAnchorPos ); - if ( iEdwin.IsSmileyEnabled() ) - { - CSmileyManager* smiley( iEdwin.iEdwinExtension->iSmiley ); - TInt oldPos = ( cursorPos == anchorPos ) ? iEdwin.CursorPos() : anchorPos; - smiley->HandleSetCursor( oldPos, cursorPos ); - if ( aCursorSelection.iCursorPos == aCursorSelection.iAnchorPos ) - { - anchorPos = cursorPos; - } - else - { - smiley->HandleSetCursor( cursorPos, anchorPos ); - } - } - iEdwin.SetSelectionL( cursorPos, anchorPos ); + TCursorSelection select( aCursorSelection.iCursorPos, aCursorSelection.iAnchorPos ); + iEdwin.HandleSelectionForSmiley( select ); + iEdwin.iTextView->SetSelectionL( select ); iEdwin.ReportEdwinEventL(MEikEdwinObserver::EEventNavigation); } @@ -2501,6 +2490,17 @@ return; } + // If text selection is not visible, don't allow user to select any text + // or scroll during selection ( if kinetic scrolling enabled ). + if ( kineticScrollingEnabled && iEdwinFepSupport ) + { + CAknEdwinState* edwinState( EditorState() ); + if ( edwinState && !( edwinState->Flags() & EAknEditorFlagSelectionVisible ) ) + { + return; + } + } + const TCursorSelection selection( iTextView->Selection() ); const TPoint pointerPos( aPointerEvent.iPosition ); @@ -2676,7 +2676,7 @@ iEdwinInternalFlags&=(~ELeftDownInViewRect); // We can't open cut-copy-paste menu if dragging started - if ( IsReadOnly() && IsSelectionVisible() && !( kineticScrollingEnabled + if ( IsReadOnly() && IsSelectionVisible() && !( iEdwinUserFlags&ENoAutoSelection ) && !( kineticScrollingEnabled && iEdwinExtension->iPhysicsHandler->DraggingStarted() ) ) { iEdwinFepSupport->iFeedback->InstantFeedback( diff -r 08e69e956a8c -r 71dd06cfe933 uifw/EikStd/coctlsrc/EIKLBV.CPP --- a/uifw/EikStd/coctlsrc/EIKLBV.CPP Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/EikStd/coctlsrc/EIKLBV.CPP Wed Apr 14 16:14:00 2010 +0300 @@ -815,6 +815,11 @@ } else // items will get redrawn anyway { + // As the iVerticalOffset is changed in CalcNewTopItemIndexSoItemIsVisible(), + // and ScrollToMakeItemVisible() will call the CalcNewTopItemIndexSoItemIsVisible() again, + // which will use iVerticalOffset to do some judgementes, + // we must set iVerticalOffset back to original value. + iVerticalOffset = oldVerticalOffset; ScrollToMakeItemVisible(iCurrentItemIndex); } UpdateSelectionL(aSelectionMode); @@ -1187,6 +1192,12 @@ newTopItemIndex = aItemIndex; else if (aItemIndex > iBottomItemIndex) newTopItemIndex = aItemIndex - numItemsThatFitInRect + 1; + else if ( ( iVerticalOffset < 0 ) + && ( aItemIndex == iBottomItemIndex ) + && ( 0 == iViewRect.Height() % iItemHeight ) ) + { + newTopItemIndex += 1; + } if (!ITEM_EXISTS_ONCE(newTopItemIndex) && newTopItemIndex != 0 ) { // if application fails to call HandleItemAdditionL(), we might go here. diff -r 08e69e956a8c -r 71dd06cfe933 uifw/EikStd/coctlsrc/EIKLBX.CPP --- a/uifw/EikStd/coctlsrc/EIKLBX.CPP Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/EikStd/coctlsrc/EIKLBX.CPP Wed Apr 14 16:14:00 2010 +0300 @@ -852,7 +852,7 @@ iItemsInSingleLine = 1; iFeedback = MTouchFeedback::Instance(); - iItemActionMenu = CAknItemActionMenu::RegisterCollectionL( *this ); + iItemActionMenu = CAknItemActionMenu::RegisterCollectionL( *this, &iListBox ); if ( !( iListBox.iListBoxFlags & CEikListBox::EDisableItemSpecificMenu ) && iItemActionMenu ) @@ -1079,9 +1079,12 @@ { if ( iSingleClickEnabled && iLongTapDetector && iItemActionMenu ) { - // Send event on down only if item specific items were found - if ( aPointerEvent.iType != TPointerEvent::EButton1Down - || iItemActionMenu->InitMenuL() ) + // Send event on down only if item specific items were found and current + // item is marked if there are marked items + if ( !( MarkedItems() && + !iListBox.View()->ItemIsSelected( iListBox.CurrentItemIndex() ) ) + && ( aPointerEvent.iType != TPointerEvent::EButton1Down + || iItemActionMenu->InitMenuL() ) ) { iLongTapDetector->PointerEventL ( aPointerEvent ); } @@ -1721,8 +1724,9 @@ { _AKNTRACE_FUNC_ENTER; TBool enabled( EFalse ); - if ( ( iListBox.iItemDrawer->Flags() & CListItemDrawer::EPressedDownState ) && - !iFlickStopped ) + + if ( ( iListBox.iItemDrawer->Flags() & CListItemDrawer::EPressedDownState + || iSingleClickEnabled ) && !iFlickStopped ) { enabled = ETrue; } @@ -4686,9 +4690,10 @@ } iListBoxExt->iFeedbackType = ETouchFeedbackList; - - if ( itemIndex != iView->CurrentItemIndex() || - iListBoxFlags & ES60StyleMultiselection ) + + if ( iListBoxFlags & ES60StyleMultiselection || + ( !iListBoxExt->iSingleClickEnabled && + itemIndex != iView->CurrentItemIndex() ) ) { iListBoxExt->iFeedbackType = ETouchFeedbackSensitiveList; } @@ -4832,14 +4837,13 @@ UpdateHighlightL( itemIndex ); CCoeEnv::Static()->WsSession().Finish(); } - if ( itemIndex != oldCurrentItemIndex ) - { - iListBoxExt->ImmediateFeedback( - iListBoxExt->iFeedbackType, - TTouchFeedbackType( ETouchFeedbackVibra | - ETouchFeedbackAudio ), - aPointerEvent ); - } + + iListBoxExt->ImmediateFeedback( + iListBoxExt->iFeedbackType, + TTouchFeedbackType( ETouchFeedbackVibra | + ETouchFeedbackAudio ), + aPointerEvent ); + if ( !wasFlicking ) { ReportListBoxEventL( @@ -6217,12 +6221,37 @@ // EXPORT_C void CEikListBox::DisableItemSpecificMenu() { + _AKNTRACE_FUNC_ENTER; if ( iListBoxExt ) { iListBoxExt->DisableItemSpecificMenu(); } - } - + _AKNTRACE_FUNC_EXIT; + } + +// --------------------------------------------------------------------------- +// CEikListBox::IsHighlightEnabled +// --------------------------------------------------------------------------- +// +EXPORT_C TBool CEikListBox::IsHighlightEnabled() + { + _AKNTRACE_FUNC_ENTER; + TBool enabled( EFalse ); + if ( !( iItemDrawer->Flags() & CListItemDrawer::EDisableHighlight ) ) + { + if ( iListBoxExt->iSingleClickEnabled ) + { + enabled = !( iItemDrawer->Flags() + & CListItemDrawer::ESingleClickDisabledHighlight ); + } + else + { + enabled = ETrue; + } + } + _AKNTRACE_FUNC_EXIT; + return enabled; + } void CEikListBox::ScrollView( const TInt aOffset, TBool aDrawNow ) { diff -r 08e69e956a8c -r 71dd06cfe933 uifw/EikStd/coctlsrc/EIKMENUB.CPP --- a/uifw/EikStd/coctlsrc/EIKMENUB.CPP Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/EikStd/coctlsrc/EIKMENUB.CPP Wed Apr 14 16:14:00 2010 +0300 @@ -153,10 +153,11 @@ AknItemActionMenuRegister::RegisterMenuBarL( *iBar ); } // hide item-specific commands if highlight not visible - if ( iBar->GetMenuType() != CEikMenuBar::EMenuContext - && iItemActionMenu - && !iItemActionMenu->CollectionHighlightVisible() ) - { + if ( iBar->GetMenuType() != CEikMenuBar::EMenuContext + && ( ( iItemActionMenu + && !iItemActionMenu->CollectionHighlightVisible() ) + || !iItemActionMenu ) ) + { iBar->iMenuPane->SetItemCommandsDimmed(); } } @@ -1004,7 +1005,7 @@ TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp; if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) ) { - fbLogicalType = ETouchFeedbackIncreasingPopUp; + fbLogicalType = ETouchFeedbackOptionsMenuOpened; } feedback->InstantFeedback( this, @@ -1194,7 +1195,7 @@ TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp; if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) ) { - fbLogicalType = ETouchFeedbackDecreasingPopUp; + fbLogicalType = ETouchFeedbackOptionsMenuClosed; } feedback->InstantFeedback( this, diff -r 08e69e956a8c -r 71dd06cfe933 uifw/EikStd/coctlsrc/EIKMENUP.CPP --- a/uifw/EikStd/coctlsrc/EIKMENUP.CPP Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/EikStd/coctlsrc/EIKMENUP.CPP Wed Apr 14 16:14:00 2010 +0300 @@ -2263,7 +2263,7 @@ TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp; if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) ) { - fbLogicalType = ETouchFeedbackIncreasingPopUp; + fbLogicalType = ETouchFeedbackSubMenuOpened; } iExtension->ImmediateFeedback( fbLogicalType, ETouchFeedbackVibra ); @@ -3839,7 +3839,7 @@ { if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) ) { - iExtension->ImmediateFeedback( ETouchFeedbackDecreasingPopUp ); + iExtension->ImmediateFeedback( ETouchFeedbackSubMenuClosed ); } else { @@ -4192,7 +4192,7 @@ { if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) ) { - iExtension->ImmediateFeedback( ETouchFeedbackDecreasingPopUp ); + iExtension->ImmediateFeedback( ETouchFeedbackSubMenuClosed ); } else { @@ -4314,7 +4314,7 @@ { if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) ) { - iExtension->ImmediateFeedback( ETouchFeedbackDecreasingPopUp ); + iExtension->ImmediateFeedback( ETouchFeedbackSubMenuClosed ); } else { @@ -4424,7 +4424,7 @@ AknTransEffect::EComponentTransitionsOff ) ) { iExtension->ImmediateFeedback( - ETouchFeedbackDecreasingPopUp ); + ETouchFeedbackSubMenuClosed ); } else { @@ -5354,7 +5354,7 @@ UpdateBackgroundContext( Rect() ); PrepareHighlightFrame(); SetCascadedIconSize(); - + DrawDeferred(); if ( iCascadeMenuPane ) { iCascadeMenuPane->HandleResourceChange( aType ); diff -r 08e69e956a8c -r 71dd06cfe933 uifw/EikStd/coctlsrc/EIKSCRLB.CPP --- a/uifw/EikStd/coctlsrc/EIKSCRLB.CPP Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/EikStd/coctlsrc/EIKSCRLB.CPP Wed Apr 14 16:14:00 2010 +0300 @@ -41,7 +41,7 @@ #include "eikscrlb.h" #include "EIKSBEXT.H" -const TInt KIntensity = 50; // 50% +const TInt KIntensity = 100; // 100% const TInt KScrollBarWidth=9; // const TInt KScrollButtonHeight=10; @@ -830,7 +830,7 @@ if ( modifier ) { CAknDoubleSpanScrollBarExtension* extension = static_cast (iExtension); - if ( aVisible && (extension->iScrollIndicator->ScrollSpan() > 0) ) + if ( aVisible && (extension->iScrollIndicator->ScrollSpan() > 0) && !( extension->iExtensionType & ENoExpandedTouchArea ) ) { modifier->Push( *this, ExtensionArea() ); } @@ -897,10 +897,21 @@ { CAknPointerEventModifier* modifier = iAvkonAppUiBase ? iAvkonAppUiBase->PointerEventModifier() : NULL; - if ( modifier && IsVisible() ) - { - modifier->Update( *this, ExtensionArea() ); - } + if (iExtension) + { + CAknDoubleSpanScrollBarExtension* extension = static_cast (iExtension); + if ( modifier && IsVisible() && !( extension->iExtensionType & ENoExpandedTouchArea ) ) + { + modifier->Update( *this, ExtensionArea() ); + } + } + else + { + if ( modifier && IsVisible() ) + { + modifier->Update( *this, ExtensionArea() ); + } + } AknsUtils::RegisterControlPosition( this ); if (iExtension) @@ -1304,7 +1315,7 @@ feedback->StartFeedback( this, ETouchContinuousSlider, &aPointerEvent, - KIntensity, // intensity 50% + KIntensity, // intensity 100% timeout ); } extension->SetModelThumbPosition(thumbPosition); diff -r 08e69e956a8c -r 71dd06cfe933 uifw/EikStd/coctlsrc/aknitemactionmenu.cpp --- a/uifw/EikStd/coctlsrc/aknitemactionmenu.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/EikStd/coctlsrc/aknitemactionmenu.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -99,7 +99,22 @@ { _AKNTRACE_FUNC_ENTER; _AKNTRACE_FUNC_EXIT; - return AknItemActionMenuRegister::RegisterCollectionL( aCollection ); + return AknItemActionMenuRegister::RegisterCollectionL( + aCollection, NULL ); + } + + +// --------------------------------------------------------------------------- +// CAknItemActionMenu::RegisterCollectionL +// --------------------------------------------------------------------------- +// +EXPORT_C CAknItemActionMenu* CAknItemActionMenu::RegisterCollectionL( + MAknCollection& aCollection, MObjectProvider* aMenuBarOwner ) + { + _AKNTRACE_FUNC_ENTER; + _AKNTRACE_FUNC_EXIT; + return AknItemActionMenuRegister::RegisterCollectionL( + aCollection, aMenuBarOwner ); } diff -r 08e69e956a8c -r 71dd06cfe933 uifw/EikStd/coctlsrc/aknitemactionmenuregister.cpp --- a/uifw/EikStd/coctlsrc/aknitemactionmenuregister.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/EikStd/coctlsrc/aknitemactionmenuregister.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -71,11 +71,34 @@ // --------------------------------------------------------------------------- +// AknItemActionMenuRegister::RemoveConstructingMenuBarOwner +// --------------------------------------------------------------------------- +// +EXPORT_C void AknItemActionMenuRegister::RemoveConstructingMenuBarOwner( + MObjectProvider* aMenuBarOwner ) + { + _AKNTRACE_FUNC_ENTER; + + if ( AppUiSingleClickCompatible() ) + { + AknItemActionMenuRegister* instance( Instance() ); + + if ( instance ) + { + instance->DoRemoveConstructingMenuBarOwner( aMenuBarOwner ); + } + } + + _AKNTRACE_FUNC_EXIT; + } + + +// --------------------------------------------------------------------------- // AknItemActionMenuRegister::RegisterCollectionL // --------------------------------------------------------------------------- // CAknItemActionMenu* AknItemActionMenuRegister::RegisterCollectionL( - MAknCollection& aCollectionState ) + MAknCollection& aCollectionState, MObjectProvider* aMenuBarOwner ) { _AKNTRACE_FUNC_ENTER; @@ -85,7 +108,8 @@ AknItemActionMenuRegister* instance( Instance() ); if ( instance ) { - menu = instance->DoRegisterCollectionL( aCollectionState ); + menu = instance->DoRegisterCollectionL( + aCollectionState, aMenuBarOwner ); } } @@ -320,12 +344,22 @@ // --------------------------------------------------------------------------- // CAknItemActionMenu* AknItemActionMenuRegister::DoRegisterCollectionL( - MAknCollection& aCollectionState ) + MAknCollection& aCollectionState, MObjectProvider* aMenuBarOwner ) { _AKNTRACE_FUNC_ENTER; CAknItemActionMenu* menu( NULL ); - CEikMenuBar* menuBar = FindCurrentMenuBarL(); + CEikMenuBar* menuBar = NULL; + + if ( aMenuBarOwner ) + { + aMenuBarOwner->MopGetObject( menuBar ); + } + + if ( !menuBar ) + { + menuBar = FindCurrentMenuBar(); + } menu = RegisterStateToItemActionMenuL( menuBar, aCollectionState ); _AKNTRACE_FUNC_EXIT; @@ -448,7 +482,7 @@ { _AKNTRACE_FUNC_ENTER; - CEikMenuBar* menuBar = FindCurrentMenuBarL(); + CEikMenuBar* menuBar = FindCurrentMenuBar(); if ( !menuBar || !iRegisterArray->RegisterCollectionObserverL( *menuBar, aObserver ) ) { @@ -751,16 +785,15 @@ // --------------------------------------------------------------------------- -// AknItemActionMenuRegister::FindCurrentMenuBarL +// AknItemActionMenuRegister::FindCurrentMenuBar // --------------------------------------------------------------------------- // -CEikMenuBar* AknItemActionMenuRegister::FindCurrentMenuBarL() +CEikMenuBar* AknItemActionMenuRegister::FindCurrentMenuBar() { _AKNTRACE_FUNC_ENTER; CAknAppUi* appUi = AppUI(); CEikonEnv* eikonEnv( CEikonEnv::Static() ); - TBool isConstructingDialog( EFalse ); CEikMenuBar* menuBar( NULL ); // If overriding menubar owner is set then it's the one to obey. If the @@ -771,34 +804,23 @@ _AKNTRACE_FUNC_EXIT; return OverridingObjectMenuBar(); } - - // Check if there is existing constructing dialog + + // by default choose the current constructing menubar owner if ( iMenuBarOwner ) { - CEikDialog* dialog( NULL ); - iMenuBarOwner->MopGetObjectNoChaining( dialog ); - if ( dialog ) - { - isConstructingDialog = ETrue; - } + menuBar = ConstructingObjectMenuBar(); } - // No constructing dialog - if ( !isConstructingDialog ) + else { // Fetch pointer to dialog that is currently displayed menuBar = DialogMenuBar( appUi ); + // No dialog - pointer to active view menu bar if ( !menuBar ) { menuBar = ViewMenuBar( appUi ); } } - - // Fetch pointer to constructing object menu bar - if ( !menuBar ) - { - menuBar = ConstructingObjectMenuBar(); - } // Finally, if no luck with others, fetch pointer to appUi menu bar. if ( !menuBar && eikonEnv ) @@ -901,31 +923,67 @@ iIsConstructingDialog = ETrue; } } - else if ( !aMenuBarOwner && iIsConstructingDialog ) + + iMenuBarOwner = aMenuBarOwner; + } + + +// --------------------------------------------------------------------------- +// AknItemActionMenuRegister::DoRemoveConstructingMenuBarOwner +// --------------------------------------------------------------------------- +// +void AknItemActionMenuRegister::DoRemoveConstructingMenuBarOwner( + MObjectProvider* aMenuBarOwner ) + { + TInt i = 0; + + // set all references to removed menubar owner to NULL + while ( i < iUnregisteredMenus.Count() ) { - // When setting constructing menubar owner to NULL from a dialog check - // if there is item with the same menubar owner in iUnregisteredMenus - // and try to find correct menubar for it. - for ( TInt i = 0; i < iUnregisteredMenus.Count(); i++ ) + TAknUnregisteredMenuData& data( iUnregisteredMenus[i] ); + + if ( data.iOwner == iMenuBarOwner ) { - TAknUnregisteredMenuData& data( iUnregisteredMenus[ i ] ); - if ( data.iOwner == iMenuBarOwner ) + data.iOwner = iMenuBarOwner = NULL; + + // When setting constructing menubar owner to NULL from a dialog + // check if there is item with the same menubar owner in + // iUnregisteredMenus and try to find correct menubar for it. + if ( iIsConstructingDialog ) { - data.iOwner = iMenuBarOwner = NULL; - CEikMenuBar* menuBar = FindCurrentMenuBarL(); + CEikMenuBar* menuBar = FindCurrentMenuBar(); + if ( menuBar ) { - AddRegisterEntryL( *menuBar, *data.iMenu ); + TRAP_IGNORE( AddRegisterEntryL( *menuBar, *data.iMenu ) ); iUnregisteredMenus.Remove( i ); + continue; } - iIsConstructingDialog = EFalse; - return; } } + + ++i; } - iMenuBarOwner = aMenuBarOwner; + + // NULL also possible references in unregistered observers + for ( i = 0; i < iUnregisteredObservers.Count(); ++i ) + { + TAknUnregisteredObserverData& data( iUnregisteredObservers[i] ); + + if ( data.iOwner == aMenuBarOwner ) + { + data.iOwner = NULL; + } + } + + if ( iMenuBarOwner == aMenuBarOwner ) + { + iIsConstructingDialog = EFalse; + iMenuBarOwner = NULL; + } } + // --------------------------------------------------------------------------- // AknItemActionMenuRegister::TAknUnregisteredObserverData // ::TAknUnregisteredObserverData diff -r 08e69e956a8c -r 71dd06cfe933 uifw/EikStd/coctlsrc/akntoolbarextensionview.cpp --- a/uifw/EikStd/coctlsrc/akntoolbarextensionview.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/EikStd/coctlsrc/akntoolbarextensionview.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -170,6 +170,10 @@ iItems[i]->Control()->ActivateL(); } SetComponentsToInheritVisibility( ETrue ); + +#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS + GfxTransEffect::Register( this, KGfxTransEffectToolbarExtensionControlUid); +#endif } // --------------------------------------------------------------------------- @@ -183,13 +187,7 @@ if ( aVisible && !isVisible ) { - // the toolbar extension is shown, this happens only with pointer event? - MTouchFeedback* feedback = MTouchFeedback::Instance(); - if ( feedback ) - { - feedback->InstantFeedback( ETouchFeedbackPopUp ); - } - + // the toolbar extension is shown, this happens only with pointer event? TRect rect; TRAP_IGNORE( rect = CalculateSizeL() ); CEikonEnv::Static()->EikAppUi()->UpdateStackedControlFlags( this, @@ -529,12 +527,6 @@ if ( !Rect().Contains( aPointerEvent.iPosition) && iIsDownOutside ) { // tapped outside view, - MTouchFeedback* feedback = MTouchFeedback::Instance(); - if ( feedback ) - { - feedback->InstantFeedback( ETouchFeedbackPopUp ); - } - MakeVisible( EFalse ); // Close extension view and let also extension know about it // so it can change state @@ -887,9 +879,6 @@ iSelectedItem( KNoItemSelected ), iNumberOfColumns( 1 ), iIsDownOutside( EFalse ) { -#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS - GfxTransEffect::Register( this, KGfxTransEffectToolbarExtensionControlUid); -#endif } diff -r 08e69e956a8c -r 71dd06cfe933 uifw/EikStd/coctlsrc/eikcba.cpp --- a/uifw/EikStd/coctlsrc/eikcba.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/EikStd/coctlsrc/eikcba.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -1772,7 +1772,7 @@ TRect rect; qgn_graf_sk_msk.LayoutRect( rect, - AknLayoutScalable_Avkon::control_pane_g4( 0 ).LayoutLine() ); + AknLayoutScalable_Avkon::control_pane_g4( 1 ).LayoutLine() ); TSize iconSize( qgn_graf_sk_msk.Rect().Width(), qgn_graf_sk_msk.Rect().Height() ); diff -r 08e69e956a8c -r 71dd06cfe933 uifw/EikStd/coctlsrc/smileymanager.cpp --- a/uifw/EikStd/coctlsrc/smileymanager.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/EikStd/coctlsrc/smileymanager.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -179,11 +179,14 @@ if ( image && aRect.Size() != image->BitmapSize() ) { image->SetBitmapSize( aRect.Size() ); - if ( icon->IsPlayFinished() ) + for ( TInt i( 0 ); i < image->RefArrayCount(); i++ ) { - icon->PlayOneTime(); - iDrawer->CreateImageL( image ); + if ( image->RefIcon( i )->IsPlayFinished() ) + { + image->RefIcon( i )->PlayOneTime(); + } } + iDrawer->CreateImageL( image ); } else if ( !image ) { diff -r 08e69e956a8c -r 71dd06cfe933 uifw/EikStd/dlgsrc/EIKDIALG.CPP --- a/uifw/EikStd/dlgsrc/EIKDIALG.CPP Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/EikStd/dlgsrc/EIKDIALG.CPP Wed Apr 14 16:14:00 2010 +0300 @@ -237,7 +237,7 @@ _AKNTRACE_FUNC_ENTER; AKNTASHOOK_REMOVE(); - AknItemActionMenuRegister::SetConstructingMenuBarOwnerL( NULL ); + AknItemActionMenuRegister::RemoveConstructingMenuBarOwner( this ); EnableContentObserver( EFalse ); @@ -1933,47 +1933,8 @@ return; } - TBool needToCheckExit = ETrue; - - if (aButtonId != EEikBidCancel) - { - PrepareForFocusTransitionL(); - } - else if (!(iDialogFlags & EEikDialogFlagNotifyEsc)) - { - needToCheckExit = EFalse; - } + TBool effectTriggered = EFalse; - if (needToCheckExit) - { - if (!OkToExitL(aButtonId)) - { - _AKNTRACE("CEikDialog::TryExitL return with OkToExitL false"); - return; - } - - if (aButtonId != EEikBidCancel) - { - GetAutoValues(); - } - } - - if (iExitConfirmed) - { - *iExitConfirmed = (MappedCommandId(aButtonId) == EEikBidCancel) ? 0 : aButtonId; - } - // Remove content observer in order to prevent unnecessary layout - // calculations in dialog shutdown. - EnableContentObserver(EFalse); - - if (iDialogFlags & EEikDialogFlagSleeping) - { - ExitSleepingDialog(); - } - else - { - // Trigger the transition effects for the exiting dialog. - CAknAppUi* aknAppUi = static_cast(iEikonEnv->EikAppUi()); TBool effectButton = aButtonId == EEikBidCancel || aButtonId == EAknSoftkeyExit || aButtonId == EAknSoftkeyBack @@ -1981,27 +1942,79 @@ #ifdef RD_UI_TRANSITION_EFFECTS_POPUPS effectButton = effectButton || aButtonId == EAknSoftkeyClose - || aButtonId == EAknSoftkeyDone; + || aButtonId == EAknSoftkeyDone + || aButtonId == EAknSoftkeyOk; +#endif + CAknAppUi* aknAppUi = static_cast( iEikonEnv->EikAppUi() ); + if (GfxTransEffect::IsRegistered(this) && IsVisible() && effectButton +#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS + && !(iDialogFlags&EEikDialogFlagSleeping) #endif - - if (GfxTransEffect::IsRegistered(this) && IsVisible() && effectButton && (!aknAppUi->IsFullScreenApp() || aknAppUi->IsForeground()) - && !IsBlankScreenDisplayed()) + && !IsBlankScreenDisplayed() + ) + { + CAknTransitionUtils::SetAllParents(this); + GfxTransEffect::Begin(this, KGfxControlDisappearAction); + GfxTransEffect::NotifyExternalState(ECaptureComponentsBegin, (const TDesC8*)this); + TRect demarcation; + CAknTransitionUtils::GetDemarcation(CAknTransitionUtils::EPopup, + demarcation); + GfxTransEffect::SetDemarcation(this, demarcation); + effectTriggered = ETrue; + } + + if (aButtonId!=EEikBidCancel) + PrepareForFocusTransitionL(); + else if (!(iDialogFlags&EEikDialogFlagNotifyEsc)) + goto finished; + if (!OkToExitL(aButtonId)) + { + if ( effectTriggered ) { - // Begin transition. - TRect demarcation; - CAknTransitionUtils::SetAllParents(this); - GfxTransEffect::Begin(this, KGfxControlDisappearAction); - GfxTransEffect::NotifyExternalState(ECaptureComponentsBegin, (const TDesC8*)this); - CAknTransitionUtils::GetDemarcation(CAknTransitionUtils::EPopup, demarcation); - GfxTransEffect::SetDemarcation(this, demarcation); - - // End transiton. - MakeVisible(EFalse); - CAknTransitionUtils::MakeVisibleSubComponents(this, - CAknTransitionUtils::EForceInvisible); - GfxTransEffect::NotifyExternalState(ECaptureComponentsEnd, (const TDesC8*)this); - GfxTransEffect::End(this); + GfxTransEffect::NotifyExternalState( ECaptureComponentsAbort, + ( const TDesC8* ) this ); + GfxTransEffect::Abort( this ); + } + _AKNTRACE_FUNC_EXIT; + return; + } + + if (aButtonId != EEikBidCancel) + GetAutoValues(); +finished: + if (iExitConfirmed) + *iExitConfirmed=((MappedCommandId( aButtonId ) ==EEikBidCancel)? 0: aButtonId); + + // Remove content observer in order to prevent unnecessary layout + // calculations in dialog shutdown. + EnableContentObserver( EFalse ); + + if (iDialogFlags&EEikDialogFlagSleeping) + ExitSleepingDialog(); + else + { + // Remove content observer in order to prevent unnecessary layout + // calculations in dialog shutdown. + EnableContentObserver( EFalse ); + + if ( effectTriggered ) + { + MakeVisible(EFalse); + CAknTransitionUtils::MakeVisibleSubComponents( this, + CAknTransitionUtils::EForceInvisible ); + + GfxTransEffect::NotifyExternalState(ECaptureComponentsEnd, (const TDesC8*)this); + GfxTransEffect::End(this); + } + else + { + MakeVisible(EFalse); + CAknTransitionUtils::MakeVisibleSubComponents( this, + CAknTransitionUtils::EForceInvisible ); + GfxTransEffect::NotifyExternalState( ECaptureComponentsAbort, + ( const TDesC8* ) this ); + GfxTransEffect::Abort(this); } delete(this); } diff -r 08e69e956a8c -r 71dd06cfe933 uifw/EikStd/dlgsrc/EIKDPAGE.CPP --- a/uifw/EikStd/dlgsrc/EIKDPAGE.CPP Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/EikStd/dlgsrc/EIKDPAGE.CPP Wed Apr 14 16:14:00 2010 +0300 @@ -3181,18 +3181,29 @@ upperItem = iLines->Count(); } } - if ( iPhysics->OngoingPhysicsAction() != CAknPhysics::EAknPhysicsActionNone ) + if ( upperItem == -1 || bottomItem == iLines->Count() ) { - if ( upperItem == -1 || bottomItem == iLines->Count() ) + if ( upperItem != iExtension->iTopItem || bottomItem != iExtension->iBottomItem ) { - if ( upperItem != iExtension->iTopItem || bottomItem != iExtension->iBottomItem ) + if( iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionDragging ) + { + iExtension->Feedback( this, ETouchFeedbackSensitiveList ); + } + else if( iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionFlicking) { iExtension->SilentFeedback( this, ETouchFeedbackSensitiveList, TPointerEvent() ); } } - else if ( upperItem >= 0 || bottomItem < iLines->Count() ) + } + else if ( upperItem >= 0 || bottomItem < iLines->Count() ) + { + if ( upperItem < iExtension->iTopItem || bottomItem > iExtension->iBottomItem ) { - if ( upperItem < iExtension->iTopItem || bottomItem > iExtension->iBottomItem ) + if( iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionDragging ) + { + iExtension->Feedback( this, ETouchFeedbackSensitiveList ); + } + else if( iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionFlicking) { iExtension->SilentFeedback( this, ETouchFeedbackSensitiveList, TPointerEvent() ); } diff -r 08e69e956a8c -r 71dd06cfe933 uifw/EikStd/srvuisrc/eikkeysoundserver.cpp --- a/uifw/EikStd/srvuisrc/eikkeysoundserver.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/EikStd/srvuisrc/eikkeysoundserver.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -282,7 +282,7 @@ void CEikKeySoundServer::Complete(TInt aError, TAudioThemeEvent aEvent) { if( aError != KErrNone && aError != ESilencedError - && aError != EEventCurrentlyPlaying ) + && aError != EEventCurrentlyPlaying && aError != KErrUnderflow) { PlaySid(aEvent, ETrue); } diff -r 08e69e956a8c -r 71dd06cfe933 uifw/eikctl/src/EIKCLB.CPP --- a/uifw/eikctl/src/EIKCLB.CPP Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/eikctl/src/EIKCLB.CPP Wed Apr 14 16:14:00 2010 +0300 @@ -481,7 +481,8 @@ #ifdef RD_LIST_STRETCH EXPORT_C void CEikColumnListBox::EnableStretching( const TBool aEnabled ) { - if ( ItemDrawer()->ColumnData()->StretchingEnabled() != aEnabled ) + if ( ItemDrawer() && + ( ItemDrawer()->ColumnData()->StretchingEnabled() != aEnabled ) ) { ItemDrawer()->ColumnData()->EnableStretching( aEnabled ); SizeChanged(); diff -r 08e69e956a8c -r 71dd06cfe933 uifw/eikctl/src/EIKCLBD.CPP --- a/uifw/eikctl/src/EIKCLBD.CPP Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/eikctl/src/EIKCLBD.CPP Wed Apr 14 16:14:00 2010 +0300 @@ -1944,8 +1944,11 @@ const TColors& aColors ) const { _AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ ); - CListBoxView* view = static_cast( iExtension->iControl )->View(); - if ( !view->ViewRect().Intersects( aRect ) ) + + __ASSERT_DEBUG( iExtension->iControl, Panic( EEikPanicNullPointer )); + + CEikListBox* listbox = static_cast( iExtension->iControl ); + if ( listbox && !listbox->View()->ViewRect().Intersects( aRect ) ) { // outside of the clipping rect -> don't process this item return; @@ -1960,7 +1963,7 @@ MAknsSkinInstance *skin = AknsUtils::SkinInstance(); MAknsControlContext *cc = AknsDrawUtils::ControlContext( Control() ); - if (!cc) + if ( !cc ) { cc = SkinBackgroundContext(); } @@ -1975,7 +1978,6 @@ CheckIfSubCellsIntersect( &textLines[0], &rectClipped[0], *aText, aRect ); } - CEikListBox* listbox = static_cast( iExtension->iControl ); #ifdef RD_UI_TRANSITION_EFFECTS_LIST MAknListBoxTfxInternal *transApi = CAknListLoader::TfxApiInternal( &aGc ); #endif // RD_UI_TRANSITION_EFFECTS_LIST @@ -2008,10 +2010,8 @@ } #endif // RD_UI_TRANSITION_EFFECTS_LIST } - - CEikListBox* list = static_cast( iExtension->iControl ); - - if ( iExtension->iCurrentRow < list->BottomItemIndex() ) + + if ( iExtension->iCurrentRow < listbox->BottomItemIndex() ) { AknListUtils::DrawSeparator( aGc, aRect, aColors.iText, skin ); } @@ -2027,7 +2027,7 @@ if ( transApi ) { transApi->StartDrawing( MAknListBoxTfxInternal::EListItem ); - CListBoxView* view = static_cast( iExtension->iControl )->View(); + CListBoxView* view = listbox->View(); aGc.SetClippingRect( view->ViewRect() ); } #endif // RD_UI_TRANSITION_EFFECTS_LIST @@ -2048,19 +2048,19 @@ TRgb textColor( aTextColor ); - if (aHighlight) + if ( aHighlight ) { textColor = aColors.iHighlightedText; aGc.SetBrushColor(aColors.iHighlightedBack); } - if (AknsUtils::AvkonSkinEnabled()) + if ( AknsUtils::AvkonSkinEnabled() ) { - if (iExtension->iTextColor != NULL) + if ( iExtension->iTextColor != NULL ) { textColor = iExtension->iTextColor; } - if (aHighlight && iExtension->iHighlightedTextColor != NULL) + if ( aHighlight && iExtension->iHighlightedTextColor != NULL ) { textColor = iExtension->iHighlightedTextColor; } @@ -2082,7 +2082,7 @@ // check if there are icons affecting this text layout TInt gSC = iExtension->AtSL(subCellIndex).iConditionValue; // graphical subcell which might affect this text subcell - if (gSC > -1) + if ( gSC > -1 ) { TInt tempIndex; while (gSC > -1) // when gSC == -1, we have found our graphical subcell @@ -2098,7 +2098,7 @@ } } - if (gSC == -1) // no affecting icons -> use default layout + if ( gSC == -1 ) // no affecting icons -> use default layout { textLineLayout = iExtension->AtSL(subCellIndex).iTextLayout; } @@ -2107,7 +2107,7 @@ if( !isLayoutAlignment ) { - switch(align) + switch( align ) { case CGraphicsContext::ELeft : { @@ -2165,9 +2165,9 @@ } TBool marqueeDisabled(EFalse); - if (listbox != NULL && - listbox->View() != NULL && - listbox->View()->ItemDrawer() != NULL) + if ( listbox != NULL && + listbox->View() != NULL && + listbox->View()->ItemDrawer() != NULL) { marqueeDisabled = listbox->View()->ItemDrawer()->Flags() & CListItemDrawer::EDisableMarquee; } @@ -2255,7 +2255,7 @@ continue; } - if (aHighlight && (index > 0xffff)) + if ( aHighlight && (index > 0xffff) ) { index = index >> 16; // we have different icon for highlight } @@ -2269,7 +2269,7 @@ graphicRect.LayoutRect(aRect,graphicLayout); TSize graphicSize( graphicRect.Rect().Size() ); - if (index>=0 && IconArray()) + if ( index>=0 && IconArray() ) { CGulIcon* icon=(*IconArray())[index]; CFbsBitmap* bitmap=icon->Bitmap(); @@ -2278,8 +2278,8 @@ { TSize size( bitmap->SizeInPixels() ); - if (size.iWidth != graphicSize.iWidth && - size.iHeight != graphicSize.iHeight ) + if ( size.iWidth != graphicSize.iWidth && + size.iHeight != graphicSize.iHeight ) { AknIconUtils::SetSize( bitmap, graphicSize, diff -r 08e69e956a8c -r 71dd06cfe933 uifw/eikctl/src/EIKMFNE.CPP --- a/uifw/eikctl/src/EIKMFNE.CPP Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/eikctl/src/EIKMFNE.CPP Wed Apr 14 16:14:00 2010 +0300 @@ -3982,18 +3982,24 @@ return(Date()); } -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 ) ) +EXPORT_C TKeyResponse CEikDateEditor::OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType ) + { + TKeyResponse ret = EKeyWasNotConsumed; + if ( iDateEditor->OfferKeyEventL( aKeyEvent, aType ) == EKeyWasConsumed ) + { + ret = EKeyWasConsumed; + } + else { - iDateEditor->UpdateMaxDay( *Font() ); + ret = CEikMfne::OfferKeyEventL( aKeyEvent, aType ); + if ( ( aType == EEventKey ) && + ( aKeyEvent.iCode == EKeyDownArrow || aKeyEvent.iCode == EKeyUpArrow ) ) + { + iDateEditor->UpdateMaxDay( *Font() ); + this->DrawDeferred(); + } } - - return CEikMfne::OfferKeyEventL(aKeyEvent, aType); + return ret; } EXPORT_C void CEikDateEditor::ConstructFromResourceL(TResourceReader& aResourceReader) diff -r 08e69e956a8c -r 71dd06cfe933 uifw/ganes/BWINS/ganesu.def --- a/uifw/ganes/BWINS/ganesu.def Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/ganes/BWINS/ganesu.def Wed Apr 14 16:14:00 2010 +0300 @@ -113,4 +113,5 @@ ?SetFlags@CHgVgMediaWall@@QAEXH@Z @ 112 NONAME ; void CHgVgMediaWall::SetFlags(int) ?SetItemToOpenedState@CHgVgMediaWall@@QAEXH@Z @ 113 NONAME ; void CHgVgMediaWall::SetItemToOpenedState(int) ?SetOpenedItemRect@CHgVgMediaWall@@QAEXABVTRect@@@Z @ 114 NONAME ; void CHgVgMediaWall::SetOpenedItemRect(class TRect const &) + ?SetMenuProviderL@CHgScroller@@QAEXPAVMObjectProvider@@@Z @ 115 NONAME ; void CHgScroller::SetMenuProviderL(class MObjectProvider *) diff -r 08e69e956a8c -r 71dd06cfe933 uifw/ganes/EABI/ganesu.def --- a/uifw/ganes/EABI/ganesu.def Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/ganes/EABI/ganesu.def Wed Apr 14 16:14:00 2010 +0300 @@ -168,4 +168,5 @@ _ZN14CHgVgMediaWall8SetFlagsEi @ 167 NONAME _ZN14CHgVgMediaWall17SetOpenedItemRectERK5TRect @ 168 NONAME _ZN14CHgVgMediaWall20SetItemToOpenedStateEi @ 169 NONAME + _ZN11CHgScroller16SetMenuProviderLEP15MObjectProvider @ 170 NONAME diff -r 08e69e956a8c -r 71dd06cfe933 uifw/ganes/inc/HgVgConstants.h --- a/uifw/ganes/inc/HgVgConstants.h Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/ganes/inc/HgVgConstants.h Wed Apr 14 16:14:00 2010 +0300 @@ -132,7 +132,7 @@ // Specific constants for full screen coverflow mediawall const TInt KMediaWallFullScreenItemsOnScreen(5); const TReal KMediaWallFullScreenCameraZoomFactor(1.5); - const TReal KMediaWallFullScreenCameraRotationFactor(PI/5.0); + const TReal KMediaWallFullScreenCameraRotationFactor(KCameraRotationFactor*1.5); const TReal KMediaWallFullScreenSpringVelocityToAnimationFactor(10); const TReal KMediaWallFullScreenZOffset(1); const TInt KMediaWallFullScreenRowCount(1); diff -r 08e69e956a8c -r 71dd06cfe933 uifw/ganes/inc/HgVgLetterPopup.h --- a/uifw/ganes/inc/HgVgLetterPopup.h Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/ganes/inc/HgVgLetterPopup.h Wed Apr 14 16:14:00 2010 +0300 @@ -83,7 +83,7 @@ /** * */ - void EnableLanscapeRendering(TBool enabled); + void EnableLandscapeRendering(TBool enabled); protected: // Constructors CHgVgPopup(); diff -r 08e69e956a8c -r 71dd06cfe933 uifw/ganes/src/HgGrid.cpp --- a/uifw/ganes/src/HgGrid.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/ganes/src/HgGrid.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -613,14 +613,14 @@ } else { + TInt mul = AknLayoutUtils::LayoutMirrored() ? -1 : 1; if( iLandscapeScrolling ) { - TInt change = AknLayoutUtils::LayoutMirrored() ? -iRows : iRows; - ChangeSelectedIndex( change ); + ChangeSelectedIndex( mul * iRows ); } else { - ChangeSelectedIndex( 1 ); + ChangeSelectedIndex( mul ); } FitSelectionToView(); SelectionChanged(); @@ -640,14 +640,14 @@ } else { + TInt mul = AknLayoutUtils::LayoutMirrored() ? 1 : -1; if( iLandscapeScrolling ) { - TInt change = AknLayoutUtils::LayoutMirrored() ? iRows : -iRows; - ChangeSelectedIndex( change ); + ChangeSelectedIndex( mul * iRows ); } else { - ChangeSelectedIndex( -1 ); + ChangeSelectedIndex( mul ); } FitSelectionToView(); SelectionChanged(); diff -r 08e69e956a8c -r 71dd06cfe933 uifw/ganes/src/HgScroller.cpp --- a/uifw/ganes/src/HgScroller.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/ganes/src/HgScroller.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -50,7 +50,7 @@ #include -const TInt KIntensity = 50; // 50% +const TInt KIntensity = 100; // 100% // ============================ MEMBER FUNCTIONS =============================== @@ -106,7 +106,7 @@ if( appUi && appUi->IsSingleClickCompatible() ) { iDetector = CAknLongTapDetector::NewL(this); - iActionMenu = CAknItemActionMenu::RegisterCollectionL(*this); + iActionMenu = CAknItemActionMenu::RegisterCollectionL( *this ); } iDrawUtils->EnableMarquee(HasHighlight()); @@ -555,7 +555,7 @@ iScrollbar->SetViewPosition( iViewPosition - TPoint(iWidth/2, iHeight/2)); if(prevStatic != iScrollbar->IsStatic()) - HandleScrollbarVisibilityChange(iScrollbar->IsStatic()); + HandleScrollbarVisibilityChange( !iScrollbar->IsStatic() ); } } // ----------------------------------------------------------------------------- @@ -1029,7 +1029,8 @@ iItems[selectedItem]->Time().FormatL( iPopupText1, KGanesMonthString ); iItems[selectedItem]->Time().FormatL( iPopupText2, KGanesYearString ); ) - // To display year correctly in arabic. + // To display month and year correctly in arabic. + AknTextUtils::LanguageSpecificNumberConversion( iPopupText1 ); AknTextUtils::LanguageSpecificNumberConversion( iPopupText2 ); } } @@ -1770,4 +1771,26 @@ } } +// --------------------------------------------------------------------------- +// CHgScroller::SetMenuProviderL() +// --------------------------------------------------------------------------- +// +EXPORT_C void CHgScroller::SetMenuProviderL( MObjectProvider* aMenuProvider ) + { + SetMopParent(aMenuProvider); + + if( iActionMenu ) + { + iActionMenu->RemoveCollection( *this ); + iActionMenu = NULL; + } + + CAknAppUi* appUi = static_cast(iEikonEnv->AppUi()); + if( appUi && appUi->IsSingleClickCompatible() ) + { + iActionMenu = CAknItemActionMenu::RegisterCollectionL( *this, this ); + } + } + + // End of File diff -r 08e69e956a8c -r 71dd06cfe933 uifw/ganes/src/HgVgLetterPopup.cpp --- a/uifw/ganes/src/HgVgLetterPopup.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/ganes/src/HgVgLetterPopup.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -221,7 +221,7 @@ iParentRect = aParentRect; } -void CHgVgPopup::EnableLanscapeRendering(TBool enabled) +void CHgVgPopup::EnableLandscapeRendering(TBool enabled) { iLandscape = enabled; } diff -r 08e69e956a8c -r 71dd06cfe933 uifw/ganes/src/HgVgMediaWall.cpp --- a/uifw/ganes/src/HgVgMediaWall.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/ganes/src/HgVgMediaWall.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -66,7 +66,9 @@ using namespace AknTouchGestureFw; using namespace HgVgConstants; - +#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION + #define MEDIAWALL_ORIENTATION_FIX +#endif // ============================ MEMBER FUNCTIONS =============================== // ----------------------------------------------------------------------------- @@ -139,6 +141,7 @@ iCoeEnv->WsSession().Flush(); #endif + SetMopParent( aParent ); SetFlags( EHgVgMediaWallDrawToWindowGC | EHgVgMediaWallUninitialized ); @@ -327,7 +330,6 @@ delete iKeyScrollingTimer; delete iAnimationTimer; delete iDelayedInit; - //delete iCompositionSource; delete iEGL; delete iSpring; delete iSurfaceBitmap; @@ -489,7 +491,8 @@ void CHgVgMediaWall::HandlePointerEventL( const TPointerEvent& aEvent ) { // Not faded and initialized and the drawing is set to be done to WinGc - if( !( iFlags & EHgVgMediaWallFaded ) + if( aEvent.iType == TPointerEvent::EButton1Down + && !( iFlags & EHgVgMediaWallFaded ) && !( iFlags & EHgVgMediaWallUninitialized ) && iFlags & EHgVgMediaWallDrawToWindowGC ) { @@ -1288,10 +1291,11 @@ CHgVgMediaWall* self = const_cast(this); - if (!self->DrawAll()) + if (self && !self->DrawAll()) return; - - iEGL->SwapBuffers(); + + if( iEGL ) + iEGL->SwapBuffers(); } @@ -1300,31 +1304,33 @@ // --------------------------------------------------------------------------- // void CHgVgMediaWall::DoAnimation() - { + { + TBool draw = ETrue; switch (iAnimationState) { case EHgVgMediaWallAnimationStateTransition: case EHgVgMediaWallAnimationStateFastTransition: { - DoTransitionAnimation(); + draw = DoTransitionAnimation(); } break; case EHgVgMediaWallAnimationStateOpening: case EHgVgMediaWallAnimationStateClosing: case EHgVgMediaWallAnimationStateIdle: case EHgVgMediaWallAnimationStateItemOpened: { - DoSelectionAnimation(); + draw = DoSelectionAnimation(); } break; } - - DrawOpenVG(); + + if(draw) + DrawOpenVG(); } // --------------------------------------------------------------------------- // CHgVgMediaWall::DoSelectionAnimation() // --------------------------------------------------------------------------- // -void CHgVgMediaWall::DoSelectionAnimation() +TBool CHgVgMediaWall::DoSelectionAnimation() { TTime now; now.HomeTime(); @@ -1336,6 +1342,7 @@ // calculate animation alpha TReal alpha = (TReal)diff / (TReal)KSelectionAnimationDuration; + TBool draw = ETrue; switch (iAnimationState) { @@ -1354,6 +1361,7 @@ case EHgVgMediaWallAnimationStateItemOpened: { iAnimationTimer->Cancel(); + draw = EFalse; if (iSelectionObserver) { if (iMediaWallStyle == EHgVgMediaWallStyleGrid) @@ -1370,7 +1378,9 @@ { iAnimationTimer->Cancel(); } break; - } + } + + return draw; } @@ -1378,7 +1388,7 @@ // CHgVgMediaWall::DoTransitionAnimation() // --------------------------------------------------------------------------- // -void CHgVgMediaWall::DoTransitionAnimation() +TBool CHgVgMediaWall::DoTransitionAnimation() { TTime now; now.HomeTime(); @@ -1406,7 +1416,8 @@ } } } - + + return ETrue; } void CHgVgMediaWall::HandleTransitionAnimationStop() @@ -1599,6 +1610,11 @@ iEGL->InitWindowSurfaceL(Window()); } + if(!iCompositionSource) + { + iCompositionSource = CAlfCompositionSource::NewL(Window()); + iCompositionSource->EnableAlpha(); + } delete iRenderer; iRenderer = NULL; delete iArtistLabel; iArtistLabel = NULL; @@ -2322,6 +2338,7 @@ delete iSkinRenderer; iSkinRenderer = NULL; delete iEmptyLabel; iEmptyLabel = NULL; delete iEGL; iEGL = NULL; + delete iCompositionSource; iCompositionSource = NULL; } // ----------------------------------------------------------------------------- @@ -2501,8 +2518,8 @@ void CHgVgMediaWall::InitLabelsL(TInt aLayoutVariant) { - TAknTextComponentLayout l0 = AknLayoutScalable_Apps::main_cf0_pane_t1(aLayoutVariant); - TAknTextComponentLayout l1 = AknLayoutScalable_Apps::main_cf0_pane_t2(aLayoutVariant); + TAknTextComponentLayout l0 = AknLayoutScalable_Apps::main_cf0_pane_t2(aLayoutVariant); + TAknTextComponentLayout l1 = AknLayoutScalable_Apps::main_cf0_pane_t1(aLayoutVariant); TAknLayoutText t0; TAknLayoutText t1; diff -r 08e69e956a8c -r 71dd06cfe933 uifw/ganes/src/HgVgMediaWallRenderer.cpp --- a/uifw/ganes/src/HgVgMediaWallRenderer.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/ganes/src/HgVgMediaWallRenderer.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -519,17 +519,6 @@ aAnimationAlpha, aState, aSelectionAnimationType, aStartIndex, aSpringVelocity); - vgSeti(VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE); - vgLoadIdentity(); - vgRotate(-90.0f); - vgTranslate(0.0f, -640.0f); - - vgSeti(VG_MATRIX_MODE, VG_MATRIX_IMAGE_USER_TO_SURFACE); - vgLoadIdentity(); - vgRotate(-90.0f); - vgTranslate(0.0f, -640.0f); - - TransformAndDraw(itemsOnScreen, aSelectionAnimationType); } diff -r 08e69e956a8c -r 71dd06cfe933 uifw/ganes/src/HgVgSkinRenderer.cpp --- a/uifw/ganes/src/HgVgSkinRenderer.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/ganes/src/HgVgSkinRenderer.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -59,7 +59,7 @@ void CHgVgSkinRenderer::ConstructL () { - iDrawBuffer = CHgVgDrawBuffer::NewL( TSize(iRect.Width(), iRect.Height()), EColor64K ); + iDrawBuffer = CHgVgDrawBuffer::NewL( TSize(iRect.Width(), iRect.Height()), EColor16MA ); } @@ -96,12 +96,6 @@ void CHgVgSkinRenderer::UpdateSkinL(const MObjectProvider* aProvider, const CCoeControl* aControl) { - // render skin to draw buffer - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - MAknsControlContext* cc = AknsDrawUtils::ControlContext( aProvider ); - AknsDrawUtils::DrawBackground( skin, cc, aControl, iDrawBuffer->Gc(), TPoint(0,0), - aControl->Rect(), KAknsDrawParamDefault ); - // destroy old vg image if (iSkinImage != VG_INVALID_HANDLE) { @@ -109,20 +103,27 @@ iSkinImage = VG_INVALID_HANDLE; } - // create new image for the skin - iSkinImage = vgCreateImage(VG_sRGB_565, - iRect.Width(), iRect.Height(), - VG_IMAGE_QUALITY_NONANTIALIASED); - - // handle out of memory - if( iSkinImage == VG_INVALID_HANDLE ) + // render skin to draw buffer + MAknsSkinInstance* skin = AknsUtils::SkinInstance(); + MAknsControlContext* cc = AknsDrawUtils::ControlContext( aProvider ); + if( AknsDrawUtils::DrawBackground( skin, cc, aControl, iDrawBuffer->Gc(), TPoint(0,0), + aControl->Rect(), KAknsDrawParamDefault ) ) { - User::Leave(KErrNoMemory); + // create new image for the skin + iSkinImage = vgCreateImage(VG_sRGBA_8888, + iRect.Width(), iRect.Height(), + VG_IMAGE_QUALITY_NONANTIALIASED); + + // handle out of memory + if( iSkinImage == VG_INVALID_HANDLE ) + { + User::Leave(KErrNoMemory); + } + + // Copy to draw buffer to vg image + iDrawBuffer->GetDrawBufferToVgImage(TRect(TPoint(0,0), TPoint(iRect.Width(), iRect.Height())), + TPoint(0,0), iSkinImage, VG_sARGB_8888); } - - // Copy to draw buffer to vg image - iDrawBuffer->GetDrawBufferToVgImage(TRect(TPoint(0,0), TPoint(iRect.Width(), iRect.Height())), - TPoint(0,0), iSkinImage, VG_sRGB_565); } void CHgVgSkinRenderer::SetRect( const TRect& aRect ) @@ -137,7 +138,16 @@ // void CHgVgSkinRenderer::Draw() const { - HgVgHelper::DrawImage(iSkinImage, TPoint(0, 0), iRect, EFalse, iLandscape); + + VGfloat color[] = {255,255,255,0}; + vgSetfv(VG_CLEAR_COLOR, 4, color); + if(iLandscape) + vgClear(0, 0, iRect.Height(), iRect.Width()); + else + vgClear(0, 0, iRect.Width(), iRect.Height()); + + if( iSkinImage != VG_INVALID_HANDLE ) + HgVgHelper::DrawImage(iSkinImage, TPoint(0, 0), iRect, EFalse, iLandscape); } void CHgVgSkinRenderer::EnableLanscapeRendering(TBool aLandscape) diff -r 08e69e956a8c -r 71dd06cfe933 uiutils/Findutil/inc/FindUtilChinese.h --- a/uiutils/Findutil/inc/FindUtilChinese.h Wed Mar 31 21:59:52 2010 +0300 +++ b/uiutils/Findutil/inc/FindUtilChinese.h Wed Apr 14 16:14:00 2010 +0300 @@ -603,6 +603,18 @@ */ MFindStringConverter* iConverter; + /** + * Avoid the performace problem cause by frequently TLS accessing + */ + CEikonEnv* iEikEnv; + + + /** + * Whether current process is phonebook(and its server) or not + */ + TBool iIsPhoneBook; + + }; diff -r 08e69e956a8c -r 71dd06cfe933 uiutils/Findutil/src/FindUtilChinese.cpp --- a/uiutils/Findutil/src/FindUtilChinese.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uiutils/Findutil/src/FindUtilChinese.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -108,7 +108,13 @@ iWatcherAdaptive = CFindRepositoryWatcher::NewL(KCRUidAvkon, TCallBack(HandleFindRepositoryCallBack, this), - iRepositoryFindAdaptive); + iRepositoryFindAdaptive); + iEikEnv = CEikonEnv::Static(); + if (iEikEnv) + { + TUid appUid(iEikEnv->EikAppUi()->Application()->AppDllUid()); + iIsPhoneBook = (appUid== KUidPhoneBook || appUid == KUidPhoneBookServer); + } } // --------------------------------------------------------- @@ -122,7 +128,9 @@ iSearchMethodPRC(EAdptSearchPinyin), iSearchMethodTaiWan(EAdptSearchZhuyin), iSearchMethodHongKong(EAdptSearchStroke), - iSearchMethodAdaptive(EFalse) + iSearchMethodAdaptive(EFalse), + iEikEnv(NULL), + iIsPhoneBook(EFalse) { } @@ -179,10 +187,9 @@ TBool CFindUtilChinese::DoTranslationL(TInt16 aHZUnicode, RPointerArray& aSpellList) { - if(CEikonEnv::Static()) + if(iEikEnv) { - if (iSearchMethodAdaptive &&(CEikonEnv::Static()->EikAppUi()->Application()->AppDllUid() == KUidPhoneBook || - CEikonEnv::Static()->EikAppUi()->Application()->AppDllUid() == KUidPhoneBookServer )) + if (iSearchMethodAdaptive && iIsPhoneBook) { if (!T9ChineseTranslationAdaptiveL(aHZUnicode, aSpellList)) {