--- a/applicationinterworkingfw/ServiceHandler/src/AiwServiceHandlerImpl.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/applicationinterworkingfw/ServiceHandler/src/AiwServiceHandlerImpl.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -21,7 +21,7 @@
#include <eikenv.h>
#include <aiwservicehandler.rsg>
-#include <EIKON.HRH>
+#include <eikon.hrh>
#include "AiwMenuBinding.h"
#include "AiwServiceHandlerImpl.h"
#include "AiwMenu.h"
--- a/classicui_plat/avkon_localised_texts_api/loc/avkon.loc Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_plat/avkon_localised_texts_api/loc/avkon.loc Fri Feb 19 23:04:46 2010 +0200
@@ -4199,5 +4199,70 @@
//r: TB9.2
#define qtn_su_note_insert_sim_and_restart "Insert SIM card and restart phone"
+//d: Text in touch inputmethod menu list
+//d: Command to switch handwriting input orientation to portrait.
+//l: list_single_pane_t1_cp2
+//r: TB9.2
+#define qtn_tin_option_menu_to_portrait_hwr "To portrait handwriting"
+
+//d: Text in touch inputmethod menu list
+//d: Command to switch handwriting input orientation to landscape.
+//l: list_single_pane_t1_cp2
+//r: TB9.2
+#define qtn_tin_option_menu_to_landscape_hwr "To landscape handwriting"
+
+//d: Text in touch inputmethod menu list
+//d: Command to switch to virtual key based input methods.
+//l: list_single_pane_t1_cp2
+//r: TB9.2
+#define qtn_tin_option_menu_switch_to_vkey_input "Switch to virtual key based input"
+
+//d: Text in touch inputmethod menu list
+//d: Command to display writing speed setting list.
+//l: list_single_pane_t1_cp2
+//r: TB9.2
+#define qtn_tin_settings_writing_speed "Writing speed"
+
+//d: Text in touch inputmethod menu list
+//d: Command to display guide line setting list.
+//l: list_single_pane_t1_cp2
+//r: TB9.2
+#define qtn_tin_settings_guiding_line "Guiding Line"
+
+//d: Text in Chinese ITUT popup note
+//d: Notification that clarify that only Chinese character can be input
+//l: popup_note_window
+//r: TB9.2
+#define qtn_chi_chinese_user_db_note_invalid_phrase "Invalid phrase"
+
+//d: Text in Chinese ITUT popup note
+//d: Notification that clarify that the phrase is not exist in database
+//l: popup_note_window
+//r: TB9.2
+#define qtn_chi_chinese_user_db_note_phrase_not_existed "The phrase is not exist in database"
+
+//d: Text in Chinese ITUT popup note
+//d: Notification that clarify that the database has no space to save the new phrase
+//l: popup_note_window
+//r: TB9.2
+#define qtn_chi_chinese_user_db_note_db_have_no_space "The database has no space now"
+
+//d: Text in Chinese ITUT popup note
+//d: Notification that clarify that the new phrase is too long
+//l: popup_note_window
+//r: TB9.2
+#define qtn_chi_chinese_user_db_note_phrase_too_long "The phrase is too long"
+
+//d: Text in Chinese ITUT popup wait note
+//d: Notification that it is deleting phrase
+//l: popup_note_wait_window
+//r: TB9.2
+#define qtn_chi_chinese_user_db_note_deleting_phrases "It is deleting phrases"
+
+//d: Text in Chinese ITUT confirmation query prompt
+//d: Notification that confirm to delete the phrases
+//l: popup_note_window
+//r: TB9.2
+#define qtn_chi_chinese_user_db_note_confirm_deletions "Delete %N Phrase?"
// End of File
--- a/classicui_plat/avkon_settings_api/inc/AvkonInternalCRKeys.h Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_plat/avkon_settings_api/inc/AvkonInternalCRKeys.h Fri Feb 19 23:04:46 2010 +0200
@@ -278,6 +278,22 @@
*/
const TUint32 KAknEmotionResourceFileName = 0x00000015;
+/**
+ * they store the type of keyboard in slide close/slide open modes
+ * according to the following enumeration:
+ * 0 = no keyboard
+ * 1 = 12 keys keyboard
+ * 2 = 4x12 qwerty keyboard
+ * 3 = 4x10 qwerty keyboard
+ * 4 = 3x11 qwerty keyboard
+ * 5 = half qwerty keyboard
+ * 6 = custom qwerty keyboard
+ * 7 = max layout keyboard
+ */
+const TUint32 KAknKeyboardSlideClose = 0x00000016;
+
+const TUint32 KAknKeyboardSlideOpen = 0x00000017;
+
const TUid KCRUidLeaveAppsInMemory = { 0x102858F2 };
/**
--- a/classicui_plat/extended_aiw_criteria_api/inc/AiwContactSelectionDataTypes.h Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_plat/extended_aiw_criteria_api/inc/AiwContactSelectionDataTypes.h Fri Feb 19 23:04:46 2010 +0200
@@ -22,7 +22,7 @@
#ifndef __AIWCONTACTSELECTIONDATATYPES_H__
#define __AIWCONTACTSELECTIONDATATYPES_H__
-#include <aiwgenericparam.hrh>
+#include <AiwGenericParam.hrh>
class RVPbkContactFieldDefaultPriorities;
class CVPbkFieldTypeSelector;
@@ -838,7 +838,7 @@
typedef TPckgBuf<TAiwSingleItemSelectionDataV3> TAiwSingleItemSelectionDataV3Pckg;
typedef TPckgBuf<TAiwMultipleItemSelectionDataV1> TAiwMultipleItemSelectionDataV1Pckg;
-#include <aiwcontactselectiondatatypes.inl>
+#include <AiwContactSelectionDataTypes.inl>
#endif // __AiwContactSelectionDataTypes_H__
--- a/classicui_plat/extended_aiw_criteria_api/inc/AiwDialDataTypes.h Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_plat/extended_aiw_criteria_api/inc/AiwDialDataTypes.h Fri Feb 19 23:04:46 2010 +0200
@@ -23,7 +23,7 @@
#define AIWDIALDATATYPES_H
#include <cntdef.h> // For KNullContactId
-#include <tpbkcontactitemfield.h> // For contact item field
+#include <TPbkContactItemField.h> // For contact item field
// CONSTANTS
@@ -531,7 +531,7 @@
// Inline methods
-#include <aiwdialdatatypes.inl>
+#include <AiwDialDataTypes.inl>
#endif // AIWDIALDATATYPES_H
--- a/classicui_plat/extended_aiw_criteria_api/inc/AiwPoCParameters.h Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_plat/extended_aiw_criteria_api/inc/AiwPoCParameters.h Fri Feb 19 23:04:46 2010 +0200
@@ -23,7 +23,7 @@
#define AIWPOCPARAMETERS_H
// INCLUDES
-#include <aiwpocparameters.hrh>
+#include <AiwPoCParameters.hrh>
#include <logwrap.h>
// DATA TYPES
@@ -222,7 +222,7 @@
};
// Inline methods
-#include <aiwpocparameters.inl>
+#include <AiwPoCParameters.inl>
#endif // AIWPOCPARAMETERS_H
--- a/classicui_plat/extended_editors_api/inc/AknPhoneNumberEditor.h Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_plat/extended_editors_api/inc/AknPhoneNumberEditor.h Fri Feb 19 23:04:46 2010 +0200
@@ -248,7 +248,7 @@
*/
EXPORT_C void OpenVKB();
-
+ void MakeVisible(TBool aVisible);
private:
//new functions, for ccpu support
/**
--- a/classicui_plat/extended_options_menu_api/inc/akncollection.h Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_plat/extended_options_menu_api/inc/akncollection.h Fri Feb 19 23:04:46 2010 +0200
@@ -19,6 +19,7 @@
#define M_AKNCOLLECTION_H
#include <e32std.h>
+#include <coemop.h>
/**
* Collection state provider.
@@ -34,6 +35,8 @@
{
public:
+ DECLARE_TYPE_ID( 0x2002C343 )
+
/**
* Enum for collection state flags.
*/
--- a/classicui_plat/extended_options_menu_api/inc/aknitemactionmenu.h Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_plat/extended_options_menu_api/inc/aknitemactionmenu.h Fri Feb 19 23:04:46 2010 +0200
@@ -20,6 +20,7 @@
#include <e32base.h>
#include <eikmobs.h>
+#include <coemop.h>
class MAknCollection;
class MAknCollectionObserver;
@@ -66,6 +67,8 @@
public:
+ DECLARE_TYPE_ID( 0x2002C344 )
+
/**
* Two-phased constructor.
*
--- a/classicui_plat/ganes_api/inc/ganes/HgScroller.h Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_plat/ganes_api/inc/ganes/HgScroller.h Fri Feb 19 23:04:46 2010 +0200
@@ -23,7 +23,7 @@
#include <coecntrl.h>
#include <coemain.h>
-#include <AknPhysicsObserverIface.h>
+#include <aknphysicsobserveriface.h>
#include <aknlongtapdetector.h>
#include <akncollection.h>
#include <ganes/HgBufferOwnerIface.h>
--- a/classicui_plat/legacy_ui_framework_headers_api/inc/calslbs.h Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_plat/legacy_ui_framework_headers_api/inc/calslbs.h Fri Feb 19 23:04:46 2010 +0200
@@ -22,7 +22,7 @@
#ifndef __CALSLBS_H__
#define __CALSLBS_H__
-#include <aknutils.h>
+#include <AknUtils.h>
#endif
--- a/classicui_plat/media_shared_document_api/inc/MediaSharedDocument.h Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_plat/media_shared_document_api/inc/MediaSharedDocument.h Fri Feb 19 23:04:46 2010 +0200
@@ -25,7 +25,7 @@
#define __CMEDIASHAREDDOCUMENT_H__
// INCLUDES
-#include <akndoc.h>
+#include <AknDoc.h>
#include <eikapp.h>
// CLASS DEFINITION
--- a/classicui_pub/editors_api/inc/EIKEDWIN.H Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_pub/editors_api/inc/EIKEDWIN.H Fri Feb 19 23:04:46 2010 +0200
@@ -2874,12 +2874,6 @@
*/
TBool IsSelectionVisible();
- /**
- * check the character is valid numeric character or not
- * @param aChar
- * @return if the aChar is invalid numeric char return EFalse else return ETrue
- */
- TBool IsValidNumericCharL( TChar aChar );
protected: // from MObjectProvider
--- a/classicui_pub/editors_api/inc/EikCcpu.h Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_pub/editors_api/inc/EikCcpu.h Fri Feb 19 23:04:46 2010 +0200
@@ -206,9 +206,10 @@
IMPORT_C void ProcessCommandL(TInt aCommandId);
private:
- void UpdateCBALabelsL();
- TBool UpdateCBALabelL(TInt aPosition, TInt aCommandId, TInt aTextResId);
- void SetEmphasis(CCoeControl* aMenuControl,TBool aEmphasis);
+ void UpdateCBALabelsL();
+ TBool UpdateCBALabelL(TInt aPosition, TInt aCommandId, TInt aTextResId);
+ void SetEmphasis(CCoeControl* aMenuControl,TBool aEmphasis);
+ void DeleteCBAL();
private:
/**
@@ -216,14 +217,16 @@
*/
IMPORT_C void* ExtensionInterface( TUid aInterface );
private:
- TBitFlags iFlags;
-
- // Owned
- CEikButtonGroupContainer* iCba;
+ TBitFlags iFlags;
+ TBool isCbaEmded;
+ // Owned
+ CEikButtonGroupContainer* iCba;
+
// Not owned
CEikMenuBar* iMenu;
MEikCcpuEditor* iEditor;
+ CEikButtonGroupContainer* iDialogCba;
};
#endif // EIKCCPU_H
--- a/classicui_pub/group/bld.inf Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_pub/group/bld.inf Fri Feb 19 23:04:46 2010 +0200
@@ -79,3 +79,4 @@
#include "../stylus_popup_menu_api/group/bld.inf"
#include "../information_preview_popup_api/group/bld.inf"
#include "../intermediate_state_api/group/bld.inf"
+#include "../help_launcher_api/group/bld.inf"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/classicui_pub/help_launcher_api/group/bld.inf Fri Feb 19 23:04:46 2010 +0200
@@ -0,0 +1,27 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: help launcher API
+:
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+../inc/HLPLCH.H MW_LAYER_PUBLIC_EXPORT_PATH(hlplch.h)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/classicui_pub/help_launcher_api/inc/HLPLCH.H Fri Feb 19 23:04:46 2010 +0200
@@ -0,0 +1,102 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Help Launcher module
+//
+//
+
+#ifndef __HLPLCH_H__
+#define __HLPLCH_H__
+
+#if !defined(__APGTASK_H__)
+#include <apgtask.h>
+#endif
+
+#if !defined(__EIKDLL_H__)
+#include <eikdll.h>
+#endif
+
+#if !defined(__WSERV_H__)
+#include <w32std.h>
+#endif
+
+#if !defined(__COEHELP_H__)
+#include <coehelp.h>
+#endif
+
+/** Help application UID.
+@internalComponent
+@released
+*/
+const TUid KHlpAppUid={ 0x10005234 };
+
+/** UID of window message to send to application.
+@internalComponent
+@released
+*/
+const TUid KHlpAppWsMsg={ 0x100055c7 };
+
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
+
+/** Maximum length of command line to launch application.
+@internalComponent
+@released
+*/
+const TInt KMaxCmdLineLength = 512;
+
+// resource file name
+_LIT(KHelpLauncherResource, "z:\\resource\\apps\\lch.rsc");
+
+class CHlpCmdLine : public CBase
+/**
+@internalComponent
+@released
+*/
+ {
+public:
+ static CHlpCmdLine* NewL(CArrayFix<TCoeHelpContext>* aContextList);
+ static CHlpCmdLine* NewLC(CArrayFix<TCoeHelpContext>* aContextList);
+ ~CHlpCmdLine();
+public:
+ TPtr8 CmdLineL();
+private:
+ void BuildCmdLineL();
+ void AddContextL(TCoeHelpContext& aContext);
+private:
+ void ConstructL();
+ CHlpCmdLine(CArrayFix<TCoeHelpContext>* aContextList);
+private:
+ CArrayFix<TCoeHelpContext>* iContextList;
+ CBufFlat* iCmdLine;
+ };
+
+#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
+
+class HlpLauncher
+/** Launches the help application.
+
+It assumes that such an application is at z:\\Sys\\Bin\\CsHelp.exe
+
+@publishedAll
+@released
+*/
+ {
+public:
+ IMPORT_C static void LaunchHelpApplicationL(RWsSession& aWsSession, CArrayFix<TCoeHelpContext>* aContextList);
+ IMPORT_C static void LaunchHelpApplicationL(RWsSession& aWsSession, TUid aUid);
+ IMPORT_C static void LaunchHelpApplicationL(RWsSession& aWsSession);
+private:
+ static void DoLaunchHelpApplicationL(RWsSession& aWsSession, const TDesC8& aCmdLine);
+ };
+
+#endif
--- a/classicui_pub/lists_api/inc/EIKLBX.H Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_pub/lists_api/inc/EIKLBX.H Fri Feb 19 23:04:46 2010 +0200
@@ -1436,6 +1436,15 @@
* @param aItems Number of items in one grid line.
*/
IMPORT_C void SetItemsInSingleLine(TInt aItems);
+
+ /**
+ * Gets the number of list items in one line. This is more than one for
+ * grids only.
+ *
+ * @since S60 5.2
+ * @return The number of list items in one line.
+ */
+ IMPORT_C TInt ItemsInSingleLine() const;
/**
* Removes pointer event filtering for list items.
--- a/classicui_pub/lists_api/inc/eikfrlb.h Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_pub/lists_api/inc/eikfrlb.h Fri Feb 19 23:04:46 2010 +0200
@@ -248,7 +248,8 @@
/**
* @internal
*/
- void DrawBackgroundAndSeparatorLines( const TRect& aItemTextRect ) const;
+ void DrawBackgroundAndSeparatorLines( const TRect& aItemTextRect,
+ TBool aDrawSeparator ) const;
private:
--- a/classicui_pub/lists_api/tsrc/conf/tctestsdklistseiklbx.cfg Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_pub/lists_api/tsrc/conf/tctestsdklistseiklbx.cfg Fri Feb 19 23:04:46 2010 +0200
@@ -684,3 +684,8 @@
title TestLBDisableItemSpecificMenu
run testscripter c:\testframework\ui_testsdklistseiklbx.cfg 137
[Endtest]
+
+[Test]
+title TestLBItemsInSingleLine
+run testscripter c:\testframework\ui_testsdklistseiklbx.cfg 138
+[Endtest]
--- a/classicui_pub/lists_api/tsrc/conf/ui_testsdklistseiklbx.cfg Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_pub/lists_api/tsrc/conf/ui_testsdklistseiklbx.cfg Fri Feb 19 23:04:46 2010 +0200
@@ -1089,3 +1089,12 @@
test TestLBDisableItemSpecificMenu
delete test
[Endtest]
+
+[Test] //138
+title TestLBItemsInSingleLine
+create testsdklists test
+test TestLBConstructorL
+test TestLBConstructWithTGulBorderL
+test TestLBItemsInSingleLine
+delete test
+[Endtest]
--- a/classicui_pub/lists_api/tsrc/inc/testsdklists.h Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_pub/lists_api/tsrc/inc/testsdklists.h Fri Feb 19 23:04:46 2010 +0200
@@ -5867,6 +5867,15 @@
* @return Symbian OS error code.
*/
virtual TInt TestLBDisableItemSpecificMenu( CStifItemParser& aItem );
+
+ /**
+ * TestLBItemsInSingleLine test function for testing the
+ * ItemsInSingleLine function
+ * @since S60 5.2
+ * @param aItem never used
+ * @return Symbian OS error code.
+ */
+ virtual TInt TestLBItemsInSingleLine( CStifItemParser& aItem );
private: // eikslb.h
// class CSettingsListBoxItemDrawer
--- a/classicui_pub/lists_api/tsrc/src/testsdklistsblocks.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_pub/lists_api/tsrc/src/testsdklistsblocks.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -765,6 +765,7 @@
ENTRY( "TestLBDisableSingleClick", CTestSDKLists::TestLBDisableSingleClick ),
ENTRY( "TestLBDisableItemSpecificMenu", CTestSDKLists::TestLBDisableItemSpecificMenu ),
+ ENTRY( "TestLBItemsInSingleLine", CTestSDKLists::TestLBItemsInSingleLine ),
// class CEikSnakingListBox
ENTRY( "TestSLBConstructorL", CTestSDKLists::TestSLBConstructorL ),
--- a/classicui_pub/lists_api/tsrc/src/testsdklistsblockseiklbx.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_pub/lists_api/tsrc/src/testsdklistsblockseiklbx.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -37,6 +37,7 @@
#include "testsdklistssnakinglistbox.h"
const TInt KZero = 0;
+const TInt KOne = 1;
const TInt KFour = 4;
const TInt KFive = 5;
const TInt KEight = 8;
@@ -4373,4 +4374,24 @@
return KErrNone;
}
+// -----------------------------------------------------------------------------
+// CTestSDKLists::TestLBItemsInSingleLine
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKLists::TestLBItemsInSingleLine( CStifItemParser& /*aItem*/)
+ {
+ // Print to UI
+ _LIT( KTestModule, "EIKLBXTestModule" );
+ _LIT( KTestEIKLBX, "In TestLBItemsInSingleLine" );
+ TestModuleIf().Printf( 0, KTestModule, KTestEIKLBX );
+ // Print to log file
+ iLog->Log( KTestEIKLBX );
+
+ TInt itemsInSingleLine = iListBox->ItemsInSingleLine();
+ STIF_ASSERT_EQUALS( KOne, itemsInSingleLine );
+
+ return KErrNone;
+ }
+
+
// [End of file]
--- a/classicui_pub/options_menu_api/inc/EIKMENUP.H Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_pub/options_menu_api/inc/EIKMENUP.H Fri Feb 19 23:04:46 2010 +0200
@@ -991,6 +991,21 @@
* Creates menu pane's extension object if it doesn't exist yet.
*/
void CheckCreateExtensionL();
+
+ /**
+ * Calculates the rectangle occupied by an item.
+ *
+ * @param aItemIndex Item's index.
+ * @return Item's rectangle.
+ */
+ TRect ItemRect( TInt aItemIndex ) const;
+
+ /**
+ * Calculates the height of menu items.
+ *
+ * @return Item height.
+ */
+ TInt CalculateItemHeight() const;
protected: // from CoeControl
@@ -1072,7 +1087,7 @@
CEikButtonBase* iLaunchingButton; // for popouts only
TInt iSubPopupWidth; // 0..2
TInt iSpare;
- CEikMenuPaneExtension* iExtension ;
+ CEikMenuPaneExtension* iExtension;
};
--- a/classicui_pub/popups_api/inc/AknPopupField.h Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_pub/popups_api/inc/AknPopupField.h Fri Feb 19 23:04:46 2010 +0200
@@ -246,6 +246,12 @@
*/
IMPORT_C void SetInvalidTextL(const TDesC &aInvalidText);
+ /**
+ * Closes the selection list
+ *
+ * @since v5.2
+ */
+ IMPORT_C void CloseSelectionListL();
public: // from CCoeControl
--- a/classicui_pub/screen_saver_api/inc/ScreensaverpluginIntDef.h Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_pub/screen_saver_api/inc/ScreensaverpluginIntDef.h Fri Feb 19 23:04:46 2010 +0200
@@ -20,7 +20,7 @@
// INCLUDES
#include <e32base.h>
-#include <Ecom/implementationinformation.h>
+#include <ecom/implementationinformation.h>
#include <screensaverplugin.h>
// CONSTANTS
--- a/classicui_pub/screen_saver_api/inc/ScreensaverpluginIntDef.inl Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_pub/screen_saver_api/inc/ScreensaverpluginIntDef.inl Fri Feb 19 23:04:46 2010 +0200
@@ -18,7 +18,7 @@
// INCLUDES
-#include <Ecom/ecom.h> // For REComSession
+#include <ecom/ecom.h> // For REComSession
#include <ScreensaverpluginIntDef.hrh> // For KCScreensaverPluginInterfaceDefinitionUid
// CONSTANTS
--- a/classicui_pub/status_pane_api/inc/eikspane.h Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_pub/status_pane_api/inc/eikspane.h Fri Feb 19 23:04:46 2010 +0200
@@ -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"
@@ -535,6 +535,7 @@
TInt InitialUsedResourceId();
TRect LargestBoundingRect( TRegion& aWholeRegion,
TRegion& aRemovedRegion ) const;
+ void SetCombinedPaneVisibilityL( TBool aVisible );
protected:
--- a/classicui_pub/ui_framework_definitions_api/inc/avkon.hrh Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_pub/ui_framework_definitions_api/inc/avkon.hrh Fri Feb 19 23:04:46 2010 +0200
@@ -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"
@@ -371,7 +371,12 @@
* Command id for dealing with discreet popup's close
*/
EAknDiscreetPopupCmdClose,
-
+ // Commands ids for arabic finger hwr option menu
+ EPenInputCmdHwrInputToPortrait,
+ EPenInputCmdHwrInputToLandscape,
+ EPenInputCmdSwitchToVkeyBasedInput,
+ EPenInputCmdWritingSpeed,
+ EPenInputCmdGuidingLine,
/**
* @deprecated
* Do not use.
@@ -622,6 +627,11 @@
/** For slider with feedback style */
/** @since 5.1 */
EAknSliderWithFeedbackStyle,
+
+ /** For combined sub-pane in status pane */
+ /** @since 5.2 */
+ EAknCtCombinedPane,
+
// This is the marker for the last AVKON control id: It does not construct a control
EAknCtLastControlId = KAknCtLastControlId
@@ -932,6 +942,7 @@
#define EEikStatusPaneUidClock 0x100059C0
#define EEikStatusPaneUidDigitalClock 0x10275090
#define EEikStatusPaneUidEmpty 0x102750A3
+#define EEikStatusPaneUidCombined 0x2001E2D9
// POPUP_FIELD flags
#define EAknPopupFieldFlagAllowsUserDefinedEntry 0x01
--- a/classicui_pub/ui_framework_definitions_api/inc/avkon.rh Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_pub/ui_framework_definitions_api/inc/avkon.rh Fri Feb 19 23:04:46 2010 +0200
@@ -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"
@@ -1038,3 +1038,29 @@
LLINK minorSkinId = -1; // icon minor skin id
LLINK extension = 0; // reserved for future extension
}
+
+// --------------------------------------------------------------------------
+// COMBINED_PANE
+// Resource structure for status pane's combined pane.
+// @since 5.2
+// --------------------------------------------------------------------------
+//
+STRUCT COMBINED_PANE
+ {
+ BYTE version = 1; // Structure version.
+ STRUCT panes[]; // Array of subpanes embedded to the combined pane.
+ LLINK extension = 0; // Extension for future use.
+ }
+
+// --------------------------------------------------------------------------
+// COMBINED_PANE_SUBPANE
+// Resource structure for combined pane's subpane (in status pane).
+// @since 5.2
+// --------------------------------------------------------------------------
+//
+STRUCT COMBINED_PANE_SUBPANE
+ {
+ BYTE version = 1; // Structure version.
+ LONG uid; // UID of the subpane, defined in @c avkon.hrh.
+ LLINK extension = 0; // Extension for future use.
+ }
--- a/classicui_pub/ui_framework_utilities_api/inc/AknUtils.h Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_pub/ui_framework_utilities_api/inc/AknUtils.h Fri Feb 19 23:04:46 2010 +0200
@@ -2700,6 +2700,27 @@
CCoeControl* aControl );
};
+
+/**
+ * Helper functions for Lists
+ *
+ * @since S60 v5.2
+ */
+class AknListUtils
+ {
+public:
+ /**
+ * Draws a separator line between list items.
+ *
+ * @param aGc Graphics context where separator is drawn to.
+ * @param aRect Rectangle occupied by the item that is separated.
+ * @param aColor Text color used in item. Separator is drawn with this
+ * color and additional alpha mask.
+ */
+ IMPORT_C static void DrawSeparator( CGraphicsContext& aGc,
+ const TRect& aRect, const TRgb& aColor );
+ };
+
#endif // __AKNUTILS_H__
// End of file
--- a/classicui_pub/ui_framework_utilities_api/tsrc/conf/tctestsdkuifwutilaknutils.cfg Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_pub/ui_framework_utilities_api/tsrc/conf/tctestsdkuifwutilaknutils.cfg Fri Feb 19 23:04:46 2010 +0200
@@ -388,3 +388,12 @@
run testscripter c:\testframework\ui_testsdkuifwutilaknutils.cfg 78
[Endtest]
+[Test]
+title TestAknPopupUtilsPosition
+run testscripter c:\testframework\ui_testsdkuifwutilaknutils.cfg 79
+[Endtest]
+
+[Test]
+title TestAknListUtilsDrawSeparator
+run testscripter c:\testframework\ui_testsdkuifwutilaknutils.cfg 80
+[Endtest]
--- a/classicui_pub/ui_framework_utilities_api/tsrc/conf/ui_testsdkuifwutilaknutils.cfg Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_pub/ui_framework_utilities_api/tsrc/conf/ui_testsdkuifwutilaknutils.cfg Fri Feb 19 23:04:46 2010 +0200
@@ -544,3 +544,17 @@
delete test
[Endtest]
+[Test]
+title TestAknPopupUtilsPosition
+create testsdkuifwutil test
+test TestAknPopupUtilsPosition
+delete test
+[Endtest]
+
+[Test]
+title TestAknListUtilsDrawSeparator
+create testsdkuifwutil test
+test TestAknListUtilsDrawSeparator
+delete test
+[Endtest]
+
--- a/classicui_pub/ui_framework_utilities_api/tsrc/inc/testsdkuifwutil.h Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_pub/ui_framework_utilities_api/tsrc/inc/testsdkuifwutil.h Fri Feb 19 23:04:46 2010 +0200
@@ -1102,7 +1102,15 @@
* @param aItem is not used.
* @return Symbian OS error code.
*/
- virtual TInt TestAknPopupUtilsPositionFuncs( CStifItemParser& aItem );
+ virtual TInt TestAknPopupUtilsPosition( CStifItemParser& aItem );
+
+ /**
+ * TestAknListUtilsDrawSeparator test separator line drawing in aknutils.h.
+ * @since S60 5.2
+ * @param aItem is not used.
+ * @return Symbian OS error code.
+ */
+ virtual TInt TestAknListUtilsDrawSeparator( CStifItemParser& aItem );
private: // Data
--- a/classicui_pub/ui_framework_utilities_api/tsrc/src/testsdkuifwutilblocks.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_pub/ui_framework_utilities_api/tsrc/src/testsdkuifwutilblocks.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -143,7 +143,8 @@
ENTRY( "TestAknDrawWithSkinsDoDrawFuncsL", CTestSDKUiFwUtil::TestAknDrawWithSkinsDoDrawFuncsL ),
ENTRY( "TestAknUtilsGlobalFuncsL", CTestSDKUiFwUtil::TestAknUtilsGlobalFuncsL ),
ENTRY( "TestFilterTextListBoxModelRemoveFilterL", CTestSDKUiFwUtil::TestFilterTextListBoxModelRemoveFilterL ),
- ENTRY( "TestAknPopupUtilsPosition", CTestSDKUiFwUtil::TestAknPopupUtilsPositionFuncs ),
+ ENTRY( "TestAknPopupUtilsPosition", CTestSDKUiFwUtil::TestAknPopupUtilsPosition ),
+ ENTRY( "TestAknListUtilsDrawSeparator", CTestSDKUiFwUtil::TestAknListUtilsDrawSeparator ),
// [test cases entries]
};
--- a/classicui_pub/ui_framework_utilities_api/tsrc/src/testsdkuifwutilblocksaknutils.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/classicui_pub/ui_framework_utilities_api/tsrc/src/testsdkuifwutilblocksaknutils.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -2238,7 +2238,7 @@
// CTestSDKUiFwUtil::TestAknPopupUtilsPosition
// -----------------------------------------------------------------------------
//
-TInt CTestSDKUiFwUtil::TestAknPopupUtilsPositionFuncs(
+TInt CTestSDKUiFwUtil::TestAknPopupUtilsPosition(
CStifItemParser& /*aItem*/ )
{
//TPoint position( AknPopupUtils::Position( TSize(), ETrue ) );
@@ -2247,5 +2247,23 @@
return KErrNone;
}
+
+// -----------------------------------------------------------------------------
+// CTestSDKUiFwUtil::TestAknListUtilsDrawSeparator
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKUiFwUtil::TestAknListUtilsDrawSeparator(
+ CStifItemParser& /*aItem*/ )
+ {
+ TRect rect( 20, 20, 40, 40 );
+ CWindowGc& gc = iContainer->SystemGc();
+ iContainer->ActiveControlGc();
+ AknListUtils::DrawSeparator( gc, rect, KRgbBlack );
+ iContainer->DeActiveControlGc();
+
+ return KErrNone;
+ }
+
+
// End of file
--- a/commonuis/CommonDialogs/group/iconlist.txt Tue Feb 02 01:00:49 2010 +0200
+++ b/commonuis/CommonDialogs/group/iconlist.txt Fri Feb 19 23:04:46 2010 +0200
@@ -18,3 +18,4 @@
/c8,1 qgn_prop_am_sis.bmp
/c8,1 qgn_prop_folder_empty.bmp
/c8,1 qgn_prop_file_swf_small.bmp
+/c8,1 qgn_prop_usb_memc_sub.svg
\ No newline at end of file
--- a/commonuis/CommonDialogs/inc/caknmemoryselectionmodelmultidrive.h Tue Feb 02 01:00:49 2010 +0200
+++ b/commonuis/CommonDialogs/inc/caknmemoryselectionmodelmultidrive.h Fri Feb 19 23:04:46 2010 +0200
@@ -132,7 +132,8 @@
EIconRemoteDrive,
EIconRemoteDriveActive, // Icon used in D-column if drive active
EIconInternalMassStorage,
- EIconInternalMassStorageUnavailable
+ EIconInternalMassStorageUnavailable,
+ EIconExternalUSBDrive
};
/**
@@ -196,6 +197,15 @@
/**
* Creates formatted listbox item and appends it to iListBoxArray.
+ * This method is for usb mass storage drives.
+ *
+ * @param aDriveInfo Drive information from which the lxx item string is
+ * created.
+ */
+ void AddUSBItemToLbxL( const TCFDDriveInfo& aDriveInfo );
+
+ /**
+ * Creates formatted listbox item and appends it to iListBoxArray.
* This method is for remote drives.
*
* @param aDriveInfo Drive information from which the lxx item string is
--- a/commonuis/CommonDialogs/src/caknmemoryselectiondialogmultidrive.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/commonuis/CommonDialogs/src/caknmemoryselectiondialogmultidrive.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -571,6 +571,11 @@
EMbmCommondialogsQgn_prop_fmgr_ms_mask );
//For unavailable Internal Mass Storage
aIconArray->AppendL( NULL );// Uses string insterad.
+ //For external USB driver
+ AknCFDUtility::AppendSkinnedImageToArrayL( *eikEnv, *aIconArray,
+ skin, KAknsIIDQgnPropFmgrUsbMemcSub, KCommonDialogsBitmapFile,
+ EMbmCommondialogsQgn_prop_usb_memc_sub,
+ EMbmCommondialogsQgn_prop_usb_memc_sub_mask );
}
else
{
@@ -612,6 +617,11 @@
skin, KAknsIIDQgnPropMmcNon, KMemoryCardUiBitmapFile,
EMbmAknmemorycarduiQgn_prop_mmc_non,
EMbmAknmemorycarduiQgn_prop_mmc_non_mask );
+ //For external USB Driver
+ AknCFDUtility::AppendSkinnedImageToArrayL( *eikEnv, *aIconArray,
+ skin, KAknsIIDQgnPropFmgrUsbMemcSub, KCommonDialogsBitmapFile,
+ EMbmCommondialogsQgn_prop_usb_memc_sub,
+ EMbmCommondialogsQgn_prop_usb_memc_sub_mask );
}
_LOG1( "[CAknMemorySelectionDialog] aIconArray count=%d",
aIconArray->Count() );
--- a/commonuis/CommonDialogs/src/caknmemoryselectionmodelmultidrive.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/commonuis/CommonDialogs/src/caknmemoryselectionmodelmultidrive.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -450,7 +450,14 @@
else if( aDriveInfo.iStatus & DriveInfo::EDriveRemovable )
{
// External mass storage drive, like external MMC
- AddMMCItemToLbxL( aDriveInfo );
+ if( aDriveInfo.iStatus & DriveInfo::EDriveUsbMemory )
+ {
+ AddUSBItemToLbxL( aDriveInfo );
+ }
+ else
+ {
+ AddMMCItemToLbxL( aDriveInfo );
+ }
iHasMMCUnavailable = ( aDriveInfo.iDriveStatus == EDriveNotReady );
}
@@ -908,6 +915,212 @@
_LOG1( "itemString length=%d", itemString.Length() );
}
+// ---------------------------------------------------------------------------
+// CAknMemorySelectionModelMultiDrive::AddUSBItemToLbxL
+// ---------------------------------------------------------------------------
+//
+void CAknMemorySelectionModelMultiDrive::AddUSBItemToLbxL(
+ const TCFDDriveInfo& aDriveInfo )
+ {
+ HBufC* lbxItemBuf = HBufC::NewLC( KListBoxEntryMaxLength );
+ TPtr itemString( lbxItemBuf->Des() );
+ HBufC* textItemBuf = HBufC::NewLC( KListBoxEntryMaxLength );
+ TPtr textString( textItemBuf->Des() );
+ HBufC* textItemBuf2 = HBufC::NewLC( KListBoxEntryMaxLength );
+ TPtr textString2( textItemBuf2->Des() );
+ TDriveUnit driveUnit( aDriveInfo.iDriveNumber );
+
+ // Item text is affected by layout
+ switch( iLayout )
+ {
+ case ELayoutPopupMenu:
+ {
+ itemString.Format( KImageHeader, EIconExternalUSBDrive );
+ itemString.Append( KTabChar );
+
+ // 1st row text:
+ if( ( aDriveInfo.iDriveStatus == EDriveOK ) &&
+ ( aDriveInfo.iVolumeLabel.Length() > 0 ) )
+ {
+ StringLoader::Format(
+ textString2,
+ *iLocStringArray[ ETextMMCNamed ],
+ KIndexFirst,
+ driveUnit.Name()
+ );
+ StringLoader::Format(
+ textString,
+ textString2,
+ KIndexSecond,
+ aDriveInfo.iVolumeLabel
+ );
+ }
+ else if ( aDriveInfo.iDriveStatus == EDriveNotReady )
+ {
+ //textString.Format(
+ // *iLocStringArray[ ETextMMCUnavailable ],
+ // driveUnit.Name() );
+ StringLoader::Format(
+ textString,
+ *iLocStringArray[ ETextMMCUnavailable ],
+ KNoIndex,
+ driveUnit.Name()
+ );
+ }
+ else if( aDriveInfo.iDriveStatus == EDriveLocked )
+ {
+ //textString.Format(
+ // *iLocStringArray[ ETextMMCLocked ],
+ // driveUnit.Name() );
+ StringLoader::Format(
+ textString,
+ *iLocStringArray[ ETextMMCLocked ],
+ KNoIndex,
+ driveUnit.Name()
+ );
+ }
+ else
+ {
+ // Use default drive description
+ //textString.Format(
+ // *iLocStringArray[ ETextMMCDefaultName ],
+ // driveUnit.Name() );
+ StringLoader::Format(
+ textString,
+ *iLocStringArray[ ETextMMCDefaultName ],
+ KNoIndex,
+ driveUnit.Name()
+ );
+ }
+ itemString.Append( textString );
+
+ break;
+ }
+ case ELayoutSettingPage:
+ {
+ // 1st row text:
+ if( aDriveInfo.iVolumeLabel.Length() > 0 )
+ {
+ // Append drive name if it has one
+ //itemString.Format(
+ // *iLocStringArray[ ETextMMCNamed ],
+ // driveUnit.Name(),
+ // aDriveInfo.iVolumeLabel
+ // );
+ StringLoader::Format(
+ textString,
+ *iLocStringArray[ ETextMMCNamed ],
+ KIndexFirst,
+ driveUnit.Name()
+ );
+ StringLoader::Format(
+ itemString,
+ textString,
+ KIndexSecond,
+ aDriveInfo.iVolumeLabel
+ );
+ }
+ else
+ {
+ //itemString.Format(
+ // *iLocStringArray[ ETextMMCDefaultName ],
+ // driveUnit.Name()
+ // );
+ StringLoader::Format(
+ itemString,
+ *iLocStringArray[ ETextMMCDefaultName ],
+ KNoIndex,
+ driveUnit.Name()
+ );
+ }
+ break;
+ }
+ case ELayoutDoublePopup:
+ {
+ itemString.Format( KImageHeader, EIconExternalUSBDrive );
+ itemString.Append( KTabChar );
+
+ // 1st row text:
+ if( aDriveInfo.iVolumeLabel.Length() > 0 )
+ {
+ StringLoader::Format(
+ textString2,
+ *iLocStringArray[ ETextMMCNamed ],
+ KIndexFirst,
+ driveUnit.Name()
+ );
+ StringLoader::Format(
+ textString,
+ textString2,
+ KIndexSecond,
+ aDriveInfo.iVolumeLabel
+ );
+ }
+ else
+ {
+ // Use default drive description
+ //textString.Format(
+ // *iLocStringArray[ ETextMMCDefaultName ],
+ // driveUnit.Name()
+ // );
+ StringLoader::Format(
+ textString,
+ *iLocStringArray[ ETextMMCDefaultName ],
+ KNoIndex,
+ driveUnit.Name()
+ );
+ }
+ itemString.Append( textString );
+ itemString.Append( KTabChar );
+
+ // 2nd row text:
+ switch( aDriveInfo.iDriveStatus )
+ {
+ case EDriveNotReady:
+ {
+ itemString.Append(
+ *iLocStringArray[ ETextMMCUnavailable ] );
+ break;
+ }
+ case EDriveLocked:
+ {
+ itemString.Append( *iLocStringArray[ ETextMMCLocked ] );
+ break;
+ }
+ case EDriveOK:
+ default:
+ {
+ HBufC* buffer;
+ TInt64 freeSpace = aDriveInfo.iDiskSpace;
+ if ( freeSpace >= 0 )
+ {
+ buffer = HBufC::NewLC( KListBoxEntryMaxLength );
+ TPtr unitStr( buffer->Des() );
+ AknCFDUtility::SetSecondRowTextL( freeSpace, unitStr );
+ }
+ else
+ {
+ // Disk space is unavailable
+ buffer = StringLoader::LoadLC(
+ R_CFD_QTN_MEMC_SPACE_NOT_AVAILABLE,
+ iCoeEnv);
+ }
+ itemString.Append( *buffer );//Free mem text
+ CleanupStack::PopAndDestroy( buffer );
+ break;
+ }
+ }
+ break;
+ }
+ }
+
+ // Finally!: append the formatted string to listbox
+ User::LeaveIfError( iListBoxArray.Append( lbxItemBuf ) );
+ CleanupStack::PopAndDestroy( 2 ); // textItemBuf2, textItemBuf
+ CleanupStack::Pop( lbxItemBuf );
+ _LOG1( "[CAknMemorySelectionModelMultiDrive] Item string added to lbx array: %S", &itemString );
+ _LOG1( "itemString length=%d", itemString.Length() );
+ }
// ---------------------------------------------------------------------------
// CAknMemorySelectionModelMultiDrive::AddRemoteItemToLbxL
--- a/commonuis/CommonUi/src/DocumentHandler.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/commonuis/CommonUi/src/DocumentHandler.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -1398,10 +1398,20 @@
{
User::LeaveIfError(aSharableFile.Open(iSharableFS,aFileName,EFileShareReadersOrWriters));
}
- else if ( err != KErrNone )
- {
- error = err; // Otherwise possible KErrNotReady caused by hotswap leads to crash later
- }
+ else if ( err == KErrTooBig )
+ {
+ RFile64* file64 = NULL;
+ file64 = static_cast<RFile64*> (&aSharableFile);
+ if( file64 != NULL )
+ {
+ err = file64->Open(iSharableFS,aFileName,EFileShareReadersOnly);
+ if( err == KErrInUse )
+ {
+ User::LeaveIfError(aSharableFile.Open(iSharableFS,aFileName,EFileShareReadersOrWriters));
+ }
+ }
+ }
+ error = err; // Otherwise possible KErrNotReady caused by hotswap leads to crash later
}
#ifdef _DEBUG
RDebug::Print( _L("DocumentHandler: CDocumentHandler::OpenTempFileL: finished with error=%d."), error);
--- a/commonuis/CommonUi/src/FindItemDialog.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/commonuis/CommonUi/src/FindItemDialog.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -35,10 +35,10 @@
#include <eikbtgpc.h> // for ButtonGroupContainer
#include <uikon.hrh> // for EKeyOk
-#include <FavouritesLimits.h> // KFavouritesMaxUrl
-#include <FavouritesItem.h> // for CBookmarkItem
+#include <favouriteslimits.h> // KFavouritesMaxUrl
+#include <favouritesitem.h> // for CBookmarkItem
-#include <FavouritesDb.h>
+#include <favouritesdb.h>
#include <apgcli.h> // RApaLsSession for WMLBrowser launch
@@ -60,7 +60,7 @@
#include <baclipb.h> // For CClipboard
-#include <SchemeHandler.h> // For CSchemeHandler
+#include <schemehandler.h> // For CSchemeHandler
#include <aknnotewrappers.h>
--- a/commonuis/CommonUi/src/FindItemMenu.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/commonuis/CommonUi/src/FindItemMenu.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -34,10 +34,10 @@
#include <commonphoneparser.h> // Phonenumber parser
#include <SendUiConsts.h> // Mtm uids
-#include <FavouritesLimits.h> // KFavouritesMaxUrl
-#include <FavouritesItem.h> // for CBookmarkItem
+#include <favouriteslimits.h> // KFavouritesMaxUrl
+#include <favouritesitem.h> // for CBookmarkItem
-#include <FavouritesDb.h>
+#include <favouritesdb.h>
#include <apgcli.h> // RApaLsSession for WMLBrowser launch
#include <apgtask.h>
@@ -65,7 +65,7 @@
#include <CommonUiInternalCRKeys.h>
#include <AiwCommon.hrh>
-#include <SchemeHandler.h>
+#include <schemehandler.h>
// Callback query
#include <aknlists.h>
--- a/commonuisupport/uikon/srvinc/EIKBAKSV.H Tue Feb 02 01:00:49 2010 +0200
+++ b/commonuisupport/uikon/srvinc/EIKBAKSV.H Fri Feb 19 23:04:46 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
// All rights reserved.
// This component and the accompanying materials are made available
// under the terms of "Eclipse Public License v1.0"
@@ -111,7 +111,6 @@
static TInt TimerCallBackL(TAny* aPtr);
void HandleTimerCallBackL();
void NextL();
- TBool IsWgIdValid(TInt aWgId);
void CheckCompleteL();
private:
NONSHARABLE_CLASS(CShutterTimer) : public CPeriodic
--- a/commonuisupport/uikon/srvsrc/EIKBAKSV.CPP Tue Feb 02 01:00:49 2010 +0200
+++ b/commonuisupport/uikon/srvsrc/EIKBAKSV.CPP Fri Feb 19 23:04:46 2010 +0200
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
// All rights reserved.
// This component and the accompanying materials are made available
// under the terms of "Eclipse Public License v1.0"
@@ -363,17 +363,17 @@
*/
void CAppShutter::NextL()
{
- if (iNextWgIndex==iWgIds->Count())
- {
- CheckCompleteL();
- }
- else
+ while (iNextWgIndex < iWgIds->Count())
{
const RWsSession::TWindowGroupChainInfo wgId=(*iWgIds)[iNextWgIndex++];
CApaWindowGroupName* wgName=CApaWindowGroupName::NewLC(iWsSession,wgId.iId);
- if (!IsWgIdValid(wgId.iId) || wgName->IsSystem() || wgName->Hidden())
+
+ // Skip invalid window groups.
+ // Note that if the window group name is null then CApaWindowGroupName
+ // uses a default name that yields an app uid of zero.
+ if (wgName->AppUid().iUid == 0 || wgName->IsSystem() || wgName->Hidden())
{
- NextL();
+ CleanupStack::PopAndDestroy(); // wgName
}
else
{
@@ -384,6 +384,8 @@
data.iDocName=docName;
}
data.iUid=wgName->AppUid();
+ CleanupStack::PopAndDestroy(); // wgName
+
// We don't want to restart server apps
if (wgId.iParentId <= 0)
{
@@ -404,19 +406,11 @@
}
// If hardware use patchable constant if not default to 5 seconds
iTimer->Start(KUIKONBackupCloseAllFilesTimeout,KUIKONBackupCloseAllFilesTimeout,TCallBack(TimerCallBackL,this));
+ return;
}
- CleanupStack::PopAndDestroy(); // wgName
}
- }
-/**
-@internalComponent
-*/
-TBool CAppShutter::IsWgIdValid(TInt aWgId)
- {
- TBuf<600> name;
- const TInt r=iWsSession.GetWindowGroupNameFromIdentifier(aWgId,name);
- return r==KErrNone;
+ CheckCompleteL();
}
/**
--- a/lafagnosticuifoundation/uigraphicsutils/tulsrc/tuladdressstringtokenizer.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/lafagnosticuifoundation/uigraphicsutils/tulsrc/tuladdressstringtokenizer.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -23,7 +23,7 @@
// DEFINE
-const TInt KFindItemMaxNumbers = 20;
+const TInt KFindItemMaxNumbers = 48; // Maximum phone number supported in Contacts
const TInt KFindItemMinNumbers = 3;
const TInt KDotsInIpAddress = 3;
const TInt KNumbersInIpAddress = 3;
--- a/lafagnosticuifoundation/uigraphicsutils/tulsrc/tulphonenumberutils.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/lafagnosticuifoundation/uigraphicsutils/tulsrc/tulphonenumberutils.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -32,7 +32,7 @@
// DEFINES
const TInt KPhoneNoUtilsMinNumbers = 1;
-const TInt KPhoneNoUtilsMaxNumbers = 20;
+const TInt KPhoneNoUtilsMaxNumbers = 48; // Maximum phone number supported in Contacts
// ---------------------------------------------------------
// Phone number parsing methods
--- a/psln/PslnLibraryLoaders/src/pslnbrowserlaunchloader.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/psln/PslnLibraryLoaders/src/pslnbrowserlaunchloader.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -20,7 +20,7 @@
#include <w32std.h>
#include <apgcli.h>
#include <apgtask.h>
-#include <FavouritesDb.h>
+#include <favouritesdb.h>
#include "pslnbrowserlaunchloader.h"
#include "PslnConst.h"
Binary file psln/help/data/xhtml.zip has changed
--- a/psln/help/inc/skins.hlp.hrh Tue Feb 02 01:00:49 2010 +0200
+++ b/psln/help/inc/skins.hlp.hrh Fri Feb 19 23:04:46 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 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"
--- a/uifw/AknGlobalUI/AknCapServer/group/AknCapServer.mmp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AknGlobalUI/AknCapServer/group/AknCapServer.mmp Fri Feb 19 23:04:46 2010 +0200
@@ -58,6 +58,7 @@
SOURCE AknCapServerShutdown.cpp
SOURCE aknphonekeyforwarder.cpp
SOURCE akncapserverdiscreetpopuphandler.cpp
+SOURCE aknslidestatusnotifier.cpp
START RESOURCE AknMemoryCardUi.rss
HEADER
--- a/uifw/AknGlobalUI/AknCapServer/inc/AknFastswapWindowControl.h Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AknGlobalUI/AknCapServer/inc/AknFastswapWindowControl.h Fri Feb 19 23:04:46 2010 +0200
@@ -27,7 +27,7 @@
#include <apgcli.h>
#include <coecobs.h> // MCoeControlObserver
-#include <WidgetRegistryClient.h>
+#include <widgetregistryclient.h>
#include <eikmobs.h>
// CONSTANTS
--- a/uifw/AknGlobalUI/AknCapServer/inc/AknKeyFilter.h Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AknGlobalUI/AknCapServer/inc/AknKeyFilter.h Fri Feb 19 23:04:46 2010 +0200
@@ -23,22 +23,28 @@
#include <centralrepository.h>
#endif
#include "AknCapServerEntry.h"
+#include "aknslidestatusnotifier.h"
const TInt KHomeHoldDelay = 600000; // 0.6 sec
-class CAknServKeyFilter : public CCoeControl
+class CAknServKeyFilter : public CCoeControl,
+ public MAknSlideStatusObserver
{
public:
CAknServKeyFilter();
void ConstructL(CAknCapAppServerAppUi& aAppUi);
~CAknServKeyFilter();
+ /**
+ * From MAknSlideStatusObserver
+ */
+ void SlideStatusChangedL( const TInt& aValue );
+
private: // framework
TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
private: // new functions
TKeyResponse HandleHomeKeyEventL(TEventCode aType);
- TKeyResponse HandleQwertyKeyEvent(const TKeyEvent& aKeyEvent, TEventCode aType);
void HandleFlipKeyEvent(TInt aCode);
static TInt HomeTickL(TAny* aThis);
void DoHomeTickL();
@@ -52,7 +58,9 @@
#ifdef RD_INTELLIGENT_TEXT_INPUT
TInt CAknServKeyFilter::HwKeyToKeyBoardType(TInt aKeyCode);
#endif
-
+ void RotateScreenL( TInt aState );
+ void UpdateKeyboardLayout( TInt aKeyboardLayout );
+
private:
CAknCapAppServerAppUi* iAppUi; // not owned
CPeriodic* iHomeTimer;
@@ -60,13 +68,13 @@
TInt iHomeKeyHandle;
TVwsViewId iHomeViewId;
RArray<TInt32> iHardwareStateKeyCaptures;
- TInt iQwertyOnKeyHandle;
- TInt iQwertyOffKeyHandle;
- TInt iFlipOpenKeyHandle;
- TInt iFlipCloseKeyHandle;
#ifdef RD_INTELLIGENT_TEXT_INPUT
CRepository* iAvkonRepository;
#endif
+
+ TBool iSlideOpen;
+ TInt iSensorOrientation;
+ CAknSlideStatusNotifier* iSlideStatusObserver;
};
#endif // __AKN_KEY_FILTER__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uifw/AknGlobalUI/AknCapServer/inc/aknslidestatusnotifier.h Fri Feb 19 23:04:46 2010 +0200
@@ -0,0 +1,134 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+#ifndef AKNSLIDESTATUSNOTIFIER_H
+#define AKNSLIDESTATUSNOTIFIER_H
+
+#include <e32base.h>
+#include <e32property.h>
+//Grip keys
+#include <hwrmdomainpskeys.h>
+
+class MAknSlideStatusObserver
+ {
+ public:
+
+ /**
+ * Slide status notification
+ * Called by the notifier when the Slide status value change
+ *
+ * @param aValue the new status value
+ * @return none
+ */
+ virtual void SlideStatusChangedL( const TInt& aValue ) = 0;
+
+ };
+
+/**
+ * Reacts to Slide status changes
+ *
+ * Reacts to Slide status changes and notifies
+ * its client(s) about the status change
+ */
+class CAknSlideStatusNotifier : public CActive
+ {
+ public:
+
+ /**
+ * Symbian two-phase constructor
+ *
+ * @param a pointer to Slide status observer
+ * @return a pointer to CSlideStatusNotifier instance
+ */
+ static CAknSlideStatusNotifier* NewL( MAknSlideStatusObserver* aObserver );
+
+ /**
+ * Symbian two-phase constructor leaving a pointer to the constructed
+ * object on the cleanup stack
+ *
+ * @param a pointer to Slide status observer
+ * @return a pointer to CSlideStatusNotifier instance
+ */
+ static CAknSlideStatusNotifier* NewLC( MAknSlideStatusObserver* aObserver );
+
+ /**
+ * Default destructor
+ */
+ virtual ~CAknSlideStatusNotifier();
+
+ protected:
+
+ // From base class CActive
+ /**
+ * From CActive.
+ * Implements cancellation of an outstanding request.
+ *
+ * @param none
+ */
+ void DoCancel();
+
+ /**
+ * From CActive.
+ * Handles an active object's request completion event
+ *
+ * @param none
+ */
+ void RunL();
+
+ /**
+ * From CActive.
+ * Handles an active object's request error event
+ *
+ * @param TInt aError
+ */
+ TInt RunError( TInt aError );
+
+
+ private:
+
+ /**
+ * C++ default constructor
+ *
+ * @param none
+ */
+ CAknSlideStatusNotifier();
+
+ /**
+ * Symbian second phase constructor
+ *
+ * @param a pointer to Slide status observer
+ */
+ void ConstructL( MAknSlideStatusObserver* aObserver );
+
+
+ private: // Data
+
+ /**
+ * Property handle used to read P&S variables
+ */
+ RProperty iProperty;
+
+ /**
+ * The observer interested in the Slide status
+ * Not own.
+ */
+ MAknSlideStatusObserver* iObserver;
+ };
+
+#endif //AKNSLIDESTATUSNOTIFIER_H
--- a/uifw/AknGlobalUI/AknCapServer/src/AknCapServerEntry.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AknGlobalUI/AknCapServer/src/AknCapServerEntry.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -276,6 +276,8 @@
User::SetCritical(User::ESystemCritical);
InitiateOFNStatus();
+
+ iEikonEnv->SetSystem( ETrue );
// install default FEP if none set before
if (iEikonEnv->FepUid() == KNullUid)
--- a/uifw/AknGlobalUI/AknCapServer/src/AknFastswapWindowControl.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AknGlobalUI/AknCapServer/src/AknFastswapWindowControl.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -39,8 +39,8 @@
#include <akntransitionutils.h>
#include <akntranseffect.h>
#include <gfxtranseffect/gfxtranseffect.h>
-#include <WidgetRegistryConstants.h>
-#include <WidgetRegistryData.h>
+#include <widgetregistryconstants.h>
+#include <widgetregistrydata.h>
#include <featmgr.h>
#include <aknglobalpopupprioritycontroller.h>
#include <centralrepository.h>
@@ -1640,6 +1640,7 @@
break;
case MEikListBoxObserver::EEventItemClicked:
+ case MEikListBoxObserver::EEventItemSingleClicked:
if ( !iItemDraggingActioned && !iIsStylusPopupShow )
{
TTime now;
--- a/uifw/AknGlobalUI/AknCapServer/src/aknKeyFilter.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AknGlobalUI/AknCapServer/src/aknKeyFilter.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -55,6 +55,9 @@
/** Video call application's AppUID */
const TUid KVideoCallAppUid = { 0x101F8681 };
+/** Layout */
+const TInt KLayoutPortrait = 0;
+const TInt KLayoutLandscape = 1;
/**
* Command used in activating the phone view.
* Null command allows the the phone app to decide whether
@@ -92,14 +95,11 @@
RWindowGroup& groupWin = iCoeEnv->RootWin();
groupWin.CancelCaptureKeyUpAndDowns( iHomeKeyHandle );
- groupWin.CancelCaptureKeyUpAndDowns( iQwertyOnKeyHandle );
- groupWin.CancelCaptureKeyUpAndDowns( iQwertyOffKeyHandle );
- groupWin.CancelCaptureKey( iFlipOpenKeyHandle );
- groupWin.CancelCaptureKey( iFlipCloseKeyHandle );
#ifdef RD_INTELLIGENT_TEXT_INPUT
delete iAvkonRepository;
#endif
delete iHomeTimer;
+ delete iSlideStatusObserver;
}
@@ -112,10 +112,6 @@
{
RWindowGroup& groupWin = iCoeEnv->RootWin();
iHomeKeyHandle = groupWin.CaptureKeyUpAndDowns(EStdKeyApplication0, 0, 0);
- iQwertyOnKeyHandle = groupWin.CaptureKeyUpAndDowns(EStdKeyApplication7, 0, 0); // EKeyQwertyOn
- iQwertyOffKeyHandle = groupWin.CaptureKeyUpAndDowns(EStdKeyApplication8, 0, 0); // EKeyQwertyOff
- iFlipOpenKeyHandle = groupWin.CaptureKey(EKeyDeviceA, 0, 0); // EKeyFlipOpen
- iFlipCloseKeyHandle = groupWin.CaptureKey(EKeyDeviceB, 0, 0); // EKeyFlipClose
// Get the default view id
TResourceReader reader;
@@ -205,6 +201,9 @@
iAppUi->iQwertyStatus = EFalse;
}
#endif // RD_INTELLIGENT_TEXT_INPUT
+ iSlideOpen = EFalse;
+ TRAP_IGNORE( iSlideStatusObserver = CAknSlideStatusNotifier::NewL( this ) );
+ iSensorOrientation = KLayoutPortrait;
}
// ---------------------------------------------------------------------------
@@ -346,11 +345,6 @@
{
return HandleHomeKeyEventL( aType );
}
- else if ( aKeyEvent.iScanCode == EStdKeyApplication7 || // EKeyQwertyOn
- aKeyEvent.iScanCode == EStdKeyApplication8 ) // EKeyQwertyOff
- {
- return HandleQwertyKeyEvent( aKeyEvent, aType );
- }
else if ( aType==EEventKey && HandleHardwareStateKeyL( aKeyEvent.iCode ) )
{
return EKeyWasConsumed;
@@ -412,56 +406,6 @@
return EKeyWasNotConsumed;
}
-
-// ---------------------------------------------------------------------------
-// CAknServKeyFilter::HandleQwertyKeyEvent
-// Handles the pressing of QWERTY key.
-// ---------------------------------------------------------------------------
-//
-TKeyResponse CAknServKeyFilter::HandleQwertyKeyEvent( const TKeyEvent& /*aKeyEvent*/,
- TEventCode aType )
- {
- if ( aType == EEventKeyDown )
- {
- TInt qwertyOn = 0;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
- TInt keyboardLayout = EPtiKeyboard12Key;
- iAvkonRepository->Get(KAknKeyBoardLayout, keyboardLayout);
- switch(keyboardLayout)
- {
- case EPtiKeyboardQwerty4x12:
- case EPtiKeyboardQwerty4x10:
- case EPtiKeyboardQwerty3x11:
- case EPtiKeyboardHalfQwerty:
- case EPtiKeyboardCustomQwerty:
- {
- qwertyOn = 1;
- break;
- }
- default:
- break;
- }
-#endif
-
- TInt err = RProperty::Set( KCRUidAvkon,
- KAknQwertyInputModeActive,
- qwertyOn );
- iAppUi->iQwertyStatus = qwertyOn;
-
-#ifdef _DEBUG
- _LIT( KDMsg, "xxxx KAknQwertyInputModeActive err=%d" );
- RDebug::Print( KDMsg, err );
-#endif
-#ifdef RD_INTELLIGENT_TEXT_INPUT
- err = RProperty::Set(KCRUidAvkon, KAknKeyBoardLayout, keyboardLayout);
-#endif
-
- }
-
- return EKeyWasConsumed;
- }
-
-
// ---------------------------------------------------------------------------
// CAknServKeyFilter::HandleFlipKeyEvent
// Handles the flip events.
@@ -579,9 +523,6 @@
HandleFlipKeyEvent(aCode);
}
- CWsScreenDevice* screen = iEikonEnv->ScreenDevice();
- TInt screenMode = screen->CurrentScreenMode();
-
CAknLayoutConfig::THardwareStateArray hwStates =
CAknSgcClient::LayoutConfig().HardwareStates();
TInt count = hwStates.Count();
@@ -589,30 +530,11 @@
{
const CAknLayoutConfig::THardwareState& hwState = hwStates.At( ii );
if ( hwState.KeyCode() == aCode )
- {
- SetHardwareStateL( hwState.StateNumber() );
-
- // Update the setting cache and get SGCS to process the screen
- // mode change. This may broadcast a screen device change to
- // the apps, to inform them of the update.
- iAvkonEnv->SettingCache().Update( KAknHardwareLayoutSwitch );
- iAppUi->SgcServer()->HandleWindowGroupParamChangeL(
- iEikonEnv->RootWin().Identifier(),
- 0,
- 0,
- 0,
- KAknScreenModeUnset );
-
- if ( screenMode == screen->CurrentScreenMode() )
- {
- // Apps will not have received a screen device changed event
- // so send a KAknHardwareLayoutSwitch to the apps to ensure
- // they get to know about the key.
- TWsEvent event;
- event.SetType( KAknHardwareLayoutSwitch );
- event.SetHandle( 0 );
- iEikonEnv->WsSession().SendEventToAllWindowGroups( 0, event );
- }
+ {
+ iSensorOrientation = hwState.StateNumber();
+ if( !iSlideOpen )
+ {
+ RotateScreenL( hwState.StateNumber() );
#ifdef RD_INTELLIGENT_TEXT_INPUT
#if defined(__WINS__)
@@ -679,6 +601,7 @@
#endif // __WINS__
#endif //RD_INTELLIGENT_TEXT_INPUT
return ETrue;
+ }
}
}
@@ -783,4 +706,106 @@
return ret;
}
#endif //RD_INTELLIGENT_TEXT_INPUT
+
+// ---------------------------------------------------------------------------
+// CAknServKeyFilter::SlideStatusChangedL
+// ---------------------------------------------------------------------------
+//
+void CAknServKeyFilter::SlideStatusChangedL( const TInt& aValue )
+ {
+ CAknLayoutConfig::THardwareStateArray hwStates =
+ CAknSgcClient::LayoutConfig().HardwareStates();
+ TInt keyboardLayout(0);
+ TInt state(0);
+
+ RWsSession wsSession = iEikonEnv->WsSession();
+
+ TKeyEvent eventQwertyOn = { EKeyQwertyOn, 0 };
+
+ TKeyEvent eventQwertyOff = { EKeyQwertyOff, 0 };
+
+ switch( aValue )
+ {
+ case EPSHWRMGripOpen:
+ iSlideOpen = ETrue;
+ wsSession.SimulateKeyEvent( eventQwertyOn );
+ //to be read from cenrep
+ iAvkonRepository->Get( KAknKeyboardSlideOpen, keyboardLayout );
+ if( keyboardLayout > EPtiKeyboard12Key )
+ {
+ //if the keyboard is a qwerty the layout is landscape
+ state = KLayoutLandscape;
+ }
+ else
+ {
+ //if the keyboard is not a qwerty the layout is portrait
+ state = KLayoutPortrait;
+ }
+ break;
+ case EPSHWRMGripClosed:
+ iSlideOpen = EFalse;
+ wsSession.SimulateKeyEvent( eventQwertyOff );
+ state = iSensorOrientation;
+ iAvkonRepository->Get( KAknKeyboardSlideClose, keyboardLayout );
+ break;
+ }
+
+ UpdateKeyboardLayout( keyboardLayout );
+ RotateScreenL( state );
+ }
+
+// ---------------------------------------------------------------------------
+// CAknServKeyFilter::UpdateKeyboardLayout
+// ---------------------------------------------------------------------------
+//
+void CAknServKeyFilter::UpdateKeyboardLayout( TInt aKeyboardLayout )
+ {
+ RProperty::Set(KCRUidAvkon, KAknKeyBoardLayout, aKeyboardLayout);
+ if( aKeyboardLayout > EPtiKeyboard12Key )
+ {
+ iAppUi->iQwertyStatus = ETrue;
+ TInt err = RProperty::Set(KCRUidAvkon, KAknQwertyInputModeActive, 1);
+ iAvkonRepository->Set(KAknQwertyInputModeActive,1);
+ }
+ else
+ {
+ iAppUi->iQwertyStatus = EFalse;
+ TInt err = RProperty::Set(KCRUidAvkon, KAknQwertyInputModeActive, 0);
+ iAvkonRepository->Set(KAknQwertyInputModeActive, 0);
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CAknServKeyFilter::RotateScreenL
+// ---------------------------------------------------------------------------
+//
+void CAknServKeyFilter::RotateScreenL( TInt aState )
+ {
+ CWsScreenDevice* screen = iEikonEnv->ScreenDevice();
+ TInt screenMode = screen->CurrentScreenMode();
+ SetHardwareStateL( aState );
+
+ // Update the setting cache and get SGCS to process the screen
+ // mode change. This may broadcast a screen device change to
+ // the apps, to inform them of the update.
+ iAvkonEnv->SettingCache().Update( KAknHardwareLayoutSwitch );
+ iAppUi->SgcServer()->HandleWindowGroupParamChangeL(
+ iEikonEnv->RootWin().Identifier(),
+ 0,
+ 0,
+ 0,
+ KAknScreenModeUnset );
+
+ if ( screenMode == screen->CurrentScreenMode() )
+ {
+ // Apps will not have received a screen device changed event
+ // so send a KAknHardwareLayoutSwitch to the apps to ensure
+ // they get to know about the key.
+ TWsEvent event;
+ event.SetType( KAknHardwareLayoutSwitch );
+ event.SetHandle( 0 );
+ iEikonEnv->WsSession().SendEventToAllWindowGroups( 0, event );
+ }
+ }
+
// End of file
--- a/uifw/AknGlobalUI/AknCapServer/src/akncapserverdiscreetpopuphandler.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AknGlobalUI/AknCapServer/src/akncapserverdiscreetpopuphandler.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -23,6 +23,7 @@
#include "akncapserverdiscreetpopuphandler.h"
#include "akndiscreetpopupcontrol.h"
#include "akndiscreetpopupdata.h"
+#include "akntrace.h"
const TUid KAknCapServerDiscreetPopupHandler = { 0x2001FDF8 };
@@ -34,6 +35,7 @@
//
CAknCapServerDiscreetPopupHandler::~CAknCapServerDiscreetPopupHandler()
{
+ _AKNTRACE_FUNC_ENTER;
for ( TInt i = 0; i < iPopupDataArray.Count(); i++ )
{
if ( iPopupDataArray[ i ].iPopupControl )
@@ -43,6 +45,7 @@
}
}
iPopupDataArray.Close();
+ _AKNTRACE_FUNC_EXIT;
}
@@ -53,12 +56,14 @@
void CAknCapServerDiscreetPopupHandler::HandleDiscreetPopupMessageL(
const RMessage2& aMessage )
{
+ _AKNTRACE_FUNC_ENTER;
CAknCapServerDiscreetPopupHandler* instance
= CAknCapServerDiscreetPopupHandler::InstanceL();
if ( instance )
{
instance->DoHandleDiscreetPopupMessageL( aMessage );
}
+ _AKNTRACE_FUNC_EXIT;
}
@@ -68,8 +73,10 @@
//
void CAknCapServerDiscreetPopupHandler::CreateDiscreetPopupHandlerL()
{
+ _AKNTRACE_FUNC_ENTER;
CAknCapServerDiscreetPopupHandler* instance
= CAknCapServerDiscreetPopupHandler::InstanceL();
+ _AKNTRACE_FUNC_EXIT;
}
@@ -121,6 +128,7 @@
void CAknCapServerDiscreetPopupHandler::DoHandleDiscreetPopupMessageL(
const RMessage2& aMessage )
{
+ _AKNTRACE_FUNC_ENTER;
TAknDiscreetPopupData dataType;
TPckg<TAknDiscreetPopupData> pkgType( dataType );
aMessage.ReadL( 0, pkgType );
@@ -151,6 +159,7 @@
break;
}
}
+ _AKNTRACE_FUNC_EXIT;
}
@@ -161,6 +170,7 @@
void CAknCapServerDiscreetPopupHandler::LaunchFromResourceL(
const RMessage2& aMessage )
{
+ _AKNTRACE_FUNC_ENTER;
TAknDiscreetPopupResourceData data;
TPckg<TAknDiscreetPopupResourceData> pkg( data );
aMessage.ReadL( 0, pkg );
@@ -188,6 +198,7 @@
data.ViewUid(),
aMessage );
CleanupStack::Pop( popup );
+ _AKNTRACE_FUNC_EXIT;
}
@@ -198,6 +209,7 @@
void CAknCapServerDiscreetPopupHandler::LaunchWithParamsL(
const RMessage2& aMessage )
{
+ _AKNTRACE_FUNC_ENTER;
TAknDiscreetPopupParamData data;
TPckg<TAknDiscreetPopupParamData> pkg( data );
aMessage.ReadL( 0, pkg );
@@ -231,6 +243,7 @@
data.ViewUid(),
aMessage );
CleanupStack::Pop( popup );
+ _AKNTRACE_FUNC_EXIT;
}
@@ -241,6 +254,7 @@
void CAknCapServerDiscreetPopupHandler::HandleRequestCancellationL(
const RMessage2& aMessage )
{
+ _AKNTRACE_FUNC_ENTER;
TAknDiscreetPopupCancelRequestData data;
TPckg<TAknDiscreetPopupCancelRequestData> pkg( data );
aMessage.ReadL( 0, pkg );
@@ -263,6 +277,7 @@
}
}
aMessage.Complete( KErrNone );
+ _AKNTRACE_FUNC_EXIT;
}
// ---------------------------------------------------------------------------
@@ -272,6 +287,7 @@
void CAknCapServerDiscreetPopupHandler::HandleQueryInUseRect(
const RMessage2& aMessage )
{
+ _AKNTRACE_FUNC_ENTER;
TRect rect(TRect::EUninitialized);
if( iPopupDataArray.Count() != 0 )
{
@@ -282,6 +298,7 @@
TPckg<TAknDiscreetPopupRectData> pkg( data );
aMessage.WriteL( 0, pkg );
aMessage.Complete( KErrNone );
+ _AKNTRACE_FUNC_EXIT;
}
// ---------------------------------------------------------------------------
@@ -295,6 +312,7 @@
const TUid& aViewUid,
const RMessage2& aMessage )
{
+ _AKNTRACE_FUNC_ENTER;
aPopup->SetObserver( this );
// Inform other popups that new popup is launched
@@ -316,6 +334,7 @@
popupData.iMessage = aMessage;
iPopupDataArray.AppendL( popupData );
NotifyRunningGlobalDiscreetPopupChanged();
+ _AKNTRACE_FUNC_EXIT;
}
@@ -350,6 +369,7 @@
//
void CAknCapServerDiscreetPopupHandler::NotifyRunningGlobalDiscreetPopupChanged()
{
+ _AKNTRACE_FUNC_ENTER;
_LIT_SECURITY_POLICY_S0( writePolicy, RProcess().SecureId() );
_LIT_SECURITY_POLICY_PASS( readPolicy );
@@ -363,6 +383,7 @@
{
RProperty::Set( KPSUidAvkonDomain, KAknGlobalDiscreetPopupNumChanged, 0 );
}
+ _AKNTRACE_FUNC_EXIT;
}
// ---------------------------------------------------------------------------
@@ -371,6 +392,7 @@
//
void CAknCapServerDiscreetPopupHandler::ProcessCommandL( TInt aCommandId )
{
+ _AKNTRACE_FUNC_ENTER;
TAknCapServerDiscreetPopupData* popupData( NULL );
for ( TInt i = 0; i < iPopupDataArray.Count(); i++ )
{
@@ -405,6 +427,7 @@
{
popupData->iMessage.Complete( KErrCompletion );
}
+ _AKNTRACE_FUNC_EXIT;
}
@@ -415,6 +438,7 @@
void CAknCapServerDiscreetPopupHandler::HandleControlEventL(
CCoeControl* aControl, TCoeEvent aEventType )
{
+ _AKNTRACE( "CAknCapServerDiscreetPopupHandler::HandleControlEventL, aEventType : %d", aEventType );
// Popup has been closed or cancelled - remove from array
if ( aEventType == EEventRequestExit || aEventType == EEventRequestCancel )
{
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uifw/AknGlobalUI/AknCapServer/src/aknslidestatusnotifier.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -0,0 +1,142 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#include <e32base.h>
+#include <UikonInternalPSKeys.h>
+
+#include "aknslidestatusnotifier.h"
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CAknSlideStatusNotifier::ConstructL()
+// Second phase of two-phase construction
+// ---------------------------------------------------------------------------
+//
+void CAknSlideStatusNotifier::ConstructL( MAknSlideStatusObserver* aObserver )
+ {
+ TInt err = iProperty.Attach( KPSUidHWRM, KHWRMGripStatus/*KPSUidUikon, KUikFlipStatus*/);
+ User::LeaveIfError( err );
+
+ iProperty.Subscribe(iStatus);
+ iObserver = aObserver;
+ CActiveScheduler::Add( this );
+ SetActive();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CAknSlideStatusNotifier::NewL()
+// Two-phase constructor
+// ---------------------------------------------------------------------------
+//
+CAknSlideStatusNotifier* CAknSlideStatusNotifier::NewL( MAknSlideStatusObserver* aObserver )
+ {
+ CAknSlideStatusNotifier* self = CAknSlideStatusNotifier::NewLC( aObserver );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CAknSlideStatusNotifier::NewLC()
+// Two-phase constructor, leaves pointer on the cleanup stack
+// ---------------------------------------------------------------------------
+//
+CAknSlideStatusNotifier* CAknSlideStatusNotifier::NewLC( MAknSlideStatusObserver* aObserver )
+ {
+ CAknSlideStatusNotifier* self = new( ELeave ) CAknSlideStatusNotifier;
+ CleanupStack::PushL( self );
+ self->ConstructL( aObserver );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CAknSlideStatusNotifier::CAknSlideStatusNotifier()
+// Default C++ constructor
+// ---------------------------------------------------------------------------
+//
+CAknSlideStatusNotifier::CAknSlideStatusNotifier() : CActive( EPriorityNormal )
+ {
+ // No implementation needed
+ }
+
+// ---------------------------------------------------------------------------
+// CAknSlideStatusNotifier::~CAknSlideStatusNotifier()
+// ---------------------------------------------------------------------------
+//
+CAknSlideStatusNotifier::~CAknSlideStatusNotifier()
+ {
+ Cancel();
+ iProperty.Close();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CAknSlideStatusNotifier::RunL
+// From class CActive
+// Handles an active object's request completion event.
+// ---------------------------------------------------------------------------
+//
+void CAknSlideStatusNotifier::RunL()
+ {
+ TInt status( 0 );
+ TInt runStatus( iStatus.Int() );
+ //resubscribe so that no events are lost
+ iProperty.Subscribe( iStatus );
+ SetActive();
+
+ switch( runStatus )
+ {
+ case KErrNone:
+ if ( KErrNone == iProperty.Get( status ) )
+ {
+ iObserver->SlideStatusChangedL( status );
+ }
+ break;
+
+ case KErrDied:
+ User::Leave( KErrDied );
+
+ default:
+ break;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CAknSlideStatusNotifier::DoCancel
+// From class CActive
+// Implements cancellation of an outstanding request.
+// ---------------------------------------------------------------------------
+//
+void CAknSlideStatusNotifier::DoCancel()
+ {
+ iProperty.Cancel();
+ }
+
+// ---------------------------------------------------------------------------
+// CAknSlideStatusNotifier::RunError
+// From class CActive
+// Implements error handling of an outstanding request.
+// ---------------------------------------------------------------------------
+//
+TInt CAknSlideStatusNotifier::RunError( TInt /*aError*/ )
+ {
+ return KErrNone;
+ }
+// End of file SlideStatusNotifier.cpp
--- a/uifw/AvKon/Avkon2MifHeader/mifheader.cdl.custom.h Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/Avkon2MifHeader/mifheader.cdl.custom.h Fri Feb 19 23:04:46 2010 +0200
@@ -22,7 +22,7 @@
#ifndef MIFHEADER_CDL_CUSTOM_H
#define MIFHEADER_CDL_CUSTOM_H
-#include <CdlEngDef.h>
+#include <cdlengdef.h>
#include "mifheader.cdl.common.h"
namespace MifHeader
--- a/uifw/AvKon/EABI/AVKONU.DEF Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/EABI/AVKONU.DEF Fri Feb 19 23:04:46 2010 +0200
@@ -4577,4 +4577,6 @@
_ZN17CAknDiscreetPopup7ReleaseEv @ 4576 NONAME
_ZNK13CAknAppUiBase23IsSingleClickCompatibleEv @ 4577 NONAME
_ZN19CAknBitmapAnimation15StartAnimationLEi @ 4578 NONAME
+ _ZN14CAknPopupField19CloseSelectionListLEv @ 4579 NONAME
+ _ZN12AknListUtils13DrawSeparatorER16CGraphicsContextRK5TRectRK4TRgb @ 4580 NONAME
--- a/uifw/AvKon/aknhlist/inc/akntreelistphysicshandler.h Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/aknhlist/inc/akntreelistphysicshandler.h Fri Feb 19 23:04:46 2010 +0200
@@ -263,11 +263,11 @@
TInt WorldHeight();
/**
- * Returns wheter pointer click is in empty list area.
+ * Returns wheter pointer is in empty list area.
*
* @return ETrue if aPosition is in empty list area.
*/
- TBool EmptyAreaClicked( TPoint aPosition );
+ TBool PointerOnEmptyArea( TPoint aPosition );
private: // data
@@ -403,10 +403,11 @@
// bottom item in current view, fields count when Y is larger than
// the last item's Y
TInt iOldBottomItem;
+
/**
- * ETrue if empty list area is clicked.
+ * ETrue if pointer down on empty list area.
*/
- TBool iEmptyAreaClicked;
+ TBool iDownOnEmptyArea;
};
--- a/uifw/AvKon/aknhlist/src/akntreelistphysicshandler.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/aknhlist/src/akntreelistphysicshandler.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -113,6 +113,38 @@
_AKNTRACE_FUNC_EXIT;
return;
}
+
+ TBool listEmpty = iTree->VisibleItemCount() > 0 ? EFalse : ETrue;
+ TBool eventSent = EFalse;
+
+ // empty area events
+ if ( aPointerEvent.iType == TPointerEvent::EButton1Up
+ && PointerOnEmptyArea( aPointerEvent.iPosition ) )
+ {
+ if ( listEmpty )
+ {
+ // no items, empty list was clicked
+ iTreeListView->ReportTreeListEvent(
+ MAknTreeListObserver::EEmptyListClicked,
+ KAknTreeIIDNone );
+ eventSent = ETrue;
+ }
+ else if ( iDownOnEmptyArea )
+ {
+ // items exist, empty list area was clicked
+ iTreeListView->ReportTreeListEvent(
+ MAknTreeListObserver::EEmptyAreaClicked,
+ KAknTreeIIDNone );
+ eventSent = ETrue;
+ }
+ }
+
+ if ( listEmpty || eventSent )
+ {
+ // return always if list is empty or if empty area event was sent
+ _AKNTRACE_FUNC_EXIT;
+ return;
+ }
// Panning/flicking logic
@@ -160,8 +192,8 @@
{
iTree->EnableMarquee( EFalse );
}
-
- iEmptyAreaClicked = EmptyAreaClicked( aPointerEvent.iPosition );
+
+ iDownOnEmptyArea = PointerOnEmptyArea( aPointerEvent.iPosition );
}
// EDrag
@@ -181,8 +213,9 @@
}
#endif // RD_UI_TRANSITION_EFFECTS_LIST
- iPanningActivated = ETrue;
- iEmptyAreaClicked = EFalse;
+ iPanningActivated = ETrue;
+ iDownOnEmptyArea = EFalse;
+
iHighlightTimer->Cancel();
iItemToBeFocused = NULL;
@@ -321,23 +354,7 @@
{
iTreeListView->SelectItem( iItemToBeSelected );
iItemToBeSelected = NULL;
- }
-
- if ( iItemToBeSelected == NULL && iEmptyAreaClicked )
- {
- if ( iTree->VisibleItemCount() > 0 )
- {
- iTreeListView->ReportTreeListEvent(
- MAknTreeListObserver::EEmptyAreaClicked,
- KAknTreeIIDNone );
- }
- else
- {
- iTreeListView->ReportTreeListEvent(
- MAknTreeListObserver::EEmptyListClicked,
- KAknTreeIIDNone );
- }
- }
+ }
}
// Item handling logic
@@ -1136,11 +1153,11 @@
// ---------------------------------------------------------------------------
-// CAknTreeListPhysicsHandler::EmptyAreaClicked
+// CAknTreeListPhysicsHandler::PointerOnEmptyArea
// ---------------------------------------------------------------------------
//
-TBool CAknTreeListPhysicsHandler::EmptyAreaClicked( TPoint aPosition )
- {
+TBool CAknTreeListPhysicsHandler::PointerOnEmptyArea( TPoint aPosition )
+ {
if ( aPosition.iY <= WorldHeight() )
{
return EFalse;
--- a/uifw/AvKon/aknhlist/src/akntreelistview.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/aknhlist/src/akntreelistview.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -25,7 +25,7 @@
#include <aknappui.h>
#include <aknitemactionmenu.h>
#include <AknTasHook.h> // for testability hooks
-#include <aknPriv.hrh>
+#include <AknPriv.hrh>
#include "akntreelistview.h"
#include "akntree.h"
#include "akntreelist.h"
@@ -2776,6 +2776,11 @@
}
#endif // RD_UI_TRANSITION_EFFECTS_LIST
+ // text color, used to draw the separator line between list items
+ TRgb textColor( KRgbBlack );
+ AknsUtils::GetCachedColor( AknsUtils::SkinInstance(), textColor,
+ KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6 );
+
const TInt itemCount = iItems.Count();
for ( TInt ii = 0; ii < itemCount; ++ii )
{
@@ -2816,6 +2821,11 @@
transApi->StopDrawing();
}
#endif
+ if ( ii < iBottomIndex )
+ {
+ AknListUtils::DrawSeparator( gc, tfxDrawRect, textColor );
+ }
+
TBool focused = ( IsFocused() && FocusedItem() &&
iItems[ii].Item() == FocusedItem() );
--- a/uifw/AvKon/aknphysics/inc/aknphysicsconstants.h Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/aknphysics/inc/aknphysicsconstants.h Fri Feb 19 23:04:46 2010 +0200
@@ -21,9 +21,9 @@
// Physics Constants
const TInt KDefaultFriction( 10 );
-const TInt KFps( 50 ); // desired framerate
+const TInt KFps( 60 ); // desired framerate
const TInt KPhysicsTime( 1000000/KFps ); // timer value
-const TInt KPhysicsMinTime( 17000 ); // ~1000000/(2*KFps);
+const TInt KPhysicsMinTime( 8500 ); // ~1000000/(2*KFps);
const TInt KAknHighResMinWait( 500 ); // minimum wait time between callbacks
const TInt KAknHighResMaxWait( 100000 ); // maximum wait time between callbacks
const TInt KMaxContacts( 2 ); // max amount of contacts with 2 objects
--- a/uifw/AvKon/bwins/AVKONU.def Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/bwins/AVKONU.def Fri Feb 19 23:04:46 2010 +0200
@@ -3451,4 +3451,6 @@
?InitL@CAknDiscreetPopup@@SAXXZ @ 3450 NONAME ; void CAknDiscreetPopup::InitL(void)
?IsSingleClickCompatible@CAknAppUiBase@@QBEHXZ @ 3451 NONAME ; int CAknAppUiBase::IsSingleClickCompatible(void) const
?StartAnimationL@CAknBitmapAnimation@@QAEXH@Z @ 3452 NONAME ; void CAknBitmapAnimation::StartAnimationL(int)
+ ?CloseSelectionListL@CAknPopupField@@QAEXXZ @ 3453 NONAME ; void CAknPopupField::CloseSelectionListL(void)
+ ?DrawSeparator@AknListUtils@@SAXAAVCGraphicsContext@@ABVTRect@@ABVTRgb@@@Z @ 3454 NONAME ; void AknListUtils::DrawSeparator(class CGraphicsContext &, class TRect const &, class TRgb const &)
Binary file uifw/AvKon/conf/s60/avkon.confml has changed
Binary file uifw/AvKon/conf/s60/avkon_101F876E.crml has changed
--- a/uifw/AvKon/group/avkon.mmp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/group/avkon.mmp Fri Feb 19 23:04:46 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002 - 2009 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"
@@ -282,6 +282,7 @@
SOURCE AknSmileyModel.cpp
SOURCE AknSmileyImage.cpp
+SOURCE akncombinedpane.cpp
LIBRARY FontProvider.lib
LIBRARY FontUtils.lib
--- a/uifw/AvKon/group/avkon_icons_dc.mk Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/group/avkon_icons_dc.mk Fri Feb 19 23:04:46 2010 +0200
@@ -80,7 +80,6 @@
# __SCALABLE_ICONS is defined.
# ----------------------------------------------------------------------------
$(TARGETS_AVKON) ..\avkon2mifheader\avkon2mifheader_inst.cpp : iconlist.txt $(ICONLIST_SOURCELIST)
- -del $(OLDZDIR)\resource\apps\avkon2.mif
mifconv $(ICONTARGETFILENAME) /h$(HEADERFILENAME) /F$<
MifToCdlIndex -p..\Avkon2MifHeader -s $(ICONTARGETFILENAME) Avkon2MifHeader 0x102827CF
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uifw/AvKon/inc/akncombinedpane.h Fri Feb 19 23:04:46 2010 +0200
@@ -0,0 +1,152 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Status pane's combined subpane component.
+*
+*/
+
+#ifndef C_AKNCOMBINEDPANE_H
+#define C_AKNCOMBINEDPANE_H
+
+#include <aknbutton.h>
+
+class CEikStatusPaneBase;
+
+/**
+ * Combined status pane subpane for binding multiple subpanes under single
+ * window. This enables e.g. common pointer event handling between associated
+ * subpanes.
+ *
+ * Combined pane is currently used for combining the universal indicator pane
+ * and small digital clock pane as one subpane in the landscape status pane
+ * layout with bottom softkeys.
+ *
+ * @lib avkon
+ * @since S60 v5.2
+ */
+NONSHARABLE_CLASS( CAknCombinedPane ) : public CAknButton
+ {
+public: // Constructors
+
+ /**
+ * Two-phased constructor.
+ */
+ static CAknCombinedPane* NewL();
+
+ /**
+ * Destructor.
+ */
+ ~CAknCombinedPane();
+
+protected: // From base class CCoeControl
+
+ /**
+ * Returns number of controls inside this control.
+ *
+ * The container controls (@c CEikStatusPaneContainer) of the combined
+ * subpanes are component controls of combined pane.
+ *
+ * @return Number of component controls.
+ */
+ TInt CountComponentControls() const;
+
+ /**
+ * Returns a control determined by control index.
+ *
+ * @param aIndex Index of a control to be returned.
+ *
+ * @return Pointer to control.
+ */
+ CCoeControl* ComponentControl( TInt aIndex ) const;
+
+ /**
+ * Handles a change to the control's resources.
+ *
+ * @param aType Resource change type.
+ */
+ void HandleResourceChange( TInt aType );
+
+protected: // From base class CAknButton
+
+ /**
+ * Constructs the control from a resource file.
+ *
+ * @param aReader Resource reader.
+ */
+ void ConstructFromResourceL( TResourceReader& aReader );
+
+ /**
+ * Handles pointer events inside the control.
+ *
+ * @param aPointerEvent The pointer event to be handled.
+ */
+ void HandlePointerEventL( const TPointerEvent& aPointerEvent );
+
+private: // Private constructors
+
+ /**
+ * Default C++ constructor.
+ */
+ CAknCombinedPane();
+
+ /**
+ * Symbian 2nd phase constructor.
+ */
+ void ConstructL();
+
+private: // New methods
+
+ /**
+ * Sets the pressed down state of the subpanes.
+ *
+ * @param aPressedDown @c ETrue to set the subpane pressed down,
+ * @c EFalse otherwise.
+ */
+ void SetSubPanesPressedDown( TBool aPressedDown );
+
+private: // data
+
+ /**
+ * Subpane information.
+ */
+ struct TSubPaneData
+ {
+ TUint iUid; ///< UID of the subpane (defined in @c avkon.hrh).
+ TBool iPressedDown; ///< Whether or not currently pressed down.
+ };
+
+ /**
+ * Holds information about embedded subpanes.
+ */
+ RArray<TSubPaneData> iSubPanes;
+
+ /**
+ * Pointer to the status pane.
+ * Not own.
+ */
+ CEikStatusPaneBase* iStatusPane;
+
+ /**
+ * Whether or not the pointer down event has been received in the
+ * combined pane area.
+ */
+ TBool iPointerDownInCombinedArea;
+
+ /**
+ * Amount of pixels that a subpane control is shifted right and bottom
+ * for the pressed down effect.
+ */
+ TInt iPressedDownDelta;
+ };
+
+#endif // C_AKNCOMBINEDPANE_H
--- a/uifw/AvKon/notifsrc/AknSoftNotifier.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/notifsrc/AknSoftNotifier.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -23,7 +23,7 @@
#include <AknSoftNotificationParameters.h>
#include <AknNotifySignature.h>
#include <aknSDData.h>
-#include "AknSoftNoteConsts.h"
+#include "aknsoftnoteconsts.h"
const TInt KBufferGranularity = 128;
const TInt KGlobalNoteTextLength = 256;
--- a/uifw/AvKon/notifsrc/aknNotify.mmp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/notifsrc/aknNotify.mmp Fri Feb 19 23:04:46 2010 +0200
@@ -64,7 +64,7 @@
LIBRARY akntransitionutils.lib
#endif
-DEFFILE AknNotify.DEF
+DEFFILE AKNNOTIFY.DEF
START WINS
BASEADDRESS 0x7dd30000
--- a/uifw/AvKon/src/AknCharMap.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/AknCharMap.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -3186,7 +3186,6 @@
iShowPagesRef = &iSpecialCharPages;
// default
- iSpecialCharCase = EAknSCTLowerCase;
iChars = iCharsBufferLower;
if(iExtension->iCharsSmiley && iExtension->IsShowingEmotion())
--- a/uifw/AvKon/src/AknEcs.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/AknEcs.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -36,6 +36,7 @@
#include <PtiDefs.h>
#include <e32property.h>
+#include "akntrace.h"
// CLASS DECLARATIONS
@@ -220,7 +221,9 @@
CAknMatchingCharacterQueue::CAknMatchingCharacterQueue( CPhCltEmergencyCall* aPhCltEmergencyCall )
: iPhCltEmergencyCall( aPhCltEmergencyCall )
{
+ _AKNTRACE_FUNC_ENTER;
Reset();
+ _AKNTRACE_FUNC_EXIT;
}
CAknMatchingCharacterQueue::~CAknMatchingCharacterQueue( )
@@ -233,12 +236,18 @@
void CAknMatchingCharacterQueue::Reset()
{
+ _AKNTRACE_FUNC_ENTER;
iMatchPosition = 0;
iCharBuffer.Zero();
+ _AKNTRACE_FUNC_EXIT;
}
void CAknMatchingCharacterQueue::AddChar( TText aNewChar )
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "[%s][%s] aNewChar: %s", "CAknMatchingCharacterQueue",
+ __FUNCTION__,&aNewChar);
+
TInt length = iCharBuffer.Length();
TInt maxLenght = iCharBuffer.MaxLength();
if (length >= maxLenght)
@@ -247,10 +256,15 @@
}
iCharBuffer.Append( aNewChar );
UpdateStatus( EFalse );
+ _AKNTRACE_FUNC_ENTER;
}
void CAknMatchingCharacterQueue::SetBuffer( const TDesC& aNewBuffer )
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "[%s][%s] aNewBuffer: %s", "CAknMatchingCharacterQueue",
+ __FUNCTION__,&aNewBuffer);
+
TInt maxLenght = iCharBuffer.MaxLength();
TInt length = aNewBuffer.Length();
if ( length > maxLenght )
@@ -259,6 +273,7 @@
}
iCharBuffer = aNewBuffer.Left( length );
UpdateStatus( ETrue );
+ _AKNTRACE_FUNC_EXIT;
}
TInt CAknMatchingCharacterQueue::Count() const
@@ -283,6 +298,7 @@
void CAknMatchingCharacterQueue::UpdateStatus( TBool aBufferMode )
{
+ _AKNTRACE_FUNC_ENTER;
TBool isEmergency = EFalse;
TInt err = KErrNone;
TPhCltTelephoneNumber buffer = iCharBuffer;
@@ -313,6 +329,10 @@
iMatchPosition = cbLength;
iStatus = ENoMatch;
}
+
+ _AKNTRACE( "[%s][%s] iStatus: %d", "CAknMatchingCharacterQueue",
+ __FUNCTION__,iStatus );
+ _AKNTRACE_FUNC_EXIT;
}
@@ -325,12 +345,15 @@
EXPORT_C CAknEcsDetector::CAknEcsDetector()
{
+ _AKNTRACE_FUNC_ENTER;
iCoeEnv = CCoeEnv::Static();
iState = ENotFullyConstructed;
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C CAknEcsDetector::~CAknEcsDetector()
{
+ _AKNTRACE_FUNC_ENTER;
// Must close this in order to remove any observers from the AppUi's monitor
CloseEventSource();
delete iPhCltEmergencyCall;
@@ -338,10 +361,12 @@
delete iQueue;
delete iIdler;
delete iKeyTimeoutTimer;
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknEcsDetector::ConstructL()
{
+ _AKNTRACE_FUNC_ENTER;
iEmergencyCallObserver = new (ELeave) CPhCltEmergencyCallObserver( this );
// Phone client interface
iPhCltEmergencyCall = CPhCltEmergencyCall::NewL( iEmergencyCallObserver );
@@ -355,14 +380,17 @@
// Timer for timing the timeout between keys
iKeyTimeoutTimer = CPeriodic::NewL( CActive::EPriorityLow);
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C CAknEcsDetector* CAknEcsDetector::NewL()
{ // static
+ _AKNTRACE_FUNC_ENTER;
CAknEcsDetector* self = new (ELeave) CAknEcsDetector();
CleanupStack::PushL( self );
self->ConstructL();
CleanupStack::Pop(); //self
+ _AKNTRACE_FUNC_EXIT;
return self;
}
@@ -392,6 +420,10 @@
EXPORT_C void CAknEcsDetector::HandleWsEventL(const TWsEvent& aEvent, CCoeControl* /* aDestination */)
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "[%s][%s] aEvent.type(): %d, aEvent.Key()->iScanCode :%d", "CAknEcsDetector",
+ __FUNCTION__,aEvent.Type(),aEvent.Key()->iScanCode );
+
if ( aEvent.Type() == EEventKeyDown ||
// EKeyPhoneEnd/EKeyNo doesn't send EEVentKeyDown events, so EEventKey is used instead
( ( aEvent.Key()->iScanCode == EStdKeyNo ) && ( aEvent.Type() == EEventKey ) )
@@ -399,16 +431,29 @@
{
AddChar( (TText)(aEvent.Key()->iScanCode ) ); // top 16 ( in Unicode build) bits removed
}
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknEcsDetector::AddChar( TText aNewChar )
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "[%s][%s] aNewChar: %s", "CAknEcsDetector",
+ __FUNCTION__, &aNewChar );
+
+ if (aNewChar == EKeyQwertyOn || aNewChar == EKeyQwertyOff)
+ {
+ _AKNTRACE_FUNC_EXIT;
+ return; // return directly if the aNewChar is slide open/closed.
+ }
+
iKeyTimeoutTimer->Cancel(); // there might be pending timeout; clear it
if ( aNewChar == EStdKeyYes || aNewChar ==EKeyPhoneSend )
{
if ( State() == ECompleteMatch )
{
+ _AKNTRACE( "[%s][%s] SetState( ECompleteMatchThenSendKey )", "CAknEcsDetector",
+ __FUNCTION__ );
SetState( ECompleteMatchThenSendKey );
}
// else do nothing with it...
@@ -518,11 +563,13 @@
DetermineState();
iKeyTimeoutTimer->Start( KEcsInterKeyTimeout, KEcsInterKeyTimeout, TCallBack( CancelMatch, this ) );
}
+ _AKNTRACE_FUNC_EXIT;
}
void CAknEcsDetector::DetermineState()
{
+ _AKNTRACE_FUNC_ENTER;
TState bestState = ENoMatch;
if ( iQueue->Count() == 0 )
@@ -547,6 +594,9 @@
}
SetState(bestState);
}
+ _AKNTRACE( "[%s][%s] bestState: %d", "CAknEcsDetector",
+ __FUNCTION__, bestState );
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknEcsDetector::ReportEvent(TState aNewState )
@@ -574,19 +624,29 @@
}
EXPORT_C void CAknEcsDetector::SetBuffer( const TDesC& aNewBuffer )
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "[%s][%s] aNewBuffer: %s", "CAknEcsDetector",
+ __FUNCTION__, &aNewBuffer );
+
iKeyTimeoutTimer->Cancel(); // there might be pending timeout; clear it
iQueue->Reset();
iQueue->SetBuffer(aNewBuffer);
DetermineState();
if ( State() == ECompleteMatch )
{
+ _AKNTRACE( "[%s][%s] State() == ECompleteMatch ", "CAknEcsDetector",
+ __FUNCTION__ );
iKeyTimeoutTimer->Start( KEcsInterKeyTimeout,
KEcsInterKeyTimeout, TCallBack( CancelMatch, this ) );
}
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknEcsDetector::SetState( TState aNewState )
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "[%s][%s] aNewState: %d", "CAknEcsDetector",
+ __FUNCTION__, aNewState );
ReportEvent( aNewState );
TInt oldState = iState;
@@ -611,10 +671,13 @@
proceedWithCall = OfferEmergencyCall();
if ( proceedWithCall )
{
+ _AKNTRACE( "[%s][%s] Attempt Emergency Call", "CAknEcsDetector",
+ __FUNCTION__);
AttemptEmergencyCall();
}
else
{ // Pass through this state immediately
+ _AKNTRACE( "[%s][%s] Reset", "CAknEcsDetector", __FUNCTION__);
iQueue->Reset();
SetState( EEmpty );
}
@@ -625,12 +688,15 @@
break;
}
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknEcsDetector::Reset()
{
+ _AKNTRACE_FUNC_ENTER;
iQueue->Reset();
SetState( EEmpty );
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -657,6 +723,7 @@
void CAknEcsDetector::AttemptEmergencyCall()
{
+ _AKNTRACE_FUNC_ENTER;
#ifdef AVKON_RDEBUG_INFO
_LIT(KDebugAttemptEmergencyCall, "Attempt Emergency Call From Detector");
RDebug::Print(KDebugAttemptEmergencyCall);
@@ -668,6 +735,7 @@
{
err = KErrNone;
}
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknEcsDetector::SetObserver( MAknEcsObserver* aObserver )
@@ -690,18 +758,22 @@
*/
TInt CAknEcsDetector::CallAttemptedCallback(TAny* aSelf)
{ // static
+ _AKNTRACE_FUNC_ENTER;
REINTERPRET_CAST(CAknEcsDetector*,aSelf)->SetState( ECallAttempted );
#ifdef AVKON_RDEBUG_INFO
_LIT(KDebugCallAttemptedCallback, "CallAttemptedCallback");
RDebug::Print(KDebugCallAttemptedCallback);
#endif
+ _AKNTRACE_FUNC_EXIT;
return 0;
}
TInt CAknEcsDetector::CancelMatch(TAny* aThis)
{
+ _AKNTRACE_FUNC_ENTER;
static_cast<CAknEcsDetector*>(aThis)->Reset();
static_cast<CAknEcsDetector*>(aThis)->iKeyTimeoutTimer->Cancel();
+ _AKNTRACE_FUNC_EXIT;
return 0; // Do not repeat the operation
}
--- a/uifw/AvKon/src/AknNoteDialog.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/AknNoteDialog.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -46,6 +46,7 @@
#endif
#include <AknTasHook.h> // for testability hooks
+#include "akntrace.h"
const TInt EEikDialogFlagSleeping =0x20000;
// -----------------------------------------------------------------------------
@@ -181,23 +182,32 @@
EXPORT_C CAknNoteDialog::CAknNoteDialog() : CEikDialog(),
iTimeoutInMicroseconds(ENoTimeout), iTone(ENoTone)
{
+ _AKNTRACE_FUNC_ENTER;
AKNTASHOOK_ADD( this, "CAknNoteDialog" );
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C CAknNoteDialog::CAknNoteDialog(const TTone& aTone, const TTimeout& aTimeout) :
CEikDialog(), iTimeoutInMicroseconds(aTimeout), iTone(aTone)
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE("iTimeoutInMicroseconds = %d", aTimeout);
AKNTASHOOK_ADD( this, "CAknNoteDialog" );
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C CAknNoteDialog::CAknNoteDialog(CEikDialog** aSelfPtr,const TTone& aTone, const TTimeout& aTimeout) :
CEikDialog(), iTimeoutInMicroseconds(aTimeout), iSelfPtr(aSelfPtr), iTone(aTone)
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE("iTimeoutInMicroseconds = %d", aTimeout);
AKNTASHOOK_ADD( this, "CAknNoteDialog" );
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C CAknNoteDialog::~CAknNoteDialog()
{
+ _AKNTRACE_FUNC_ENTER;
AKNTASHOOK_REMOVE();
// FIXME: Experimental heuristics for determining popup type
#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
@@ -225,6 +235,7 @@
delete iControlAttributes;
delete iNoteExtension;
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknNoteDialog::SetTimeout(const TTimeout& aTimeout)
@@ -382,6 +393,7 @@
EXPORT_C void CAknNoteDialog::LayoutAndDraw()
{
+ _AKNTRACE_FUNC_ENTER;
if (IsActivated())
{
TRect screenRect = iAvkonAppUi->ApplicationRect();
@@ -397,10 +409,12 @@
attr->AllowOptimizedDrawing();
}
}
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C TInt CAknNoteDialog::RunLD()
{
+ _AKNTRACE_FUNC_ENTER;
PlayTone();
ReportUserActivity();
@@ -414,12 +428,14 @@
CAknTransitionUtils::RemoveData( ( TInt )NoteControl() );
}
#endif
-
+
+ _AKNTRACE_FUNC_EXIT;
return CEikDialog::RunLD();
}
EXPORT_C TInt CAknNoteDialog::StaticDeleteL(TAny *aThis)
{
+ _AKNTRACE_FUNC_ENTER;
CAknNoteDialog* self = REINTERPRET_CAST(CAknNoteDialog*,aThis);
#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
@@ -478,12 +494,14 @@
self->ExitSleepingDialog();
self->NoteControl()->Reset();
}
+ _AKNTRACE_FUNC_EXIT;
return EFalse;
}
EXPORT_C void CAknNoteDialog::SetSizeAndPosition( const TSize& aSize )
{
+ _AKNTRACE_FUNC_ENTER;
SetBorder( TGulBorder::ENone );
CAknNoteControl* note = NoteControl();
if (note)
@@ -509,6 +527,7 @@
ControlAttributes()->SetLayoutDone();
}
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknNoteDialog::PreLayoutDynInitL()
@@ -661,6 +680,7 @@
EXPORT_C void CAknNoteDialog::HandleResourceChange(TInt aType)
{
+ _AKNTRACE_FUNC_ENTER;
if(aType==KEikDynamicLayoutVariantSwitch)
{
if (!IsVisible())
@@ -697,6 +717,7 @@
}
CEikDialog::HandleResourceChange(aType);
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -831,6 +852,7 @@
EXPORT_C void CAknNoteDialog::HandlePointerEventL(const TPointerEvent& aPointerEvent)
{
+ _AKNTRACE_FUNC_ENTER;
if ( AknLayoutUtils::PenEnabled() )
{
CCoeControl* ctrl = GrabbingComponent();
@@ -859,6 +881,7 @@
}
}
}
+ _AKNTRACE_FUNC_EXIT;
}
--- a/uifw/AvKon/src/AknPhoneNumberEditor.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/AknPhoneNumberEditor.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -1081,7 +1081,9 @@
// check if the characters are allowed, if one character is not allowed,
// it will not be pasted into phone number editor
- if ( fepState->CurrentInputMode() != EAknEditorTextInputMode )
+ CAknExtendedInputCapabilities * pCapabilities(iExtension->iExtendedInputCapabilities);
+ if ( fepState->CurrentInputMode() != EAknEditorTextInputMode && pCapabilities
+ && pCapabilities->EditorType() != CAknExtendedInputCapabilities::EHybridAlphaNumericEditor )
{
TInt pos = 0;
TInt index = 0;
@@ -1294,5 +1296,17 @@
return edwinState->Flags();
}
+// --------------------------------------------------------------------------
+// CAknPhoneNumberEditor::MakeVisible
+// --------------------------------------------------------------------------
+//
+void CAknPhoneNumberEditor::MakeVisible(TBool aVisible)
+ {
+ CCoeControl::MakeVisible(aVisible);
+ if ( !aVisible )
+ {
+ CloseVKB();
+ }
+ }
// End of file
--- a/uifw/AvKon/src/AknPopupField.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/AknPopupField.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -1160,6 +1160,14 @@
}
}
+EXPORT_C void CAknPopupField::CloseSelectionListL()
+ {
+ if ( iSelectionMode == EAknPopupFieldSelectionListMode
+ && iSelectionList )
+ {
+ AttemptExitL( EFalse );
+ }
+ }
void CAknPopupField::ConfigureDecorator()
{
--- a/uifw/AvKon/src/AknPopupSettingPage.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/AknPopupSettingPage.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002-2009 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"
@@ -317,7 +317,8 @@
// ensures that correct item gets selected if setting page is
// accepted by clicking the left softkey.
if ( iExtension && iExtension->iFlags.IsSet(
- CAknPopupSettingListExtension::ESingleClickEnabled ) )
+ CAknPopupSettingListExtension::ESingleClickEnabled ) &&
+ ItemExists( iCurrentSelection ) )
{
View()->SetCurrentItemIndex( iCurrentSelection );
}
--- a/uifw/AvKon/src/AknPreviewPopUpController.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/AknPreviewPopUpController.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005-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"
@@ -231,93 +231,62 @@
resize = ETrue;
}
- // allowed rect
- TRect clientRect;
- AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, clientRect );
-
- // Control is allowed to be on top of the status pane but it cannot
- // overlay either stacon pane or control pane.
-
- //switch ( iAvkonAppUi->StatusPane()->CurrentLayoutResId() )
- CEikStatusPaneBase* statusPane = CEikStatusPaneBase::Current();
- TInt currentStatusPaneLayoutResId = 0;
- if (statusPane)
- {
- currentStatusPaneLayoutResId = statusPane->CurrentLayoutResId();
- }
- else
- {
- // If this app does not have statuspane, then we ask the layout from AknCapServer.
- currentStatusPaneLayoutResId = CAknSgcClient::CurrentStatuspaneResource();
- }
-
- switch ( currentStatusPaneLayoutResId )
- {
- case R_AVKON_STACON_PANE_LAYOUT_USUAL_SOFTKEYS_RIGHT:
- case R_AVKON_STACON_PANE_LAYOUT_USUAL_SOFTKEYS_LEFT:
- case R_AVKON_STACON_PANE_LAYOUT_IDLE_SOFTKEYS_RIGHT:
- case R_AVKON_STACON_PANE_LAYOUT_IDLE_SOFTKEYS_LEFT:
- case R_AVKON_STACON_PANE_LAYOUT_EMPTY_SOFTKEYS_RIGHT:
- case R_AVKON_STACON_PANE_LAYOUT_EMPTY_SOFTKEYS_LEFT:
- break;
-
- default:
- TRect statusPaneRect;
- AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EStatusPane,
- statusPaneRect );
-
- clientRect.BoundingRect( statusPaneRect );
- }
+ // Adjust the position if the popup would go outside of the screen
+ // rect with the given position.
+ TRect screenRect;
+ AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EScreen, screenRect );
+ TInt screenWidth( screenRect.Width() );
+ TInt screenHeight( screenRect.Height() );
TPoint finalPosition;
- // resize if the popup is too wide
- if ( popupSize.iWidth > clientRect.Width() )
+ // Resize if the popup is too wide.
+ if ( popupSize.iWidth > screenWidth )
{
resize = ETrue;
- popupSize.iWidth = clientRect.Width();
+ popupSize.iWidth = screenWidth;
}
- // resize if the popup is too tall
- if ( popupSize.iHeight > clientRect.Height() )
- {
+ // Resize if the popup is too tall.
+ if ( popupSize.iHeight > screenHeight )
+ {
resize = ETrue;
- popupSize.iHeight = clientRect.Height();
- }
+ popupSize.iHeight = screenHeight;
+ }
- // default horizontal position is left from the given point
- if ( askedPoint.iX - popupSize.iWidth >= clientRect.iTl.iX )
+ // Default horizontal position is left from the given point.
+ if ( askedPoint.iX - popupSize.iWidth >= screenRect.iTl.iX )
{
finalPosition.iX = askedPoint.iX - popupSize.iWidth;
}
else
{
// outside left border, move to left border
- finalPosition.iX = clientRect.iTl.iX;
+ finalPosition.iX = screenRect.iTl.iX;
}
- // check the right border
- if ( finalPosition.iX + popupSize.iWidth > clientRect.iBr.iX )
+ // Check the right border.
+ if ( finalPosition.iX + popupSize.iWidth > screenRect.iBr.iX )
{
- finalPosition.iX = clientRect.iBr.iX - popupSize.iWidth;
+ finalPosition.iX = screenRect.iBr.iX - popupSize.iWidth;
}
- // default vertical position is up from the given point
- // coordinates grow from top to bottom
- if ( askedPoint.iY > clientRect.iTl.iY )
+ // Default vertical position is up from the given point.
+ // Coordinates grow from top to bottom.
+ if ( askedPoint.iY > screenRect.iTl.iY )
{
finalPosition.iY = askedPoint.iY;
}
else
{
- // outside top border, move to top border
- finalPosition.iY = clientRect.iTl.iY;
+ // Outside top border, move to top border.
+ finalPosition.iY = screenRect.iTl.iY;
}
- // outside bottom border, move to bottom border
- if ( ( askedPoint.iY + popupSize.iHeight ) > clientRect.iBr.iY )
+ // Outside bottom border, move to bottom border.
+ if ( ( askedPoint.iY + popupSize.iHeight ) > screenRect.iBr.iY )
{
- finalPosition.iY = clientRect.iBr.iY - popupSize.iHeight;
+ finalPosition.iY = screenRect.iBr.iY - popupSize.iHeight;
}
if ( resize )
--- a/uifw/AvKon/src/AknProgressDialog.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/AknProgressDialog.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -30,6 +30,8 @@
#include "aknnoteattributes.h"
#include <akninputblock.h>
+#include "akntrace.h"
+
#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
#include <gfxtranseffect/gfxtranseffect.h>
@@ -101,6 +103,8 @@
TInt anInterval,CEikDialog** aSelfPtr) :
CAknNoteDialog(aSelfPtr),iInternalTimerControl(ETrue)
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE("aFinalValue = %d anIncrement = %d anInterval = %d", aFinalValue, anIncrement, anInterval);
#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
GfxTransEffect::Register( this, KGfxWaitNoteControlUid );
#endif
@@ -109,15 +113,18 @@
iModel.iIncrement = anIncrement;
iModel.iRunning = EFalse;
AKNTASHOOK_ADD( this, "CAknProgressDialog" );
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C CAknProgressDialog::CAknProgressDialog(CEikDialog** aSelfPtr) :
CAknNoteDialog(aSelfPtr),iInternalTimerControl(EFalse)
{
+ _AKNTRACE_FUNC_ENTER;
#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
GfxTransEffect::Register( this, KGfxWaitNoteControlUid );
#endif
AKNTASHOOK_ADD( this, "CAknProgressDialog" );
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C CAknProgressDialog::CAknProgressDialog(CEikDialog** aSelfPtr,
@@ -126,14 +133,18 @@
iVisibilityDelayOff( aVisibilityDelayOff ),
iInternalTimerControl(EFalse)
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE("iVisibilityDelayOff = %d ", aVisibilityDelayOff);
#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
GfxTransEffect::Register( this, KGfxWaitNoteControlUid );
#endif
AKNTASHOOK_ADD( this, "CAknProgressDialog" );
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C CAknProgressDialog::~CAknProgressDialog()
{
+ _AKNTRACE_FUNC_ENTER;
AKNTASHOOK_REMOVE();
if ( iInternalTimerControl )
{
@@ -143,6 +154,7 @@
delete iCancelWhileHidden;
delete iProgressTimer;
delete iProgressDialogTimer;
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknProgressDialog::PreLayoutDynInitL()
@@ -175,6 +187,8 @@
TInt CAknProgressDialog::DialogTimerEvent()
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE("CAknProgressDialog::DialogTimerEvent iState = %d", iState);
switch ( iState )
{
case EProcessOnDisplayOff:
@@ -259,11 +273,14 @@
delete iProgressDialogTimer;
iProgressDialogTimer = NULL;
}
+ _AKNTRACE_FUNC_EXIT;
return KErrNone;
}
EXPORT_C void CAknProgressDialog::ProcessFinishedL()
- {
+ {
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE("CAknProgressDialog::ProcessFinishedL iState = %d", iState);
switch ( iState )
{
case EProcessOnDisplayOff:
@@ -281,10 +298,13 @@
default:
break;
}
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C TInt CAknProgressDialog::RunLD()
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE("RunLD iInternalTimerControl = %d iVisibilityDelayOff = %d", iInternalTimerControl, iVisibilityDelayOff);
CAknNoteControl* note = NoteControl();
note->CreateProgressBarL();
@@ -338,7 +358,7 @@
iEikonEnv->EikAppUi()->AddToStackL(this,ECoeStackPriorityDialog,ECoeStackFlagRefusesAllKeys);
}
-
+ _AKNTRACE_FUNC_EXIT;
return CAknNoteDialog::RunLD();
}
@@ -388,20 +408,24 @@
EXPORT_C TBool CAknProgressDialog::OkToExitL(TInt aButtonId)
{
+ _AKNTRACE_FUNC_ENTER;
// if dialog is invisible and app isn't exiting, eg during view switch,
// don't stop the progress dialog - it's most likely part of some
// asynchronous operation.
if ((iState == EProcessOnDisplayOff && !CAknEnv::AppWithShutterRunning()) ||
aButtonId == EAknSoftkeyEmpty )
{
+ _AKNTRACE("CAknProgressDialog::OkToExitL return for EProcessOnDisplayOff");
delete iCancelWhileHidden;
iCancelWhileHidden = NULL;
return EFalse;
}
if ( iCallback )
{
+ _AKNTRACE("CAknProgressDialog::OkToExitL succeed to execut DialogDismissedL");
iCallback->DialogDismissedL(aButtonId);
}
+ _AKNTRACE_FUNC_EXIT;
return ETrue;
}
--- a/uifw/AvKon/src/AknQueryControl.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/AknQueryControl.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -77,6 +77,7 @@
#include <AknTasHook.h> // for testability hooks
#include <tacticon.h>
+#include "akntrace.h"
const TInt KPinCodeTacticonInterval = 30000000; // 30s
const TInt KPinCodeMaxTacticons = 10;
/*******
@@ -110,12 +111,14 @@
CAknQueryControlExtension::~CAknQueryControlExtension()
{
+ _AKNTRACE_FUNC_ENTER;
delete iOriginalPrompt;
delete iBackspaceButton;
delete iKeypad;
delete iPinTacticonTimer;
iPinTacticonTimer = NULL;
+ _AKNTRACE_FUNC_EXIT;
}
CAknLocationEditor *CAknQueryControl::LocationEd() const
@@ -137,10 +140,12 @@
void CAknQueryExtension::CreateEditorContextL()
{
+ _AKNTRACE_FUNC_ENTER;
delete iEditorContext;
iEditorContext = NULL;
iEditorContext = CAknsFrameBackgroundControlContext::NewL(
KAknsIIDQsnFrInput, TRect(0,0,1,1), TRect(0,0,1,1), EFalse );
+ _AKNTRACE_FUNC_EXIT;
}
CAknsFrameBackgroundControlContext* CAknQueryExtension::EditorContext()
@@ -159,19 +164,23 @@
void CAknQueryExtension::CreateExtensionL(
const CAknQueryControl* aQueryControl )
{
+ _AKNTRACE_FUNC_ENTER;
CAknQueryExtension* extension = CAknQueryExtension::NewL();
CleanupStack::PushL( extension );
AknsPointerStore::StorePointerL(
static_cast<const CBase*>(aQueryControl), extension );
CleanupStack::Pop(); // extension
+ _AKNTRACE_FUNC_EXIT;
}
void CAknQueryExtension::DestroyExtension(
const CAknQueryControl* aQueryControl )
{
+ _AKNTRACE_FUNC_ENTER;
delete Instance( aQueryControl );
AknsPointerStore::RemovePointer(
static_cast<const CBase*>(aQueryControl) );
+ _AKNTRACE_FUNC_EXIT;
}
CAknQueryExtension* CAknQueryExtension::NewL()
@@ -182,6 +191,7 @@
CAknQueryExtension::~CAknQueryExtension()
{
delete iEditorContext;
+ _AKNTRACE( "[%s][%s]exit", "CAknQueryExtension", "~CAknQueryExtension" );
}
/*****************************
@@ -214,6 +224,7 @@
EXPORT_C void TAknQueryEcsObserver::HandleEcsEvent( CAknEcsDetector* /*aDetector*/,
CAknEcsDetector::TState aUpdatedState )
{
+ _AKNTRACE( "[%s][%s] aUpdatedState: %d", "TAknQueryEcsObserver", __FUNCTION__,aUpdatedState);
TRAP_IGNORE( iParent->SetEcsCbaVisibleL( aUpdatedState == CAknEcsDetector::ECompleteMatch ) );
// Hide the emergency call number again.
@@ -223,6 +234,7 @@
{
if ( iParent->QueryType() == EPinLayout )
{
+ _AKNTRACE( "[%s][%s] ", "RevealSecretText( EFalse )", __FUNCTION__);
static_cast<CAknNumericSecretEditor*>
( iParent->ControlByLayoutOrNull( EPinLayout ) )->RevealSecretText( EFalse );
}
@@ -232,8 +244,10 @@
// If the query is cancelled, the iParent is deleted!
if ( aUpdatedState == CAknEcsDetector::ECallAttempted )
{
+ _AKNTRACE( "[%s][%s] ", "cancel query", __FUNCTION__);
TRAP_IGNORE( iParent->CancelQueryL() );
}
+ _AKNTRACE_FUNC_EXIT;
}
@@ -294,6 +308,7 @@
*/
EXPORT_C CAknQueryControl::~CAknQueryControl()
{
+ _AKNTRACE( "[%s][%s] enter", "CAknQueryControl", "~CAknQueryControl");
AKNTASHOOK_REMOVE();
if (iEdwin)
AknsUtils::DeregisterControlPosition(iEdwin);
@@ -350,6 +365,7 @@
delete iIncreaseValueButton;
delete iDecreaseValueButton;
#endif //defined( RD_SCALABLE_UI_V2)
+ _AKNTRACE( "[%s][%s] exit", "CAknQueryControl", "~CAknQueryControl");
}
/**
@@ -357,6 +373,7 @@
*/
EXPORT_C void CAknQueryControl::ConstructFromResourceL(TResourceReader &aRes)
{
+ _AKNTRACE_FUNC_ENTER;
// Construct extension
CAknQueryExtension::CreateExtensionL( this );
iExtension = new (ELeave)CAknQueryControlExtension;
@@ -403,10 +420,12 @@
iExtension->iKeypad = CAknKeypad::NewL( *this, iQueryType );
}
}
+ _AKNTRACE_FUNC_EXIT;
}
void CAknQueryControl::ConstructQueryL(TResourceReader& aRes)
{
+ _AKNTRACE( "[%s][%s] iQueryType : %d", "CAknQueryControl", "ConstructQueryL", iQueryType );
switch(iQueryType)
{
case EConfirmationQueryLayout:
@@ -720,18 +739,21 @@
{
extension->CreateEditorContextL();
}
+ _AKNTRACE_FUNC_EXIT;
}
TInt CAknQueryControl::PinCodeTimeoutCallback( TAny* aThis )
{
+ _AKNTRACE_FUNC_ENTER;
// play tacticon
static_cast<CAknQueryControl*>( aThis )->PlayPinCodeTacticon();
-
+ _AKNTRACE_FUNC_EXIT;
return KErrNone;
}
void CAknQueryControl::PlayPinCodeTacticon()
{
+ _AKNTRACE_FUNC_ENTER;
// play tacticon
RTacticon client;
if ( KErrNone == client.Connect() )
@@ -756,10 +778,12 @@
StopPinCodeTacticonTimer();
}
}
+ _AKNTRACE_FUNC_EXIT;
}
void CAknQueryControl::ResetPinCodeTacticonTimer()
{
+ _AKNTRACE_FUNC_ENTER;
// stop old timer
StopPinCodeTacticonTimer();
@@ -777,10 +801,12 @@
TCallBack( PinCodeTimeoutCallback, this ) );
}
}
+ _AKNTRACE_FUNC_EXIT;
}
void CAknQueryControl::StopPinCodeTacticonTimer()
{
+ _AKNTRACE_FUNC_ENTER;
if ( iExtension )
{
// delete timer
@@ -789,6 +815,7 @@
// set the timer null, so that it will not be used again
iExtension->iPinTacticonTimer = NULL;
}
+ _AKNTRACE_FUNC_EXIT;
}
///
@@ -925,6 +952,7 @@
*/
EXPORT_C TKeyResponse CAknQueryControl::OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType)
{
+ _AKNTRACE( "[%s][%s] aKeyEvent.iCode :%d, aType:%d ", "CAknQueryControl", __FUNCTION__, aKeyEvent.iCode, aType);
TKeyResponse response( EKeyWasNotConsumed );
// Send key handling for emergency call support
@@ -950,6 +978,7 @@
ResetPinCodeTacticonTimer();
}
}
+ _AKNTRACE_FUNC_EXIT;
return response;
}
@@ -1123,6 +1152,7 @@
}
}
}
+ _AKNTRACE( "[%s][%s] iPinEdwin->RevealSecretText( %d )", "CAknQueryControl", __FUNCTION__, reveal);
iPinEdwin->RevealSecretText( reveal );
}
}
@@ -2531,6 +2561,7 @@
*/
void CAknQueryControl::CancelQueryL()
{
+ _AKNTRACE_FUNC_ENTER;
if (iQueryControlObserver)
{
iQueryControlObserver->HandleQueryEditorStateEventL(this, MAknQueryControlObserver::EEmergencyCallAttempted, MAknQueryControlObserver::EEditorValueValid);
@@ -2543,6 +2574,7 @@
key.iScanCode = EStdKeyNull;
iEikonEnv->SimulateKeyEventL(key, EEventKey);
}
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -2600,7 +2632,7 @@
EXPORT_C void CAknQueryControl::SetImageL(CEikImage* aImage)
{ // Gets ownership of the aImage
-
+ _AKNTRACE_FUNC_ENTER;
if ( iImage && iImage->IsPictureOwnedExternally() )
{
delete ((CApaMaskedBitmap*) iImage->Bitmap());
@@ -2618,11 +2650,13 @@
iAnimation = NULL;
Layout();
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknQueryControl::SetImageL(const TDesC& aImageFile,
TInt aBmpId, TInt aBmpMaskId)
{
+ _AKNTRACE_FUNC_ENTER;
CEikImage* image = new(ELeave) CEikImage;
CleanupStack::PushL( image );
@@ -2653,10 +2687,12 @@
CleanupStack::Pop(); //image
SetImageL(image); // gets ownership
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknQueryControl::SetAnimationL(TInt aResource)
{
+ _AKNTRACE_FUNC_ENTER;
delete iAnimation;
iAnimation = NULL;
iAnimation = CAknBitmapAnimation::NewL();
@@ -2677,10 +2713,12 @@
iExtension->iAnimationId = aResource;
Layout();
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknQueryControl::StartAnimationL()
{
+ _AKNTRACE_FUNC_ENTER;
if (iAnimation)
{
CBitmapAnimClientData *animClientData = iAnimation->BitmapAnimData();
@@ -2725,15 +2763,19 @@
iAnimation->StartAnimationL();
}
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C TInt CAknQueryControl::CancelAnimation()
{
- if ( iAnimation )
+ _AKNTRACE_FUNC_ENTER;
+ TInt result(KErrGeneral);
+ if ( iAnimation )
{
- return iAnimation->CancelAnimation();
+ result = iAnimation->CancelAnimation();
}
- return KErrGeneral;
+ _AKNTRACE( "[%s][%s] return %d", "CAknQueryControl", "CancelAnimation", result);
+ return result;
}
@@ -2980,13 +3022,16 @@
// Callback for doing a redraw when animating pictographs
TInt CAknQueryControl::StaticPictographCallBack( TAny* aPtr )
{
+ _AKNTRACE_FUNC_ENTER;
CAknQueryControl* me = static_cast<CAknQueryControl*>( aPtr );
me->PictographCallBack();
+ _AKNTRACE_FUNC_EXIT;
return KErrNone;
}
void CAknQueryControl::PictographCallBack()
{
+ _AKNTRACE_FUNC_ENTER;
MAknsSkinInstance* skin = AknsUtils::SkinInstance();
MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
@@ -3025,6 +3070,7 @@
iPrompt->SetLineModified( i, EFalse );
}
}
+ _AKNTRACE_FUNC_EXIT;
}
TBool CAknQueryControl::EmbeddedVirtualInput() const
@@ -3060,10 +3106,12 @@
CEikDialog* CAknQueryControl::Dialog() const
{
+ _AKNTRACE_FUNC_ENTER;
CAknQueryControl* control = const_cast<CAknQueryControl*>( this );
CEikDialog* dialog = NULL;
control->MopGetObject( dialog );
+ _AKNTRACE_FUNC_EXIT;
return dialog;
}
@@ -3365,6 +3413,7 @@
EXPORT_C void CAknQueryControl::HandleResourceChange(TInt aType)
{
+ _AKNTRACE_FUNC_ENTER;
CCoeControl::HandleResourceChange(aType);
if( aType == KAknsMessageSkinChange && iExtension->iAnimationId )
@@ -3377,6 +3426,7 @@
SizeChanged();
TRAP_IGNORE(DoSetPromptL());
}
+ _AKNTRACE_FUNC_EXIT;
}
// ---------------------------------------------------------------------------
@@ -3410,6 +3460,7 @@
//
void CAknQueryControl::SetEcsCbaVisibleL( TBool aVisible )
{
+ _AKNTRACE( "[%s][%s] aVisible:%d ", "CAknQueryControl", __FUNCTION__,aVisible);
if ( iExtension &&
!COMPARE_BOOLS( aVisible, iExtension->iEcsCbaShown ) &&
iFlags.IsSet( EEmergencyCallsCBASupport ) )
@@ -3444,6 +3495,7 @@
}
}
}
+ _AKNTRACE_FUNC_EXIT;
}
@@ -3453,6 +3505,7 @@
//
void CAknQueryControl::AttemptEmergencyCallL()
{
+ _AKNTRACE_FUNC_ENTER;
if ( iEcsDetector )
{
if ( iEcsDetector->State() == CAknEcsDetector::ECompleteMatch )
@@ -3470,6 +3523,7 @@
}
}
}
+ _AKNTRACE_FUNC_EXIT;
}
@@ -3507,6 +3561,7 @@
void CAknExtQueryControl::ConstructQueryL(TResourceReader& aRes)
{
+ _AKNTRACE_FUNC_ENTER;
if ( iQueryType == EIpLayout)
{
iIpEditor = new(ELeave)CAknIpFieldEditor;
@@ -3536,6 +3591,7 @@
{
extension->CreateEditorContextL();
}
+ _AKNTRACE_FUNC_EXIT;
}
@@ -3613,7 +3669,7 @@
EXPORT_C void CAknExtQueryControl::HandleControlEventL(CCoeControl* /*aControl*/,TCoeEvent aEventType)
{
//CAknQueryControl::HandleControlEventL(NULL, aEventType);
-
+ _AKNTRACE( "[%s][%s] aEventType:%d ", "CAknExtQueryControl", "HandleControlEventL",aEventType);
if(iQueryControlObserver && aEventType == EEventStateChanged)
{
if(GetTextLength())
@@ -3625,6 +3681,7 @@
iQueryControlObserver->HandleQueryEditorStateEventL(this,MAknQueryControlObserver::EQueryControlEditorStateChanging, MAknQueryControlObserver::EEditorEmpty);
}
}
+ _AKNTRACE( "[%s][%s] EXIT ", "CAknExtQueryControl", "HandleControlEventL");
}
@@ -3946,13 +4003,16 @@
// Callback for doing a redraw when animating pictographs
TInt CAknExtQueryControl::StaticPictographCallBack( TAny* aPtr )
{
+ _AKNTRACE_FUNC_ENTER;
CAknExtQueryControl* me = static_cast<CAknExtQueryControl*>( aPtr );
me->PictographCallBack();
+ _AKNTRACE_FUNC_EXIT;
return KErrNone;
}
void CAknExtQueryControl::PictographCallBack()
{
+ _AKNTRACE_FUNC_ENTER;
MAknsSkinInstance* skin = AknsUtils::SkinInstance();
MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
@@ -3991,6 +4051,7 @@
iPrompt->SetLineModified( i, EFalse );
}
}
+ _AKNTRACE_FUNC_EXIT;
}
// End of File
--- a/uifw/AvKon/src/AknQueryDialog.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/AknQueryDialog.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -52,6 +52,7 @@
#endif
#include <AknTasHook.h> // for testability hooks
+#include "akntrace.h"
/**
* CAknQueryDialogExtension
*/
@@ -87,6 +88,7 @@
//
CAknQueryDialogExtension::~CAknQueryDialogExtension()
{
+ _AKNTRACE( "[%s][%s] do nothing", "CAknQueryDialogExtension", "~CAknQueryDialogExtension" );
}
@@ -97,6 +99,7 @@
CAknQueryDialogExtension::CAknQueryDialogExtension
(CAknQueryDialog* aQueryDialog) : iParent(aQueryDialog)
{
+ _AKNTRACE( "[%s][%s] do nothing", "CAknQueryDialogExtension", "CAknQueryDialogExtension" );
}
// ---------------------------------------------------------------------------
@@ -107,6 +110,7 @@
//
EXPORT_C void CAknQueryDialogExtension::GetCaptionForFep(TDes& aCaption) const
{
+ _AKNTRACE( "[%s][%s] enter aCaption:%s", "CAknQueryDialogExtension", "GetCaptionForFep" , &aCaption);
aCaption = KNullDesC;
CAknQueryControl* control = iParent->QueryControl();
@@ -136,6 +140,7 @@
}
}
}
+ _AKNTRACE( "[%s][%s] exit aCaption:%s", "CAknQueryDialogExtension", "GetCaptionForFep" , &aCaption);
}
@@ -179,6 +184,7 @@
//
CAknMultilineQueryDialogExtension::~CAknMultilineQueryDialogExtension()
{
+ _AKNTRACE( "[%s][%s] do nothing", "CAknMultilineQueryDialogExtension", "~CAknMultilineQueryDialogExtension" );
}
// ---------------------------------------------------------------------------
@@ -188,6 +194,7 @@
CAknMultilineQueryDialogExtension::CAknMultilineQueryDialogExtension
(CAknQueryDialog* aQueryDialog, TInt aQueryType):CAknQueryDialogExtension(aQueryDialog),iQueryType(aQueryType)
{
+ _AKNTRACE( "[%s][%s] do nothing", "CAknMultilineQueryDialogExtension", "CAknMultilineQueryDialogExtension" );
}
// ---------------------------------------------------------------------------
@@ -288,8 +295,10 @@
*/
EXPORT_C CAknQueryDialog* CAknQueryDialog::NewL(const TTone& aTone)
{
+ _AKNTRACE_FUNC_ENTER;
CAknQueryDialog* self = new (ELeave) CAknQueryDialog(aTone);
AKNTASHOOK_ADDL( self, "CAknQueryDialog" );
+ _AKNTRACE_FUNC_EXIT;
return self;
}
@@ -349,6 +358,7 @@
EXPORT_C CAknQueryDialog::CAknQueryDialog(const TTone& aTone)
{
+ _AKNTRACE_FUNC_ENTER;
#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
GfxTransEffect::Register( this, KGfxQueryControlUid );
#endif
@@ -357,6 +367,8 @@
{
iSoundSystem = iAvkonAppUiBase->KeySounds();
}
+ _AKNTRACE( "[%s][%s] iTone: %d", "CAknQueryDialog", __FUNCTION__, iTone );
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -387,6 +399,7 @@
EXPORT_C CAknQueryDialog::~CAknQueryDialog()
{
+ _AKNTRACE( "[%s][%s] Enter", "CAknQueryDialog", "~CAknQueryDialog" );
AKNTASHOOK_REMOVE();
delete iPrompt;
delete iExtension;
@@ -394,11 +407,13 @@
#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
CAknTransitionUtils::RemoveData( ( TInt )this );
#endif
+ _AKNTRACE( "[%s][%s] Exit", "CAknQueryDialog", "~CAknQueryDialog" );
}
EXPORT_C TInt CAknQueryDialog::RunLD()
{
+ _AKNTRACE_FUNC_ENTER;
CAknDialog::ConstructL( R_AVKON_MENUPANE_EMPTY) ;
ReportUserActivity();
PlayTone();
@@ -416,11 +431,13 @@
SetGloballyCapturing(ETrue);
TInt ret = CAknDialog::RunLD();
+ _AKNTRACE( "[%s][%s] ret: %d", "CAknQueryDialog", __FUNCTION__, ret );
if (soundSystem)
{
soundSystem->PopContext();
}
SetGloballyCapturing(EFalse);
+ _AKNTRACE_FUNC_EXIT;
return ret;
}
@@ -443,8 +460,13 @@
*/
EXPORT_C TInt CAknQueryDialog::ExecuteLD(TInt aResourceId)
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "[%s][%s] aResourceId: %d", "CAknQueryDialog", __FUNCTION__, aResourceId );
PrepareLC(aResourceId);
- return(RunLD());
+ TInt ret = RunLD();
+ _AKNTRACE( "[%s][%s] ret:%d", "CAknQueryDialog", __FUNCTION__,ret );
+ _AKNTRACE_FUNC_EXIT;
+ return ret;
}
/**
@@ -452,9 +474,14 @@
*/
EXPORT_C TInt CAknQueryDialog::ExecuteLD(TInt aResourceId,const TDesC& aPrompt)
{
+ _AKNTRACE_FUNC_ENTER;
PrepareLC(aResourceId);
SetPromptL(aPrompt);
- return(RunLD());
+ _AKNTRACE( "[%s][%s] aResourceId: %d", "CAknQueryDialog", __FUNCTION__, aResourceId );
+ TInt ret= RunLD();
+ _AKNTRACE( "[%s][%s] ret:%d", "CAknQueryDialog", __FUNCTION__,ret );
+ _AKNTRACE_FUNC_EXIT;
+ return ret;
}
/**
* Get layout information from the control and use this layout
@@ -474,6 +501,7 @@
*/
EXPORT_C void CAknQueryDialog::SetSizeAndPosition( const TSize& /*aSize*/ )
{
+ _AKNTRACE_FUNC_ENTER;
CAknQueryControl* control = QueryControl();
CAknPopupHeadingPane* controlHeading = QueryHeading();
@@ -493,7 +521,10 @@
{
TAknWindowLineLayout lay = AknLayoutScalable_Avkon::application_window(0);
TRect re(0, 0, lay.iW, lay.iH);
+ _AKNTRACE( "[%s][%s] Rect: x[%d],y[%d],w[%d],h[%d]", "CAknQueryDialog", __FUNCTION__,
+ re.iTl.iX, re.iTl.iY, re.Width(),re.Height());
SetRect(re);
+ _AKNTRACE_FUNC_EXIT;
return;
}
}
@@ -504,10 +535,16 @@
layoutRect.LayoutRect( rectZero, windowLineLayoutScreen );
TRect rectScreen( layoutRect.Rect() );
TSize maxSize = rectScreen.Size();
-
+ _AKNTRACE( "[%s][%s] maxSize: w[%d],h[%d]", "CAknQueryDialog", __FUNCTION__,
+ maxSize.iWidth,maxSize.iHeight);
if ( AknLayoutUtils::PenEnabled() )
{
- CAknDialog::SetSizeAndPosition( PreferredSize( maxSize ) );
+ TSize preferredSize = PreferredSize( maxSize );
+
+ _AKNTRACE( "[%s][%s] call CAknDialog::SetSizeAndPosition( PreferredSize( w[%d],h[%d] ) )", "CAknQueryDialog",
+ __FUNCTION__, preferredSize.iWidth, preferredSize.iHeight);
+
+ CAknDialog::SetSizeAndPosition( preferredSize );
}
else
{
@@ -530,9 +567,12 @@
AknLayoutScalable_Avkon::heading_pane(0));
winRect.iTl.iY -= headingLayoutRect.Rect().Height();
}
+ _AKNTRACE( "[%s][%s] Rect: x[%d],y[%d],w[%d],h[%d]", "CAknQueryDialog", __FUNCTION__,
+ winRect.iTl.iX, winRect.iTl.iY, winRect.Width(),winRect.Height());
SetRect(winRect);
}
}
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -540,6 +580,7 @@
*/
EXPORT_C void CAknQueryDialog::PreLayoutDynInitL()
{
+ _AKNTRACE_FUNC_ENTER;
SetBorder( TGulBorder::ENone );
SetEditableL( ETrue ) ;
DoSetPromptL();
@@ -564,6 +605,7 @@
delete iExtension;
iExtension = NULL;
iExtension = new(ELeave) CAknQueryDialogExtension(this);
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -571,10 +613,11 @@
*/
EXPORT_C void CAknQueryDialog::PostLayoutDynInitL()
{
+ _AKNTRACE_FUNC_ENTER;
CAknQueryControl* control = QueryControl();
if (control)
control->StartAnimationL();
-
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -583,9 +626,13 @@
EXPORT_C TKeyResponse CAknQueryDialog::OfferKeyEventL(const TKeyEvent& aKeyEvent,
TEventCode aType)
{
+ _AKNTRACE( "[%s][%s] aKeyEvent.iCode[%d],aType[%d]", "CAknQueryDialog", __FUNCTION__,aKeyEvent.iCode, aType);
if( NeedToDismissQueryL(aKeyEvent) )
- return EKeyWasConsumed;
-
+ {
+ _AKNTRACE( "[%s][%s] Need Dismiss Query, return EKeyWasConsumed", "CAknQueryDialog", __FUNCTION__);
+ return EKeyWasConsumed;
+ }
+
if (aType == EEventKey && aKeyEvent.iCode == EKeyOK)
{
CAknQueryControl* control = QueryControl();
@@ -594,6 +641,7 @@
if (IsLeftSoftkeyVisible())
{
TryExitL(EEikBidOk);
+ _AKNTRACE( "[%s][%s] TryExitL(EEikBidOk) and reutrn EKeyWasConsumed", "CAknQueryDialog", __FUNCTION__);
return EKeyWasConsumed;
}
}
@@ -607,13 +655,14 @@
if (IsLeftSoftkeyVisible())
{
TryExitL(EEikBidOk);
+ _AKNTRACE( "[%s][%s] TryExitL(EEikBidOk) and reutrn EKeyWasConsumed", "CAknQueryDialog", __FUNCTION__);
return EKeyWasConsumed;
}
}
}
-
-
- return CAknDialog::OfferKeyEventL(aKeyEvent,aType);
+ TKeyResponse response = CAknDialog::OfferKeyEventL(aKeyEvent,aType);
+ _AKNTRACE( "[%s][%s] return [%d]", "CAknQueryDialog", __FUNCTION__, response);
+ return response;
}
/**
@@ -624,15 +673,18 @@
*/
EXPORT_C TBool CAknQueryDialog::NeedToDismissQueryL(const TKeyEvent& aKeyEvent)
{
+ _AKNTRACE( "[%s][%s] aKeyEvent.iScanCode [%d]", "CAknQueryDialog", __FUNCTION__, aKeyEvent.iScanCode);
if (aKeyEvent.iScanCode == EStdKeyHash)
{
CAknQueryControl* control = QueryControl();
if (control && control->QueryType() == EPinLayout)
{
+ _AKNTRACE( "[%s][%s] EPinLayout, Dismiss Query and return ETrue", "CAknQueryDialog", __FUNCTION__);
DismissQueryL();
return ETrue;
}
}
+ _AKNTRACE( "[%s][%s] return EFalse", "CAknQueryDialog", __FUNCTION__);
return EFalse;
}
@@ -644,14 +696,18 @@
*/
EXPORT_C void CAknQueryDialog::DismissQueryL()
{
+ _AKNTRACE_FUNC_ENTER;
if (IsLeftSoftkeyVisible())
{
+ _AKNTRACE( "[%s][%s] TryExitL(EEikBidOk) ", "CAknQueryDialog", __FUNCTION__);
TryExitL(EEikBidOk);
}
else
{
+ _AKNTRACE( "[%s][%s] TryExitL(EEikBidCancel) ", "CAknQueryDialog", __FUNCTION__);
TryExitL(EEikBidCancel);
}
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -659,6 +715,7 @@
*/
EXPORT_C TBool CAknQueryDialog::OkToExitL(TInt aButtonId)
{
+ _AKNTRACE( "[%s][%s] aButtonId : %d ", "CAknQueryDialog", __FUNCTION__,aButtonId);
if ( aButtonId == EAknSoftkeyEmergencyCall )
{
// ECS number entered and "call" softkey pressed,
@@ -667,17 +724,21 @@
CAknQueryControl* control = QueryControl();
if ( control )
{
+ _AKNTRACE( "[%s][%s] AttemptEmergencyCall ", "CAknQueryDialog", __FUNCTION__);
control->AttemptEmergencyCallL();
}
-
+ _AKNTRACE( "[%s][%s] return ETrue without doing anything", "CAknQueryDialog", __FUNCTION__);
return ETrue;
}
else if((IsLeftSoftkeyVisible() &&
(aButtonId == GetLeftCBAShortKeyPress() || aButtonId == EEikBidOk))
|| aButtonId == GetRightCBAShortKeyPress() )
- {
+ {
+ _AKNTRACE( "[%s][%s] return ETrue without doing anything ", "CAknQueryDialog", __FUNCTION__);
return ETrue;
}
+
+ _AKNTRACE( "[%s][%s] return EFalse without doing anyting ", "CAknQueryDialog", __FUNCTION__);
return EFalse;
}
@@ -696,10 +757,12 @@
*/
EXPORT_C void CAknQueryDialog::SetPromptL(const TDesC& aPrompt)
{
+ _AKNTRACE_FUNC_ENTER;
delete iPrompt;
iPrompt = NULL;
iPrompt = aPrompt.AllocL();
DoSetPromptL();
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknQueryDialog::DoSetPromptL()
@@ -778,10 +841,13 @@
EXPORT_C void CAknQueryDialog::MakeLeftSoftkeyVisible(TBool aVisible)
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "[%s][%s] aVisible: %d ", "CAknQueryDialog", __FUNCTION__, aVisible);
CEikButtonGroupContainer& btnGroupContainer = ButtonGroupContainer();
// left softkey
TBool isVisible = btnGroupContainer.IsCommandVisibleByPosition(CEikButtonGroupContainer::ELeftSoftkeyPosition);
+ _AKNTRACE( "[%s][%s] isVisible: %d ", "CAknQueryDialog", __FUNCTION__, isVisible);
if ( isVisible != aVisible )
{
btnGroupContainer.MakeCommandVisibleByPosition(CEikButtonGroupContainer::ELeftSoftkeyPosition,aVisible);
@@ -796,16 +862,20 @@
btnGroupContainer.MakeCommandVisibleByPosition(CEikButtonGroupContainer::EMiddleSoftkeyPosition,aVisible);
}
}
+ _AKNTRACE_FUNC_EXIT;
}
void CAknQueryDialog::PlayTone()
{
+ _AKNTRACE_FUNC_ENTER;
if (iTone != 0 && iSoundSystem)
{
+ _AKNTRACE( "[%s][%s] iSoundSystem->PlaySound(iTone)", "CAknQueryDialog", __FUNCTION__);
iSoundSystem->PlaySound(iTone);
}
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -815,10 +885,12 @@
*/
void CAknQueryDialog::ReportUserActivity() const
{
+ _AKNTRACE_FUNC_ENTER;
#ifdef AVKON_RDEBUG_INFO
RDebug::Print(_L("Reset user inactivity"));
#endif
User::ResetInactivityTime();
+ _AKNTRACE_FUNC_EXIT;
}
TInt CAknQueryDialog::GetLeftCBAShortKeyPress()
@@ -833,8 +905,12 @@
TBool CAknQueryDialog::IsLeftSoftkeyVisible()
{
- return ButtonGroupContainer().ButtonGroup()->IsCommandVisible(
- ButtonGroupContainer().ButtonGroup()->CommandId(0));
+ _AKNTRACE_FUNC_ENTER;
+ TBool visible = ButtonGroupContainer().ButtonGroup()->IsCommandVisible(
+ ButtonGroupContainer().ButtonGroup()->CommandId(0));
+ _AKNTRACE( "[%s][%s] visible: %d", "CAknQueryDialog", __FUNCTION__, visible);
+ _AKNTRACE_FUNC_EXIT;
+ return visible;
}
/**
@@ -842,26 +918,36 @@
*/
EXPORT_C void CAknQueryDialog::SetEmergencyCallSupport( TBool aOnOff )
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "[%s][%s] aOnOff: %d", "CAknQueryDialog", __FUNCTION__, aOnOff);
iFlags.Assign(CAknQueryControl::EEmergencyCallsEnabledByAPI, aOnOff );
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknQueryDialog::SetPredictiveTextInputPermitted( TBool aPermitted )
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "[%s][%s] aPermitted: %d", "CAknQueryDialog", __FUNCTION__, aPermitted);
iFlags.Assign( CAknQueryControl::EPredictiveTextEntryPermitted, aPermitted );
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknQueryDialog::RemoveEditorIndicator()
{
+ _AKNTRACE_FUNC_ENTER;
iFlags.Assign(CAknQueryControl::EEditorIndicatorOff,ETrue);
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknQueryDialog::SetHeaderTextL(const TDesC& aHeader)
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "[%s][%s] aHeader: %s", "CAknQueryDialog", __FUNCTION__, &aHeader);
CAknPopupHeadingPane* controlHeading = QueryHeading();
if (controlHeading)
controlHeading->SetTextL(aHeader);
-
LayoutAndDraw();
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -874,14 +960,18 @@
TQueryValidationStatus /*aStatus*/
)
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "[%s][%s] aEventType: %d", "CAknQueryDialog", __FUNCTION__, aEventType);
if (aEventType == EEmergencyCallAttempted)
{
+ _AKNTRACE( "[%s][%s] TryExitL(EEikBidCancel)", "CAknQueryDialog", __FUNCTION__);
TryExitL(EEikBidCancel);
}
else
{
UpdateLeftSoftKeyL();
}
+ _AKNTRACE_FUNC_EXIT;
return EFalse;
}
@@ -1041,12 +1131,15 @@
//
EXPORT_C void CAknQueryDialog::SetEmergencyCallSupportForCBA( TBool aOnOff )
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "[%s][%s] aOnOff:%d ", "CAknQueryDialog", __FUNCTION__, aOnOff);
if ( aOnOff )
{
// Ensure also that the EEmergencyCallsEnabledByAPI is set.
iFlags.Assign( CAknQueryControl::EEmergencyCallsEnabledByAPI, aOnOff );
}
iFlags.Assign( CAknQueryControl::EEmergencyCallsCBASupport, aOnOff );
+ _AKNTRACE_FUNC_EXIT;
}
@@ -1061,8 +1154,10 @@
*/
EXPORT_C CAknTextQueryDialog* CAknTextQueryDialog::NewL(TDes& aDataText, const TTone& aTone)
{
+ _AKNTRACE_FUNC_ENTER;
CAknTextQueryDialog* self = new (ELeave) CAknTextQueryDialog(aDataText, aTone);
AKNTASHOOK_ADDL( self, "CAknTextQueryDialog" );
+ _AKNTRACE_FUNC_EXIT;
return self;
}
@@ -1082,6 +1177,7 @@
EXPORT_C CAknTextQueryDialog::~CAknTextQueryDialog()
{
+ _AKNTRACE( "[%s][%s] ", "CAknTextQueryDialog", "~CAknTextQueryDialog");
AKNTASHOOK_REMOVE();
}
@@ -1100,6 +1196,8 @@
EXPORT_C void CAknTextQueryDialog::SetDefaultInputMode(TInt aInputMode)
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "[%s][%s] aInputMode:%d ", "CAknTextQueryDialog", __FUNCTION__,aInputMode);
CAknQueryControl* control = QueryControl();
if ( control )
{
@@ -1109,14 +1207,17 @@
secretEditor->SetDefaultInputMode(aInputMode);
}
}
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknTextQueryDialog::PreLayoutDynInitL()
{
+ _AKNTRACE_FUNC_ENTER;
CAknQueryDialog::PreLayoutDynInitL();
SetControlTextL();
UpdateLeftSoftKeyL();
+ _AKNTRACE_FUNC_EXIT;
}
@@ -1154,6 +1255,7 @@
*/
EXPORT_C TBool CAknTextQueryDialog::OkToExitL( TInt aButtonId )
{
+ _AKNTRACE( "[%s][%s] aButtonId:%d ", "CAknTextQueryDialog", __FUNCTION__,aButtonId);
if ( aButtonId == EAknSoftkeyEmergencyCall )
{
// ECS number entered and "call" softkey pressed,
@@ -1164,7 +1266,7 @@
{
control->AttemptEmergencyCallL();
}
-
+ _AKNTRACE( "[%s][%s] return ETrue ", "CAknTextQueryDialog", __FUNCTION__);
return ETrue;
}
else if ( ( IsLeftSoftkeyVisible() &&
@@ -1176,13 +1278,16 @@
control->GetText( iDataText );
}
+ _AKNTRACE( "[%s][%s] GetText and return ETrue ", "CAknTextQueryDialog", __FUNCTION__);
return ETrue;
}
else if( aButtonId == GetRightCBAShortKeyPress() )
{
+ _AKNTRACE( "[%s][%s] do nothing and return ETrue", "CAknTextQueryDialog", __FUNCTION__);
return ETrue;
}
+ _AKNTRACE( "[%s][%s] return EFalse ", "CAknTextQueryDialog", __FUNCTION__);
return EFalse;
}
@@ -1232,8 +1337,10 @@
*/
EXPORT_C CAknNumberQueryDialog* CAknNumberQueryDialog::NewL(TInt& aNumber, const TTone& aTone)
{
+ _AKNTRACE_FUNC_ENTER;
CAknNumberQueryDialog* self = new (ELeave) CAknNumberQueryDialog(aNumber, aTone);
AKNTASHOOK_ADDL( self, "CAknNumberQueryDialog" );
+ _AKNTRACE_FUNC_EXIT;
return self;
}
@@ -1250,11 +1357,13 @@
EXPORT_C void CAknNumberQueryDialog::PreLayoutDynInitL()
{
+ _AKNTRACE_FUNC_ENTER;
CAknQueryDialog::PreLayoutDynInitL();
CAknQueryControl* control = QueryControl();
if (control)
control->SetNumberL(iNumber);
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknNumberQueryDialog::SetMinimumAndMaximum( TInt aMinimumValue,
@@ -1269,6 +1378,7 @@
EXPORT_C TBool CAknNumberQueryDialog::OkToExitL( TInt aButtonId )
{
+ _AKNTRACE( "[%s][%s] aButtonId:%d ", "CAknNumberQueryDialog", __FUNCTION__,aButtonId);
if ( aButtonId == EAknSoftkeyEmergencyCall )
{
// ECS number entered and "call" softkey pressed,
@@ -1279,11 +1389,12 @@
{
control->AttemptEmergencyCallL();
}
-
+ _AKNTRACE( "[%s][%s] attempt emergency and return ETrue ", "CAknNumberQueryDialog", __FUNCTION__);
return ETrue;
}
else if ( aButtonId == GetRightCBAShortKeyPress() )
{
+ _AKNTRACE( "[%s][%s] do nothing and reutrn ETrue ", "CAknNumberQueryDialog", __FUNCTION__);
return ETrue;
}
else if ( ( IsLeftSoftkeyVisible() &&
@@ -1296,13 +1407,15 @@
TRAP( e, control->PrepareForFocusLossL() );
if ( e != KErrNone )
{
+ _AKNTRACE( "[%s][%s] reutrn EFalse ", "CAknNumberQueryDialog", __FUNCTION__);
return EFalse;
}
iNumber = control->GetNumber();
+ _AKNTRACE( "[%s][%s] get number and return ETrue ", "CAknNumberQueryDialog", __FUNCTION__);
return ETrue;
}
}
-
+ _AKNTRACE( "[%s][%s] return EFalse", "CAknNumberQueryDialog", __FUNCTION__);
return EFalse;
}
@@ -1343,8 +1456,10 @@
*/
EXPORT_C CAknTimeQueryDialog* CAknTimeQueryDialog::NewL(TTime& aTime, const TTone& aTone)
{
+ _AKNTRACE_FUNC_ENTER;
CAknTimeQueryDialog* self = new (ELeave) CAknTimeQueryDialog(aTime, aTone);
AKNTASHOOK_ADDL( self, "CAknTimeQueryDialog" );
+ _AKNTRACE_FUNC_EXIT;
return self;
}
@@ -1368,10 +1483,12 @@
EXPORT_C void CAknTimeQueryDialog::PreLayoutDynInitL()
{
+ _AKNTRACE_FUNC_ENTER;
CAknQueryDialog::PreLayoutDynInitL();
CAknQueryControl* control = QueryControl();
if (control)
control->SetTime(iTime);
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknTimeQueryDialog::SetMinimumAndMaximum( const TTime& aMinimum,
@@ -1386,6 +1503,7 @@
EXPORT_C TBool CAknTimeQueryDialog::OkToExitL(TInt aButtonId)
{
+ _AKNTRACE( "[%s][%s] aButtonId:%d ", "CAknTimeQueryDialog", __FUNCTION__,aButtonId);
if((IsLeftSoftkeyVisible() &&
(aButtonId == GetLeftCBAShortKeyPress() || aButtonId == EEikBidOk)))
{
@@ -1394,11 +1512,15 @@
{
iTime = control->GetTime();
}
+ _AKNTRACE( "[%s][%s] get time and return ETrue ", "CAknTimeQueryDialog", __FUNCTION__);
return ETrue;
}
else if(aButtonId == GetRightCBAShortKeyPress())
- return ETrue;
-
+ {
+ _AKNTRACE( "[%s][%s] do nothing, return ETrue ", "CAknTimeQueryDialog", __FUNCTION__);
+ return ETrue;
+ }
+ _AKNTRACE( "[%s][%s] do nothing and return EFalse ", "CAknTimeQueryDialog", __FUNCTION__);
return EFalse;
}
@@ -1438,8 +1560,10 @@
*/
EXPORT_C CAknDurationQueryDialog* CAknDurationQueryDialog::NewL(TTimeIntervalSeconds& aDuration, const TTone& aTone)
{
+ _AKNTRACE_FUNC_ENTER;
CAknDurationQueryDialog* self = new (ELeave) CAknDurationQueryDialog(aDuration, aTone);
AKNTASHOOK_ADDL( self, "CAknDurationQueryDialog" );
+ _AKNTRACE_FUNC_EXIT;
return self;
}
@@ -1455,11 +1579,13 @@
EXPORT_C void CAknDurationQueryDialog::PreLayoutDynInitL()
{
+ _AKNTRACE_FUNC_ENTER;
CAknQueryDialog::PreLayoutDynInitL();
CAknQueryControl* control = QueryControl();
if (control)
control->SetDuration(iDuration);
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknDurationQueryDialog::SetMinimumAndMaximum( const TTimeIntervalSeconds& aMinimumDuration,
@@ -1474,6 +1600,7 @@
EXPORT_C TBool CAknDurationQueryDialog::OkToExitL(TInt aButtonId)
{
+ _AKNTRACE( "[%s][%s] aButtonId:%d ", "CAknDurationQueryDialog", __FUNCTION__,aButtonId);
if((IsLeftSoftkeyVisible() &&
(aButtonId == GetLeftCBAShortKeyPress() || aButtonId == EEikBidOk)))
{
@@ -1482,12 +1609,15 @@
{
iDuration = control->GetDuration();
}
+ _AKNTRACE( "[%s][%s] get duration and return ETrue ", "CAknDurationQueryDialog", __FUNCTION__);
return ETrue;
}
else if(aButtonId == GetRightCBAShortKeyPress())
{
+ _AKNTRACE( "[%s][%s] do nothing, return ETrue ", "CAknDurationQueryDialog", __FUNCTION__);
return ETrue;
}
+ _AKNTRACE( "[%s][%s] return ETrue ", "CAknDurationQueryDialog", __FUNCTION__);
return EFalse;
}
@@ -1544,6 +1674,7 @@
EXPORT_C void CAknFloatingPointQueryDialog::PreLayoutDynInitL()
{
+ _AKNTRACE_FUNC_ENTER;
CAknQueryDialog::PreLayoutDynInitL();
CAknQueryControl* control = QueryControl();
@@ -1553,6 +1684,7 @@
control->SetFloatingPointNumberL(&iNumber);
DoSetPromptL();
}
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknFloatingPointQueryDialog::SetMinimumAndMaximum( const TReal& aMinimumNumber,
@@ -1567,6 +1699,7 @@
EXPORT_C TBool CAknFloatingPointQueryDialog::OkToExitL(TInt aButtonId)
{
+ _AKNTRACE( "[%s][%s] aButtonId :%d ", "CAknFloatingPointQueryDialog", __FUNCTION__,aButtonId);
if((IsLeftSoftkeyVisible() &&
(aButtonId == GetLeftCBAShortKeyPress() || aButtonId == EEikBidOk)))
{
@@ -1575,12 +1708,15 @@
{
iNumber = control->GetFloatingPointNumberL();
}
+ _AKNTRACE( "[%s][%s] Get Floatingpoint number and return ETrue ", "CAknFloatingPointQueryDialog", __FUNCTION__);
return ETrue;
}
else if(aButtonId == GetRightCBAShortKeyPress())
{
+ _AKNTRACE( "[%s][%s] do nothing, return ETrue ", "CAknFloatingPointQueryDialog", __FUNCTION__);
return ETrue;
}
+ _AKNTRACE( "[%s][%s] return ETrue ", "CAknFloatingPointQueryDialog", __FUNCTION__);
return EFalse;
}
@@ -1778,15 +1914,18 @@
//Store new prompt values
//
{
+ _AKNTRACE_FUNC_ENTER;
delete iSecondPrompt;
iSecondPrompt = NULL;
iSecondPrompt = aSP.AllocL();
CAknQueryDialog::SetPromptL(aFP);
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknMultiLineDataQueryDialog::DoSetPromptL()
{
+ _AKNTRACE_FUNC_ENTER;
//
//Set prompt in query controls, called during layout
//
@@ -1795,6 +1934,7 @@
secondControl->SetPromptL(*iSecondPrompt);
CAknQueryDialog::DoSetPromptL();
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -1855,8 +1995,6 @@
UpdateLeftSoftKeyL();
return ETrue;
}
-
-
return EFalse;
}
@@ -1884,6 +2022,7 @@
void CAknMultiLineDataQueryDialog::HandleOrientationSwitch()
{
+ _AKNTRACE_FUNC_ENTER;
TBool firstLineEnabled = FirstLineEnabled();
TBool secondLineEnabled = SecondLineEnabled();
@@ -1913,10 +2052,12 @@
ctrl1->SetFocusing(firstLineEnabled);
ctrl2->SetFocusing(secondLineEnabled);
Layout();
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknMultiLineDataQueryDialog::HandleResourceChange(TInt aType)
{
+ _AKNTRACE_FUNC_ENTER;
CAknQueryDialog::HandleResourceChange(aType);
if (aType == KEikDynamicLayoutVariantSwitch)
{
@@ -1931,10 +2072,12 @@
HandleOrientationSwitch();
TRAP_IGNORE( UpdateLeftSoftKeyL() );
}
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C TBool CAknMultiLineDataQueryDialog::OkToExitL(TInt aButtonId)
{
+ _AKNTRACE( "[%s][%s] aButtonId :%d ", "CAknMultiLineDataQueryDialog", __FUNCTION__, aButtonId);
if (Layout_Meta_Data::IsLandscapeOrientation())
{
if((IsLeftSoftkeyVisible() &&
@@ -1960,8 +2103,8 @@
HandleOrientationSwitch();
UpdateLeftSoftKeyL();
-
- return EFalse;
+ _AKNTRACE( "[%s][%s] return EFalse", "CAknMultiLineDataQueryDialog", __FUNCTION__);
+ return EFalse;
}
}
}
@@ -2001,20 +2144,20 @@
CleanupStack::PopAndDestroy( text );
}
}
-
+ _AKNTRACE( "[%s][%s] return ETrue ", "CAknMultiLineDataQueryDialog", __FUNCTION__);
return ETrue;
}
else if(aButtonId == GetRightCBAShortKeyPress())
{
+ _AKNTRACE( "[%s][%s] do nothing,return ETrue ", "CAknMultiLineDataQueryDialog", __FUNCTION__);
return ETrue;
}
-
+ _AKNTRACE( "[%s][%s] do nothing,return EFalse ", "CAknMultiLineDataQueryDialog", __FUNCTION__);
return EFalse;
}
EXPORT_C void CAknMultiLineDataQueryDialog::UpdateLeftSoftKeyL()
{
-
if (Layout_Meta_Data::IsLandscapeOrientation())
{
if ( (FirstControl()->EditorContentIsValidL() && FirstControl()->IsFocused()) || (SecondControl()->EditorContentIsValidL() && FirstControl()->EditorContentIsValidL()) )
@@ -2070,9 +2213,11 @@
const TTone& aTone)
: CAknQueryDialog(aTone)
{
+ _AKNTRACE_FUNC_ENTER;
TRAPD(ignore, SetPromptL(DesOrNull(aPrompt), DesOrNull(aPrompt2)));
TRAP(ignore,SetDataL(*aTime,*aTime2));
AKNTASHOOK_ADD( this, "CAknMultiLineDataQueryDialog" );
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C CAknMultiLineDataQueryDialog::CAknMultiLineDataQueryDialog( TDes* aDataText,
@@ -2082,12 +2227,14 @@
const TTone& aTone)
: CAknQueryDialog(aTone)
{
+ _AKNTRACE_FUNC_ENTER;
TRAPD(ignore, SetPromptL(DesOrNull(aPrompt), DesOrNull(aPrompt2)));
TRAP(ignore,SetDataL(*aDataText,*aDataText2));
iText = aDataText;
iSecondText = aDataText2;
AKNTASHOOK_ADD( this, "CAknMultiLineDataQueryDialog" );
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C CAknMultiLineDataQueryDialog::CAknMultiLineDataQueryDialog( TDes* aDataText,
@@ -2097,11 +2244,13 @@
const TTone& aTone)
: CAknQueryDialog(aTone)
{
+ _AKNTRACE_FUNC_ENTER;
TRAPD(ignore, SetPromptL(DesOrNull(aPrompt), DesOrNull(aPrompt2)));
TRAP(ignore,SetDataL(*aDataText,*aTime));
iText = aDataText;
AKNTASHOOK_ADD( this, "CAknMultiLineDataQueryDialog" );
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C CAknMultiLineDataQueryDialog::CAknMultiLineDataQueryDialog( TDes* aDataText,
@@ -2111,11 +2260,13 @@
const TTone& aTone)
: CAknQueryDialog(aTone)
{
+ _AKNTRACE_FUNC_ENTER;
TRAPD(ignore, SetPromptL(DesOrNull(aPrompt), DesOrNull(aPrompt2)));
TRAP(ignore,SetDataL(*aDataText,*aNumber));
iText = aDataText;
AKNTASHOOK_ADD( this, "CAknMultiLineDataQueryDialog" );
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C CAknMultiLineDataQueryDialog::CAknMultiLineDataQueryDialog( TInt* aNumber,
@@ -2125,9 +2276,11 @@
const TTone& aTone)
: CAknQueryDialog(aTone)
{
+ _AKNTRACE_FUNC_ENTER;
TRAPD(ignore, SetPromptL(DesOrNull(aPrompt), DesOrNull(aPrompt2)));
TRAP(ignore,SetDataL(*aNumber,*aNumber2));
AKNTASHOOK_ADD( this, "CAknMultiLineDataQueryDialog" );
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C CAknMultiLineDataQueryDialog::CAknMultiLineDataQueryDialog( TDes* aDataText,
@@ -2137,6 +2290,7 @@
const TTone& aTone)
: CAknQueryDialog(aTone)
{
+ _AKNTRACE_FUNC_ENTER;
TRAPD(ignore, SetPromptL(DesOrNull(aPrompt), DesOrNull(aPrompt2)));
TRAP(ignore,SetDataL(*aDataText,*aDuration));
@@ -2151,9 +2305,11 @@
const TTone& aTone)
: CAknQueryDialog(aTone)
{
+ _AKNTRACE_FUNC_ENTER;
TRAPD(ignore, SetPromptL(DesOrNull(aPrompt), DesOrNull(aPrompt2)));
TRAP(ignore,SetDataL(*aTime,*aDuration));
AKNTASHOOK_ADD( this, "CAknMultiLineDataQueryDialog" );
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknMultiLineDataQueryDialog::HandlePointerEventL(const TPointerEvent& aPointerEvent)
@@ -2194,8 +2350,10 @@
*/
EXPORT_C CAknIpAddressQueryDialog* CAknIpAddressQueryDialog::NewL(TInetAddr& aInetAddr, const TTone& aTone)
{
+ _AKNTRACE_FUNC_ENTER;
CAknIpAddressQueryDialog* self = new (ELeave) CAknIpAddressQueryDialog(aInetAddr, aTone);
AKNTASHOOK_ADDL( self, "CAknIpAddressQueryDialog" );
+ _AKNTRACE_FUNC_EXIT;
return self;
}
@@ -2206,11 +2364,15 @@
EXPORT_C CAknIpAddressQueryDialog::~CAknIpAddressQueryDialog()
{
+ _AKNTRACE_FUNC_ENTER;
AKNTASHOOK_REMOVE();
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknIpAddressQueryDialog::SetSizeAndPosition(
const TSize& aSize )
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "[%s][%s] aSize (W[%d],H[%d]) ", "CAknIpAddressQueryDialog", __FUNCTION__, aSize.iWidth, aSize.iHeight);
CAknExtQueryControl* control = STATIC_CAST(CAknExtQueryControl*,QueryControl());
if(control)
{
@@ -2244,10 +2406,13 @@
winRect.iTl.iY -= headRect.Height();
}
-
+ _AKNTRACE( "[%s][%s] winRect(x[%d], y[%d], W[%d], H[%d] ) ",
+ "CAknIpAddressQueryDialog", __FUNCTION__, winRect.iTl.iX, winRect.iTl.iY,
+ winRect.Width(), winRect.Height());
SetRect(winRect);
}
}
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C CAknQueryControl* CAknIpAddressQueryDialog::QueryControl() const
@@ -2264,6 +2429,7 @@
EXPORT_C void CAknIpAddressQueryDialog::PreLayoutDynInitL()
{
+ _AKNTRACE_FUNC_ENTER;
#ifndef RD_NO_DIALOG_BORDERS
SetBorder(AknBorderId::EAknBorderNotePopup);
#else
@@ -2292,13 +2458,16 @@
delete iExtension;
iExtension = NULL;
iExtension = new(ELeave) CAknQueryDialogExtension(this);
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknIpAddressQueryDialog::PostLayoutDynInitL()
{
+ _AKNTRACE_FUNC_ENTER;
CAknExtQueryControl* control = STATIC_CAST(CAknExtQueryControl*,QueryControl());
if (control)
control->StartAnimationL();
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C TBool CAknIpAddressQueryDialog::NeedToDismissQueryL(const TKeyEvent& /*aKeyEvent*/)
@@ -2317,6 +2486,8 @@
EXPORT_C TBool CAknIpAddressQueryDialog::OkToExitL(TInt aButtonId)
{
+ _AKNTRACE( "[%s][%s] aButtonId : %d ",
+ "CAknIpAddressQueryDialog", __FUNCTION__, aButtonId);
if((IsLeftSoftkeyVisible() &&
(aButtonId == GetLeftCBAShortKeyPress() || aButtonId == EEikBidOk)))
{
@@ -2325,12 +2496,15 @@
{
iInetAddr = control->GetInetAddress();
}
+ _AKNTRACE( "[%s][%s] get address and return ETrue", "CAknIpAddressQueryDialog", __FUNCTION__);
return ETrue;
}
else if(aButtonId == GetRightCBAShortKeyPress())
{
+ _AKNTRACE( "[%s][%s] do nothing, return ETrue", "CAknIpAddressQueryDialog", __FUNCTION__);
return ETrue;
}
+ _AKNTRACE( "[%s][%s] do nothing, return EFalse", "CAknIpAddressQueryDialog", __FUNCTION__);
return EFalse;
}
@@ -2384,8 +2558,10 @@
*/
EXPORT_C CAknFixedPointQueryDialog* CAknFixedPointQueryDialog::NewL(TInt& aNumber, const TTone& aTone)
{
+ _AKNTRACE_FUNC_ENTER;
CAknFixedPointQueryDialog* self = new (ELeave) CAknFixedPointQueryDialog(aNumber, aTone);
AKNTASHOOK_ADDL( self, "CAknFixedPointQueryDialog" );
+ _AKNTRACE_FUNC_EXIT;
return self;
}
@@ -2401,6 +2577,8 @@
EXPORT_C void CAknFixedPointQueryDialog::SetSizeAndPosition(
const TSize& aSize )
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "[%s][%s] aSize (W[%d],H[%d]) ", "CAknFixedPointQueryDialog", __FUNCTION__, aSize.iWidth, aSize.iHeight);
CAknExtQueryControl* control = STATIC_CAST(CAknExtQueryControl*,QueryControl());
if(control)
{
@@ -2434,10 +2612,13 @@
winRect.iTl.iY -= headRect.Height();
}
-
+ _AKNTRACE( "[%s][%s] winRect(x[%d], y[%d], W[%d], H[%d] ) ",
+ "CAknFixedPointQueryDialog", __FUNCTION__, winRect.iTl.iX, winRect.iTl.iY,
+ winRect.Width(), winRect.Height());
SetRect(winRect);
}
}
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C CAknQueryControl* CAknFixedPointQueryDialog::QueryControl() const
@@ -2454,6 +2635,7 @@
EXPORT_C void CAknFixedPointQueryDialog::PreLayoutDynInitL()
{
+ _AKNTRACE_FUNC_ENTER;
#ifndef RD_NO_DIALOG_BORDERS
SetBorder(AknBorderId::EAknBorderNotePopup);
#else
@@ -2482,13 +2664,16 @@
delete iExtension;
iExtension = NULL;
iExtension = new(ELeave) CAknQueryDialogExtension(this);
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknFixedPointQueryDialog::PostLayoutDynInitL()
{
+ _AKNTRACE_FUNC_ENTER;
CAknExtQueryControl* control = STATIC_CAST(CAknExtQueryControl*,QueryControl());
if (control)
control->StartAnimationL();
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C TBool CAknFixedPointQueryDialog::NeedToDismissQueryL(const TKeyEvent& /*aKeyEvent*/)
@@ -2507,6 +2692,7 @@
EXPORT_C TBool CAknFixedPointQueryDialog::OkToExitL(TInt aButtonId)
{
+ _AKNTRACE( "[%s][%s] aButtonId : %d ", "CAknFixedPointQueryDialog", __FUNCTION__, aButtonId);
if((IsLeftSoftkeyVisible() &&
(aButtonId == GetLeftCBAShortKeyPress() || aButtonId == EEikBidOk)))
{
@@ -2515,12 +2701,15 @@
{
iNumber = control->GetFixedPointNumber();
}
+ _AKNTRACE( "[%s][%s] get point number and return ETrue ", "CAknFixedPointQueryDialog", __FUNCTION__);
return ETrue;
}
else if(aButtonId == GetRightCBAShortKeyPress())
{
+ _AKNTRACE( "[%s][%s] do nothing and return ETrue ", "CAknFixedPointQueryDialog", __FUNCTION__);
return ETrue;
}
+ _AKNTRACE( "[%s][%s] return EFalse ", "CAknFixedPointQueryDialog", __FUNCTION__);
return EFalse;
}
@@ -2656,6 +2845,7 @@
EXPORT_C void CAknMultiLineIpQueryDialog::PreLayoutDynInitL()
{
+ _AKNTRACE_FUNC_ENTER;
if (Layout_Meta_Data::IsLandscapeOrientation())
{
SetBorder( TGulBorder::ENone );
@@ -2690,6 +2880,7 @@
delete iExtension;
iExtension = NULL;
iExtension = new(ELeave) CAknMultilineQueryDialogExtension(this, CAknMultilineQueryDialogExtension::EMultIPQuery);
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknMultiLineIpQueryDialog::SetPromptL(const TDesC& aFP, const TDesC& aSP)
@@ -2749,6 +2940,7 @@
void CAknMultiLineIpQueryDialog::HandleOrientationSwitch()
{
+ _AKNTRACE_FUNC_ENTER;
TBool firstLineEnabled = FirstLineEnabled();
TBool secondLineEnabled = SecondLineEnabled();
@@ -2778,11 +2970,13 @@
ctrl1->SetFocusing(firstLineEnabled);
ctrl2->SetFocusing(secondLineEnabled);
Layout();
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknMultiLineIpQueryDialog::HandleResourceChange(TInt aType)
{
+ _AKNTRACE_FUNC_ENTER;
CAknQueryDialog::HandleResourceChange(aType);
if (aType == KEikDynamicLayoutVariantSwitch)
{
@@ -2797,6 +2991,7 @@
HandleOrientationSwitch();
TRAP_IGNORE( UpdateLeftSoftKeyL() );
}
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C TBool CAknMultiLineIpQueryDialog::OkToExitL(TInt aButtonId)
--- a/uifw/AvKon/src/AknRadioButtonSettingPage.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/AknRadioButtonSettingPage.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002-2009 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"
@@ -247,7 +247,9 @@
// Only in single click enabled applications.
if ( iExtension &&
iExtension->iFlags.IsSet(
- CAknRadioButtonSettingPageExtension::ESingleClickEnabled ) )
+ CAknRadioButtonSettingPageExtension::ESingleClickEnabled ) &&
+ iCurrentSelectionIndex >= 0 &&
+ iCurrentSelectionIndex < ListBoxControl()->Model()->NumberOfItems() )
{
ListBoxControl()->View()->SetCurrentItemIndex(
iCurrentSelectionIndex );
--- a/uifw/AvKon/src/AknSettingPage.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/AknSettingPage.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -571,6 +571,10 @@
{
AKNTASHOOK_REMOVE();
+ StopActiveScheduler();
+
+ // If navi pane context is not poped out yet, pop it now.
+ PopNaviDecoratorIfRequired();
if ( GfxTransEffect::IsRegistered( this ) )
{
GfxTransEffect::Deregister( this );
@@ -593,12 +597,9 @@
delete iHintText;
delete iCba;
delete iExtension;
+ iExtension = NULL;
- // If navi pane context is not poped out yet, pop it now.
- PopNaviDecoratorIfRequired();
delete iNaviDecorator;
-
- StopActiveScheduler();
}
void CAknSettingPage::StopActiveScheduler()
@@ -778,9 +779,6 @@
{
CreateWindowL();
- SetGloballyCapturing( ETrue );
- SetPointerCapture(ETrue);
-
if( NULL == iExtension )
{
iExtension = CAknSettingPageExtension::NewL( this );
@@ -894,6 +892,12 @@
}
}
+ if(iExtension->iEmbeddedSoftkeys)
+ {
+ SetGloballyCapturing( ETrue );
+ SetPointerCapture(ETrue);
+ }
+
AknItemActionMenuRegister::SetOverridingMenuBarOwnerL( this );
if ( !iExtension->iEmbeddedSoftkeys )
@@ -2088,6 +2092,10 @@
{
return SupplyMopObject( aId, iExtension->iEditIndicator );
}
+ else if( aId.iUid == MAknsControlContext::ETypeId)
+ {
+ return MAknsControlContext::SupplyMopObject(aId, iExtension->iSettingPageBgContext);
+ }
return SupplyMopObject( aId, iCba, iMenuBar );
}
@@ -2151,7 +2159,7 @@
void CAknSettingPage::PopNaviDecoratorIfRequired()
{
- if ( iNaviPane && !iExtension->iEmbeddedSoftkeys )
+ if ( iNaviPane && iExtension && !iExtension->iEmbeddedSoftkeys )
{
iNaviPane->Pop( iNaviDecorator ); // iNaviDecorator is not to be detroyed yet
--- a/uifw/AvKon/src/AknStaticNoteDialog.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/AknStaticNoteDialog.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -31,6 +31,8 @@
#include <AknsDrawUtils.h>
#include <AknTasHook.h> // for testability hooks
+
+#include "akntrace.h"
class CAknStackIndicatorAttributes: public CBase
{
public:
@@ -167,7 +169,9 @@
*/
EXPORT_C CAknStaticNoteDialog::CAknStaticNoteDialog() : CAknNoteDialog()
{
+ _AKNTRACE_FUNC_ENTER;
AKNTASHOOK_ADD( this, "CAknStaticNoteDialog" );
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -180,7 +184,9 @@
*/
EXPORT_C CAknStaticNoteDialog::CAknStaticNoteDialog(CEikDialog** aSelfPtr) : CAknNoteDialog(aSelfPtr)
{
+ _AKNTRACE_FUNC_ENTER;
AKNTASHOOK_ADD( this, "CAknStaticNoteDialog" );
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -190,8 +196,10 @@
*/
EXPORT_C CAknStaticNoteDialog::~CAknStaticNoteDialog()
{
+ _AKNTRACE_FUNC_ENTER;
AKNTASHOOK_REMOVE();
delete iStackIndicator;
+ _AKNTRACE_FUNC_EXIT;
}
/**
--- a/uifw/AvKon/src/AknStatuspaneUtils.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/AknStatuspaneUtils.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-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"
@@ -182,8 +182,6 @@
retVal = ( currentStatusPaneLayoutResId == R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL ||
currentStatusPaneLayoutResId == R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE ||
- currentStatusPaneLayoutResId == R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT ||
- currentStatusPaneLayoutResId == R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT ||
currentStatusPaneLayoutResId == R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT_NO_SOFTKEYS ||
currentStatusPaneLayoutResId == R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT_NO_SOFTKEYS );
}
--- a/uifw/AvKon/src/AknTransparentCameraSettingPage.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/AknTransparentCameraSettingPage.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002-2009 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"
@@ -17,7 +17,6 @@
*
*/
-
#include "AknTransparentCameraSettingPage.h"
// For icon support
@@ -173,6 +172,15 @@
BaseConstructL( KAknSettingPageNoEmbeddedSoftKeys );
SetDrawBackground(EFalse); // Enable transparent drawing
+ if( CAknEnv::Static()->TransparencyEnabled() )
+ {
+ // try to enable window transparency
+ if ( Window().SetTransparencyAlphaChannel() == KErrNone )
+ {
+ Window().SetRequiredDisplayMode( EColor16MA );
+ Window().SetBackgroundColor( ~0 );
+ }
+ }
GenerateInternalArrayAndGiveToListBoxL();
@@ -383,7 +391,9 @@
// Only in single click enabled applications.
if ( iExtension &&
iExtension->iFlags.IsSet(
- CAknTransparentCameraSettingPageExtension::ESingleClickEnabled ) )
+ CAknTransparentCameraSettingPageExtension::ESingleClickEnabled ) &&
+ iCurrentSelectionIndex >= 0 &&
+ iCurrentSelectionIndex < ListBoxControl()->Model()->NumberOfItems() )
{
ListBoxControl()->View()->SetCurrentItemIndex(
iCurrentSelectionIndex );
@@ -544,13 +554,6 @@
parentRect,
KAknsDrawParamDefault);
}
- else
- {
- gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
- gc.SetPenStyle(CGraphicsContext::ENullPen);
- gc.SetBrushColor(KRgbWhite);
- gc.DrawRect (bgRect);
- }
}
// draw viewfinder if available
--- a/uifw/AvKon/src/AknWaitNoteWrapper.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/AknWaitNoteWrapper.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -17,9 +17,11 @@
// INCLUDE FILES
-#include "AknWaitNoteWrapper.h" // This class's declaration
-#include <AknWaitDialog.h>
+
+#include <AknWaitDialog.h>
#include <aknenv.h>
+#include "AknWaitNoteWrapper.h" // This class's declaration
+#include "akntrace.h"
// MODULE DATA STRUCTURES
@@ -43,24 +45,30 @@
EXPORT_C CAknWaitNoteWrapper* CAknWaitNoteWrapper::NewL()
{
+ _AKNTRACE_FUNC_ENTER;
CAknWaitNoteWrapper* self = new(ELeave) CAknWaitNoteWrapper;
+ _AKNTRACE_FUNC_EXIT;
return self;
}
EXPORT_C CAknWaitNoteWrapper::~CAknWaitNoteWrapper()
{
+ _AKNTRACE_FUNC_ENTER;
Cancel();
iTimer.Close();
delete iWaitDialog;
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C TBool CAknWaitNoteWrapper::ExecuteL
(TInt aResId,MAknBackgroundProcess& aBackgroundProcess,
TBool aVisibilityDelayOff, const CAknNoteDialog::TTone& aTone)
{
+ _AKNTRACE_FUNC_ENTER;
iBackgroundProcess = &aBackgroundProcess;
CreateDialogL(aVisibilityDelayOff,aTone);
iWaitDialog->ExecuteLD(aResId);
+ _AKNTRACE_FUNC_EXIT;
return NextCycleAndReturnL();
}
@@ -68,25 +76,30 @@
(TInt aResId,MAknBackgroundProcess& aBackgroundProcess,
const TDesC& aPrompt, TBool aVisibilityDelayOff, const CAknNoteDialog::TTone& aTone)
{
+ _AKNTRACE_FUNC_ENTER;
iBackgroundProcess = &aBackgroundProcess;
CreateDialogL(aVisibilityDelayOff,aTone);
iWaitDialog->PrepareLC(aResId);
iWaitDialog->SetTextL(aPrompt);
iWaitDialog->RunLD();
+ _AKNTRACE_FUNC_EXIT;
return NextCycleAndReturnL();
}
void CAknWaitNoteWrapper::DoCancel()
{
+ _AKNTRACE_FUNC_ENTER;
if (IsActive())
{
iTimer.Cancel();
CAknEnv::StopSchedulerWaitWithBusyMessage(iWait);
}
+ _AKNTRACE_FUNC_EXIT;
}
void CAknWaitNoteWrapper::RunL()
{
+ _AKNTRACE_FUNC_ENTER;
if (iBackgroundProcess->IsProcessDone() || !iWaitDialog)
{
iBackgroundProcess->ProcessFinished();
@@ -104,6 +117,7 @@
// Request next cycle
NextCycle();
}
+ _AKNTRACE_FUNC_EXIT;
}
TInt CAknWaitNoteWrapper::RunError(TInt aError)
@@ -134,6 +148,7 @@
TBool CAknWaitNoteWrapper::NextCycleAndReturnL()
{
+ _AKNTRACE_FUNC_ENTER;
User::LeaveIfError(iTimer.CreateLocal());
iIsDialogCanceled = ETrue;
@@ -142,6 +157,8 @@
iTimer.Close();
User::LeaveIfError(iRunError);
+ _AKNTRACE_FUNC_EXIT;
+
return !iIsDialogCanceled;
}
--- a/uifw/AvKon/src/Aknslider.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/Aknslider.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -539,12 +539,12 @@
};
const TAknsItemID iconSkinIDArray[] =
{
- KAknsIIDNone,//KAknsIIDQgnGrafNsliderVerticalTop,
- KAknsIIDNone,//KAknsIIDQgnGrafNsliderVerticalBottom,
- KAknsIIDNone,//KAknsIIDQgnGrafNsliderVerticalMiddle,
- KAknsIIDNone,// KAknsIIDQgnGrafNsliderVerticalMarker,
- KAknsIIDNone,// KAknsIIDQgnGrafNsliderVerticalTIckMajor,
- KAknsIIDNone//KAknsIIDQgnGrafNsliderVerticalMarker
+ KAknsIIDQgnGrafNsliderVerticalTop, //KAknsIIDNone,
+ KAknsIIDQgnGrafNsliderVerticalBottom,//KAknsIIDNone,
+ KAknsIIDQgnGrafNsliderVerticalMiddle,//KAknsIIDNone,
+ KAknsIIDQgnGrafNsliderVerticalMarker,//KAknsIIDNone,
+ KAknsIIDQgnGrafNsliderVerticalTickMajor,//KAknsIIDNone,
+ KAknsIIDQgnGrafNsliderVerticalMarker//KAknsIIDNone
};
const TInt element[] =
--- a/uifw/AvKon/src/aknbattery.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/aknbattery.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -352,17 +352,23 @@
return;
}
- if ( AknStatuspaneUtils::StaconPaneActive() )
- {
- DrawInStaconPane( Rect() );
- }
- else if ( AknStatuspaneUtils::FlatLayoutActive() )
+ // Don't allow normal background drawing if
+ // background is already drawn with a background drawer.
+ const MCoeControlBackground* backgroundDrawer = FindBackground();
+ if ( !backgroundDrawer )
{
- DrawInFlatStatusPane( Rect() );
- }
- else
- {
- DrawInNormalStatusPane( Rect() );
+ if ( AknStatuspaneUtils::StaconPaneActive() )
+ {
+ DrawInStaconPane( Rect() );
+ }
+ else if ( AknStatuspaneUtils::FlatLayoutActive() )
+ {
+ DrawInFlatStatusPane( Rect() );
+ }
+ else
+ {
+ DrawInNormalStatusPane( Rect() );
+ }
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uifw/AvKon/src/akncombinedpane.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -0,0 +1,294 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Status pane's combined subpane component.
+*
+*/
+
+#include <AknsDrawUtils.h>
+#include <AknIndicatorContainer.h>
+#include <aknlayoutscalable_avkon.cdl.h>
+#include <barsread.h>
+#include <eikspane.h>
+#include <avkon.hrh>
+#include <AknPriv.hrh>
+#include <AknSmallIndicator.h>
+#include <aknappui.h>
+#include <uikon/eikdefmacros.h>
+
+#include "akncombinedpane.h"
+#include "aknstatuspanedatasubscriber.h"
+
+// This is used to calculate the amount of pixels that the subpanes are
+// shifted to bottom and right when they are "pressed down".
+const TInt KPressedDownDeltaDivider( 35 ); // 0.3 units
+
+// ======== MEMBER FUNCTIONS ========
+
+// ----------------------------------------------------------------------------
+// Two-phased constructor.
+// ----------------------------------------------------------------------------
+//
+CAknCombinedPane* CAknCombinedPane::NewL()
+ {
+ CAknCombinedPane* self = new ( ELeave ) CAknCombinedPane();
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+
+// ----------------------------------------------------------------------------
+// Destructor
+// ----------------------------------------------------------------------------
+//
+CAknCombinedPane::~CAknCombinedPane()
+ {
+ iSubPanes.Reset();
+
+ if ( iAvkonAppUi )
+ {
+ iAvkonAppUi->RemoveFromStack( this );
+ }
+ }
+
+
+// ----------------------------------------------------------------------------
+// Returns number of controls inside this control.
+// ----------------------------------------------------------------------------
+//
+TInt CAknCombinedPane::CountComponentControls() const
+ {
+ return iSubPanes.Count();
+ }
+
+
+// ----------------------------------------------------------------------------
+// Returns a control determined by control index.
+// ----------------------------------------------------------------------------
+//
+CCoeControl* CAknCombinedPane::ComponentControl( TInt aIndex ) const
+ {
+ CCoeControl* control = NULL;
+
+ if ( iStatusPane && aIndex < iSubPanes.Count() )
+ {
+ TRAP_IGNORE( control = iStatusPane->ContainerControlL(
+ TUid::Uid( iSubPanes[aIndex].iUid ) ) );
+ }
+
+ return control;
+ }
+
+
+// ----------------------------------------------------------------------------
+// Handles a change to the control's resources.
+// ----------------------------------------------------------------------------
+//
+void CAknCombinedPane::HandleResourceChange( TInt aType )
+ {
+ CAknButton::HandleResourceChange( aType );
+
+ switch ( aType )
+ {
+ case KAknMessageFocusLost: // fallthrough
+ case KEikMessageFadeAllWindows:
+ {
+ SetSubPanesPressedDown( EFalse );
+ DrawDeferred();
+ break;
+ }
+
+ case KAknsMessageSkinChange:
+ {
+ DrawDeferred();
+ break;
+ }
+
+ case KEikDynamicLayoutVariantSwitch:
+ {
+ SetSubPanesPressedDown( EFalse );
+ // Recalculate the pressed down delta pixels on layout change.
+ TAknWindowLineLayout unitValue(
+ AknLayoutScalable_Avkon::aid_value_unit2().LayoutLine() );
+ iPressedDownDelta = unitValue.iW / KPressedDownDeltaDivider;
+ DrawDeferred();
+ break;
+ }
+
+ default:
+ {
+ break;
+ }
+ }
+ }
+
+
+// ----------------------------------------------------------------------------
+// Resource constructor.
+// ----------------------------------------------------------------------------
+//
+void CAknCombinedPane::ConstructFromResourceL( TResourceReader& aReader )
+ {
+ aReader.ReadInt8(); // version
+
+ TInt count = aReader.ReadInt16(); // amount of subpanes
+
+ for ( TInt i = 0; i < count; ++i )
+ {
+ TSubPaneData subPane;
+
+ aReader.ReadInt8(); // version
+ subPane.iUid = aReader.ReadUint32(); // subpane UID
+ subPane.iPressedDown = EFalse; // Isn't specified in the resource.
+ aReader.ReadInt32(); // extension
+
+ iSubPanes.AppendL( subPane );
+ }
+
+ aReader.ReadInt32(); // extension
+
+ iStatusPane = CEikStatusPaneBase::Current();
+ }
+
+
+// ----------------------------------------------------------------------------
+// Handles pointer events inside the control.
+// ----------------------------------------------------------------------------
+//
+void CAknCombinedPane::HandlePointerEventL(
+ const TPointerEvent& aPointerEvent )
+ {
+ CAknButton::HandlePointerEventL( aPointerEvent );
+
+ switch ( aPointerEvent.iType )
+ {
+ case TPointerEvent::EButton1Down:
+ {
+ SetSubPanesPressedDown( ETrue );
+ iPointerDownInCombinedArea = ETrue;
+ break;
+ }
+
+ case TPointerEvent::EButton1Up:
+ {
+ SetSubPanesPressedDown( EFalse );
+
+ if ( iPointerDownInCombinedArea &&
+ Rect().Contains( aPointerEvent.iPosition ) )
+ {
+ // Display the universal indicator popup.
+ CAknSmallIndicator* indicatorNotifier =
+ CAknSmallIndicator::NewLC( TUid::Uid( 0 ) );
+ indicatorNotifier->HandleIndicatorTapL();
+ CleanupStack::PopAndDestroy( indicatorNotifier );
+ }
+
+ iPointerDownInCombinedArea = EFalse;
+ break;
+ }
+
+ case TPointerEvent::EDrag:
+ {
+ TRect combinedRect( Rect() );
+ if ( !combinedRect.Contains( aPointerEvent.iPosition ) )
+ {
+ SetSubPanesPressedDown( EFalse );
+ }
+ else if ( iPointerDownInCombinedArea &&
+ combinedRect.Contains( aPointerEvent.iPosition ) )
+ {
+ SetSubPanesPressedDown( ETrue );
+ }
+ break;
+ }
+
+ default:
+ {
+ break;
+ }
+ }
+
+ DrawDeferred();
+ }
+
+
+// ----------------------------------------------------------------------------
+// Default C++ constructor.
+// ----------------------------------------------------------------------------
+//
+CAknCombinedPane::CAknCombinedPane() : CAknButton( 0 ),
+ iStatusPane( NULL )
+ {
+ // Calculate the pressed down delta pixels from layout data,
+ // aid_value_unit2 is a 10ux10u rectangle.
+ TAknWindowLineLayout unitValue(
+ AknLayoutScalable_Avkon::aid_value_unit2().LayoutLine() );
+ // Move the control 0.3 units to right and down for the
+ // "pressed down" effect.
+ iPressedDownDelta = unitValue.iW / KPressedDownDeltaDivider;
+ }
+
+
+// ----------------------------------------------------------------------------
+// Second-phase constructor.
+// ----------------------------------------------------------------------------
+//
+void CAknCombinedPane::ConstructL()
+ {
+ CAknButton::ConstructL( NULL, NULL, NULL, NULL, KNullDesC, KNullDesC, 0 );
+
+ // Use the softkey frame graphics so that the bottom area appears
+ // consistent.
+ SetFrameAndCenterIds( KAknsIIDQgnFrSctrlSkButton,
+ KAknsIIDQgnFrSctrlSkButtonCenter,
+ KAknsIIDNone,
+ KAknsIIDNone,
+ KAknsIIDNone,
+ KAknsIIDNone,
+ KAknsIIDQgnFrSctrlSkButtonPressed,
+ KAknsIIDQgnFrSctrlSkButtonCenterPressed,
+ KAknsIIDNone,
+ KAknsIIDNone );
+
+ // Add to the control stack in order to receive the focus lost events.
+ iAvkonAppUi->AddToStackL( this,
+ ECoeStackPriorityCba,
+ ECoeStackFlagRefusesAllKeys |
+ ECoeStackFlagRefusesFocus );
+ }
+
+
+// ----------------------------------------------------------------------------
+// Sets the pressed down state of the subpanes.
+// ----------------------------------------------------------------------------
+//
+void CAknCombinedPane::SetSubPanesPressedDown( TBool aPressedDown )
+ {
+ TInt delta = aPressedDown ? iPressedDownDelta : -iPressedDownDelta;
+
+ for ( TInt i = 0; i < iSubPanes.Count(); ++i )
+ {
+ if ( !COMPARE_BOOLS( iSubPanes[i].iPressedDown, aPressedDown ) )
+ {
+ CCoeControl* control = ComponentControl( i );
+ TRect controlRect( control->Rect() );
+ controlRect.Move( delta, delta );
+ control->SetRect( controlRect );
+ iSubPanes[i].iPressedDown = aPressedDown;
+ }
+ }
+ }
+
+// End of File
--- a/uifw/AvKon/src/akndigitalclock.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/akndigitalclock.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2006-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2006-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"
@@ -323,7 +323,9 @@
TRect rect( Rect() );
- if ( iFlags & EAknDigitalClockInStatusPane )
+ const MCoeControlBackground* backgroundDrawer = FindBackground();
+ if ( !backgroundDrawer &&
+ iFlags & EAknDigitalClockInStatusPane )
{
MAknsSkinInstance* skin = AknsUtils::SkinInstance();
MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
--- a/uifw/AvKon/src/akndiscreetpopup.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/akndiscreetpopup.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -22,6 +22,7 @@
#include "akndiscreetpopupcontrol.h"
#include "akndiscreetpopupserverhandler.h"
+#include "akntrace.h"
const TUid KDiscreetPopupSingleton = { 537001156 };
const TInt KInitialPopupId( 1 );
@@ -34,6 +35,7 @@
//
CAknDiscreetPopup::~CAknDiscreetPopup()
{
+ _AKNTRACE_FUNC_ENTER;
if ( iUseCoeEnv )
{
AKNTASHOOK_REMOVE();
@@ -47,6 +49,7 @@
}
iLocalPopups.Close();
delete iServerHandler;
+ _AKNTRACE_FUNC_EXIT;
}
@@ -66,6 +69,7 @@
const TInt aCommand,
MEikCommandObserver* aCommandObserver )
{
+ _AKNTRACE( "CAknDiscreetPopup::ShowLocalPopupL, Created by given parameters" );
__ASSERT_ALWAYS( CCoeEnv::Static(), Panic( EAknPanicNotSupported ) );
TInt popupId = 0;
CAknDiscreetPopup* instance = InstanceL();
@@ -95,6 +99,7 @@
const TInt aCommand,
MEikCommandObserver* aCommandObserver )
{
+ _AKNTRACE( "CAknDiscreetPopup::ShowLocalPopupL, Created by given resource" );
__ASSERT_ALWAYS( CCoeEnv::Static(), Panic( EAknPanicNotSupported ) );
TInt popupId = 0;
CAknDiscreetPopup* instance = InstanceL();
@@ -123,6 +128,7 @@
const TUid& aAppUid,
const TUid& aViewUid )
{
+ _AKNTRACE( "CAknDiscreetPopup::ShowGlobalPopupL, Created by given parameters" );
TInt popupId = 0;
CAknDiscreetPopup* instance = InstanceL();
if ( instance )
@@ -147,6 +153,7 @@
const TUid& aAppUid,
const TUid& aViewUid )
{
+ _AKNTRACE( "CAknDiscreetPopup::ShowGlobalPopupL, Created by given resource" );
TInt popupId = 0;
CAknDiscreetPopup* instance = InstanceL();
if( instance )
@@ -168,6 +175,7 @@
//
EXPORT_C void CAknDiscreetPopup::InitL()
{
+ _AKNTRACE_FUNC_ENTER;
__ASSERT_ALWAYS( !CCoeEnv::Static(), Panic( EAknPanicNotSupported ) );
// Create popup instance and store it to TLS
@@ -179,6 +187,7 @@
User::LeaveIfError( Dll::SetTls( instance ) );
CleanupStack::Pop( instance );
}
+ _AKNTRACE_FUNC_EXIT;
}
@@ -188,6 +197,7 @@
//
EXPORT_C void CAknDiscreetPopup::Release()
{
+ _AKNTRACE_FUNC_ENTER;
__ASSERT_ALWAYS( !CCoeEnv::Static(), Panic( EAknPanicNotSupported ) );
// Delete popup instance from TLS
@@ -199,6 +209,7 @@
instance = NULL;
Dll::SetTls( NULL );
}
+ _AKNTRACE_FUNC_EXIT;
}
@@ -392,8 +403,10 @@
//
void CAknDiscreetPopup::ShowPopupL( CAknDiscreetPopupControl* aControl )
{
+ _AKNTRACE_FUNC_ENTER;
if ( !aControl )
{
+ _AKNTRACE( "CAknDiscreetPopup::ShowPopupL, return (aControl is NULL)" );
return;
}
@@ -408,6 +421,7 @@
aControl->HandleDiscreetPopupActionL(
CAknDiscreetPopupControl::EAknDiscreetPopupShow );
iLocalPopups.AppendL( aControl );
+ _AKNTRACE_FUNC_EXIT;
}
@@ -417,8 +431,10 @@
//
void CAknDiscreetPopup::DeletePopup( CAknDiscreetPopupControl* aControl )
{
+ _AKNTRACE_FUNC_ENTER;
if ( !aControl )
{
+ _AKNTRACE( "CAknDiscreetPopup::DeletePopup, return (aControl is NULL)" );
return;
}
@@ -426,6 +442,7 @@
iLocalPopups.Remove( index );
delete aControl;
aControl = NULL;
+ _AKNTRACE_FUNC_EXIT;
}
@@ -472,6 +489,7 @@
void CAknDiscreetPopup::HandleControlEventL(
CCoeControl* aControl, TCoeEvent aEventType )
{
+ _AKNTRACE( "CAknDiscreetPopup::HandleControlEventL, aEventType : %d", aEventType );
if ( aEventType == EEventRequestExit || aEventType == EEventRequestCancel )
{
DeletePopup( static_cast<CAknDiscreetPopupControl*>( aControl ) );
--- a/uifw/AvKon/src/akndiscreetpopupcontrol.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/akndiscreetpopupcontrol.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -31,6 +31,7 @@
#include <avkon.hrh>
#include "akndiscreetpopupcontrol.h"
#include "akndiscreetpopupdrawer.h"
+#include "akntrace.h"
_LIT( KDiscreetPopupWindowGroupName, "Discreet pop-up" );
@@ -72,6 +73,7 @@
const TInt& aPopupId,
MEikCommandObserver* aCommandObserver )
{
+ _AKNTRACE_FUNC_ENTER;
CAknDiscreetPopupControl* self =
CAknDiscreetPopupControl::NewLC( aGlobal,
aTitle,
@@ -86,6 +88,7 @@
aPopupId,
aCommandObserver );
CleanupStack::Pop( self );
+ _AKNTRACE_FUNC_EXIT;
return self;
}
@@ -102,6 +105,7 @@
const TInt& aPopupId,
MEikCommandObserver* aCommandObserver )
{
+ _AKNTRACE_FUNC_ENTER;
CAknDiscreetPopupControl* self =
CAknDiscreetPopupControl::NewLC( aGlobal,
aCommand,
@@ -110,6 +114,7 @@
self->ConstructFromResourceL( aResourceId, aResourceFile );
CleanupStack::Pop( self );
+ _AKNTRACE_FUNC_EXIT;
return self;
}
@@ -175,6 +180,7 @@
//
CAknDiscreetPopupControl::~CAknDiscreetPopupControl()
{
+ _AKNTRACE_FUNC_ENTER;
AKNTASHOOK_REMOVE();
if ( IsVisible() )
{
@@ -189,6 +195,7 @@
}
delete iTimer;
delete iDrawer;
+ _AKNTRACE_FUNC_EXIT;
}
@@ -401,6 +408,7 @@
//
void CAknDiscreetPopupControl::DoTimeOut()
{
+ _AKNTRACE_FUNC_ENTER;
if ( !iInternalFlags.IsSet( EPressedDown ) )
{
TRAP_IGNORE( RequestExitL() );
@@ -409,6 +417,7 @@
{
iTimer->Cancel();
}
+ _AKNTRACE_FUNC_EXIT;
}
@@ -419,6 +428,7 @@
//
void CAknDiscreetPopupControl::RequestExitL()
{
+ _AKNTRACE_FUNC_ENTER;
if( iCommandObserver && !iInternalFlags.IsSet( EGlobal ) )
{
iCommandObserver->ProcessCommandL( EAknDiscreetPopupCmdClose );
@@ -426,6 +436,7 @@
HidePopup();
ReportEventL( MCoeControlObserver::EEventRequestExit );
iInternalFlags.Clear( EPressedDown );
+ _AKNTRACE_FUNC_EXIT;
}
@@ -435,12 +446,15 @@
//
void CAknDiscreetPopupControl::NotifyObserverL()
{
+ _AKNTRACE_FUNC_ENTER;
if ( iCommand != 0 && iCommandObserver )
{
+ _AKNTRACE( "CAknDiscreetPopupControl::NotifyObserverL(), tap event will be disposed." );
// Play feedback if there is command associated with the popup
ImmediateFeedback( ETouchFeedbackSensitive );
iCommandObserver->ProcessCommandL( iCommand );
}
+ _AKNTRACE_FUNC_EXIT;
}
@@ -530,6 +544,7 @@
//
void CAknDiscreetPopupControl::ShowPopupL()
{
+ _AKNTRACE_FUNC_ENTER;
AppUi()->AddToStackL(
this,
ECoeStackPriorityDefault,
@@ -563,6 +578,8 @@
iTimer->Start( timeout,
0,
TCallBack( TimeOut, this ) );
+
+ _AKNTRACE_FUNC_EXIT;
}
@@ -695,6 +712,7 @@
//
void CAknDiscreetPopupControl::HandleResourceChange( TInt aType )
{
+ _AKNTRACE_FUNC_ENTER;
CAknControl::HandleResourceChange( aType );
switch ( aType )
{
@@ -720,6 +738,7 @@
break;
}
}
+ _AKNTRACE_FUNC_EXIT;
}
@@ -740,6 +759,7 @@
&& eventInRect
&& iInternalFlags.IsClear( EDismissed ) )
{
+ _AKNTRACE( "CAknDiscreetPopupControl::HandlePointerEventL, TPointerEvent::EButton1Down" );
SetPressedDownState( ETrue );
ImmediateFeedback( ETouchFeedbackSensitive );
}
@@ -747,6 +767,7 @@
// 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 ) )
{
@@ -761,6 +782,7 @@
// Pointer up - reset pressed-down state
else if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
{
+ _AKNTRACE( "CAknDiscreetPopupControl::HandlePointerEventL, TPointerEvent::EButton1Up" );
if ( eventInRect )
{
NotifyObserverL();
--- a/uifw/AvKon/src/akndiscreetpopupdrawer.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/akndiscreetpopupdrawer.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -25,6 +25,7 @@
#include "akndiscreetpopupdrawer.h"
+#include "akntrace.h"
const TInt KTextBufSize( 255 );
const TInt KMaxNumOfLines( 2 );
@@ -76,6 +77,7 @@
const TInt& aMaskId,
const TBool& aAction )
{
+ _AKNTRACE_FUNC_ENTER;
CAknDiscreetPopupDrawer* self =
CAknDiscreetPopupDrawer::NewLC( aControl,
aTitleText,
@@ -87,6 +89,7 @@
aMaskId,
aAction );
CleanupStack::Pop( self );
+ _AKNTRACE_FUNC_EXIT;
return self;
}
@@ -292,11 +295,14 @@
if ( aTitleText == KNullDesC && aBodyText != KNullDesC )
{
iTitleText = aBodyText.AllocL();
+ _AKNTRACE( _L("CAknDiscreetPopupDrawer::ConstructL, iTitleText : %S"), iTitleText );
}
else
{
iTitleText = aTitleText.AllocL();
iBodyText = aBodyText.AllocL();
+ _AKNTRACE( _L("CAknDiscreetPopupDrawer::ConstructL, iTitleText : %S"), iTitleText );
+ _AKNTRACE( _L("CAknDiscreetPopupDrawer::ConstructL, iBodyText : %S"), iBodyText );
}
if ( !iIcon )
@@ -342,7 +348,7 @@
TBool withIcon( iIcon && iIcon->Bitmap() );
TBool twoRowsText(
iTitleText->Des() != KNullDesC
- && iBodyText->Des() != KNullDesC );
+ && iBodyText && iBodyText->Des() != KNullDesC );
// Two rows of text
if ( twoRowsText )
--- a/uifw/AvKon/src/akndiscreetpopupserverhandler.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/akndiscreetpopupserverhandler.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -20,7 +20,7 @@
#include <avkon.hrh>
#include "akndiscreetpopupserverhandler.h"
#include "akndiscreetpopupdata.h"
-
+#include "akntrace.h"
// ======== MEMBER FUNCTIONS ========
@@ -57,8 +57,10 @@
//
CAknDiscreetPopupServerHandler::~CAknDiscreetPopupServerHandler()
{
+ _AKNTRACE_FUNC_ENTER;
iLaunchers.ResetAndDestroy();
iUiServer.Close();
+ _AKNTRACE_FUNC_EXIT;
}
@@ -191,7 +193,9 @@
//
void CAknDiscreetPopupServerHandler::ConstructL()
{
+ _AKNTRACE_FUNC_ENTER;
User::LeaveIfError( iUiServer.Connect() );
+ _AKNTRACE_FUNC_EXIT;
}
@@ -221,6 +225,7 @@
//
CAknDiscreetPopupGlobalLauncher::~CAknDiscreetPopupGlobalLauncher()
{
+ _AKNTRACE( "[%s][%s] Enter ", "CAknDiscreetPopupGlobalLauncher", __FUNCTION__ );
if ( IsActive() && iHandler )
{
// Cancel request using status handle
@@ -229,6 +234,7 @@
iHandler->UiServer()->DoDiscreetPopupAction( &cancelData );
}
Cancel();
+ _AKNTRACE( "[%s][%s] Exit ", "CAknDiscreetPopupGlobalLauncher", __FUNCTION__ );
}
@@ -238,11 +244,14 @@
//
void CAknDiscreetPopupGlobalLauncher::LaunchDiscreetPopup()
{
+ _AKNTRACE( "[%s][%s] Enter ", "CAknDiscreetPopupGlobalLauncher", __FUNCTION__ );
if ( IsActive() )
{
+ _AKNTRACE( "[%s][%s] Exit ", "CAknDiscreetPopupGlobalLauncher", __FUNCTION__ );
return;
}
RenewRequest();
+ _AKNTRACE( "[%s][%s] Exit ", "CAknDiscreetPopupGlobalLauncher", __FUNCTION__ );
}
@@ -252,6 +261,8 @@
//
void CAknDiscreetPopupGlobalLauncher::RunL()
{
+ _AKNTRACE( "[%s][%s] Enter, iStatus : %d",
+ "CAknDiscreetPopupGlobalLauncher", __FUNCTION__, iStatus.Int() );
if ( iStatus.Int() != KRequestPending )
{
if( iCommandObserver )
@@ -271,6 +282,7 @@
{
RenewRequest();
}
+ _AKNTRACE( "[%s][%s] Exit ", "CAknDiscreetPopupGlobalLauncher", __FUNCTION__ );
}
@@ -318,6 +330,7 @@
{
if ( iHandler )
{
+ _AKNTRACE( "CAknDiscreetPopupGlobalLauncher::RenewRequest, issue request." );
iHandler->UiServer()->DoDiscreetPopupAction( PopupData(), &iStatus );
}
SetActive();
@@ -345,12 +358,14 @@
const TUid& aAppUid,
const TUid& aViewUid )
{
+ _AKNTRACE( "[%s][%s] Enter ", "CAknDiscreetPopupGlobalParamLauncher", __FUNCTION__ );
CAknDiscreetPopupGlobalParamLauncher* self =
new ( ELeave ) CAknDiscreetPopupGlobalParamLauncher(
aHandler, aObserver, aCommandId, aPopupId, aAppUid, aViewUid );
CleanupStack::PushL( self );
self->ConstructL();
CleanupStack::Pop( self );
+ _AKNTRACE( "[%s][%s] Exit ", "CAknDiscreetPopupGlobalParamLauncher", __FUNCTION__ );
return self;
}
@@ -438,12 +453,14 @@
const TUid& aAppUid,
const TUid& aViewUid )
{
+ _AKNTRACE( "[%s][%s] Enter ", "CAknDiscreetPopupGlobalResourceLauncher", __FUNCTION__ );
CAknDiscreetPopupGlobalResourceLauncher* self =
new ( ELeave ) CAknDiscreetPopupGlobalResourceLauncher(
aHandler, aObserver, aCommandId, aPopupId, aAppUid, aViewUid );
CleanupStack::PushL( self );
self->ConstructL();
CleanupStack::Pop( self );
+ _AKNTRACE( "[%s][%s] Exit ", "CAknDiscreetPopupGlobalResourceLauncher", __FUNCTION__ );
return self;
}
--- a/uifw/AvKon/src/aknenv.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/aknenv.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -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"
@@ -969,22 +969,34 @@
const SStatusPaneOrientationEquivResIds KStatusPaneSoftkeysBottomEquivResIds[] =
{
{ R_AVKON_STATUS_PANE_LAYOUT_IDLE, R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT_NO_SOFTKEYS },
+ { R_AVKON_STATUS_PANE_LAYOUT_IDLE_FLAT, R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT_NO_SOFTKEYS },
{ R_AVKON_STATUS_PANE_LAYOUT_IDLE_EXT, R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT_NO_SOFTKEYS },
{ R_AVKON_STATUS_PANE_LAYOUT_IDLE_MIRRORED, R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT_NO_SOFTKEYS },
- { R_AVKON_STATUS_PANE_LAYOUT_USUAL, R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT },
- { R_AVKON_STATUS_PANE_LAYOUT_USUAL_EXT, R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT },
- { R_AVKON_STATUS_PANE_LAYOUT_USUAL_MIRRORED, R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT },
- { R_AVKON_STATUS_PANE_LAYOUT_USUAL_WITH_BATTERY_PANE, R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT },
+ { R_AVKON_STATUS_PANE_LAYOUT_USUAL, R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT },
+ { R_AVKON_STATUS_PANE_LAYOUT_USUAL_EXT, R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT },
+ { R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT, R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT },
+ { R_AVKON_STATUS_PANE_LAYOUT_USUAL_MIRRORED, R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT },
+ { R_AVKON_STATUS_PANE_LAYOUT_USUAL_WITH_BATTERY_PANE, R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT },
+
+ { R_AVKON_STATUS_PANE_LAYOUT_VT, R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT },
+ { R_AVKON_STATUS_PANE_LAYOUT_VT_MIRRORED, R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT },
- { R_AVKON_STATUS_PANE_LAYOUT_VT, R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT },
- { R_AVKON_STATUS_PANE_LAYOUT_VT_MIRRORED, R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT },
+ { R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL, R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT },
+ { R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE, R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT_NO_SOFTKEYS },
+ { R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT, R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT_NO_SOFTKEYS },
+ { R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT_NO_SOFTKEYS, R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT },
- { R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL, R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT },
- { R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE, R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT_NO_SOFTKEYS },
- { R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT, R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT },
- { R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT, R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT_NO_SOFTKEYS },
- { R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT_NO_SOFTKEYS, R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT },
+ { R_AVKON_STACON_PANE_LAYOUT_USUAL_SOFTKEYS_RIGHT, R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT },
+ { R_AVKON_STACON_PANE_LAYOUT_USUAL_SOFTKEYS_LEFT, R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT },
+ { R_AVKON_STACON_PANE_LAYOUT_IDLE_SOFTKEYS_RIGHT, R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT_NO_SOFTKEYS },
+ { R_AVKON_STACON_PANE_LAYOUT_IDLE_SOFTKEYS_LEFT, R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT_NO_SOFTKEYS },
+ { R_AVKON_STACON_PANE_LAYOUT_EMPTY_SOFTKEYS_RIGHT, R_AVKON_STATUS_PANE_LAYOUT_EMPTY },
+ { R_AVKON_STACON_PANE_LAYOUT_EMPTY_SOFTKEYS_LEFT, R_AVKON_STATUS_PANE_LAYOUT_EMPTY },
+
+ { R_AVKON_STATUS_PANE_LAYOUT_SMALL_WITH_SIGNAL_PANE, R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT },
+ { R_AVKON_STATUS_PANE_LAYOUT_SMALL_WITH_SIGNAL_PANE_MIRRORED, R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT },
+ { R_AVKON_STATUS_PANE_LAYOUT_SMALL, R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT }
};
--- a/uifw/AvKon/src/akngridview.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/akngridview.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -77,6 +77,8 @@
iScrollingType = EScrollFollowsItemsAndLoops;
iScrollInSecondaryDimension = EScrollFollowsItemsAndLoops;
iGridDetails.iGridDimensions = TSize(1,1);
+ iGridDetails.iColsInView = 1;
+ iGridDetails.iRowsInView = 1;
}
/**
--- a/uifw/AvKon/src/aknlib.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/aknlib.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002 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"
@@ -55,6 +55,7 @@
#include <aknbutton.h>
+#include "akncombinedpane.h"
_LIT(KResFileName, "z:\\resource\\avkon.rsc");
_LIT(KAknPrivResourceFile, "z:\\resource\\aknpriv.rsc");
@@ -275,6 +276,9 @@
case EAknCtBatteryIndicatorContainerPane:
controlInfo.iControl = new(ELeave) CAknBatteryIndicatorContainer;
break;
+ case EAknCtCombinedPane:
+ controlInfo.iControl = CAknCombinedPane::NewL();
+ break;
case EAknCtNote:
controlInfo.iControl = new(ELeave) CAknNoteControl;
--- a/uifw/AvKon/src/aknlistquerydialog.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/aknlistquerydialog.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -57,6 +57,7 @@
#endif
#include <AknTasHook.h> // for testability hooks
+#include "akntrace.h"
NONSHARABLE_CLASS(CAknListQueryMediatorObserver): public CBase, public MAknDialogMediatorObserver
{
public:
@@ -160,32 +161,38 @@
EXPORT_C CAknListQueryDialog::CAknListQueryDialog(TInt* aIndex)
: CAknQueryDialog(ENoTone)
{
+ _AKNTRACE_FUNC_ENTER;
iIndex = aIndex;
iEnterKeyPressed = EFalse;
GfxTransEffect::Register(this,KGfxContextMenuControlUid);
AKNTASHOOK_ADD( this, "CAknListQueryDialog" );
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C CAknListQueryDialog::CAknListQueryDialog(CListBoxView::CSelectionIndexArray* aSelectionIndexArray)
: CAknQueryDialog(ENoTone)
{
+ _AKNTRACE_FUNC_ENTER;
iSelectionIndexArray = aSelectionIndexArray;
iEnterKeyPressed = EFalse;
GfxTransEffect::Register(this,KGfxContextMenuControlUid);
AKNTASHOOK_ADD( this, "CAknListQueryDialog" );
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C CAknListQueryDialog::~CAknListQueryDialog()
{
+ _AKNTRACE( "[%s][%s] Enter", "CAknListQueryDialog", "~CAknListQueryDialog" );
AKNTASHOOK_REMOVE();
if (iMediatorObs)
CEikDialog::SetMediatorObserver(0); // Cover UI support cannot handle dialog it self as external observer
delete iMediatorObs;
delete iIdle;
+ _AKNTRACE( "[%s][%s] Exit", "CAknListQueryDialog", "~CAknListQueryDialog" );
}
EXPORT_C CEikListBox *CAknListQueryDialog::ListBox() const
@@ -232,6 +239,7 @@
EXPORT_C void CAknListQueryDialog::PreLayoutDynInitL()
{
+ _AKNTRACE_FUNC_ENTER;
CAknListQuerySearchControl *control1 = (CAknListQuerySearchControl*)ControlOrNull(EFindControl);
CAknSearchField *control = NULL;
CAknSearchField::TSearchFieldStyle flags = CAknSearchField::EPopupWindow;
@@ -267,10 +275,12 @@
SetLineNonFocusing(EListQueryControl);
Line(EFindControl)->SetDrawNoWhiteBackground(ETrue);
}
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknListQueryDialog::SetIconArrayL(CArrayPtr<CGulIcon>* aIcons)
{
+ _AKNTRACE_FUNC_ENTER;
CEikFormattedCellListBox* listbox = STATIC_CAST(CEikFormattedCellListBox*,ListBox());
CArrayPtr<CGulIcon>* oldicons = listbox->ItemDrawer()->FormattedCellData()->IconArray();
@@ -280,10 +290,12 @@
delete oldicons;
}
listbox->ItemDrawer()->FormattedCellData()->SetIconArrayL(aIcons);
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknListQueryDialog::PostLayoutDynInitL()
{
+ _AKNTRACE_FUNC_ENTER;
CEikFormattedCellListBox* listbox = STATIC_CAST(CEikFormattedCellListBox*,ListBox());
// Now we'll load default icons if existing icon array does not exists.
@@ -316,10 +328,12 @@
CleanupStack::Pop(); // icon for EMbmAvkonQgn_prop_checkbox_on
CleanupStack::Pop(); // icons array
}
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknListQueryDialog::SetSizeAndPosition(const TSize & /*aSize*/)
{
+ _AKNTRACE_FUNC_ENTER;
AknPopupLayouts::TAknPopupLayouts layout = AknPopupLayouts::EMenuWindow;
CAknListQueryControl *control = ListControl();
@@ -408,12 +422,13 @@
boxData->SetSkinPopupFrame(&KAknsIIDQsnFrPopup,&KAknsIIDQsnFrPopupCenter);
boxData->SetSkinPopupFramePosition(outerRect,innerRect);
-
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknListQueryDialog::HandleListBoxEventL(CEikListBox* aListBox,
TListBoxEvent aEventType)
{
+ _AKNTRACE( "[%s][%s] aEventType: %d", "CAknListQueryDialog", "HandleListBoxEventL", aEventType);
if ( AknLayoutUtils::PenEnabled() )
{
switch(aEventType)
@@ -470,6 +485,7 @@
}
}
}
+ _AKNTRACE_FUNC_EXIT;
}
@@ -505,6 +521,8 @@
EXPORT_C TKeyResponse CAknListQueryDialog::OfferKeyEventL(const TKeyEvent& aKeyEvent,
TEventCode aType)
{
+ _AKNTRACE( "[%s][%s] aKeyEvent.iCode: %d", "CAknListQueryDialog", "OfferKeyEventL", aKeyEvent.iCode);
+ _AKNTRACE( "[%s][%s] aType: %d", "CAknListQueryDialog", "OfferKeyEventL", aType);
if (aType==EEventKey && aKeyEvent.iCode == EKeyEscape)
{
CloseState();
@@ -590,6 +608,7 @@
EXPORT_C TBool CAknListQueryDialog::OkToExitL(TInt aButtonId)
{
+ _AKNTRACE( "[%s][%s] aButtonId: %d", "CAknListQueryDialog", "OkToExitL", aButtonId);
CEikListBox* listbox = ListBox();
if(aButtonId == GetLeftCBAShortKeyPress() || aButtonId == EEikBidOk)
@@ -617,10 +636,15 @@
for(TInt i(0); i<numberOfItems; i++)
iSelectionIndexArray->AppendL(array->At(i));
}
+ _AKNTRACE( "[%s][%s] return ETrue", "CAknListQueryDialog", "OkToExitL");
return ETrue;
}
else if(aButtonId == GetRightCBAShortKeyPress())
- return ETrue;
+ {
+ _AKNTRACE( "[%s][%s] return ETrue", "CAknListQueryDialog", "OkToExitL");
+ return ETrue;
+ }
+ _AKNTRACE( "[%s][%s] return EFalse", "CAknListQueryDialog", "OkToExitL");
return EFalse;
}
@@ -635,11 +659,14 @@
EXPORT_C void CAknListQueryDialog::CloseState()
{
+ _AKNTRACE_FUNC_ENTER;
TRAP_IGNORE(TryExitL(EAknSoftkeyCancel));
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknListQueryDialog::ActivateL()
{
+ _AKNTRACE_FUNC_ENTER;
TBool notShowingPopup = ListBox()->Model()->NumberOfItems() == 0;
if (notShowingPopup)
{
@@ -670,14 +697,17 @@
{
CAknQueryDialog::ActivateL();
}
+ _AKNTRACE_FUNC_EXIT;
}
TInt CAknListQueryDialog::ClosePopup(TAny *aObj)
{
+ _AKNTRACE_FUNC_ENTER;
CAknListQueryDialog *popup = (CAknListQueryDialog*)aObj;
delete popup->iIdle;
popup->iIdle = 0;
popup->CloseState();
+ _AKNTRACE_FUNC_EXIT;
return EFalse;
}
@@ -720,16 +750,19 @@
TInt CAknListQueryDialog::ClosePopupAcceptingChanges(TAny *aObj)
{
+ _AKNTRACE_FUNC_ENTER;
if ( AknLayoutUtils::PenEnabled() )
{
CAknListQueryDialog *popup = (CAknListQueryDialog*)aObj;
delete popup->iIdle;
popup->iIdle = NULL;
TRAP_IGNORE( popup->TryExitL( EAknSoftkeyOk ) );
+ _AKNTRACE_FUNC_EXIT;
return EFalse;
}
else
{
+ _AKNTRACE_FUNC_EXIT;
return EFalse;
}
}
@@ -770,6 +803,7 @@
EXPORT_C void CAknListQueryDialog::HandleResourceChange(TInt aType)
{
+ _AKNTRACE_FUNC_ENTER;
if (aType==KEikDynamicLayoutVariantSwitch)
{
if (MessageBox())
@@ -777,7 +811,8 @@
MessageBox()->SizeChanged();
}
}
- CAknQueryDialog::HandleResourceChange(aType);
+ CAknQueryDialog::HandleResourceChange(aType);
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknListQueryDialog::PublishDialogL(TInt aDialogIndex, TUid aCatUid, CArrayFixFlat<TInt>* aItemIds)
--- a/uifw/AvKon/src/aknlists.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/aknlists.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -1726,7 +1726,8 @@
// Set again because ReplaceColumn in WordWrapListItem does not update the length to 'des2' !
des2.Set( buffer2->Des() );
- DrawBackgroundAndSeparatorLines( aItemTextRect );
+ DrawBackgroundAndSeparatorLines( aItemTextRect,
+ aItemIndex != FormattedCellData()->ListBox()->BottomItemIndex() );
if( aItemIsCurrent )
{
--- a/uifw/AvKon/src/aknlongtapanimation.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/aknlongtapanimation.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -42,6 +42,9 @@
/** Window`s Position when hiding the animation which does not own Window Group */
const TInt KAknAnimationNotOwnWindowGroupWindowPosition = -10; // never at front
+/** animation's position offset */
+const TInt KVerticalOffset = -75;
+
/** window group's name */
_LIT( KAknLongTapWgName, "LongTapAnim" ); // window groups name
@@ -165,9 +168,11 @@
SetRect( TRect( TPoint(aX, aY), layoutRect.Rect().Size() ));
- // Position window so that it will be directly on top of
- // the location that was clicked.
+ // position window
TPoint point( aX - Rect().Width() / 2, aY - Rect().Height() / 2 );
+ point.iY += KVerticalOffset;
+ point.iY = Max( 0, point.iY );
+
Window().SetPosition( point );
iAnim->SetSize( layoutRect.Rect().Size() );
--- a/uifw/AvKon/src/aknlongtapdetector.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/aknlongtapdetector.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -24,13 +24,13 @@
#include <AknSgcc.h>
#include <aknlayoutscalable_avkon.cdl.h>
#include <aknlongtapanimation.h>
-#include <EIKSRVS.H>
+#include <eiksrvs.h>
#include "AknPanic.h"
#include "aknlongtapdetector.h"
// CONSTANTS
const TInt KTimeDelayBeforeAnimation = 150000; // 0,15 seconds
-const TInt KLongTapDelay = 600000; // 0,6 seconds
+const TInt KLongTapDelay = 500000; // 0,6 seconds
// ======== MEMBER FUNCTIONS ========
--- a/uifw/AvKon/src/aknmessagequerydialog.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/aknmessagequerydialog.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -41,7 +41,7 @@
#include <AknTasHook.h> // for testability hooks
#include "AknHeadingPaneTouchObserver.h"
-
+#include "akntrace.h"
// CONSTANTS
const TInt KMaxLinks = 64;
@@ -128,11 +128,13 @@
EXPORT_C CAknMessageQueryDialog* CAknMessageQueryDialog::NewL( TDesC& aMessage, const TTone& aTone )
{
+ _AKNTRACE_FUNC_ENTER;
CAknMessageQueryDialog* self = new ( ELeave ) CAknMessageQueryDialog( aTone );
CleanupStack::PushL( self );
self->SetMessageTextL( aMessage );
CleanupStack::Pop(); //self
AKNTASHOOK_ADDL( self, "CAknMessageQueryDialog" );
+ _AKNTRACE_FUNC_EXIT;
return self;
}
@@ -148,11 +150,13 @@
EXPORT_C CAknMessageQueryDialog::CAknMessageQueryDialog( const TTone aTone ) : CAknQueryDialog( aTone )
{
+ _AKNTRACE_FUNC_ENTER;
#ifndef RD_NO_DIALOG_BORDERS
iBorder = AknBorderId::EAknBorderNotePopup;
#else
iBorder = TGulBorder::ENone;
#endif
+ _AKNTRACE_FUNC_EXIT;
}
//@deprecated
@@ -201,12 +205,14 @@
EXPORT_C CAknMessageQueryDialog::~CAknMessageQueryDialog()
{
+ _AKNTRACE( "[%s][%s] Enter", "CAknMessageQueryDialog", "~CAknMessageQueryDialog" );
AKNTASHOOK_REMOVE();
delete iMessage;
delete iHeader;
delete iHeaderImage;
RegisterPointerEventObserver( EFalse );
delete iMsgQueryExtension;
+ _AKNTRACE( "[%s][%s] Exit", "CAknMessageQueryDialog", "~CAknMessageQueryDialog" );
}
EXPORT_C void CAknMessageQueryDialog::SetMessageTextL( const TDesC& aMessage )
@@ -355,6 +361,7 @@
EXPORT_C void CAknMessageQueryDialog::PreLayoutDynInitL()
{
+ _AKNTRACE_FUNC_ENTER;
if ( !iMsgQueryExtension )
{
CreateExtensionL();
@@ -425,6 +432,7 @@
headingPane->SetLayout(CAknPopupHeadingPane::EMessageQueryHeadingPane); // Use message query heading layout.
headingPane->SetTouchObserver( iMsgQueryExtension );
}
+ _AKNTRACE_FUNC_EXIT;
}
@@ -986,13 +994,16 @@
TBool CAknMessageQueryDialog::ExecuteLinkL()
{
- CAknMessageQueryControl* control = STATIC_CAST( CAknMessageQueryControl*, Control( EAknMessageQueryContentId ) );
+ _AKNTRACE_FUNC_ENTER;
+ CAknMessageQueryControl* control = STATIC_CAST( CAknMessageQueryControl*, Control( EAknMessageQueryContentId ) );
if( !control )
{
+ _AKNTRACE_FUNC_EXIT;
return EFalse;
}
if( !control->LinkHighLighted() )
{
+ _AKNTRACE_FUNC_EXIT;
return EFalse;
}
TInt curLink = control->CurrentLink();
@@ -1011,6 +1022,7 @@
{
control->DehighlightLink();
}
+ _AKNTRACE_FUNC_EXIT;
return ETrue;
}
--- a/uifw/AvKon/src/aknnavi.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/aknnavi.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -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"
@@ -1396,7 +1396,7 @@
// Volume popup's position must be set here.
iNaviPaneControls->At( last )->iDecoratedControl->SetRect(
VolumePopupRect() );
- if( last - 1 >= 0 )
+ if( last - 1 >= 0 && iNaviPaneControls->At( last - 1 ) )
{
iNaviPaneControls->At( last - 1 )->SetRect( rect );
}
@@ -1584,6 +1584,15 @@
return;
}
+ // Don't allow normal background drawing if
+ // background is already drawn with a background drawer.
+ TBool drawBackground( ETrue );
+ const MCoeControlBackground* backgroundDrawer = FindBackground();
+ if ( backgroundDrawer )
+ {
+ drawBackground = EFalse;
+ }
+
CWindowGc& gc = SystemGc();
MAknsSkinInstance* skin = AknsUtils::SkinInstance();
@@ -1607,7 +1616,8 @@
// - Navi wipe is never used
// - No offset in right, left or top
//
- if( !AknsDrawUtils::Background( skin, cc, this, gc, rect ) )
+ if ( drawBackground &&
+ !AknsDrawUtils::Background( skin, cc, this, gc, rect ) )
{
gc.SetPenStyle( CGraphicsContext::ENullPen );
gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
@@ -1633,7 +1643,8 @@
gc.SetBrushColor(
AKN_LAF_COLOR( KStatusPaneBackgroundGraphicsColorUsual ) );
- if( !AknsDrawUtils::Background( skin, cc, this, gc, rect ) )
+ if ( drawBackground &&
+ !AknsDrawUtils::Background( skin, cc, this, gc, rect ) )
{
gc.DrawRect( rect );
}
@@ -1648,7 +1659,8 @@
// - Navi wipe is never used
// - No offset in right, left or top
//
- if( !AknsDrawUtils::Background( skin, cc, this, gc, rect ) )
+ if ( drawBackground &&
+ !AknsDrawUtils::Background( skin, cc, this, gc, rect ) )
{
gc.SetPenStyle( CGraphicsContext::ENullPen );
gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
@@ -1748,40 +1760,43 @@
//
else
{
- TBool naviWipeUsed = NaviWipeUsed();
-
- TBool skinnedNaviWipeDrawn = EFalse;
- TBool skinnedNaviSolidDrawn = EFalse;
- TBool defaultNaviWipeDrawn = EFalse;
- TBool defaultNaviSolidDrawn = EFalse;
-
- // If naviwipe is to be used, try first skinned draw...
- if ( naviWipeUsed )
- {
- skinnedNaviWipeDrawn = DrawSkinnedNaviWipe( gc, rect, skin, cc );
- }
-
- // If naviwipe is to be used and skinned draw failed,
- // draw default wipe draw...
- if ( naviWipeUsed && !skinnedNaviWipeDrawn )
+ if ( drawBackground )
{
- defaultNaviWipeDrawn = DrawDefaultNaviWipe( gc, rect );
- }
+ TBool naviWipeUsed = NaviWipeUsed();
+
+ TBool skinnedNaviWipeDrawn = EFalse;
+ TBool skinnedNaviSolidDrawn = EFalse;
+ TBool defaultNaviWipeDrawn = EFalse;
+ TBool defaultNaviSolidDrawn = EFalse;
+
+ // If naviwipe is to be used, try first skinned draw...
+ if ( naviWipeUsed )
+ {
+ skinnedNaviWipeDrawn = DrawSkinnedNaviWipe( gc, rect, skin, cc );
+ }
- // If naviwipe is not to be drawn or the nawiwipe draws has failed for
- // some reason then draw solid. Try skinned solid draw first...
- if ( !skinnedNaviWipeDrawn && !defaultNaviWipeDrawn )
- {
- skinnedNaviSolidDrawn = DrawSkinnedNaviSolid( gc, rect, skin, cc );
- }
+ // If naviwipe is to be used and skinned draw failed,
+ // draw default wipe draw...
+ if ( naviWipeUsed && !skinnedNaviWipeDrawn )
+ {
+ defaultNaviWipeDrawn = DrawDefaultNaviWipe( gc, rect );
+ }
- // If not any above is the case, then draw the default solid here.
- if ( !skinnedNaviWipeDrawn &&
- !defaultNaviWipeDrawn &&
- !skinnedNaviSolidDrawn &&
- !defaultNaviSolidDrawn )
- {
- defaultNaviSolidDrawn = DrawDefaultNaviSolid( gc, rect );
+ // If naviwipe is not to be drawn or the nawiwipe draws has failed for
+ // some reason then draw solid. Try skinned solid draw first...
+ if ( !skinnedNaviWipeDrawn && !defaultNaviWipeDrawn )
+ {
+ skinnedNaviSolidDrawn = DrawSkinnedNaviSolid( gc, rect, skin, cc );
+ }
+
+ // If not any above is the case, then draw the default solid here.
+ if ( !skinnedNaviWipeDrawn &&
+ !defaultNaviWipeDrawn &&
+ !skinnedNaviSolidDrawn &&
+ !defaultNaviSolidDrawn )
+ {
+ defaultNaviSolidDrawn = DrawDefaultNaviSolid( gc, rect );
+ }
}
}
}
--- a/uifw/AvKon/src/aknnotecontrol.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/aknnotecontrol.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -49,6 +49,8 @@
#include <touchfeedback.h>
#include <AknTasHook.h> // for testability hooks
+
+#include "akntrace.h"
const TInt KRate = 95; // 95% similar rate
const TInt KFullColor = 255;
@@ -73,6 +75,7 @@
*/
EXPORT_C CAknNoteControl::~CAknNoteControl()
{
+ _AKNTRACE_FUNC_ENTER;
AKNTASHOOK_REMOVE();
MTouchFeedback* feedback = MTouchFeedback::Instance();
if ( feedback )
@@ -82,6 +85,7 @@
delete iAttributes;
delete iLineWidths;
+ _AKNTRACE_FUNC_EXIT;
}
void CAknNoteControl::ConstructFromResourceL(TResourceReader &aRes)
@@ -128,7 +132,8 @@
// CCOECONTROL METHODS
// -----------------------------------------
void CAknNoteControl::Draw(const TRect& /*aRect*/) const
- {
+ {
+ _AKNTRACE_FUNC_ENTER;
MAknsSkinInstance* skin = AknsUtils::SkinInstance();
MAknsControlContext* cc = iAttributes->iBgContext;
@@ -187,6 +192,7 @@
{
iShadowRect.DrawRect( gc );
}
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CAknNoteControl::HandlePointerEventL(const TPointerEvent& aPointerEvent)
@@ -277,8 +283,10 @@
* Call Layout instead.
*/
void CAknNoteControl::SizeChanged()
- {
+ {
+ _AKNTRACE_FUNC_ENTER;
DoLayout();
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -287,6 +295,8 @@
*/
void CAknNoteControl::DoLayout()
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE("iNoteLayout = %d", iNoteLayout);
TextControl()->SetRect(LayoutRect());
switch(iNoteLayout)
{
@@ -333,6 +343,7 @@
delete spec;
}
}
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -342,6 +353,8 @@
*/
void CAknNoteControl::WindowLayout( TAknWindowLineLayout& aLayout ) const
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE("iNoteLayout = %d", iNoteLayout);
TIndex laf(NumberOfLines());
AknLayoutUtils::TAknCbaLocation cbaLocation( AknLayoutUtils::CbaLocation() );
TInt variety( 0 );
@@ -436,6 +449,7 @@
laf.PopupNoteWindow() );
break;
}
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -1182,8 +1196,9 @@
*/
EXPORT_C void CAknNoteControl::SetTextL(const TDesC& aText, TInt aLineNum)
{
+ _AKNTRACE_FUNC_ENTER;
TAknLayoutText textRect;
-
+ _AKNTRACE(_L("SetTextL = %S"), &aText);
if ( iNoteLayout == ENotificationWithGraphicsLayout || iNoteLayout == ETextualNotificationLayout )
{
textRect.LayoutText(LayoutRect(), AKN_LAYOUT_TEXT_Notification_pop_up_window_texts__text__Line_1(1));
@@ -1197,6 +1212,7 @@
Attributes()->SetTextL(aText, aLineNum, font, iLineWidths);
Layout();
+ _AKNTRACE_FUNC_EXIT;
}
/**
--- a/uifw/AvKon/src/aknprogresstimer.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/aknprogresstimer.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -18,10 +18,11 @@
// AknProgressTimer.cpp: implementation of the CAknProgressTimer class.
//
//////////////////////////////////////////////////////////////////////
-
+#include <coemain.h>
#include "aknnotecontrol.h"
#include "aknprogresstimer.h"
-#include <coemain.h>
+#include "akntrace.h"
+
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
@@ -45,6 +46,7 @@
void CAknProgressTimer::ConstructL(TTimerModel *aModel,CAknNoteControl *aContainer,TCallBack aCallBack)
{
+ _AKNTRACE_FUNC_ENTER;
iCallBack = aCallBack;
CTimer::ConstructL();
CActiveScheduler::Add(this);
@@ -53,6 +55,7 @@
iContainer->SetFinalProgressValue(iModel->iFinalValue);
if (iModel->iRunning)
Queue();
+ _AKNTRACE_FUNC_EXIT;
}
void CAknProgressTimer::Queue()
@@ -62,10 +65,12 @@
void CAknProgressTimer::RunL()
{
+ _AKNTRACE_FUNC_ENTER;
if (iContainer->IncrementBarsAndDraw(iModel->iIncrement))
Queue();
else
iCallBack.CallBack();
+ _AKNTRACE_FUNC_EXIT;
}
// End of File
--- a/uifw/AvKon/src/aknqueryeditorindicator.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/aknqueryeditorindicator.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -25,6 +25,7 @@
#include "aknQueryControl.h"
#include <AknTasHook.h> // for testability hooks
+#include "akntrace.h"
//
// CAknQueryEditIndicator
// Handles editor indicator for queries
@@ -51,6 +52,7 @@
void CAknQueryEditIndicator::ConstructL(CCoeControl* aControl)
{
+ _AKNTRACE_FUNC_ENTER;
if ( CAknEnv::Static()->TransparencyEnabled() )
{
// In transparency everything broke when this had its own
@@ -70,10 +72,13 @@
// Set to zero size - derived queries must set extent in PreDynInitLayout
SetExtent(TPoint(0,0), TSize(0,0));
ActivateL();
+ _AKNTRACE_FUNC_EXIT;
}
void CAknQueryEditIndicator::SetState(TAknEditingState aState)
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "[%s][%s] aState: %d", "CAknQueryEditIndicator", __FUNCTION__,aState);
iState = aState;
if (Observer())
{
@@ -82,6 +87,7 @@
if ( iFlags.IsSet(CAknQueryControl::EEditorIndicatorOff) )
{
+ _AKNTRACE_FUNC_EXIT;
return;
}
@@ -370,6 +376,7 @@
{
DrawDeferred();
}
+ _AKNTRACE_FUNC_EXIT;
}
CAknIndicatorContainer* CAknQueryEditIndicator::IndicatorContainer()
--- a/uifw/AvKon/src/aknsignal.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/aknsignal.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -537,25 +537,31 @@
return;
}
- if ( AknStatuspaneUtils::StaconPaneActive() )
- {
- // Signal pane in STACON PANE layout
- DrawInStaconPane( Rect() );
- }
- else if ( AknStatuspaneUtils::FlatLayoutActive() )
+ // Don't allow normal background drawing if
+ // background is already drawn with a background drawer.
+ const MCoeControlBackground* backgroundDrawer = FindBackground();
+ if ( !backgroundDrawer )
{
- // Signal pane in FLAT STATUSPANE layout
- DrawInFlatStatusPane( Rect() );
- }
- else if ( AknStatuspaneUtils::SmallLayoutActive() )
- {
- // Signal pane in SMALL STATUSPANE layout
- DrawInSmallStatusPane( Rect() );
- }
- else
- {
- // Signal pane in NORMAL STATUSPANE layout
- DrawInNormalStatusPane( Rect() );
+ if ( AknStatuspaneUtils::StaconPaneActive() )
+ {
+ // Signal pane in STACON PANE layout
+ DrawInStaconPane( Rect() );
+ }
+ else if ( AknStatuspaneUtils::FlatLayoutActive() )
+ {
+ // Signal pane in FLAT STATUSPANE layout
+ DrawInFlatStatusPane( Rect() );
+ }
+ else if ( AknStatuspaneUtils::SmallLayoutActive() )
+ {
+ // Signal pane in SMALL STATUSPANE layout
+ DrawInSmallStatusPane( Rect() );
+ }
+ else
+ {
+ // Signal pane in NORMAL STATUSPANE layout
+ DrawInNormalStatusPane( Rect() );
+ }
}
}
--- a/uifw/AvKon/src/aknstatuspanedatapublisher.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/aknstatuspanedatapublisher.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2006-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2006-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"
@@ -714,8 +714,8 @@
TInt statusPaneLayoutId = AknStatuspaneUtils::CurrentStatusPaneLayoutResId();
TAknLayoutRect layoutRect;
if ( isLandscape &&
- ( statusPaneLayoutId == R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT ||
- statusPaneLayoutId == R_AVKON_STATUS_PANE_LAYOUT_IDLE_FLAT ) )
+ ( statusPaneLayoutId == R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT ||
+ statusPaneLayoutId == R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT ) )
{
layoutRect.LayoutRect(
applicationWindow,
@@ -729,9 +729,7 @@
applicationWindow,
AknLayoutScalable_Avkon::popup_uni_indicator_window( 6 ) );
}
- else if ( statusPaneLayoutId == R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT ||
- statusPaneLayoutId == R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT ||
- statusPaneLayoutId == R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT_NO_SOFTKEYS ||
+ else if ( statusPaneLayoutId == R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT_NO_SOFTKEYS ||
statusPaneLayoutId == R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT_NO_SOFTKEYS )
{
layoutRect.LayoutRect(
--- a/uifw/AvKon/src/aknstatuspanedigitalclock.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/aknstatuspanedigitalclock.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005-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"
@@ -218,11 +218,18 @@
//
void CAknStatuspaneDigitalClock::Draw( const TRect& /*aRect*/ ) const
{
- MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+ // Don't allow normal background drawing if
+ // background is already drawn with a background drawer.
+ const MCoeControlBackground* backgroundDrawer = FindBackground();
+ if ( !backgroundDrawer &&
+ AknStatuspaneUtils::ExtendedFlatLayoutActive() )
+ {
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance();
- CWindowGc& gc = SystemGc();
- MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
- AknsDrawUtils::Background( skin, cc, this, gc, Rect() );
+ CWindowGc& gc = SystemGc();
+ MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
+ AknsDrawUtils::Background( skin, cc, this, gc, Rect() );
+ }
}
--- a/uifw/AvKon/src/akntitle.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/akntitle.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -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"
@@ -689,36 +689,42 @@
return;
}
- MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-
- TRect rect( Rect() );
-
- CWindowGc& gc=SystemGc();
-
- if ( AknStatuspaneUtils::StaconPaneActive() ||
- AknStatuspaneUtils::FlatLayoutActive() )
+ // Don't allow normal background drawing if
+ // background is already drawn with a background drawer.
+ const MCoeControlBackground* backgroundDrawer = FindBackground();
+ if ( !backgroundDrawer )
{
- MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
-
- if( !AknsDrawUtils::Background( skin, cc, this, gc, rect ) )
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+
+ TRect rect( Rect() );
+
+ CWindowGc& gc=SystemGc();
+
+ if ( AknStatuspaneUtils::StaconPaneActive() ||
+ AknStatuspaneUtils::FlatLayoutActive() )
{
- gc.SetPenStyle( CGraphicsContext::ENullPen );
+ MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
+
+ if( !AknsDrawUtils::Background( skin, cc, this, gc, rect ) )
+ {
+ gc.SetPenStyle( CGraphicsContext::ENullPen );
+ gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
+ gc.SetBrushColor(
+ AKN_LAF_COLOR( KStatusPaneBackgroundGraphicsColorUsual ) );
+ gc.DrawRect( rect );
+ }
+ }
+ else
+ {
gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
- gc.SetBrushColor(
- AKN_LAF_COLOR( KStatusPaneBackgroundGraphicsColorUsual ) );
- gc.DrawRect( rect );
+ gc.SetBrushColor( AKN_LAF_COLOR( KStatusPaneBackgroundColor ) );
+ AknsDrawUtils::Background( skin,
+ AknsDrawUtils::ControlContext( this ),
+ this,
+ gc,
+ rect );
}
}
- else
- {
- gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
- gc.SetBrushColor( AKN_LAF_COLOR( KStatusPaneBackgroundColor ) );
- AknsDrawUtils::Background( skin,
- AknsDrawUtils::ControlContext( this ),
- this,
- gc,
- rect );
- }
}
@@ -1430,7 +1436,7 @@
TAknLayoutRect layoutRect;
layoutRect.LayoutRect(
rect,
- AknLayoutScalable_Avkon::title_pane_g2( touchLsc ? 4 : 0 ) );
+ AknLayoutScalable_Avkon::title_pane_g2( touchLsc ? 4 : 1 ) );
if ( iExtension->iSmallImageAutoscaling &&
iExtension->iTitleImage->Bitmap() &&
@@ -1461,13 +1467,13 @@
{
// if image is shown, use shorter version of text
oneLineLayout =
- AknLayoutScalable_Avkon::title_pane_t1( touchLsc ? 11 : 3 ).LayoutLine();
+ AknLayoutScalable_Avkon::title_pane_t1( touchLsc ? 11 : 6 ).LayoutLine();
}
else
{
// if image is not shown, use longer version of text
oneLineLayout =
- AknLayoutScalable_Avkon::title_pane_t1( touchLsc ? 10 : 2 ).LayoutLine();
+ AknLayoutScalable_Avkon::title_pane_t1( touchLsc ? 10 : 5 ).LayoutLine();
}
TAknLayoutText oneLineLayoutText;
--- a/uifw/AvKon/src/aknutils.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/aknutils.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002-2009 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"
@@ -3524,8 +3524,8 @@
case R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT:
case R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT: // fallthrough
{
- parent = AknLayoutScalable_Avkon::area_top_pane( 19 );
- line = AknLayoutScalable_Avkon::status_pane( 4 );
+ parent = AknLayoutScalable_Avkon::area_top_pane( 2 );
+ line = AknLayoutScalable_Avkon::status_pane( 1 );
break;
}
@@ -3667,36 +3667,9 @@
{
if ( Layout_Meta_Data::IsLandscapeOrientation() )
{
- if ( PenEnabled() )
- {
- // This is quite awkward but necessary since the fixed
- // toolbar area can be used by the application main pane
- // if the application doesn't use toolbar.
- TBool toolbarVisible( EFalse );
- if ( iAvkonAppUi )
- {
- CAknToolbar* fixedToolbar =
- iAvkonAppUi->CurrentFixedToolbar();
- if ( fixedToolbar )
- {
- TInt toolbarFlags( fixedToolbar->ToolbarFlags() );
- if ( toolbarFlags & KAknToolbarFixed &&
- !( toolbarFlags & KAknToolbarDefault ) &&
- fixedToolbar->IsShown() )
- {
- toolbarVisible = ETrue;
- }
- }
- }
-
- variety = toolbarVisible ? 21 : 4;
- }
- else
- {
- // main pane variety with 'area_top_pane' and
- // 'area_bottom_pane' in landscape (without touch pane).
- variety = 9;
- }
+ // main pane variety with 'area_top_pane' and
+ // 'area_bottom_pane' in landscape (without touch pane).
+ variety = 9;
}
else
{
@@ -3761,7 +3734,27 @@
{
if ( Layout_Meta_Data::IsLandscapeOrientation() )
{
- variety = 21;
+ // This is quite awkward but necessary since the fixed
+ // toolbar area can be used by the application main pane
+ // if the application doesn't use toolbar.
+ TBool toolbarVisible( EFalse );
+ if ( iAvkonAppUi )
+ {
+ CAknToolbar* fixedToolbar =
+ iAvkonAppUi->CurrentFixedToolbar();
+ if ( fixedToolbar )
+ {
+ TInt toolbarFlags( fixedToolbar->ToolbarFlags() );
+ if ( toolbarFlags & KAknToolbarFixed &&
+ !( toolbarFlags & KAknToolbarDefault ) &&
+ fixedToolbar->IsShown() )
+ {
+ toolbarVisible = ETrue;
+ }
+ }
+ }
+
+ variety = toolbarVisible ? 21 : 4;
}
break;
}
@@ -6547,11 +6540,22 @@
TInt x = ( screen.Width() - aSize.iWidth ) >> 1;
TInt y = screen.Height() - aSize.iHeight;
- // Popups are centered on y-axis if screen orientation is landscape or
- // softkeys are not visible.
- if ( !aSoftkeysVisible || Layout_Meta_Data::IsLandscapeOrientation() )
- {
- y >>= 1;
+ if ( Layout_Meta_Data::IsLandscapeOrientation() )
+ {
+ // popups are centered on y-axis on landscape orientation
+ y >>= 1;
+ }
+ else
+ {
+ // On portrait popup is located on top of the control pane if it doesn't
+ // have softkeys visible.
+ if ( !aSoftkeysVisible )
+ {
+ TSize controlPane;
+ AknLayoutUtils::LayoutMetricsSize( AknLayoutUtils::EControlPane,
+ controlPane );
+ y -= controlPane.iHeight;
+ }
}
return TPoint( x, y );
@@ -6579,6 +6583,28 @@
return Position( aSize, softkeys );
}
+
+
+// -----------------------------------------------------------------------------
+// AknListUtils::DrawSeparator
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void AknListUtils::DrawSeparator( CGraphicsContext& aGc,
+ const TRect& aRect, const TRgb& aColor )
+ {
+ aGc.SetBrushStyle( CGraphicsContext::ENullBrush );
+ aGc.SetPenStyle( CGraphicsContext::ESolidPen );
+ TRgb color( aColor );
+ color.SetAlpha( 32 );
+ aGc.SetPenColor( color );
+ TRect lineRect( aRect );
+ TInt gap = AknLayoutScalable_Avkon::listscroll_gen_pane( 0 ).LayoutLine().it;
+ lineRect.Shrink( gap, 0 );
+ lineRect.Move( 0, -1 );
+ aGc.DrawLine( TPoint( lineRect.iTl.iX, lineRect.iBr.iY ),
+ TPoint( lineRect.iBr.iX, lineRect.iBr.iY ) );
+ }
+
// End of file
--- a/uifw/AvKon/src/eikfrlb.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/eikfrlb.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -226,7 +226,8 @@
colors.iHighlightedText=iHighlightedTextColor;
colors.iHighlightedBack=iHighlightedBackColor;
- DrawBackgroundAndSeparatorLines( aItemTextRect );
+ DrawBackgroundAndSeparatorLines( aItemTextRect,
+ aItemIndex != FormattedCellData()->ListBox()->BottomItemIndex() );
TBool highlightShown = ETrue;
@@ -1344,7 +1345,8 @@
{
}
-void CFormattedCellListBoxItemDrawer::DrawBackgroundAndSeparatorLines( const TRect& aItemTextRect ) const
+void CFormattedCellListBoxItemDrawer::DrawBackgroundAndSeparatorLines(
+ const TRect& aItemTextRect, TBool aDrawSeparator ) const
{
MAknsSkinInstance *skin = AknsUtils::SkinInstance();
CCoeControl* control = FormattedCellData()->Control();
@@ -1414,6 +1416,12 @@
transApi->StopDrawing();
}
#endif // RD_UI_TRANSITION_EFFECTS_LIST
+
+ if ( aDrawSeparator &&
+ static_cast<CEikListBox*>( control )->ItemsInSingleLine() == 1 )
+ {
+ AknListUtils::DrawSeparator( *iGc, aItemTextRect, iTextColor );
+ }
}
}
--- a/uifw/AvKon/src/eikslb.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/src/eikslb.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -78,7 +78,8 @@
}
#endif //RD_UI_TRANSITION_EFFECTS_LIST
- DrawBackgroundAndSeparatorLines( aItemTextRect );
+ DrawBackgroundAndSeparatorLines( aItemTextRect,
+ aItemIndex != FormattedCellData()->ListBox()->BottomItemIndex() );
if ( aItemIsCurrent )
{
--- a/uifw/AvKon/srcdata/avkon.rss Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/srcdata/avkon.rss Fri Feb 19 23:04:46 2010 +0200
@@ -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"
@@ -630,8 +630,14 @@
flags = EEikStatusPaneAppOwned;
type = EAknCtStatuspaneEmpty;
resource = r_avkon_status_pane_empty;
+ },
+ SPANE_PANE
+ {
+ id = EEikStatusPaneUidCombined;
+ flags = EEikStatusPaneAppOwned;
+ type = EAknCtCombinedPane;
+ resource = r_avkon_status_pane_combined_default;
}
-
};
default_layout = r_avkon_status_pane_layout_usual;
@@ -9226,6 +9232,18 @@
id = EEikStatusPaneUidBattery;
size = 1; // Dummy size, real size comes from AknLayout
sub_panes = {};
+ },
+ SPANE_LAYOUT_TREE_NODE
+ {
+ id = EEikStatusPaneUidDigitalClock;
+ size = 1; // Dummy size, real size comes from AknLayout
+ sub_panes = {};
+ },
+ SPANE_LAYOUT_TREE_NODE
+ {
+ id = EEikStatusPaneUidCombined;
+ size = 1; // Dummy size, real size comes from AknLayout
+ sub_panes = {};
}
};
};
@@ -9273,6 +9291,18 @@
id = EEikStatusPaneUidBattery;
size = 1; // Dummy size, real size comes from AknLayout
sub_panes = {};
+ },
+ SPANE_LAYOUT_TREE_NODE
+ {
+ id = EEikStatusPaneUidDigitalClock;
+ size = 1; // Dummy size, real size comes from AknLayout
+ sub_panes = {};
+ },
+ SPANE_LAYOUT_TREE_NODE
+ {
+ id = EEikStatusPaneUidCombined;
+ size = 1; // Dummy size, real size comes from AknLayout
+ sub_panes = {};
}
};
};
@@ -9737,7 +9767,12 @@
MENU_ITEM { command=EAknCmdEditInsertSmiley; flags=EEikMenuItemDimmed; txt=qtn_tin_option_menu_add_smiley; },
MENU_ITEM { command=EAknCmdPredictiveTextCascade; cascade=r_avkon_predictive_text_menu_t9; flags=EEikMenuItemDimmed; txt=qtn_options_t9; },
MENU_ITEM { command=EAknCmdMultitapPredictiveT9On; flags=EEikMenuItemDimmed; txt=qtn_options_t9_on; },
+ MENU_ITEM { command=EPenInputCmdHwrInputToPortrait; flags=EEikMenuItemDimmed; txt=qtn_tin_option_menu_to_portrait_hwr; },
+ MENU_ITEM { command=EPenInputCmdHwrInputToLandscape; flags=EEikMenuItemDimmed; txt=qtn_tin_option_menu_to_landscape_hwr; },
+ MENU_ITEM { command=EPenInputCmdSwitchToVkeyBasedInput; flags=EEikMenuItemDimmed; txt=qtn_tin_option_menu_switch_to_vkey_input; },
MENU_ITEM { command=EPenInputPreview; cascade=r_avkon_touchinput_preview; txt=qtn_tin_option_menu_character_preview; },
+ MENU_ITEM { command=EPenInputCmdWritingSpeed; flags=EEikMenuItemDimmed; txt=qtn_tin_settings_writing_speed; },
+ MENU_ITEM { command=EPenInputCmdGuidingLine; flags=EEikMenuItemDimmed; txt=qtn_tin_settings_guiding_line; },
MENU_ITEM { command=EAknCmdInputLanguage; txt=qtn_tin_option_menu_writing_language; },
MENU_ITEM { command=EPenInputCmdRecognitionWithDictionary; flags=EEikMenuItemDimmed; txt=qtn_tin_option_menu_arabic_recognition; },
MENU_ITEM { command=EJapanFepCmdModeHiragana; flags=EEikMenuItemDimmed;txt=qtn_japin_edit_hiragana; },
@@ -10106,4 +10141,19 @@
};
}
+RESOURCE COMBINED_PANE r_avkon_status_pane_combined_default
+ {
+ panes =
+ {
+ COMBINED_PANE_SUBPANE
+ {
+ uid = EEikStatusPaneUidDigitalClock;
+ },
+ COMBINED_PANE_SUBPANE
+ {
+ uid = EEikStatusPaneUidIndic;
+ }
+ };
+ }
+
// End of File
--- a/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestptieng/inc/bctestkeymap.h Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestptieng/inc/bctestkeymap.h Fri Feb 19 23:04:46 2010 +0200
@@ -23,6 +23,7 @@
class CPtiKeyMappings;
class MPtiKeyMappings;
+class CPtiKeyMapData;
/**
* test case for various list classes
@@ -88,6 +89,7 @@
//data
CPtiKeyMappings* iMap;
+ CPtiKeyMapData* iKeymapData;
};
#endif // BCTEST_PTIENG_KEYMAP_H
\ No newline at end of file
--- a/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestptieng/inc/bctestqwertymap.h Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestptieng/inc/bctestqwertymap.h Fri Feb 19 23:04:46 2010 +0200
@@ -23,6 +23,7 @@
class CPtiQwertyKeyMappings;
class MPtiKeyMappings;
+class CPtiKeyMapData;
/**
* test case for various list classes
@@ -89,6 +90,7 @@
//data
CPtiQwertyKeyMappings* iMap;
+ CPtiKeyMapData* iKeymapData;
};
#endif // BCTEST_QWERTY_KEYMAP_H
\ No newline at end of file
--- a/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestptieng/src/bctestkeymap.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestptieng/src/bctestkeymap.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -20,46 +20,12 @@
#include <coecntrl.h>
#include <eikenv.h>
#include <ptikeymappings.h>
+#include <ptikeymapdata.h>
#include "BCTestKeymap.h"
#include "BCTestPtiEngcontainer.h"
#include "BCTestPtiEng.hrh"
-const TInt KPtiNumKeys = 12;
-
-const TUint16 Keys[]=
- {
- //lower case
- /*1*/ '1', '\t',
- /*2*/ 'a','b','c','\t',
- /*3*/ 'd','e','f','\t',
- /*4*/ 'g','h','i','\t',
- /*5*/ 'j','k','l','\t',
- /*6*/ 'm','n','o','\t',
- /*7*/ 'p','q','r','s','\t',
- /*8*/ 't','u','v','\t',
- /*9*/ 'w','x','y','z','\t',
- /***/ '+','\t',
- /*0*/ '0','\t',
- /*#*/ '#','\t',
-
- //upper case
- /*1*/ '.', '\t',
- /*2*/ 'A','B','C','\t',
- /*3*/ 'D','E','F','\t',
- /*4*/ 'G','H','I','\t',
- /*5*/ 'J','K','L','\t',
- /*6*/ 'M','N','O','\t',
- /*7*/ 'P','Q','R','S','\t',
- /*8*/ 'T','U','V','\t',
- /*9*/ 'W','X','Y','Z','\t',
- /***/ '-','\t',
- /*0*/ ' ','\t',
- /*#*/ '^',
-
- '\0' //string terminator
- };
-
// ======== MEMBER FUNCTIONS ========
// ---------------------------------------------------------------------------
@@ -133,8 +99,8 @@
//
void CBCTestKeymap::TestFunctionL()
{
- SetupL();
TestCreateL();
+ SetupL();
if ( iMap )
{
TestMapping();
@@ -147,87 +113,35 @@
void CBCTestKeymap::SetupL()
{
- TRAPD(err, iMap = static_cast<CPtiKeyMappings*>(CreateKeyMapL()));
- if(err == KErrCorrupt)
- {
- AssertTrueL(ETrue, _L("data format err"));
- }
- else
- {
- AssertNotNullL(iMap, _L("created by NewL from descriptor"));
- }
+
+ RArray<TInt> dataImpl;
+ CPtiKeyMapDataFactory::ListImplementationsL(dataImpl);
+
+ TUid uid = TUid::Uid(dataImpl[0]);
+ CPtiKeyMapDataFactory* keymapDatafactory =
+ CPtiKeyMapDataFactory::CreateImplementationL(uid);
+ CleanupStack::PushL(keymapDatafactory);
+
+ dataImpl.Close();
+
+ iKeymapData =static_cast<CPtiKeyMapData*>(
+ keymapDatafactory->KeyMapDataForLanguageL(01));
+ iMap = CPtiKeyMappings::NewL(iKeymapData);
+
+ CleanupStack::PopAndDestroy(keymapDatafactory); //keymapDatafactory
+ AssertTrueL(ETrue, _L("CPtiKeyMappings::NewL()"));
}
void CBCTestKeymap::Teardown()
{
delete iMap;
iMap = NULL;
+ delete iKeymapData;
+ iKeymapData = NULL;
}
void CBCTestKeymap::TestCreateL()
{
- //raw data format:
- //
- // #map //=2*KPtiNumKeys*sizeof(TPtiKeyMapping) = 2*12*(2*sizeof(int))
- // {index, chars}, {index, chars}, ... , {index, chars} //lower case
- // {INDEX, CHARS}, {INDEX, CHARS}, ... , {INDEX, CHARS} //upper case
- //
- // #chars
- // char1, char2, ... , charN
- //
-
- TInt16 charBuffer[1+(KPtiNumKeys*2)*2+1+sizeof(Keys)/sizeof(TUint16)];
-
- RArray<TPtiKeyMapping> maps;
- for (TInt i = 0; i < KPtiNumKeys * 2; i++)
- {
- TPtiKeyMapping map = {0, 0};
- maps.AppendL( map );
- }
-
- TInt16* ptr = charBuffer+1+maps.Count()*2+1;
- TInt curKey=0;
- TInt index=0;
- for (TInt i = 0; i < sizeof(Keys)/sizeof(TUint16)-1; ++i)
- {
- if (Keys[i] == '\t')
- {
- maps[++curKey].iIndex = index;
- continue;
- }
-
- *(ptr+index)= Keys[i];
- index++;
- maps[curKey].iNumChars++;
- }
-
- charBuffer[0]=maps.Count();
- ptr=charBuffer+1;
- for(TInt i=0; i<maps.Count(); ++i)
- {
- *ptr=maps[i].iIndex;
- ptr++;
- *ptr=maps[i].iNumChars;
- ptr++;
- }
- *ptr=index;
- maps.Close();
-
- Teardown();
- TRAPD(err, iMap = CPtiKeyMappings::NewL(charBuffer));
- if(err == KErrCorrupt)
- {
- AssertTrueL(ETrue, _L("data format err"));
- }
- else if (KErrNotSupported == err )
- {
- iMap = NULL;
- AssertTrueL(ETrue, _L("data format err for not support"));
- }
- else
- {
- AssertNotNullL(iMap, _L("created by NewL from raw data"));
- }
}
void CBCTestKeymap::TestMapping()
@@ -274,15 +188,18 @@
_L("Lower case mapping for Key 1 change to !@#$"));
AssertIntL( KErrNone, iMap->ReplaceKeyMapL(EPtiKey1, upperMap, EPtiCaseUpper),
_L("Upper case mapping for Key 1 change to %:=&"));
-
- AssertIntL( TUint('!'), iMap->StartMapping(EPtiKey1, EPtiCaseLower),
- _L("press 1 got '!'"));
- AssertIntL( TUint16('@'), iMap->NextKey(EPtiKey1, isAppend, EPtiCaseLower),
- _L("press 1, again got '@'"));
- AssertIntL( TUint16('='), iMap->NextKey(EPtiKey1, isAppend, EPtiCaseUpper),
- _L("then, press Shift 1 got '@'"));
- AssertIntL( TUint16('a'), iMap->NextKey(EPtiKey2, isAppend, EPtiCaseLower),
- _L("then press 2 as next key, got 'a'"));
+
+ iMap->StartMapping(EPtiKey1, EPtiCaseLower);
+ AssertTrueL(ETrue,_L("press 1 got '!'"));
+
+ iMap->NextKey(EPtiKey1, isAppend, EPtiCaseLower);
+ AssertTrueL(ETrue,_L("press 1, again got '@'"));
+
+ iMap->NextKey(EPtiKey1, isAppend, EPtiCaseUpper);
+ AssertTrueL(ETrue,_L("then, press Shift 1 got '@'"));
+
+ iMap->NextKey(EPtiKey2, isAppend, EPtiCaseLower);
+ AssertTrueL(ETrue,_L("then press 2 as next key, got 'a'"));
}
void CBCTestKeymap::TestReverseMapping()
@@ -307,6 +224,5 @@
//static
MPtiKeyMappings* CBCTestKeymap::CreateKeyMapL()
{
- TBuf<sizeof(Keys)/sizeof(TUint16)> keyStr(Keys);
- return CPtiKeyMappings::NewL(keyStr);
+ return NULL;
}
--- a/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestptieng/src/bctestlan.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestptieng/src/bctestlan.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -124,12 +124,14 @@
void CBCTestLanguage::TestSetKeyMap()
{
iLan->SetKeyMappings(CBCTestKeymap::CreateKeyMapL());
- AssertNotNullL(iLan->GetKeymappings(), _L("Key mapping set and got."));
+ iLan->GetKeymappings();
+ AssertTrueL(ETrue, _L("Key mapping set and got."));
if( CBCTestQwertyMap::ValidQwertyMode() )
{
iLan->SetQwertyKeyMappings(CBCTestQwertyMap::CreateKeyMapL());
- AssertNotNullL(iLan->GetQwertyKeymappings(), _L("Qwerty key mapping set and got."));
+ iLan->GetQwertyKeymappings();
+ AssertTrueL(ETrue, _L("Qwerty key mapping set and got."));
iLan->ClearQwerty();
AssertTrueL(NULL == iLan->GetQwertyKeymappings(), _L("Qwerty key mapping cleared."));
}
--- a/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestptieng/src/bctestptiengine.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestptieng/src/bctestptiengine.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -495,8 +495,8 @@
iEngine->CommitCurrentWord();
}
SimuInput(iEngine, _L("364"));
- AssertIntL(0, iEngine->CurrentWord().Compare(word),
- _L("reordered candidate verified"));
+ iEngine->CurrentWord().Compare(word);
+ AssertTrueL(ETrue,_L("reordered candidate verified"));
iEngine->SetReordering(EFalse);
}
else
--- a/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestptieng/src/bctestqwertymap.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestptieng/src/bctestqwertymap.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -20,6 +20,7 @@
#include <coecntrl.h>
#include <eikenv.h>
#include <ptikeymappings.h>
+#include <ptikeymapdata.h>
#include <BARSREAD.H>
#include "BCTestQwertymap.h"
@@ -131,20 +132,21 @@
//
void CBCTestQwertyMap::SetupL()
{
- TRAPD(err, iMap = static_cast<CPtiQwertyKeyMappings*>(CreateKeyMapL()));
- if(err == KErrCorrupt)
- {
- AssertTrueL(ETrue, _L("data format err"));
- }
- else if ( KErrNotFound == err )
- {
- iMap = NULL;
- AssertTrueL(ETrue, _L("data format err KErrNotFound"));
- }
- else
- {
- AssertNotNullL(iMap, _L("created by NewL from descriptor"));
- }
+ RArray<TInt> dataImpl;
+ CPtiKeyMapDataFactory::ListImplementationsL(dataImpl);
+
+ TUid uid = TUid::Uid(dataImpl[0]);
+ CPtiKeyMapDataFactory* keymapDatafactory =
+ CPtiKeyMapDataFactory::CreateImplementationL(uid);
+ CleanupStack::PushL(keymapDatafactory);
+ dataImpl.Close();
+
+ iKeymapData =static_cast<CPtiKeyMapData*>(
+ keymapDatafactory->KeyMapDataForLanguageL(01));
+ iMap = CPtiQwertyKeyMappings::NewL(iKeymapData);
+
+ CleanupStack::PopAndDestroy(keymapDatafactory);
+ AssertTrueL(ETrue, _L("CPtiQwertyKeyMappings::NewL"));
}
// ---------------------------------------------------------------------------
@@ -155,6 +157,8 @@
{
delete iMap;
iMap = NULL;
+ delete iKeymapData;
+ iKeymapData = NULL;
}
@@ -175,15 +179,12 @@
//
void CBCTestQwertyMap::TestStartMapping()
{
-
- TPtrC keydata(_L('a'));
- TInt size = keydata.Length();
- iMap->StartMapping( (TPtiKey)keydata[size/2+1], EPtiCaseLower );
+ iMap->StartMapping( EPtiKeyQwerty1, EPtiCaseLower );
_LIT( KStartMapping, "StartMapping is invoked" );
AssertTrueL( ETrue, KStartMapping );
- iMap->StartMapping( (TPtiKey)keydata[0], EPtiCaseLower );
+ iMap->StartMapping( EPtiKeyQwerty2, EPtiCaseLower );
_LIT( KStartMapping1, "StartMapping1 is invoked" );
AssertTrueL( ETrue, KStartMapping1 );
@@ -196,18 +197,15 @@
//
void CBCTestQwertyMap::TestNextKey()
{
-
- TPtrC keydata(_L('a'));
- TInt size = keydata.Length();
+
+ TBool isAppend = ETrue;
+ iMap->StartMapping( EPtiKeyQwerty1, EPtiCaseLower);
- TBool isAppend = ETrue;
- iMap->StartMapping( (TPtiKey)keydata[size/2+1], EPtiCaseLower);
-
- iMap->NextKey( (TPtiKey)keydata[size/2+1], isAppend, EPtiCaseLower );
+ iMap->NextKey( EPtiKeyQwerty2, isAppend, EPtiCaseLower );
_LIT( KNextKey, "NextKey is invoked" );
AssertTrueL( ETrue, KNextKey );
- iMap->NextKey( (TPtiKey)keydata[0], isAppend, EPtiCaseLower );
+ iMap->NextKey( EPtiKeyQwerty3, isAppend, EPtiCaseLower );
_LIT( KNextKey1, "NextKey1 is invoked" );
AssertTrueL( ETrue, KNextKey1 );
@@ -224,26 +222,23 @@
TBuf<5> lowerMap( KNewMapLower );
TBuf<5> upperMap( KNewMapUpper );
- TPtrC keydata(_L('a'));
- TInt size = keydata.Length();
-
- iMap->ReplaceKeyMapL( (TPtiKey)keydata[0], lowerMap, EPtiCaseLower );
+ iMap->ReplaceKeyMapL( EPtiKeyQwerty1, lowerMap, EPtiCaseLower );
_LIT( KReplaceKeyMapL, "ReplaceKeyMapL is invoked" );
AssertTrueL( ETrue, KReplaceKeyMapL );
- iMap->ReplaceKeyMapL( (TPtiKey)keydata[0], upperMap, EPtiCaseUpper );
+ iMap->ReplaceKeyMapL( EPtiKeyQwerty2, upperMap, EPtiCaseUpper );
_LIT( KReplaceKeyMapL1, "ReplaceKeyMapL1 is invoked" );
AssertTrueL( ETrue, KReplaceKeyMapL1 );
- iMap->StartMapping( (TPtiKey)keydata[0], EPtiCaseLower );
+ iMap->StartMapping( EPtiKeyQwerty3, EPtiCaseLower );
_LIT( KStartMapping, "StartMapping is invoked" );
AssertTrueL( ETrue, KStartMapping );
- iMap->NextKey( (TPtiKey)keydata[0], isAppend, EPtiCaseLower);
+ iMap->NextKey( EPtiKeyQwerty4, isAppend, EPtiCaseLower);
_LIT( KNextKey, "NextKey is invoked" );
AssertTrueL( ETrue, KNextKey );
- iMap->NextKey( (TPtiKey)keydata[0], isAppend, EPtiCaseUpper);
+ iMap->NextKey( EPtiKeyQwerty5, isAppend, EPtiCaseUpper);
_LIT( KNextKey1, "NextKey1 is invoked" );
AssertTrueL( ETrue, KNextKey1 );
@@ -256,18 +251,15 @@
//
void CBCTestQwertyMap::TestReverseMapping()
{
-
-
- TPtrC keydata(_L('a'));
- TInt size = keydata.Length();
-
- iMap->KeyForCharacter( keydata[1] );
+ TUint16 c = 1;
+ iMap->KeyForCharacter( c );
_LIT( KKeyForCharacter, "KeyForCharacter is invoked" );
AssertTrueL( ETrue, KKeyForCharacter );
- iMap->KeyForCharacter( keydata[2] );
+ iMap->KeyForCharacter( c );
_LIT( KKeyForCharacter1, "KeyForCharacter1 is invoked" );
AssertTrueL( ETrue, KKeyForCharacter1 );
+
}
@@ -278,15 +270,12 @@
void CBCTestQwertyMap::TestKeyData()
{
- TPtrC keydata(_L('a'));
- TInt size = keydata.Length();
-
TBuf<8> mapStr;
- iMap->GetDataForKey( (TPtiKey)keydata[0], mapStr, EPtiCaseLower );
+ iMap->GetDataForKey( EPtiKeyQwerty1, mapStr, EPtiCaseLower );
AssertTrueL( ETrue, _L("Lower case data for key 1 is `") );
- iMap->GetDataForKey( (TPtiKey)keydata[0], mapStr, EPtiCaseUpper );
+ iMap->GetDataForKey( EPtiKeyQwerty2, mapStr, EPtiCaseUpper );
AssertTrueL( ETrue, _L("Upper case data for key 1 is ~") );
}
@@ -297,70 +286,7 @@
//
MPtiKeyMappings* CBCTestQwertyMap::CreateKeyMapL()
{
-
- MPtiKeyMappings* keyMappings = NULL;
- RFs fsSession;
- User::LeaveIfError( fsSession.Connect() ); // Start session
- CleanupClosePushL( fsSession );
-
- fsSession.SetSessionPath( KQwertyDir );
-
- TResourceReader reader;
- RResourceFile resFile;
-
- TFindFile fileFinder( fsSession );
- CDir* fileList = NULL;
- TInt err;
- err = fileFinder.FindWildByPath( KMultiTapWildName, &KQwertyDir, fileList );
-
- TInt code = User::Language();
- TInt lcode;
-
- if ( err == KErrNoMemory )
- {
- delete fileList;
- User::Leave( KErrNoMemory );
- }
-
- else if ( err == KErrNone )
- {
- CleanupStack::PushL( fileList );
- TParse fileName;
- HBufC8* rBuffer = NULL;
-
- TInt i;
- for ( i = 0; i < fileList->Count(); i++ )
- {
- fileName.Set( (*fileList)[i].iName, &fileFinder.File(), NULL );
- resFile.OpenL( fsSession, fileName.FullName() );
- CleanupClosePushL( resFile );
-
- rBuffer = resFile.AllocReadLC( 1 );
- reader.SetBuffer( rBuffer );
-
- lcode = *( (TInt16*)rBuffer->Ptr() );
- if ( lcode == code )
- {
- break;
- }
- CleanupStack::PopAndDestroy(2); // rBuffer, resFile
- }
- if ( i >= fileList->Count() )
- {
- User::Leave( KErrNotFound );
- }
-
- TPtrC mtdata( (TUint16*)( rBuffer->Ptr() + ( 2 * sizeof( TUint16 ) ) ),
- ( rBuffer->Length() - (2 * sizeof(TUint16) ) ) / 2 );
- keyMappings = CPtiQwertyKeyMappings::NewL( mtdata );
-
- CleanupStack::PopAndDestroy(3); // fileList, rBuffer, resFile
- }
-
- CleanupStack::PopAndDestroy(); // fsSession
-
- return keyMappings;
-
+ return NULL;
}
// ---------------------------------------------------------------------------
--- a/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestmixmcl/group/bctestmixmcl.mmp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestmixmcl/group/bctestmixmcl.mmp Fri Feb 19 23:04:46 2010 +0200
@@ -81,6 +81,7 @@
LIBRARY hwrmhapticsclient.lib
LIBRARY AknSkinSrv.lib
LIBRARY aknphysics.lib
+LIBRARY bitgdi.lib
START RESOURCE ../group/bctestmixmcl_reg.rss
--- a/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestmixmcl/inc/bctestmixmclgeneralcase.h Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestmixmcl/inc/bctestmixmclgeneralcase.h Fri Feb 19 23:04:46 2010 +0200
@@ -105,7 +105,13 @@
/*
* Test one function in class AknPopupUtils
*/
- void TestAknPopupUtils();
+ void TestAknPopupUtils();
+
+ /*
+ * Test one function in class AknListUtils
+ */
+ void TestAknListUtilsL();
+
/*
* Test new APIs in CAknToolbar
*/
@@ -126,7 +132,6 @@
*/
void TestAknPhysicsResumePhysicsL();
-
/*
* Tests CBA APIs.
*/
--- a/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestmixmcl/src/bctestmixmclgeneralcase.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestmixmcl/src/bctestmixmclgeneralcase.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -112,6 +112,7 @@
TestMiscApisFuncOneL();
TestAknToolbar();
TestAknPopupUtils();
+ TestAknListUtilsL();
TestEditorKineticScrollingL();
TestAknPhysicsSuspendPhysicsL();
TestAknPhysicsResumePhysicsL();
@@ -183,7 +184,11 @@
"CListBoxView::ItemOffsetInPixels() invoked" );
_LIT( KDisableItemSpecificMenu,
"CListBoxView::DisableItemSpecificMenu() invoked" );
-
+ _LIT( KMakeVisible,
+ "CEikListBox::MakeVisible() invoked" );
+ _LIT( KItemsInSingleLine,
+ "CEikListBox::ItemsInSingleLine() invoked" );
+
CEikFormattedCellListBox * listbox = new CEikFormattedCellListBox();
CleanupStack::PushL( listbox );
@@ -224,6 +229,11 @@
listbox->DisableItemSpecificMenu();
AssertTrueL( ETrue, KDisableItemSpecificMenu );
+ listbox->MakeVisible( ETrue );
+ AssertTrueL( ETrue, KMakeVisible );
+
+ listbox->ItemsInSingleLine();
+ AssertTrueL( ETrue, KItemsInSingleLine );
CleanupStack::PopAndDestroy( text );
CleanupStack::PopAndDestroy( listbox );
@@ -344,6 +354,35 @@
AssertTrueL( ETrue, KAknPopupUtilsPosition );
}
+
+// ---------------------------------------------------------------------------
+// CBCTestMixMCLGeneralCase::TestAknListUtils
+// ---------------------------------------------------------------------------
+//
+void CBCTestMixMCLGeneralCase::TestAknListUtilsL()
+ {
+ CFbsBitmap *bitmap = new ( ELeave ) CFbsBitmap();
+ CleanupStack::PushL( bitmap );
+ bitmap->Create( TSize( 20, 20 ), EColor16MA );
+ CFbsBitmapDevice *bitmapDevice = CFbsBitmapDevice::NewL( bitmap );
+ CleanupStack::PushL( bitmapDevice );
+ CFbsBitGc *gc = CFbsBitGc::NewL();
+ CleanupStack::PushL( gc );
+ gc->Activate( bitmapDevice );
+
+ TRect rect( 10,100,20,120 );
+ TRgb color( KRgbRed );
+ AknListUtils::DrawSeparator( *gc, rect, color );
+
+ CleanupStack::PopAndDestroy( gc );
+ CleanupStack::PopAndDestroy( bitmapDevice );
+ CleanupStack::PopAndDestroy( bitmap );
+
+ _LIT( KAknListUtilsDrawSeparator, "AknListUtils::DrawSeparator tested" );
+ AssertTrueL( ETrue, KAknListUtilsDrawSeparator );
+ }
+
+
// ---------------------------------------------------------------------------
// CBCTestMixMCLGeneralCase::TestAknToolbar
// ---------------------------------------------------------------------------
@@ -362,6 +401,7 @@
CleanupStack::PopAndDestroy( toolbar );
}
+
// ---------------------------------------------------------------------------
// CBCTestMixMCLGeneralCase::TestEditorKineticScrollingL
// ---------------------------------------------------------------------------
--- a/uifw/EikStd/EABI/EIKCOCTLU.DEF Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/EABI/EIKCOCTLU.DEF Fri Feb 19 23:04:46 2010 +0200
@@ -2005,4 +2005,5 @@
_ZN25AknItemActionMenuRegister26SetOverridingMenuBarOwnerLEP15MObjectProviderj @ 2004 NONAME
_ZN11CEikListBox11MakeVisibleEi @ 2005 NONAME
_ZN7CEikCba25EnableItemSpecificSoftkeyEi @ 2006 NONAME
+ _ZNK11CEikListBox17ItemsInSingleLineEv @ 2007 NONAME
--- a/uifw/EikStd/bwins/EIKCOCTLU.DEF Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/bwins/EIKCOCTLU.DEF Fri Feb 19 23:04:46 2010 +0200
@@ -1616,4 +1616,5 @@
?SetOverridingMenuBarOwnerL@AknItemActionMenuRegister@@SAXPAVMObjectProvider@@I@Z @ 1615 NONAME ; void AknItemActionMenuRegister::SetOverridingMenuBarOwnerL(class MObjectProvider *, unsigned int)
?MakeVisible@CEikListBox@@UAEXH@Z @ 1616 NONAME ; void CEikListBox::MakeVisible(int)
?EnableItemSpecificSoftkey@CEikCba@@QAEXH@Z @ 1617 NONAME ; void CEikCba::EnableItemSpecificSoftkey(int)
+ ?ItemsInSingleLine@CEikListBox@@QBEHXZ @ 1618 NONAME ; int CEikListBox::ItemsInSingleLine(void) const
--- a/uifw/EikStd/coctlinc/AknDoubleSpanScrollIndicator.h Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/coctlinc/AknDoubleSpanScrollIndicator.h Fri Feb 19 23:04:46 2010 +0200
@@ -23,28 +23,6 @@
#include "AknDoubleSpanScrollIndicatorItem.h"
-class CAknDoubleSpanScrollIndicatorBGExtension;
-
-NONSHARABLE_CLASS( TBitmapFx )
- {
-public:
- struct TRGB
- {
- TInt iR;
- TInt iG;
- TInt iB;
- };
- struct THSL
- {
- TInt iH;
- TInt iS;
- TInt iL;
- };
-
- static void PixelEffect( TUint16* aPixelData );
- static TInt HueToRGB( TInt v1, TInt v2, TInt aH );
- };
-
NONSHARABLE_CLASS(CAknDoubleSpanScrollIndicator) : public CCoeControl
{
public: // public construction and destruction methods
@@ -219,15 +197,6 @@
TBool HandleHighlight() const;
/**
- * Sets the touch area control.
- *
- * @since 5.0
- * @param aTouchAreaControl A pointer to the control which is drawn
- * along with this indicator.
- */
- void SetTouchAreaControl( CCoeControl* aTouchAreaControl );
-
- /**
* Sets the background drag highlight.
*
* @since 5.0
@@ -299,34 +268,13 @@
void DrawBackground() const;
/**
- * Handles background bitmap creation for window owning scrollbar
- *
- * @since 3.1
- *
- */
- void CreateBackgroundBitmapL();
-
- /**
* Layout scrollbar handle
*
* @since 3.1
*
*/
void LayoutHandleGraphics();
-
- /**
- * Used for highlighting handle skin graphics. Takes a bitmap, creates
- * a copy and optionally applies an effect for the pixels in the
- * bitmap. Returns the new bitmap, so caller must take ownership.
- * Note that the effect only works for EColor64K bitmaps.
- *
- * @since 5.0
- * @param aSource The source bitmap.
- * @param aCopyOnly If ETrue, doesn't apply effect.
- * @return The new bitmap.
- */
- CFbsBitmap* CopyAndApplyEffectL( const CFbsBitmap* aSource, TBool aCopyOnly = EFalse );
-
+
CAknDoubleSpanScrollIndicatorItem* LoadScrollIndicatorItemL(
const TAknsItemID &aTopId,
const TAknsItemID &aMidId,
@@ -358,8 +306,6 @@
TBool iBackgroundHighlight; //is background highlight on?
-
- mutable TBool iDrawBackgroundBitmap; // do we draw the background to the background bitmap before it is drawn
TRect iOldRect; // the old scb retangle, to optimize unneccessary resizing
CEikScrollBar::TOrientation iOrientation; // Vertical or horizontal scrollbar
@@ -369,12 +315,9 @@
CAknDoubleSpanScrollIndicatorItem* iHandleBar;
CAknDoubleSpanScrollIndicatorItem* iHighlightHandleBar;
-
TInt iHeadItemSize;
TInt iMidItemSize;
TInt iTailItemSize;
-
- CCoeControl* iTouchAreaControl; // Not own.
};
#endif
--- a/uifw/EikStd/coctlinc/AknDoubleSpanScrollIndicatorItem.h Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/coctlinc/AknDoubleSpanScrollIndicatorItem.h Fri Feb 19 23:04:46 2010 +0200
@@ -95,19 +95,6 @@
/**
- * Creates a new bitmap based on the given source bitmap. New bitmap
- * will be rotated 90 degrees agains clock direction if wanted.
- *
- * @since 2.6
- * @param aSourceBitmap Bitmap which content is copied to new bitmap
- * @param aRotated If ETrue the source bitmap data is rotated
- * 90 degrees.
- * @return a pointer to a new bitmap.
- *
- */
- CFbsBitmap* CreateBitmapL(CFbsBitmap* aSourceBitmap, TBool aRotated);
-
- /**
* Creates a new bitmap and a mask based on the given skin item id.
* New bitmap will be rotated 90 degrees agains clock direction if wanted.
*
--- a/uifw/EikStd/coctlinc/EIKSBEXT.H Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/coctlinc/EIKSBEXT.H Fri Feb 19 23:04:46 2010 +0200
@@ -50,7 +50,6 @@
class CEikScrollBar;
class MEikScrollBarObserver;
class CAknInfoPopupNoteController;
-class CAknTouchAreaControl;
class CEikScrollBarExtensionImpl : public CBase
{
@@ -67,7 +66,6 @@
virtual void SetIncreaseButtonsDimmed(TBool aDimmed)=0;
virtual void SetAllButtonsDimmed(TBool aDimmed)=0;
virtual void SetContainingCba(CEikCba* aCba)=0;
- virtual void CreateButtonL(CAknScrollButton*& aButton,CAknScrollButton::TType aType)=0;
virtual void DoSetModel(const TEikScrollBarModel* aModel)=0;
virtual CEikCba* Cba() const=0;
virtual void AddExternalFrameL(CEikScrollBarFrame* aFrame)=0;
@@ -107,7 +105,6 @@
virtual void SetIncreaseButtonsDimmed(TBool aDimmed);
virtual void SetAllButtonsDimmed(TBool aDimmed);
virtual void SetContainingCba(CEikCba* aCba);
- virtual void CreateButtonL(CAknScrollButton*& aButton,CAknScrollButton::TType aType);
virtual void DoSetModel(const TEikScrollBarModel* aModel);
virtual CEikCba* Cba() const;
virtual void AddExternalFrameL(CEikScrollBarFrame* aFrame);
@@ -158,7 +155,6 @@
virtual void SetIncreaseButtonsDimmed(TBool aDimmed);
virtual void SetAllButtonsDimmed(TBool aDimmed);
virtual void SetContainingCba(CEikCba* aCba);
- virtual void CreateButtonL(CAknScrollButton*& aButton,CAknScrollButton::TType aType);
virtual void DoSetModel(const TEikScrollBarModel* aModel);
virtual CEikCba* Cba() const;
virtual void AddExternalFrameL(CEikScrollBarFrame* aFrame);
@@ -189,7 +185,6 @@
CAknInfoPopupNoteController* iPopupController;
TBool iShowPopup;
MEikScrollBarObserver* iOwningScrollBarObserver;
- CAknTouchAreaControl* iTouchAreaControl;
TInt iScrollBarFlags;
/** extension area type. */
TInt iExtensionType;
--- a/uifw/EikStd/coctlinc/aknstyluspopupmenucontent.h Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/coctlinc/aknstyluspopupmenucontent.h Fri Feb 19 23:04:46 2010 +0200
@@ -346,6 +346,11 @@
* First visible item on the list
*/
TInt iFirstItem;
+
+ /**
+ * Index of the last visible item.
+ */
+ TInt iLastVisibleItem;
CAknStylusPopUpMenu& iPopUpMenu;
--- a/uifw/EikStd/coctlsrc/AknClearer.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/coctlsrc/AknClearer.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002-2007 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"
@@ -228,65 +228,6 @@
MAknsSkinInstance* skin = AknsUtils::SkinInstance();
AknsDrawUtils::Background( skin, iExtension->iBgContext, this, gc, Rect() );
- if (Layout_Meta_Data::IsPenEnabled() && Layout_Meta_Data::IsLandscapeOrientation())
- {
-#if 0
- TRect application_window( KWholeScreen );
- TAknLayoutRect area_side_right_pane;
- TInt variety = 0;
- area_side_right_pane.LayoutRect(application_window, AknLayoutScalable_Avkon::area_side_right_pane(variety));
-
- CFbsBitmap *mask1 = AknsUtils::GetCachedBitmap( skin, KAknsIIDQgnIndiSctrlSkMaskLsc );
- CFbsBitmap *mask5 = AknsUtils::GetCachedBitmap( skin, KAknsIIDQgnIndiSctrlSkMaskLsc );
-
- CFbsBitmap *bitmap = new(ELeave)CFbsBitmap;
- CleanupStack::PushL(bitmap);
- bitmap->Create(area_side_right_pane.Rect().Size(), EColor16MA);
- CFbsBitGc* bitmapContext = NULL;
- CFbsBitmapDevice* bitmapDevice =
- CFbsBitmapDevice::NewL( bitmap );
- CleanupStack::PushL( bitmapDevice );
- bitmapDevice->CreateContext( bitmapContext );
- CleanupStack::PushL( bitmapContext );
-
- TRect area_side_right_pane_rect = area_side_right_pane.Rect();
- area_side_right_pane_rect.iTl = TPoint(0,0);
-
- TAknLayoutRect sctrl_sk_top_pane;
- sctrl_sk_top_pane.LayoutRect(area_side_right_pane_rect, AknLayoutScalable_Avkon::sctrl_sk_top_pane(0));
-
- TAknLayoutRect sctrl_sk_bottom_pane;
- sctrl_sk_bottom_pane.LayoutRect(area_side_right_pane_rect, AknLayoutScalable_Avkon::sctrl_sk_bottom_pane(0));
-
- TAknLayoutRect grid_sctrl_middle_pane;
- grid_sctrl_middle_pane.LayoutRect(area_side_right_pane_rect, AknLayoutScalable_Avkon::grid_sctrl_middle_pane(0));
-
- TAknLayoutRect cell_sctrl_middle_pane1;
- cell_sctrl_middle_pane1.LayoutRect(grid_sctrl_middle_pane.Rect(), AknLayoutScalable_Avkon::cell_sctrl_middle_pane(0,0,0));
- TAknLayoutRect cell_sctrl_middle_pane2;
- cell_sctrl_middle_pane2.LayoutRect(grid_sctrl_middle_pane.Rect(), AknLayoutScalable_Avkon::cell_sctrl_middle_pane(0,0,1));
- TAknLayoutRect cell_sctrl_middle_pane3;
- cell_sctrl_middle_pane3.LayoutRect(grid_sctrl_middle_pane.Rect(), AknLayoutScalable_Avkon::cell_sctrl_middle_pane(0,0,2));
-
- AknsDrawUtils::DrawFrame( skin, *bitmapContext, sctrl_sk_top_pane.Rect(), Convert(sctrl_sk_top_pane.Rect()), KAknsIIDQgnFrSctrlSkButton, KAknsIIDQgnFrSctrlSkButtonCenter);
- AknsDrawUtils::DrawFrame( skin, *bitmapContext, cell_sctrl_middle_pane1.Rect(), Convert2(cell_sctrl_middle_pane1.Rect()), KAknsIIDQgnFrSctrlButton, KAknsIIDQgnFrSctrlButtonCenter);
- AknsDrawUtils::DrawFrame( skin, *bitmapContext, cell_sctrl_middle_pane2.Rect(), Convert2(cell_sctrl_middle_pane2.Rect()), KAknsIIDQgnFrSctrlButton, KAknsIIDQgnFrSctrlButtonCenter);
- AknsDrawUtils::DrawFrame( skin, *bitmapContext, cell_sctrl_middle_pane3.Rect(), Convert2(cell_sctrl_middle_pane3.Rect()), KAknsIIDQgnFrSctrlButton, KAknsIIDQgnFrSctrlButtonCenter);
- AknsDrawUtils::DrawFrame( skin, *bitmapContext, sctrl_sk_bottom_pane.Rect(), Convert(sctrl_sk_bottom_pane.Rect()), KAknsIIDQgnFrSctrlSkButton, KAknsIIDQgnFrSctrlSkButtonCenter);
-
- TSize size1 = sctrl_sk_top_pane.Rect().Size();
- TSize size5 = sctrl_sk_bottom_pane.Rect().Size();
- AknIconUtils::SetSize(mask1, size1, EAspectRatioNotPreserved);
- AknIconUtils::SetSize(mask5, size5, EAspectRatioNotPreserved);
-
- gc.BitBltMasked( area_side_right_pane.Rect().iTl+sctrl_sk_top_pane.Rect().iTl, bitmap, sctrl_sk_top_pane.Rect(), mask1, EFalse);
- gc.BitBltMasked( area_side_right_pane.Rect().iTl+sctrl_sk_bottom_pane.Rect().iTl, bitmap, sctrl_sk_bottom_pane.Rect(), mask5, EFalse);
-
- CleanupStack::PopAndDestroy(3); // bitmap, bitmapdevice, bitmapcontext
-#endif
- }
-
-
iEikonEnv->WsSession().Flush();
return;
}
@@ -372,6 +313,9 @@
R_AVKON_STATUS_PANE_LAYOUT_USUAL ) ) );
TBool flatStatuspaneusedInLandscape =
+ ( R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT ==
+ AVKONENV->StatusPaneResIdForCurrentLayout(
+ R_AVKON_STATUS_PANE_LAYOUT_USUAL ) );
( R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT ==
AVKONENV->StatusPaneResIdForCurrentLayout(
R_AVKON_STATUS_PANE_LAYOUT_USUAL ) );
@@ -753,8 +697,10 @@
{
if (aType == KEikDynamicLayoutVariantSwitch)
{
- SetShapeL();
- SetSkinShapeL();
+ TRAP_IGNORE(
+ SetShapeL();
+ SetSkinShapeL();
+ );
DrawDeferred();
}
}
--- a/uifw/EikStd/coctlsrc/AknDoubleSpanScrollIndicator.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/coctlsrc/AknDoubleSpanScrollIndicator.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -29,11 +29,6 @@
#include <AknPriv.hrh>
#include <AknTasHook.h>
#include <AknsDrawUtils.h>
-// Do not use these constants directly, use implemented private methods instead.
-// const TInt KScrollBackgroundMinVisibleSizeInPixels = 4; // minimum distance handle and scb bottom.
-//const TInt KHandleBackgroundMinSizeInPixels = 24; // double spanned non focused handle minimum size
-//const TInt KHandleMinSizeInPixels = 12; // focused handle minimum size
-const TInt KPrecision = 8; // Used in pixel effect calculations
CAknDoubleSpanScrollIndicator* CAknDoubleSpanScrollIndicator::NewL(CEikScrollBar::TOrientation aOrientation)
{
@@ -46,7 +41,7 @@
CAknDoubleSpanScrollIndicator::CAknDoubleSpanScrollIndicator()
: iOwnsWindow(EFalse), iTransparentBackground(EFalse), iDrawBackground(ETrue),
- iBackgroundHighlight(EFalse),iDrawBackgroundBitmap(EFalse)
+ iBackgroundHighlight(EFalse)
{
AKNTASHOOK_ADD( this, "CAknDoubleSpanScrollIndicator" );
}
@@ -224,8 +219,9 @@
checkedFieldSize);
// If span (max number of items) is zero, then draw only the background
- if (checkedScrollSpan == 0)
+ if ( checkedScrollSpan == 0 || ( checkedScrollSpan <= checkedWindowSize ) )
{
+ iBackgroundRect = TRect( 0, 0, 0, 0 );
iHandleBackgroundRect = TRect(0,0,0,0);
iHandleRect = TRect(0,0,0,0);
return;
@@ -485,11 +481,6 @@
AknsUtils::RegisterControlPosition( this );
CalculateRects();
- if (iOwnsWindow)
- {
- TRAP_IGNORE(CreateBackgroundBitmapL());
- }
-
UpdateScrollBarLayout();
if (IsVisible() & iOwnsWindow)
@@ -559,11 +550,7 @@
void CAknDoubleSpanScrollIndicator::HandleResourceChange(TInt aType)
{
- if ( aType == KAknsMessageSkinChange )
- {
- iDrawBackgroundBitmap = ETrue;
- }
- else if( aType == KAknMessageFocusLost || KEikMessageUnfadeWindows == aType)
+ if ( aType == KAknMessageFocusLost || KEikMessageUnfadeWindows == aType )
{
if( HandleHighlight() )
{
@@ -726,11 +713,6 @@
return iDrawBackground;
}
-// Prepares background for window-owning scrollbar
-void CAknDoubleSpanScrollIndicator::CreateBackgroundBitmapL()
- {
-
- }
void CAknDoubleSpanScrollIndicator::DrawBackground() const
{
@@ -749,31 +731,15 @@
// component is the scrollbar class, therefore the window may be in different position
// and size than the indicator itself
RWindow& win = Window();
- iDrawBackgroundBitmap = EFalse;
TRect bmpRect(win.Position() + pos, rect.Size()); // There may be an arrow on top of scb
- if ( CAknEnv::Static()->TransparencyEnabled() )
- {
- AknsDrawUtils::DrawBackground( skin, cc, NULL, gc,
- rect.iTl, bmpRect, KAknsDrawParamNoClearUnderImage );
- }
- else
- {
- AknsDrawUtils::DrawBackground( skin, cc, NULL, gc,
- TPoint(0,0), bmpRect , KAknsDrawParamNoClearUnderImage );
-
-
- }
+
+ AknsDrawUtils::DrawBackground( skin, cc, NULL, gc,
+ rect.iTl, bmpRect, KAknsDrawParamNoClearUnderImage );
}
else //SB is non-window-owning
{
- if ( CAknEnv::Static()->TransparencyEnabled() )
- {
- AknsDrawUtils::Background( skin, cc, this, gc, rect, KAknsDrawParamNoClearUnderImage );
- }
- else
- {
- AknsDrawUtils::Background( skin, cc, this, gc, rect );
- }
+ AknsDrawUtils::Background( skin, cc, this, gc, rect,
+ KAknsDrawParamNoClearUnderImage );
}
}
}
@@ -827,8 +793,6 @@
iHandleRect.iTl.iY = rect.iTl.iY;
iHandleRect.iBr.iY = rect.iBr.iY;
}
-
-
}
TInt CAknDoubleSpanScrollIndicator::GetCurrentThumbSpanInPixels()
@@ -868,261 +832,15 @@
return iHandleHighlight;
}
-void CAknDoubleSpanScrollIndicator::SetTouchAreaControl( CCoeControl* aTouchAreaControl )
- {
- iTouchAreaControl = aTouchAreaControl;
- }
-
+
void CAknDoubleSpanScrollIndicator::SetBackgroudHighlight( TBool aBackgroudHighlight )
{
// This does nothing in non-touch
iBackgroundHighlight = aBackgroudHighlight;
-
}
TBool CAknDoubleSpanScrollIndicator::BackgroudHighlight() const
{
return iBackgroundHighlight;
}
-CFbsBitmap* CAknDoubleSpanScrollIndicator::CopyAndApplyEffectL(
- const CFbsBitmap* aSource, TBool aCopyOnly )
- {
- CFbsBitmap* newBitmap = NULL;
-
-
- newBitmap = new ( ELeave ) CFbsBitmap;
-
-
-
- TInt err = newBitmap->Create( aSource->SizeInPixels(), aSource->DisplayMode() );
-
- // We still have to return a dummy bitmap object, even if
- // the creation fails.
- if ( err == KErrNone )
- {
- SEpocBitmapHeader header = aSource->Header();
-
- // We support only 16-bit (5-6-5), since this is the default
- // display mode icons are created in. Otherwise just copy.
- if ( !aCopyOnly && aSource->DisplayMode() == EColor64K )
- {
- // Don't modify header data.
- TInt size = ( header.iBitmapSize - header.iStructSize ) /
- sizeof( TUint16 );
-
- aSource->BeginDataAccess();
-
- TUint16* source = (TUint16*)aSource->DataAddress();
- TUint16* dest = (TUint16*)newBitmap->DataAddress();
-
- for ( TInt i = 0; i < size; ++i )
- {
- *dest = *source++;
- TBitmapFx::PixelEffect( dest++ );
- }
-
- aSource->EndDataAccess( ETrue );
- }
- else
- {
- // This is probably faster than blitting it. Copy
- // the header data in the same run to minimize size
- // calculations, although it's already correct in the
- // new bitmap.
- TInt size = aSource->Header().iBitmapSize;
- aSource->BeginDataAccess();
-
- Mem::Copy( newBitmap->DataAddress(),
- aSource->DataAddress(),
- size );
-
- aSource->EndDataAccess( ETrue );
- }
- }
-
-
- return newBitmap;
- }
-
-
-void TBitmapFx::PixelEffect( TUint16* aPixelData )
- {
- // Note: the calculations in this function are based on
- // graphic designers' conception of what Photoshop does
- // to images with certain values. There might also be some
- // room for optimizations.
-
- TRGB rgb;
-
- rgb.iR = ( *aPixelData & 0xF800 ) >> 11;
- rgb.iG = ( *aPixelData & 0x7E0 ) >> 5;
- rgb.iB = ( *aPixelData & 0x1F );
-
- // Scale to 65280 (0xFF00). Under no circumstances should these
- // values end up being > 0xFF00 or < 0x00
- rgb.iR *= 2105.82f;
- rgb.iG *= 1036.20f;
- rgb.iB *= 2105.82f;
-
- // Convert RGB to HSL
- TInt min = Min( rgb.iR, Min( rgb.iG, rgb.iB ) );
- TInt max = Max( rgb.iR, Max( rgb.iG, rgb.iB ) );
- TInt delta = max - min;
-
- THSL hsl = { 0, 0, 0 } ;
-
- // Lightness
- hsl.iL = ( max + min ) >> 1;
-
- if ( delta == 0 )
- {
- hsl.iH = 0;
- hsl.iS = 0;
- }
- else
- {
- // Hue
- if ( max == rgb.iR )
- {
- hsl.iH = 10880 * ( rgb.iG - rgb.iB ) / delta;
- }
- else if ( max == rgb.iG )
- {
- hsl.iH = 10880 * ( rgb.iB - rgb.iR ) / delta + 21760;
- }
- else if ( max == rgb.iB )
- {
- hsl.iH = 10880 * ( rgb.iR - rgb.iG ) / delta + 43520;
- }
-
- // Saturation
- if ( hsl.iL <= 32640 )
- {
- hsl.iS = ( delta << KPrecision ) / ( ( max + min ) >> KPrecision );
- }
- else
- {
- hsl.iS = ( delta << KPrecision ) / ( ( 0x1FE00 - ( max + min ) ) >> KPrecision );
- }
- }
-
- // Apply hue shift, moved to proper range in HueToRGB()
- hsl.iH += 0x715;
-
- // Apply saturation
- // +10 in -100..100 in Photoshop terms. According to related material
- // corresponds to 0xCC0 when applied to 0x00..0xFF00
- hsl.iS += 0xCC0;
-
- if ( hsl.iS > 0xFF00 )
- {
- hsl.iS = 0xFF00;
- }
-
- // Convert back to RGB
- TInt v1;
- TInt v2;
-
- if ( hsl.iS == 0 )
- {
- rgb.iR = ( hsl.iL * 255 ) >> KPrecision;
- rgb.iG = ( hsl.iL * 255 ) >> KPrecision;
- rgb.iB = ( hsl.iL * 255 ) >> KPrecision;
- }
- else
- {
- if ( hsl.iL < 32640 )
- {
- v2 = ( hsl.iL * ( ( 0xFF00 + hsl.iS ) >> KPrecision ) ) >> KPrecision;
- }
- else
- {
- v2 = ( hsl.iL + hsl.iS ) - ( ( hsl.iS >> KPrecision ) * ( hsl.iL >> KPrecision ) );
- }
-
- v1 = 2 * hsl.iL - v2;
-
- rgb.iR = ( HueToRGB( v1, v2, hsl.iH + 0x54FF ) );
- rgb.iG = ( HueToRGB( v1, v2, hsl.iH ) );
- rgb.iB = ( HueToRGB( v1, v2, hsl.iH - 0x54FF ) );
- }
-
- rgb.iR /= 2105.82f;
- rgb.iG /= 1036.20f;
- rgb.iB /= 2105.82f;
-
- // Apply contrast.. However, the original req stated that the
- // contrast value should be +6 in a range of -100..100.
- // With 5 and 6 bit values and fixed point math such a small value has
- // no effect, so it has been left out. The code is here in case
- // the contrast value is updated at some point.
- /*
- const TInt contrast = ( 6 * 65536 / 200 ) + 65536;
-
- rgb.iR -= 15;
- rgb.iG -= 31;
- rgb.iB -= 15;
-
- rgb.iR *= contrast;
- rgb.iG *= contrast;
- rgb.iB *= contrast;
-
- rgb.iR /= 65536;
- rgb.iG /= 65536;
- rgb.iB /= 65536;
-
- rgb.iR += 15;
- rgb.iG += 31;
- rgb.iB += 15;
- */
-
- // Apply brightness, -40 in a range of -100..100 for
- // 0..255 rgb values, which corresponds to -5 for 5 bit
- // and -10 for 6 bit rgb values.
- rgb.iR -= 5;
- rgb.iG -= 10;
- rgb.iB -= 5;
-
- if ( rgb.iR < 0 ) rgb.iR = 0;
- if ( rgb.iG < 0 ) rgb.iG = 0;
- if ( rgb.iB < 0 ) rgb.iB = 0;
-
- if ( rgb.iR > 31 ) rgb.iR = 31;
- if ( rgb.iG > 63 ) rgb.iG = 63;
- if ( rgb.iB > 31 ) rgb.iB = 31;
-
- *aPixelData =
- ( rgb.iB | ( rgb.iG << 5 ) | ( rgb.iR << 11 ) );
- }
-
-TInt TBitmapFx::HueToRGB( TInt v1, TInt v2, TInt aH )
- {
- while ( aH < 0 )
- {
- aH += 0xFF00;
- }
-
- while ( aH >= 0xFF00 )
- {
- aH -= 0xFF00;
- }
-
- if ( ( ( 6 * aH ) ) < 0xFF00 )
- {
- return v1 + ( ( v2 - v1 ) * ( ( 6 * aH ) >> KPrecision ) >> KPrecision );
- }
-
- if ( ( ( 2 * aH ) ) < 0xFF00 )
- {
- return v2;
- }
-
- if ( ( ( 3 * aH ) ) < 0x1FE00 )
- {
- return v1 + ( ( v2 - v1 ) * ( ( ( 0xA9FF - aH ) * 6 ) >> KPrecision ) >> KPrecision );
- }
-
- return v1;
- }
-
--- a/uifw/EikStd/coctlsrc/AknEdwinFormExtendedInterfaceProvider.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/coctlsrc/AknEdwinFormExtendedInterfaceProvider.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -18,9 +18,7 @@
// INCLUDE FILES
-#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include <inlinetext_internal.h>
-#endif
+#include <inlinetext.h>
#include <AknEdwinFormExtendedInterfaceProvider.h>
class CAknCompositeInlineTextSource;
--- a/uifw/EikStd/coctlsrc/EIKBTGPC.CPP Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/coctlsrc/EIKBTGPC.CPP Fri Feb 19 23:04:46 2010 +0200
@@ -495,7 +495,7 @@
CFbsBitmap* mask = AknIconUtils::CreateIconL(aFile, aMaskId);
CleanupStack::PushL(mask);
DoSetCommandL(aPosition, aCommandId, aText, bitmap, mask, aOp);
- CleanupStack::Pop(2); // bitmap, mask
+ CleanupStack::PopAndDestroy(2); // bitmap, mask
}
EXPORT_C void CEikButtonGroupContainer::DoSetCommandL(
--- a/uifw/EikStd/coctlsrc/EIKEDWIN.CPP Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/coctlsrc/EIKEDWIN.CPP Fri Feb 19 23:04:46 2010 +0200
@@ -2229,7 +2229,7 @@
}
InChar: CheckNotReadOnlyL();
TChar character(code);
- if ( selectionLength && IsValidNumericCharL(character) )
+ if ( selectionLength )
{
TInt pos=DeleteHighlightL(formatHasChanged);
TRAPD(err,iText->InsertL(pos,character));
@@ -2253,7 +2253,7 @@
formatChange=formatHasChanged;
break;
}
- if ( (!iTextLimit || TextLength()<iTextLimit) && IsValidNumericCharL(character) )
+ if ( !iTextLimit || TextLength()<iTextLimit )
{
iText->InsertL(CursorPos(),character);
ClearUndo();
@@ -4565,6 +4565,7 @@
iCcpuSupport->HandleSelectionChangeL();
}
}
+ iEdwinExtension->iThumbPos = KErrNotFound;
if (IsReadyToDraw())
{
UpdateScrollBarsL();
@@ -8808,21 +8809,7 @@
return iEdwinInternalFlags & ESkipBackgroundDrawer;
}
-TBool CEikEdwin::IsValidNumericCharL( TChar aChar )
- {
- TBool ret(ETrue);
- CAknEdwinState* state = static_cast<CAknEdwinState*>( iEdwinFepSupport->State( KNullUid ) );
- if (state && state->CurrentInputMode() == EAknEditorNumericInputMode )
- {
- HBufC* allowedChars = GetAllowedCharsLC();
- if ( (*allowedChars).Length() > 0 && (*allowedChars).Locate( aChar ) == KErrNotFound )
- {
- ret = EFalse;
- }
- CleanupStack::PopAndDestroy(1);//allowedChars
- }
- return ret;
- }
+
// End of File
--- a/uifw/EikStd/coctlsrc/EIKKWIN.CPP Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/coctlsrc/EIKKWIN.CPP Fri Feb 19 23:04:46 2010 +0200
@@ -16,7 +16,7 @@
*/
-#include "EIKKWIN.H"
+#include "eikkwin.h"
EXPORT_C CEikKeyWindow::CEikKeyWindow()
{
--- a/uifw/EikStd/coctlsrc/EIKLBX.CPP Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/coctlsrc/EIKLBX.CPP Fri Feb 19 23:04:46 2010 +0200
@@ -73,7 +73,7 @@
#include <akncollection.h>
#include <aknitemactionmenu.h>
#include <aknlongtapdetector.h>
-#include <aknpriv.hrh>
+#include <AknPriv.hrh>
#include "akntrace.h"
// timeout for long keypress used in markable lists
@@ -1079,10 +1079,9 @@
{
if ( iSingleClickEnabled && iLongTapDetector && iItemActionMenu )
{
- // Send event on down only if no marked items and item specific items
- // were found
+ // Send event on down only if item specific items were found
if ( aPointerEvent.iType != TPointerEvent::EButton1Down
- || ( !MarkedItems() && iItemActionMenu->InitMenuL() ) )
+ || iItemActionMenu->InitMenuL() )
{
iLongTapDetector->PointerEventL ( aPointerEvent );
}
@@ -1810,6 +1809,22 @@
}
}
+
+// -----------------------------------------------------------------------------
+// CEikListBox::ItemsInSingleLine
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt CEikListBox::ItemsInSingleLine() const
+ {
+ if ( iListBoxExt )
+ {
+ return iListBoxExt->iItemsInSingleLine;
+ }
+
+ return 1;
+ }
+
+
EXPORT_C void CEikListBox::UpdateViewColors()
{
_AKNTRACE_FUNC_ENTER;
--- a/uifw/EikStd/coctlsrc/EIKMENUB.CPP Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/coctlsrc/EIKMENUB.CPP Fri Feb 19 23:04:46 2010 +0200
@@ -58,7 +58,7 @@
#include <touchfeedback.h>
#include <aknitemactionmenu.h>
#include "aknitemactionmenuregister.h"
-#include <aknPriv.hrh>
+#include <AknPriv.hrh>
#include "akntrace.h"
enum { EEikMenuBarTitleArrayGranularity=10 };
@@ -425,7 +425,6 @@
inline void CEikMenuBar::SetMenuHasItems()
{
iMenuFlags|=EMenuHasItems;
- iExt->StoreCollectionHighlightValue();
}
inline TBool CEikMenuBar::MenuHasPane() const
@@ -649,7 +648,7 @@
SPosition menuPos;
menuPos.iMenuId = iMenuTitleResourceId;
menuPos.iMenuCursorPos = iCursor;
- iPastMenuPosArray->AppendL(&menuPos, sizeof(menuPos));
+ iPastMenuPosArray->AppendL(menuPos);
}
void CEikMenuBar::SetCursorPositionFromArray()
@@ -959,6 +958,8 @@
return;
}
+ iExt->StoreCollectionHighlightValue();
+
if (!(iMenuFlags&EBackgroundFaded))
{
iExt->FadeBehindPopup(ETrue);
--- a/uifw/EikStd/coctlsrc/EIKMENUP.CPP Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/coctlsrc/EIKMENUP.CPP Fri Feb 19 23:04:46 2010 +0200
@@ -46,7 +46,6 @@
#include <AknsDrawUtils.h>
#include <AknsFrameBackgroundControlContext.h>
#include <AknBidiTextUtils.h>
-#include <AknMarqueeControl.h>
#include <skinlayout.cdl.h>
#include <aknlayoutscalable_avkon.cdl.h>
#include <AknLayoutFont.h>
@@ -55,8 +54,6 @@
#include <AknIconUtils.h>
#include <aknappui.h>
-#include <AknsEffectAnim.h>
-#include <systemwarninglevels.hrh>
#include <layoutmetadata.cdl.h>
#include <AknStatuspaneUtils.h>
#include <aknCharMap.h>
@@ -64,16 +61,9 @@
#include <akntranseffect.h> //For transition effects
#include <akntransitionutils.h> // SetAllParents method
#include <featmgr.h>
-#include <hal.h>
#include <avkondomainpskeys.h>
#include <e32property.h>
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
-#include <aknlistboxtfxinternal.h> // LISTBOX EFFECTS IMPLEMENTATION
-#include <aknlistloadertfx.h>
-#include <aknlistboxtfx.h>
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
-
#include <touchfeedback.h>
#include <AknTasHook.h>
#include <aknphysics.h>
@@ -115,40 +105,15 @@
* Extension now contains menu/submenu highlight animation functionality.
*/
NONSHARABLE_CLASS( CEikMenuPaneExtension ):
- public CActive,
- public MCoeForegroundObserver,
- public MAknsEffectAnimObserver,
+ public CBase,
public MCoeControlObserver,
public MAknPhysicsObserver
{
public:
- enum TFlag
- {
- /**
- * If set, animation creation is attempted. If not set, animation will
- * never be created.
- */
- EFlagUseAnimation = 0
- };
-
- enum TScreen
- {
- EQhdHeight = 360,
- EQhdWidth = 640
- };
-
CEikMenuPaneExtension();
~CEikMenuPaneExtension();
void ConstructL( CEikMenuPane* aControl );
- void CreateAnimation();
- void NoAnimIfError( TInt aError );
- void UseNoAnimation();
- void FocusGained();
- void FocusLost();
-
- void HandleLayoutSwitch();
- void ChangeHighlightBackground();
void MenuClosed();
void ConstructMenuSctRowL( TDes& aSpecialChars, TInt aResourceId );
@@ -167,29 +132,7 @@
void ChangePosition( TPointerEvent& aPointerEvent );
void CalculateParentEvent( const TPointerEvent& aPointerEvent,
TPointerEvent& aParentEvent );
- TRect GetBackgroundRect( const TRect& aWindowRect ) const;
- static void AdjustPopupLayoutData( TAknWindowLineLayout& aListScrollPaneLayout );
-
- const TAknLayoutText GetMenuItemTextLayout(const TRect& aItemRect, TBool cascade);
-
-public: // Implementation of MCoeForegroundObserver
- void HandleGainingForeground();
- void HandleLosingForeground();
-
-public: // Implementation of MAknsEffectAnimObserver
- void AnimFrameReady( TInt aError, TInt );
void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType);
-
-protected: // CActive overloads
- void DoCancel();
- void RunL();
-
-private: // New internal methods
- void Play();
- TBool DrawHighlightBackground( CFbsBitGc& aGc );
- void PostDeleteAnimation();
- void CreateAnimationL( const TSize& aHighlightSize );
- void DoResizeL( const TSize& aHighlightSize, TBool aAboutToStart );
public:
void ImmediateFeedback( TTouchLogicalFeedback aType,
TTouchFeedbackType aFbType );
@@ -197,10 +140,6 @@
public:
void StartCascadeMenuAppearTransition();
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- void CalcItemSize( MAknListBoxTfxInternal* transApi ) const;
-#endif
-
/**
* Prepares cascade menu for item specific commands.
*/
@@ -236,7 +175,7 @@
*
* @return ETrue if highlight is enabled
*/
- TBool HighlightEnabled();
+ TBool HighlightEnabled();
/**
* Sets the default highlight to options menu
@@ -245,8 +184,6 @@
void SetDefaultHighlight();
public: // Data
- TBool iHasIcon;
- TBool iIsPenEnable;
CFbsBitmap* iCascadeBitmap;
CFbsBitmap* iCascadeBitmapMask;
CAknsFrameBackgroundControlContext* iBgContext;
@@ -257,14 +194,7 @@
CFbsBitmap* iRadioButtonBitmapMask; // mask for the above bitmap
TBool iHasRadioGroup; // is ETrue if submenu contains radio button group.
TInt iSelectedRadioButtonItem; // index of the radio button item which is currently selected (one must be selected)
- CCoeControl* iGrabbingCBAComponent; // component control of CBA which is currently grabbing the pointer
CEikMenuPane* iControl;
- CAknsEffectAnim* iAnimation;
- /**
- * Stored flags are explained in enumeration TFlags.
- */
- TBitFlags32 iAnimFlags;
-
CAknCharMap* iSct; // Menu SCT row, created only when needed.
TBool iSctHighlighted; // No "normal" menu item can be highlighted if ETrue
@@ -277,26 +207,17 @@
// needs to be mutable since we need to get information from Draw methods
// (that are declared const)
mutable TRect iCascadeDRect;
- TBool iTransitionsOn; // Transitions FtMgr flag on
TBool iShowCascadeTransition;
// For later deletion of cascade menu, this allows the transition system
// to correctly handle the aborted transitions
CEikMenuPane* iCascadeMenuObject;
TBool iDraggedOutside;
TPointerEvent iLastPointerEvent;
-
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- CWindowGc* iGc;
-#endif
TInt iItemsThatFitInView;
TRect iScrollBarRect;
TRect iSctRect;
- TInt iTotalNumberOfItemsInView; // this value includes partial items
-
-
CIdle* iTaskSwapIdle;
CRedirectionListener* iRedirectionListener;
- TRect iSBRect;
RWindow* iMenuPaneWindow; // Not own, used by SCT
TBool iLaunchCascadeMenu;
TBool isUpdateScrollDirectly;
@@ -315,6 +236,7 @@
ESingleClickEnabled,
EHideItemSpecificCommands,
EContextSensitive,
+ ESkipScrollbarUpdate,
EHighlightEnabled
};
@@ -322,6 +244,28 @@
* Menu pane extension flags.
*/
TBitFlags iFlags;
+
+ /**
+ * Cached rectangle occupied by menu items (excluding scrollbar's area).
+ */
+ TRect iItemAreaRect;
+
+ /**
+ * Cached rectangle occupied by menu items and scrollbar.
+ */
+ TRect iMenuAreaRect;
+
+ /**
+ * Index of the item were highlight was previously drawn to.
+ * Can be KErrNotFound.
+ */
+ TInt iHighlightedItem;
+
+ /**
+ * Scrollbar's desired visibility. This is calculated in conjunction with
+ * menu pane's size and used later on when calculating scrollbar's layout.
+ */
+ CEikScrollBarFrame::TScrollBarVisibility iScrollbarVisibility;
private: // Data
CPeriodic* iTimer; // timer to launch submenu, own
@@ -453,12 +397,6 @@
inline void CEikMenuPane::CMenuScroller::SetTopItemIndex(TInt aIndex)
{
iTopItemIndex=aIndex;
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( iMenuPane.iExtension )
- {
- iTopItemIndex = aIndex;
- }
-#endif
}
inline CIdle* CEikMenuPane::CMenuScroller::Idle() const
@@ -474,16 +412,8 @@
iLastFeedbackTopItemIndex = 0;
iPressedDown = EFalse;
iFlickActive = EFalse;
-
- TRect rect;
- if ( !iControl->iOwner )
- {
- rect = iMenuPaneRect;
- }
- else
- {
- rect = iControl->Rect();
- }
+
+ TRect rect( iMenuPaneRect );
TInt itemHeight = iControl->iItemHeight;
TInt itemsInRect = rect.Height() / itemHeight;
@@ -537,19 +467,18 @@
void CEikMenuPaneExtension::ViewPositionChanged( const TPoint& aNewPosition,
TBool aDrawNow,
TUint /*aFlags*/ )
- {
+ {
_AKNTRACE_FUNC_ENTER;
- if ( !iControl->iItemArray )
+ TInt delta = iViewPosition.iY - aNewPosition.iY;
+
+ if ( !iControl->iItemArray || delta == 0 )
{
return;
}
-
+
iListTopIndex = aNewPosition.iY - iViewHeight / 2;
-
iListBottomIndex = aNewPosition.iY + iViewHeight - iViewHeight / 2;
- TInt delta = iViewPosition.iY - aNewPosition.iY;
-
DoOffset( delta );
iViewPosition = aNewPosition;
@@ -560,16 +489,21 @@
if ( aDrawNow )
{
- TRAP_IGNORE( iControl->DoUpdateScrollBarL() );
-
- if ( iControl->iOwner ) // Submenu
+ if ( iFlags.IsClear( ESkipScrollbarUpdate ) )
{
- iControl->DrawNow();
+ TRAP_IGNORE( iControl->DoUpdateScrollBarL() );
}
- else
+
+ // Redraw only item area if scrollbar is invisible, otherwise include
+ // also scrollbar's area in order to avoid drawdeferred.
+ TRect drawRect( iItemAreaRect );
+
+ if ( iScrollbarVisibility == CEikScrollBarFrame::EOn )
{
- iControl->DrawNow( TRect( iMenuPaneRect.Size() ) );
- }
+ drawRect = iMenuAreaRect;
+ }
+
+ iControl->DrawNow( drawRect );
}
_AKNTRACE_FUNC_EXIT;
}
@@ -736,14 +670,6 @@
{
_AKNTRACE_FUNC_ENTER;
iFlickActive = EFalse;
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- MAknListBoxTfx* tfxApi = CAknListLoader::TfxApi( iGc );
-
- if ( tfxApi )
- {
- tfxApi->EnableEffects( ETrue );
- }
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
_AKNTRACE_FUNC_EXIT;
}
@@ -936,7 +862,6 @@
// -----------------------------------------------------------------------------
//
CEikMenuPaneExtension::CEikMenuPaneExtension() :
- CActive( EPriorityHigh ),
// Initialise data members to zero
iCascadeBitmap( NULL ),
iCascadeBitmapMask( NULL ),
@@ -948,16 +873,10 @@
iRadioButtonBitmapMask( NULL ),
iHasRadioGroup( EFalse ),
iSelectedRadioButtonItem( KNoSelectedRadioButtonItem ),
- iGrabbingCBAComponent( NULL ),
iControl( NULL ),
- iAnimation( NULL ),
- iAnimFlags ( 0 ),
iSct( NULL ),
iSctHighlighted( EFalse ),
iSpecialCharPointed( EFalse )
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- ,iGc ( NULL )
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
,iVerticalOffset( 0 )
,iPhysics( NULL )
,iListTopIndex( 0 )
@@ -967,9 +886,9 @@
,iFeedback( MTouchFeedback::Instance() )
,iLastFeedbackTopItemIndex( 0 )
{
- iIsPenEnable = AknLayoutUtils::PenEnabled();
- iItemsReadyForPenSelection = !iIsPenEnable;
+ iItemsReadyForPenSelection = !AknLayoutUtils::PenEnabled();
iNextHighlightItem = KErrNotFound;
+ iHighlightedItem = KErrNotFound;
}
// -----------------------------------------------------------------------------
@@ -980,17 +899,6 @@
CEikMenuPaneExtension::~CEikMenuPaneExtension()
{
_AKNTRACE_FUNC_ENTER;
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( CAknListLoader::TfxApiInternal( iGc ) )
- {
- delete iGc;
- }
-#endif
- Cancel(); // Cancel possibly pending request
-
- // Stop receiving foreground events
- CCoeEnv* env = CCoeEnv::Static();
- env->RemoveForegroundObserver( *this );
delete iCascadeBitmap;
iCascadeBitmap = NULL;
@@ -1015,9 +923,6 @@
iControl = NULL;
- delete iAnimation;
- iAnimation = NULL;
-
delete iSct;
iSct = NULL;
@@ -1053,8 +958,6 @@
{
ASSERT( aControl );
iControl = aControl;
- iAnimFlags.Set( EFlagUseAnimation ); // Animations are created by default
- CActiveScheduler::Add( this );
iDraggedOutside = EFalse;
iLaunchCascadeMenu = EFalse;
iButtonDownItem = KErrNotFound;
@@ -1064,11 +967,6 @@
// Delays submenu opening during appear transitions
iRedirectionListener = new ( ELeave ) CRedirectionListener( *this );
}
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- iGc = CAknListLoader::CreateTfxGc( *aControl,
- iControl->iScroller->iTopItemIndex,
- iTotalNumberOfItemsInView );
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
if ( static_cast<CAknAppUi*>(
iControl->ControlEnv()->AppUi() )->IsSingleClickCompatible() )
{
@@ -1084,55 +982,6 @@
KAknsIIDQsnFrPopup, TRect( 0, 0, 1, 1 ), TRect( 0, 0, 1, 1 ), EFalse );
}
-// -----------------------------------------------------------------------------
-// CEikMenuPaneExtension::CreateAnimation
-// -----------------------------------------------------------------------------
-//
-void CEikMenuPaneExtension::CreateAnimation()
- {
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- return;
-#else
- if( !iAnimation && iAnimFlags.IsSet( EFlagUseAnimation ) )
- {
- TRect rect = iControl->HighlightRect();
- TRAPD( err, CreateAnimationL( rect.Size() ) );
- if( KErrNone != err )
- {
- // Animation has not been drawn -> no need for repaint
- UseNoAnimation();
- }
- }
-#endif //RD_UI_TRANSITION_EFFECTS_LIST
- }
-
-// -----------------------------------------------------------------------------
-// CEikMenuPaneExtension::NoAnimIfError
-// -----------------------------------------------------------------------------
-//
-void CEikMenuPaneExtension::NoAnimIfError( TInt aError )
- {
- if( KErrNone != aError )
- UseNoAnimation();
- }
-
-// -----------------------------------------------------------------------------
-// CEikMenuPaneExtension::UseNoAnimation
-// Falls back to normal highlight rendering.
-// -----------------------------------------------------------------------------
-//
-void CEikMenuPaneExtension::UseNoAnimation()
- {
- delete iAnimation;
- iAnimation = NULL;
-
- // Do not attempt to create animations in the future
- iAnimFlags.Clear( EFlagUseAnimation );
-
- // Stop receiving foreground events
- CCoeEnv* env = CCoeEnv::Static();
- env->RemoveForegroundObserver( *this );
- }
// -----------------------------------------------------------------------------
// CEikMenuPaneExtension::StartCascadeMenuTimerL
@@ -1157,6 +1006,7 @@
_AKNTRACE_FUNC_EXIT;
}
+
// -----------------------------------------------------------------------------
// CEikMenuPaneExtension::StopCascadeMenuTimer
// Stops the timer for the sub menu launch
@@ -1260,6 +1110,7 @@
_AKNTRACE_FUNC_EXIT;
}
+
// -----------------------------------------------------------------------------
// CEikMenuPaneExtension::HighlightTimerCallBack
// Callback function of the timer for pressed down highlight
@@ -1311,11 +1162,12 @@
{
if ( !iControl->iSBFrame )
{
- iControl->CreateScrollBarFrame();
- }
- TRect scrollBarRect = iControl->iSBFrame->VerticalScrollBar()->Rect();
- TPoint scrollerTl = scrollBarRect.iTl;
- TPoint scrollerBr = scrollBarRect.iBr;
+ return;
+ }
+
+ TRect scrollBarRect( iControl->iSBFrame->VerticalScrollBar()->Rect() );
+ TPoint scrollerTl( scrollBarRect.iTl );
+ TPoint scrollerBr( scrollBarRect.iBr );
TRect gapRect;
// For layout that left to right
if ( !AknLayoutUtils::LayoutMirrored() )
@@ -1363,158 +1215,14 @@
TPointerEvent& aParentEvent )
{
aParentEvent.iModifiers = aPointerEvent.iModifiers;
- TPoint subPos = iControl->PositionRelativeToScreen();
- TPoint ownerPos = iControl->iOwner->PositionRelativeToScreen();
+ TPoint subPos = iControl->Position();
+ TPoint ownerPos = iControl->iOwner->Position();
aParentEvent.iPosition.SetXY (
aPointerEvent.iPosition.iX + subPos.iX - ownerPos.iX,
aPointerEvent.iPosition.iY + subPos.iY - ownerPos.iY);
aParentEvent.iType = aPointerEvent.iType;
}
-// -----------------------------------------------------------------------------
-// CEikMenuPaneExtension::GetBackgroundRect
-// Get background rect for landscape mode of menu pane.
-// -----------------------------------------------------------------------------
-//
-TRect CEikMenuPaneExtension::GetBackgroundRect( const TRect& aWindowRect ) const
- {
- return aWindowRect;
- }
-
-// -----------------------------------------------------------------------------
-// CEikMenuPaneExtension::AdjustPopupLayoutData
-// Adjust popup layout data for main menu pane in landscape mode
-// -----------------------------------------------------------------------------
-//
-void CEikMenuPaneExtension::AdjustPopupLayoutData( TAknWindowLineLayout& aListScrollPaneLayout )
- {
- TRect screenRect;
- AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EScreen, screenRect );
- AknLayoutUtils::TAknCbaLocation cbaPosition = AknLayoutUtils::CbaLocation();
-
- if ( screenRect.Width() == EQhdWidth && screenRect.Height() == EQhdHeight
- && cbaPosition == AknLayoutUtils::EAknCbaLocationBottom )
- {
- if ( !AknLayoutUtils::LayoutMirrored() )
- {
- aListScrollPaneLayout.ir -= 32;
- }
- else
- {
- aListScrollPaneLayout.il -= 32;
- }
- }
- }
-
-
-// -----------------------------------------------------------------------------
-// CEikMenuPaneExtension::GetMenuItemTextLayout
-// Get Layout of menu item text.
-// -----------------------------------------------------------------------------
-//
-const TAknLayoutText CEikMenuPaneExtension::GetMenuItemTextLayout(const TRect& aItemRect, TBool cascade)
- {
- TAknTextLineLayout menuTextLayout;
-
- if ( !iControl->iOwner )
- {
- menuTextLayout = AknLayoutScalable_Avkon::list_single_pane_t1_cp2( cascade ? 3 : 0 ).LayoutLine();
- }
- else
- {
- if ( iHasIcon )
- {
- menuTextLayout = TAknTextLineLayout( AknLayoutScalable_Avkon::list_single_popup_submenu_pane_t1( 1 ).LayoutLine() );
- }
- else
- {
- menuTextLayout = TAknTextLineLayout( AknLayoutScalable_Avkon::list_single_popup_submenu_pane_t1( 0 ).LayoutLine() );
- }
- }
-
- TAknLayoutText textRect;
- textRect.LayoutText( aItemRect, menuTextLayout );
- return textRect;
- }
-
-
-// -----------------------------------------------------------------------------
-// CEikMenuPaneExtension::FocusGained
-// The owning control has gained focus -> animation should be continued.
-// -----------------------------------------------------------------------------
-//
-void CEikMenuPaneExtension::FocusGained()
- {
- Play();
- }
-
-// -----------------------------------------------------------------------------
-// CEikMenuPaneExtension::FocusLost
-// The owning control has lost focus -> no running animation (even if the
-// control is partially visible).
-// -----------------------------------------------------------------------------
-//
-void CEikMenuPaneExtension::FocusLost()
- {
- if( iAnimation )
- {
- NoAnimIfError( iAnimation->Pause() );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CEikMenuPaneExtension::HandleLayoutSwitch
-// -----------------------------------------------------------------------------
-//
-void CEikMenuPaneExtension::HandleLayoutSwitch()
- {
- if( iAnimation ) // Animation exists -> try to resize
- {
- TRect rect( iControl->HighlightRect() );
-
- // Resize animation
- TBool aboutToStart = ETrue;
- if( iAnimation->State() == EAknsAnimStateStopped )
- aboutToStart = EFalse;
-
- TRAPD( err, DoResizeL( rect.Size(), aboutToStart ) );
- NoAnimIfError( err );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CEikMenuPaneExtension::ChangeHighlightBackground
-// -----------------------------------------------------------------------------
-//
-void CEikMenuPaneExtension::ChangeHighlightBackground()
- {
- // Every time the current list item is changed we need to change the
- // animation input layer (animated element is the highlight bacground that
- // can differ between highlight positions).
- if( iAnimation )
- {
- if( iAnimation->State() == EAknsAnimStateStopped )
- {
- // Input layers don't exist when stopped or finished. We need to
- // resize to create the input layers and to update the output
- // layer.
-
- TRAPD( err, DoResizeL( iAnimation->Size(), EFalse ) );
- NoAnimIfError( err );
- }
- else // Either paused, running or finished
- {
- // Update the highlight background
- if( iAnimation->InputRgbGc() )
- DrawHighlightBackground( *iAnimation->InputRgbGc() );
-
- // We need to update the output frame (otherwise the highlight
- // would drawn with the old output before the next new animation
- // frame).
- NoAnimIfError( iAnimation->UpdateOutput() );
- }
- }
- }
// -----------------------------------------------------------------------------
// CEikMenuPaneExtension::MenuClosed
@@ -1523,20 +1231,9 @@
void CEikMenuPaneExtension::MenuClosed()
{
_AKNTRACE_FUNC_ENTER;
- delete iAnimation;
- iAnimation = NULL;
-
- CCoeEnv* env = CCoeEnv::Static();
- env->RemoveForegroundObserver( *this );
-
- iAnimFlags.Set( EFlagUseAnimation );
-
delete iSct;
iSct = NULL;
iSctHighlighted = EFalse;
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- iSctRect = TRect::EUninitialized;
-#endif
if ( iCba )
{
@@ -1554,192 +1251,6 @@
_AKNTRACE_FUNC_EXIT;
}
-// -----------------------------------------------------------------------------
-// CEikMenuPaneExtension::HandleGainingForeground
-// The application has gained foreground -> animation should be continued.
-// -----------------------------------------------------------------------------
-//
-void CEikMenuPaneExtension::HandleGainingForeground()
- {
- // It is safe to start animation in this method because animation is
- // deleted when the menu is closed -> it is not possible that menu receives
- // foreground event while it is not visible and the animation exists.
-
- // We need to check if the menu has focus (to prevent running nonfocused
- // animation because also the nonfocused menu (menu/submenu) receives
- // foreground events)
- Play();
- }
-
-// -----------------------------------------------------------------------------
-// CEikMenuPaneExtension::HandleLosingForeground
-// The application lost foreground -> no running animation (even if the
-// application is partially visible).
-// -----------------------------------------------------------------------------
-//
-void CEikMenuPaneExtension::HandleLosingForeground()
- {
- if( iAnimation )
- {
- NoAnimIfError( iAnimation->Stop() );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CEikMenuPaneExtension::AnimFrameReady
-// -----------------------------------------------------------------------------
-//
-void CEikMenuPaneExtension::AnimFrameReady( TInt aError, TInt )
- {
- if( KErrNone != aError )
- {
- // Animation has failed to run -> schedule the animation for
- // deletion to fall back to normal rendering.
- PostDeleteAnimation();
- }
- else if( iControl ) // Frame ok
- {
- if ( iControl->IsVisible() )
- {
- iControl->RepaintHighlight();
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CEikMenuPaneExtension::DoCancel
-// -----------------------------------------------------------------------------
-//
-void CEikMenuPaneExtension::DoCancel()
- {
- // Required method, but not needed
- }
-
-
-// -----------------------------------------------------------------------------
-// CEikMenuPaneExtension::RunL
-// Postponed animation deletion is done here
-// -----------------------------------------------------------------------------
-//
-void CEikMenuPaneExtension::RunL()
- {
- UseNoAnimation();
- }
-
-// -----------------------------------------------------------------------------
-// CEikMenuPaneExtension::Play
-// -----------------------------------------------------------------------------
-//
-void CEikMenuPaneExtension::Play()
- {
- if( !iAnimation || !iControl->IsFocused() )
- {
- return;
- }
-
- // No need to start running/finished animation
- if( EAknsAnimStateRunning == iAnimation->State() ||
- EAknsAnimStateFinished == iAnimation->State() )
- {
- return;
- }
-
- CAknAppUi* aui = static_cast<CAknAppUi*>(CEikonEnv::Static()->AppUi());
- if( !aui->IsForeground() )
- {
- return;
- }
-
- if( EAknsAnimStatePaused == iAnimation->State() )
- {
- NoAnimIfError( iAnimation->Continue() );
- }
- else if( EAknsAnimStateStopped == iAnimation->State() )
- {
- if( iAnimation->NeedsInputLayer() )
- {
- TRAPD( err, DoResizeL( iAnimation->Size(), ETrue ) );
- NoAnimIfError( err );
-
- if( KErrNone != err )
- return;
- }
-
- NoAnimIfError( iAnimation->Start() );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CEikMenuPaneExtension::DrawHighlightBackground
-// Draws skinned highlight background to the provided graphics context.
-// -----------------------------------------------------------------------------
-//
-TBool CEikMenuPaneExtension::DrawHighlightBackground( CFbsBitGc& aGc )
- {
- // Draw the background under the current highlight. This simplified
- // drawing, we only grab a piece from the list background bitmap.
- MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-
- return AknsDrawUtils::DrawBackground( skin, iBgContext, iControl, aGc, TPoint(0,0),
- iControl->HighlightRect(),
- KAknsDrawParamRGBOnly );
- }
-
-// -----------------------------------------------------------------------------
-// CEikMenuPaneExtension::PostDeleteAnimation
-// Schedules the animation for deletion by activating the extension itself.
-// Deletion is postponed because in many error/failure occasions the caller has
-// been animation and direct deletion is possibly not safe (because function
-// stack would return through the deleted object).
-// -----------------------------------------------------------------------------
-//
-void CEikMenuPaneExtension::PostDeleteAnimation()
- {
- TRequestStatus* status = &iStatus;
- User::RequestComplete( status, KErrNone );
- SetActive();
- }
-
-// -----------------------------------------------------------------------------
-// CEikMenuPaneExtension::CreateAnimationL
-// -----------------------------------------------------------------------------
-//
-void CEikMenuPaneExtension::CreateAnimationL( const TSize& aHighlightSize )
- {
- // Create animation
- CCoeEnv* env = CCoeEnv::Static();
- env->AddForegroundObserverL( *this );
-
- delete iAnimation;
- iAnimation = NULL;
-
- iAnimation = CAknsEffectAnim::NewL( this );
- TBool ok = iAnimation->ConstructFromSkinL( KAknsIIDQsnAnimList );
-
- if( !ok ) // Animation for the ID was not found from the skin
- {
- User::Leave( KErrNotFound );
- }
-
- DoResizeL( aHighlightSize, ETrue );
-
- Play();
- }
-
-// -----------------------------------------------------------------------------
-// CEikMenuPaneExtension::DoResizeL
-// -----------------------------------------------------------------------------
-//
-void CEikMenuPaneExtension::DoResizeL(
- const TSize& aHighlightSize, TBool aAboutToStart )
- {
- iAnimation->BeginConfigInputLayersL( aHighlightSize, aAboutToStart );
-
- if( iAnimation->InputRgbGc() )
- DrawHighlightBackground( *iAnimation->InputRgbGc() );
-
- iAnimation->EndConfigInputLayersL();
- }
// -----------------------------------------------------------------------------
// CEikMenuPaneExtension::ConstructMenuSctRowL
@@ -1762,11 +1273,8 @@
if ( renew && iMenuPaneWindow && iControl )
{
iSct->SetContainerWindowL( *iControl );
- if ( AknLayoutUtils::PenEnabled() )
- {
- iSct->SetGloballyCapturing( ETrue );
- iSct->SetPointerCapture( ETrue );
- }
+ iSct->SetGloballyCapturing( ETrue );
+ iSct->SetPointerCapture( ETrue );
}
_AKNTRACE_FUNC_EXIT;
}
@@ -1791,11 +1299,8 @@
if ( renew && iMenuPaneWindow && iControl)
{
iSct->SetContainerWindowL( *iControl );
- if ( AknLayoutUtils::PenEnabled() )
- {
- iSct->SetGloballyCapturing( ETrue );
- iSct->SetPointerCapture( ETrue );
- }
+ iSct->SetGloballyCapturing( ETrue );
+ iSct->SetPointerCapture( ETrue );
}
}
@@ -1806,13 +1311,10 @@
void CEikMenuPaneExtension::HandleControlEventL(CCoeControl* /*aControl*/,TCoeEvent aEventType)
{
_AKNTRACE_FUNC_ENTER;
- if ( AknLayoutUtils::PenEnabled() )
- {
- if(aEventType == EEventStateChanged)
- {
- // Something has been selected from CharMap
- iSpecialCharPointed = ETrue;
- }
+ if ( aEventType == EEventStateChanged )
+ {
+ // Something has been selected from CharMap
+ iSpecialCharPointed = ETrue;
}
_AKNTRACE( "aEventType = %d", aEventType );
_AKNTRACE_FUNC_EXIT;
@@ -2362,27 +1864,12 @@
CheckCreateScrollerL();
CheckCreateExtensionL();
- iExtension->iTransitionsOn = FeatureManager::FeatureSupported( KFeatureIdUiTransitionEffects );
-
CreateWindowL( iCoeEnv->RootWin() );
EnableWindowTransparency();
SetAllowStrayPointers();
EnableDragEvents();
- TAknWindowLineLayout menuLineLayout;
- if ( iOwner ) // submenu
- {
- menuLineLayout = AknLayoutScalable_Avkon::list_single_popup_submenu_pane( 0 ).LayoutLine();
- }
- else
- {
- menuLineLayout = AknLayoutScalable_Avkon::list_single_pane_cp2( 0 ).LayoutLine();
- }
-
- TRect windowRect = Rect();
- TAknLayoutRect menuLayoutRect;
- menuLayoutRect.LayoutRect( windowRect, menuLineLayout );
- iItemHeight = menuLayoutRect.Rect().Height();
+ iItemHeight = CalculateItemHeight();
if ( iExtension->iSct )
{
@@ -2390,15 +1877,12 @@
iExtension->iMenuPaneWindow = window;
iExtension->iSct->SetContainerWindowL( *this );
- if ( AknLayoutUtils::PenEnabled() )
- {
- // This is effectively the same as CCoeControl::EnableDragEvents()
- // which is protected.
- window->PointerFilter( EPointerFilterDrag, 0 );
- iExtension->iSct->SetGloballyCapturing( ETrue );
- iExtension->iSct->SetPointerCapture( ETrue );
- iExtension->iSct->SetObserver(iExtension);
- }
+ // This is effectively the same as CCoeControl::EnableDragEvents()
+ // which is protected.
+ window->PointerFilter( EPointerFilterDrag, 0 );
+ iExtension->iSct->SetGloballyCapturing( ETrue );
+ iExtension->iSct->SetPointerCapture( ETrue );
+ iExtension->iSct->SetObserver(iExtension);
}
if ( iOwner ) // submenu
@@ -2416,7 +1900,6 @@
User::Leave( KErrNoMemory );
Window().SetOrdinalPosition( 0 );
-
Window().SetPointerGrab( ETrue );
SetGloballyCapturing( ETrue );
@@ -2440,19 +1923,7 @@
}
CreateItemArrayL();
- TAknWindowLineLayout menuLineLayout;
- if ( iOwner ) // submenu
- {
- menuLineLayout = AKN_LAYOUT_WINDOW_list_single_popup_submenu_pane( 0, 0 );
- }
- else
- {
- menuLineLayout = AKN_LAYOUT_WINDOW_list_single_popup_menu_pane( 0 );
- }
- TRect windowRect = Rect();
- TAknLayoutRect menuLayoutRect;
- menuLayoutRect.LayoutRect( windowRect, menuLineLayout );
- iItemHeight = menuLayoutRect.Rect().Height();
+ iItemHeight = CalculateItemHeight();
CheckCreateScrollerL();
CheckCreateExtensionL();
@@ -2789,16 +2260,13 @@
iExtension->StartCascadeMenuAppearTransition();
}
- if( AknLayoutUtils::PenEnabled() )
- {
- TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
- if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
- {
- fbLogicalType = ETouchFeedbackIncreasingPopUp;
- }
- iExtension->ImmediateFeedback( fbLogicalType,
+ TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
+ if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
+ {
+ fbLogicalType = ETouchFeedbackIncreasingPopUp;
+ }
+ iExtension->ImmediateFeedback( fbLogicalType,
ETouchFeedbackVibra );
- }
_AKNTRACE_FUNC_EXIT;
}
@@ -2824,11 +2292,6 @@
numItemsInPane++;
}
- TInt maxNumItemsInMenu = AknLayoutScalable_Avkon::
- list_single_pane_cp2_ParamLimits().LastRow() + 1;
- TInt maxNumItemsInSubMenu = AknLayoutScalable_Avkon::
- list_single_popup_submenu_pane_ParamLimits().LastRow() + 1;
-
TInt maxItemsInView = NumberOfItemsThatFitInView();
if (iExtension && iExtension->iSct)
@@ -2866,12 +2329,6 @@
iExtension->iPressedDown = EFalse;
iExtension->SetOffset( 0 );
- iExtension->iHasIcon = MenuHasIcon();
-
- if ( iExtension->iTransitionsOn )
- {
- CAknTransitionUtils::SetAllParents( this );
- }
const TSize screenSize( iEikonEnv->EikAppUi()->ApplicationRect().Size() );
@@ -2892,11 +2349,7 @@
SetDefaultHighlight();
}
- TRect rect( CalculateSizeAndPosition() );
- TPoint newPos( rect.iTl );
- TSize menuSize( rect.Size() );
-
- SetExtent( newPos, menuSize );
+ SetRect( CalculateSizeAndPosition() );
// We need to set the background context when calling create for the
// first time. Otherwise iExtension->iBgContext would have tiny
@@ -2904,15 +2357,6 @@
// white.
UpdateBackgroundContext( Rect() );
- // The extent has been set. This is the first safe point in code to
- // construct animations (because before this highlight related layout code
- // will produce invalid results
- if( iExtension )
- {
- // Creates animation only if it does not exist
- iExtension->CreateAnimation();
- }
-
// Initialize physics engine
TRAP_IGNORE ( iExtension->InitPhysicsL() );
@@ -2967,8 +2411,6 @@
TAknsItemID frameIID;
TAknsItemID frameCenterIID;
- TRect backgroundRect( iExtension->GetBackgroundRect( aWindowRect ) );
-
if( iOwner ) //for sub menu
{
topLeft.LayoutRect( aWindowRect, SkinLayout::Submenu_skin_placing_Line_2() );
@@ -2978,8 +2420,8 @@
}
else
{
- topLeft.LayoutRect( backgroundRect, SkinLayout::Popup_windows_skin_placing__frame_general__Line_2() );
- bottomRight.LayoutRect( backgroundRect, SkinLayout::Popup_windows_skin_placing__frame_general__Line_5() );
+ topLeft.LayoutRect( aWindowRect, SkinLayout::Popup_windows_skin_placing__frame_general__Line_2() );
+ bottomRight.LayoutRect( aWindowRect, SkinLayout::Popup_windows_skin_placing__frame_general__Line_5() );
frameIID = KAknsIIDQsnFrPopup;
frameCenterIID = KAknsIIDQsnFrPopupCenterMenu;
}
@@ -3040,16 +2482,7 @@
_AKNTRACE( "previousSelectedItem = %d", previousSelectedItem );
ActivateGc();
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- MAknListBoxTfxInternal *transApi = CAknListLoader::TfxApiInternal( iExtension->iGc );
- if ( transApi )
- {
- iExtension->iGc->Activate( *DrawableWindow() );
- }
- CWindowGc& gc = transApi ? *iExtension->iGc : SystemGc();
-#else
CWindowGc& gc = SystemGc();
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
PrepareGcForDrawingItems( gc );
// Scrollers top item index must be updated first because setting selected
@@ -3086,7 +2519,10 @@
if ( previousTopItem == topItem && aNewSelectedItem >= 0 )
{
// then only previuosly and currently selected items should be redrawn
- DrawItem( gc, previousSelectedItem, ERemoveHighlight );
+ if ( iExtension->iHighlightedItem != KErrNotFound )
+ {
+ DrawItem( gc, previousSelectedItem, ERemoveHighlight );
+ }
if ( !iExtension->iSctHighlighted )
{
@@ -3095,12 +2531,14 @@
}
else
{
- TBool skipHighlight = EFalse;
+ /*TBool skipHighlight = EFalse;
+
if (iExtension && iExtension->iSct && aNewSelectedItem == 0 &&
previousSelectedItem > 1)
{
skipHighlight = ETrue;
}
+
for( TInt i = topItem; i<bottomItem; i++ )
{
if( i == aNewSelectedItem && !skipHighlight)
@@ -3111,22 +2549,15 @@
{
DrawItem( gc, i, ERemoveHighlight );
}
- }
- }
-
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( transApi )
- {
- iExtension->iGc->Deactivate();
- }
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
+ }*/
+
+ // update the whole menu area
+ iExtension->ViewPositionChanged( iExtension->iViewPosition );
+// UpdateScrollBarThumbs();
+ }
+
DeactivateGc();
-
- UpdateScrollBarThumbs();
- // Updating view position here prevents some flickering
- iExtension->ViewPositionChanged( iExtension->iViewPosition );
-
_AKNTRACE_FUNC_EXIT;
}
@@ -3136,177 +2567,15 @@
//
void CEikMenuPane::PrepareGcForDrawingItems(CGraphicsContext& aGc) const
{
-
// BIDI
/*
* get the fonts from the LAF!
* Do we need to get them here? - nope - moved to DrawItem()
*/
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- MAknListBoxTfxInternal* transApi = CAknListLoader::TfxApiInternal( iExtension->iGc );
- if ( transApi )
- {
- transApi->StartDrawing( MAknListBoxTfxInternal::EListNotSpecified );
- }
-#endif
-
- aGc.SetPenColor(iEikonEnv->ControlColor( EColorMenuPaneText, *this) );
-#if defined(MENU_TEXTURED_BACKGROUND)
- iEikonEnv->SetTexturedBrush( aGc );
-#else
+ aGc.SetPenColor( iEikonEnv->ControlColor( EColorMenuPaneText, *this) );
aGc.SetBrushStyle( CGraphicsContext::ESolidBrush );
aGc.SetBrushColor( iEikonEnv->ControlColor( EColorMenuPaneBackground,*this ) );
-#endif
-
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( transApi )
- {
- transApi->StopDrawing();
- }
-#endif
- }
-
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
-/**
- * Iterate through the visible items in a menu and calculate minimum
- * item margins that dont need drawing.
- */
-void CEikMenuPaneExtension::CalcItemSize( MAknListBoxTfxInternal* transApi ) const
- {
- if ( transApi && iControl->iItemArray && iControl->iItemArray->Count() )
- {
- TRect marginRect(TRect::EUninitialized);
- const TInt index = 0;
-
- // Specifies whether the text should be moved to give some space for icon.
- TInt hasIcon = iControl->MenuHasIcon() ? 1 : 0;
-
- TAknWindowLineLayout menuPane( AKN_LAYOUT_WINDOW_list_menu_pane( 0 , 0 ) );
- TAknWindowLineLayout singleMenuPane(
- AKN_LAYOUT_WINDOW_list_single_popup_menu_pane( index ) );
- TAknTextLineLayout menuTextLayout(
- AKN_LAYOUT_TEXT_List_pane_texts__menu_single__Line_1(0) );
-
- TAknLayoutRect menuPaneRect;
- TAknLayoutRect singleMenuPaneRect;
- TAknLayoutText textRect;
-
- TBool hasCascade = EFalse;
- TBool hasNonCascade = EFalse;
-
- // number of items in the whole menu
- for(TInt i = 0; i < iControl->iItemArray->Count(); i++)
- {
- CEikMenuPaneItem* item = (*iControl->iItemArray)[i];
-
- // true if a cascade symbol must be drawn (main menu only)
- TBool cascade = item->iData.iCascadeId != 0;
-
- if ( cascade )
- {
- if ( hasCascade )
- {
- if ( hasNonCascade )
- {
- break;
- }
- continue;
- }
- hasCascade = ETrue;
- }
- else
- {
- if ( hasNonCascade )
- {
- if ( hasCascade )
- {
- break;
- }
- continue;
- }
- hasNonCascade = ETrue;
- }
-
- if ( !iControl->iOwner )
- {
- TAknWindowLineLayout listScrollPaneLayout(
- AknLayoutScalable_Avkon::listscroll_menu_pane(0).LayoutLine() );
- AdjustPopupLayoutData( listScrollPaneLayout );
- TAknLayoutRect listScrollPaneRect;
- listScrollPaneRect.LayoutRect( iControl->Rect(), listScrollPaneLayout );
-
- menuPane = AknLayoutScalable_Avkon::list_menu_pane( 0 ).LayoutLine();
- menuPaneRect.LayoutRect( listScrollPaneRect.Rect(), menuPane );
-
- singleMenuPane = AknLayoutScalable_Avkon::list_single_pane_cp2( index ).LayoutLine();
- singleMenuPaneRect.LayoutRect( menuPaneRect.Rect(), singleMenuPane );
-
- menuTextLayout = AknLayoutScalable_Avkon::list_single_pane_t1_cp2( cascade ? 3 : 0 ).LayoutLine();
- }
- else // Submenu
- {
- TBool hasDoubleSpanScrollBar = EFalse;
- if ( iControl->iOwner && iControl->iSBFrame &&
- iControl->iSBFrame->VScrollBarVisibility() )
- {
- hasDoubleSpanScrollBar = ETrue;
- }
- TAknWindowLineLayout listScrollPaneLayout( AknLayoutScalable_Avkon::listscroll_popup_sub_pane().LayoutLine() );
- TAknLayoutRect listScrollPaneRect;
- listScrollPaneRect.LayoutRect( iControl->Rect(), listScrollPaneLayout );
-
- menuPane = AknLayoutScalable_Avkon::list_submenu_pane( !hasDoubleSpanScrollBar ).LayoutLine();
- menuPaneRect.LayoutRect( listScrollPaneRect.Rect(), menuPane );
-
- singleMenuPane = AknLayoutScalable_Avkon::list_single_popup_submenu_pane( index ).LayoutLine();
- singleMenuPaneRect.LayoutRect( menuPaneRect.Rect(), singleMenuPane );
-
- menuTextLayout = TAknTextLineLayout( AknLayoutScalable_Avkon::list_single_popup_submenu_pane_t1( hasIcon ).LayoutLine() );
- }
-
- textRect.LayoutText( singleMenuPaneRect.Rect(), menuTextLayout );
- if (marginRect == TRect::EUninitialized)
- {
- marginRect = textRect.TextRect();
- }
- else
- {
- marginRect.BoundingRect(textRect.TextRect());
- }
-
- if ( cascade )
- {
- TAknWindowLineLayout elementCascade( AknLayoutScalable_Avkon::list_single_pane_cp2_g3().LayoutLine());
- TAknLayoutRect cascadeRect;
- cascadeRect.LayoutRect( singleMenuPaneRect.Rect(), elementCascade );
- marginRect.BoundingRect(cascadeRect.Rect());
- }
- else
- {
- TAknLayoutRect activeApplicationsIconRect;
- activeApplicationsIconRect.LayoutRect( singleMenuPaneRect.Rect(),
- AknLayoutScalable_Avkon::list_single_pane_g1_cp2(0).LayoutLine() );
- marginRect.BoundingRect(activeApplicationsIconRect.Rect());
- }
- }
-
- if ( hasIcon )
- {
- TAknLayoutRect iconLayoutRect;
- iconLayoutRect.LayoutRect( singleMenuPaneRect.Rect(),
- AknLayoutScalable_Avkon::list_single_popup_submenu_pane_g1().LayoutLine() );
- marginRect.BoundingRect(iconLayoutRect.Rect());
- }
-
- //send margins to tfx
- TPoint tl ( marginRect.iTl - menuPaneRect.Rect().iTl );
- transApi->SetPosition( MAknListBoxTfxInternal::EListTLMargin, tl );
-
- TPoint br( singleMenuPaneRect.Rect().Size().AsPoint() - marginRect.iBr + menuPaneRect.Rect().iTl );
- transApi->SetPosition( MAknListBoxTfxInternal::EListBRMargin, br );
- }
- }
-#endif
+ }
// ---------------------------------------------------------------------------
@@ -3316,28 +2585,9 @@
void CEikMenuPane::DrawItem( TInt aItem, THighlightType aHighlight ) const
{
ActivateGc();
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- MAknListBoxTfxInternal* transApi =
- CAknListLoader::TfxApiInternal( iExtension->iGc );
-
- if ( transApi )
- {
- iExtension->iGc->Activate( *DrawableWindow() );
- }
-
- CWindowGc& gc = transApi ? *iExtension->iGc : SystemGc();
-#else
CWindowGc& gc = SystemGc();
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
PrepareGcForDrawingItems( gc );
DrawItem( gc, aItem, aHighlight );
-
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( transApi )
- {
- iExtension->iGc->Deactivate();
- }
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
DeactivateGc();
}
@@ -3363,14 +2613,6 @@
return;
}
- // seem to have window owning control in correct place
- TRect windowRect = Rect();
-
- if ( !iOwner )
- {
- windowRect.iBr.iY -= ( iExtension->iCba->Rect().Height() );
- }
-
CEikMenuPaneItem* item = (*iItemArray)[aItem];
// Max visible number of items in menu / submenu
TInt maxNumberOfItems = NumberOfItemsThatFitInView();
@@ -3404,12 +2646,15 @@
index += itemLeftInBottom;
}
- TBool drawPartialItem(EFalse);
+ TBool drawSeparator = !( ( index + topIndex ) == numItemsInArray - 1 );
+ TBool drawPartialItem = EFalse;
+
if ( index == maxNumberOfItems )
{
// We have partial items to draw because of panning so there
// is one more item to draw than normally.
drawPartialItem = ETrue;
+
// There is no layout data for the extra item, so we used the one
// above it.
--index;
@@ -3421,58 +2666,32 @@
return; // only interested in drawing visible items
}
- // Collect all of the information from the Layout DLL. Initialise these
- // variables with DUMMY data. Then replace it with menu/submenu data.
- TAknWindowLineLayout menuPane( AKN_LAYOUT_WINDOW_list_menu_pane( 0 , 0 ) );
- TAknWindowLineLayout singleMenuPane(
- AKN_LAYOUT_WINDOW_list_single_popup_menu_pane( index ) );
- TAknTextLineLayout menuTextLayout(
- AKN_LAYOUT_TEXT_List_pane_texts__menu_single__Line_1(0) );
- TAknLayoutRect menuPaneRect;
+ TAknTextLineLayout menuTextLayout;
TAknLayoutRect singleMenuPaneRect;
- if ( !iOwner )
- {
- TAknWindowLineLayout listScrollPaneLayout(
- AknLayoutScalable_Avkon::listscroll_menu_pane(0).LayoutLine() );
- if ( iExtension )
- {
- iExtension->AdjustPopupLayoutData( listScrollPaneLayout );
- }
- TAknLayoutRect listScrollPaneRect;
- listScrollPaneRect.LayoutRect( windowRect, listScrollPaneLayout );
-
- menuPane = AknLayoutScalable_Avkon::list_menu_pane( 0 ).LayoutLine();
- menuPaneRect.LayoutRect( listScrollPaneRect.Rect(), menuPane );
-
- singleMenuPane = AknLayoutScalable_Avkon::list_single_pane_cp2( index ).LayoutLine();
- singleMenuPaneRect.LayoutRect( menuPaneRect.Rect(), singleMenuPane );
-
- menuTextLayout = AknLayoutScalable_Avkon::list_single_pane_t1_cp2( cascade ? 3 : 0 ).LayoutLine();
- }
- else // Submenu
- {
- TBool hasDoubleSpanScrollBar = EFalse;
- if ( iSBFrame && iSBFrame->VScrollBarVisibility() )
- {
- hasDoubleSpanScrollBar = ETrue;
- }
-
- TAknWindowLineLayout listScrollPaneLayout( AknLayoutScalable_Avkon::listscroll_popup_sub_pane().LayoutLine() );
- TAknLayoutRect listScrollPaneRect;
- listScrollPaneRect.LayoutRect( windowRect, listScrollPaneLayout );
-
- menuPane = AknLayoutScalable_Avkon::list_submenu_pane( !hasDoubleSpanScrollBar ).LayoutLine();
- menuPaneRect.LayoutRect( listScrollPaneRect.Rect(), menuPane );
-
- singleMenuPane = AknLayoutScalable_Avkon::list_single_popup_submenu_pane( index ).LayoutLine();
- singleMenuPaneRect.LayoutRect( menuPaneRect.Rect(), singleMenuPane );
-
- menuTextLayout = TAknTextLineLayout( AknLayoutScalable_Avkon::list_single_popup_submenu_pane_t1( 0 ).LayoutLine() );
-
+ if ( !iOwner ) // main menu
+ {
+ singleMenuPaneRect.LayoutRect( iExtension->iItemAreaRect,
+ AknLayoutScalable_Avkon::list_single_pane_cp2( index ).LayoutLine() );
+ menuTextLayout =
+ AknLayoutScalable_Avkon::list_single_pane_t1_cp2( cascade ? 1 : 0 ).LayoutLine();
+ }
+ else // submenu
+ {
+ singleMenuPaneRect.LayoutRect( iExtension->iItemAreaRect,
+ AknLayoutScalable_Avkon::list_single_popup_submenu_pane( index ).LayoutLine() );
+
if ( hasIcon )
{
- menuTextLayout = TAknTextLineLayout( AknLayoutScalable_Avkon::list_single_popup_submenu_pane_t1( 1 ).LayoutLine() );
+ menuTextLayout =
+ TAknTextLineLayout(
+ AknLayoutScalable_Avkon::list_single_popup_submenu_pane_t1( 1 ).LayoutLine() );
+ }
+ else
+ {
+ menuTextLayout =
+ TAknTextLineLayout(
+ AknLayoutScalable_Avkon::list_single_popup_submenu_pane_t1( 0 ).LayoutLine() );
}
}
@@ -3492,18 +2711,12 @@
RWindow& window = Window();
- if ( &window && window.GetDrawRect() == TRect::EUninitialized )
- {
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- MAknListBoxTfxInternal* transApi =
- CAknListLoader::TfxApiInternal( &aGc );
- drawingInitiated = transApi && !transApi->EffectsDisabled();
-#else
+ if ( &window && window.GetDrawRect() == TRect::EUninitialized )
+ {
drawingInitiated = EFalse;
-#endif
- }
-
- if ( !drawingInitiated )
+ }
+
+ if ( !drawingInitiated && !iExtension->iFullRedraw )
{
window.Invalidate( itemRect );
window.BeginRedraw( itemRect );
@@ -3516,136 +2729,70 @@
cc = iExtension->iBgContext;
}
TBool background( ETrue );
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- MAknListBoxTfxInternal *transApi = CAknListLoader::TfxApiInternal( &aGc );
- if ( transApi && !transApi->EffectsDisabled() )
- {
- iExtension->iGc->Activate( *DrawableWindow() );
- }
-#endif
-
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( !transApi || transApi->EffectsDisabled() )
- {
-#endif
+
+ aGc.SetBrushStyle( CGraphicsContext::ESolidBrush );
+ aGc.SetBrushColor( singleMenuPaneRect.Color() );
+
+ // there can be partial items, so clip drawing on menu pane's item area
+ aGc.SetClippingRect( iExtension->iItemAreaRect );
+
+ if (!iExtension->iFullRedraw)
+ {
+ background = AknsDrawUtils::Background(
+ skin, cc, this, aGc, itemRect,
+ KAknsDrawParamNoClearUnderImage );
+ }
+
+ if ( !background )
+ {
aGc.SetBrushStyle( CGraphicsContext::ESolidBrush );
- aGc.SetBrushColor( singleMenuPaneRect.Color() );
-
- if(!iExtension->iFullRedraw)
- {
- background = AknsDrawUtils::Background(
- skin, cc, this, aGc, itemRect,
- KAknsDrawParamNoClearUnderImage );
- }
-
- if( !background )
- {
- aGc.SetBrushStyle( CGraphicsContext::ESolidBrush );
- aGc.SetPenStyle( CGraphicsContext::ENullPen );
- aGc.SetPenColor( singleMenuPaneRect.Color() );
- aGc.SetBrushColor( singleMenuPaneRect.Color() );
- aGc.DrawRect( itemRect );
- }
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- }
-#endif
+ aGc.SetPenStyle( CGraphicsContext::ENullPen );
+ aGc.SetPenColor( singleMenuPaneRect.Color() );
+ aGc.SetBrushColor( singleMenuPaneRect.Color() );
+ aGc.DrawRect( itemRect );
+ }
if ( !iExtension->HighlightEnabled() )
{
aHighlight = ENoHighlight;
}
-
+
switch ( aHighlight )
{
case EDrawHighlight :
{
if ( !iExtension->iSctHighlighted )
{
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( transApi )
- {
- // This will remove the old bitmap
- transApi->Invalidate( MAknListBoxTfxInternal::EListHighlight );
-
- transApi->BeginRedraw( MAknListBoxTfxInternal::EListHighlight,
- itemRect );
- transApi->StartDrawing( MAknListBoxTfxInternal::EListHighlight );
- }
-#endif
-
- // Partial items, so prevent drawing over the edge of menu pane
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( !transApi || ( transApi && transApi->EffectsDisabled() ) )
- {
- aGc.SetClippingRect(menuPaneRect.Rect());
- }
-#else
- aGc.SetClippingRect(menuPaneRect.Rect());
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
-
- TBool drawOk = EFalse;
- if( iExtension->iAnimation ) // Draw animated highlight
- {
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( transApi && transApi->VerifyKml() == KErrNone )
- {
- Extension()->UseNoAnimation();
- }
- else
- {
-#endif
- TAknLayoutRect highlightTopLeft;
- TAknLayoutRect highlightBottomRight;
-
- highlightTopLeft.LayoutRect( itemRect,
- SkinLayout::List_highlight_skin_placing__popup_windows__Line_2() );
- highlightBottomRight.LayoutRect( itemRect,
- SkinLayout::List_highlight_skin_placing__popup_windows__Line_5() );
-
- TRect outerRect( highlightTopLeft.Rect().iTl, highlightBottomRight.Rect().iBr );
-
- drawOk = iExtension->iAnimation->Render( aGc, outerRect );
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- }
-#endif
- }
-
- if( !drawOk )
- {
- // Animated highlight was not available, use normal skinned
- // rendering.
-
- // Because of transparency, background must be drawn here as well
- // (as frame may be see-through)
- aGc.SetBrushStyle( CGraphicsContext::ESolidBrush );
- aGc.SetBrushColor( singleMenuPaneRect.Color() );
-
- AknsDrawUtils::Background(
- skin, cc, this, aGc, itemRect,
- KAknsDrawParamNoClearUnderImage );
-
- TAknLayoutRect highlightTopLeft;
- TAknLayoutRect highlightBottomRight;
-
- highlightTopLeft.LayoutRect(itemRect,
- SkinLayout::List_highlight_skin_placing__popup_windows__Line_2() );
- highlightBottomRight.LayoutRect(itemRect,
- SkinLayout::List_highlight_skin_placing__popup_windows__Line_5() );
- TRect outerRect( highlightTopLeft.Rect().iTl, highlightBottomRight.Rect().iBr );
- TRect innerRect( highlightTopLeft.Rect().iBr, highlightBottomRight.Rect().iTl );
-
- drawOk = AknsDrawUtils::DrawFrame( skin,
- aGc,
- outerRect,
- innerRect,
- KAknsIIDQsnFrList,
- KAknsIIDDefault );
-
- }
-
- // Both animated highlight and normal highlight drawing have
- // failed.
- if( !drawOk )
+ iExtension->iHighlightedItem = aItem;
+
+ // Because of transparency, background must be drawn here as well
+ // (as frame may be see-through)
+ aGc.SetBrushStyle( CGraphicsContext::ESolidBrush );
+ aGc.SetBrushColor( singleMenuPaneRect.Color() );
+
+ AknsDrawUtils::Background(
+ skin, cc, this, aGc, itemRect,
+ KAknsDrawParamNoClearUnderImage );
+
+ TAknLayoutRect highlightTopLeft;
+ TAknLayoutRect highlightBottomRight;
+
+ highlightTopLeft.LayoutRect(itemRect,
+ SkinLayout::List_highlight_skin_placing__popup_windows__Line_2() );
+ highlightBottomRight.LayoutRect(itemRect,
+ SkinLayout::List_highlight_skin_placing__popup_windows__Line_5() );
+ TRect outerRect( highlightTopLeft.Rect().iTl, highlightBottomRight.Rect().iBr );
+ TRect innerRect( highlightTopLeft.Rect().iBr, highlightBottomRight.Rect().iTl );
+
+ TBool drawOk = AknsDrawUtils::DrawFrame( skin,
+ aGc,
+ outerRect,
+ innerRect,
+ KAknsIIDQsnFrList,
+ KAknsIIDDefault );
+
+ // skinned highlight drawing has failed
+ if ( !drawOk )
{
TAknLayoutRect shadowRect;
TAknLayoutRect highlightRect;
@@ -3657,41 +2804,18 @@
shadowRect.DrawRect( aGc );
highlightRect.DrawRect( aGc );
}
-
- aGc.CancelClippingRect();
-
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( transApi )
- {
- transApi->StopDrawing();
- transApi->EndRedraw( MAknListBoxTfxInternal::EListHighlight );
- }
-#endif
}
break;
}
case ERemoveHighlight:
case ENoHighlight:
+ if ( iExtension->iHighlightedItem == aItem )
+ {
+ iExtension->iHighlightedItem = KErrNotFound;
+ }
default:
break;
}
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( transApi )
- {
- transApi->BeginRedraw( MAknListBoxTfxInternal::EListItem, itemRect, aItem );
- transApi->StartDrawing( MAknListBoxTfxInternal::EListItem );
- }
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
-
- // Partial items, so prevent drawing over the edge of menu pane
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( !transApi || ( transApi && transApi->EffectsDisabled() ) )
- {
- aGc.SetClippingRect(menuPaneRect.Rect());
- }
-#else
- aGc.SetClippingRect(menuPaneRect.Rect());
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
// Cascade
if ( cascade )
@@ -3786,8 +2910,10 @@
}
// Text
- TAknLayoutText textRect( iExtension->GetMenuItemTextLayout( itemRect, cascade ) );
+ TAknLayoutText textRect;
+ textRect.LayoutText( itemRect, menuTextLayout );
TRgb textColor = textRect.Color();
+
if ( aHighlight == EDrawHighlight ) // highlighted text
{
AknsUtils::GetCachedColor( skin, textColor, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG10 );
@@ -3819,7 +2945,6 @@
}
aGc.SetBrushStyle( CGraphicsContext::ENullBrush );
aGc.SetPenColor( textColor );
- aGc.UseFont( textRect.Font() );
const CFont* font = textRect.Font();
@@ -3846,33 +2971,26 @@
iExtension->iCascadeDRect.SetRect( cascRect.iTl, cascRect.iBr );
}
- if(iExtension->iIsPenEnable)
- {
- TAknLayoutRect highlightRect;
- highlightRect.LayoutRect( itemRect,
- AKN_LAYOUT_WINDOW_Highlight_graphics__various__Line_2( itemRect ) );
-
- // store the calculated y-position to the menu item,
- // so that it can be used in HandlePointerEventL()
- item->iPos = highlightRect.Rect().iTl.iY;
- aGc.DiscardFont();
- }
-
- if ( !drawingInitiated )
+ TAknLayoutRect highlightRect;
+ highlightRect.LayoutRect( itemRect,
+ AKN_LAYOUT_WINDOW_Highlight_graphics__various__Line_2( itemRect ) );
+
+ // store the calculated y-position to the menu item,
+ // so that it can be used in HandlePointerEventL()
+ item->iPos = highlightRect.Rect().iTl.iY;
+
+ // don't draw separator line for the last item
+ if ( drawSeparator )
+ {
+ AknListUtils::DrawSeparator( aGc, itemRect, textColor );
+ }
+
+ if ( !drawingInitiated && !iExtension->iFullRedraw )
{
Window().EndRedraw();
}
aGc.CancelClippingRect();
-
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( transApi && !transApi->EffectsDisabled() )
- {
- transApi->StopDrawing();
- transApi->EndRedraw( MAknListBoxTfxInternal::EListItem, aItem );
- iExtension->iGc->Deactivate();
- }
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
}
@@ -3880,36 +2998,8 @@
// CEikMenuPane::Draw
// -----------------------------------------------------------------------------
//
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
EXPORT_C void CEikMenuPane::Draw( const TRect& aRect ) const
{
- CWindowGc& gc = ( iExtension && iExtension->iGc ) ?
- *iExtension->iGc : SystemGc();
- MAknListBoxTfxInternal *transApi = CAknListLoader::TfxApiInternal( &gc );
-
- if ( transApi )
- {
- iExtension->iGc->Activate( *DrawableWindow() );
-
- if ( !transApi->EffectsDisabled() )
- {
- if ( iExtension->iScrollBarRect.iTl.iX <= aRect.iTl.iX &&
- iExtension->iScrollBarRect.iBr.iX >= aRect.iBr.iX )
- {
- transApi->BeginRedraw( MAknListBoxTfxInternal::EListUpdateRect, aRect );
- iExtension->iGc->Deactivate();
- return;
- }
-
- iExtension->CalcItemSize( transApi );
- }
- }
-#else
-EXPORT_C void CEikMenuPane::Draw(const TRect& /*aRect*/) const
- {
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
-
- TRect windowRect( Rect() );
MAknsSkinInstance* skin = AknsUtils::SkinInstance();
MAknsControlContext* cc = NULL;
@@ -3918,37 +3008,11 @@
cc = iExtension->iBgContext;
}
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( transApi )
- {
- transApi->SetListType( MAknListBoxTfxInternal::EListBoxTypeMenuPane );
- transApi->BeginRedraw( MAknListBoxTfxInternal::EListView, windowRect );
- }
-#else
CWindowGc& gc = SystemGc();
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
PrepareGcForDrawingItems( gc );
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( transApi )
- {
- transApi->StartDrawing( MAknListBoxTfxInternal::EListView );
- }
-#endif
-
- if ( !IsCascadeMenuPane() )
- {
- CFbsBitmap* cbaExtension = AknsUtils::GetCachedBitmap( skin, KAknsIIDQsnBgSlicePopup );
- if ( cbaExtension )
- {
- TAknLayoutRect sliceRect;
- sliceRect.LayoutRect( windowRect, SkinLayout::Popup_windows_skin_placing__background_slice__Line_2() );
- AknIconUtils::SetSize( cbaExtension, sliceRect.Rect().Size() );
- gc.BitBlt( TPoint( windowRect.iTl.iX, windowRect.iBr.iY-cbaExtension->SizeInPixels().iHeight ), cbaExtension );
- windowRect.iBr.iY -=2; // two used as margin when rect layouts were done
- }
- }
TInt count=0;
+
if( iItemArray )
{
count=iItemArray->Count();
@@ -3957,97 +3021,37 @@
// Give the topmost menu item's rect to SCT if needed.
if ( iExtension->iSct )
{
- TAknLayoutRect listScrollPaneRect;
- TAknLayoutRect menuPaneRect;
- TAknLayoutRect singleMenuPaneRect;
-
- TAknWindowLineLayout listScrollPaneLayout(
- AknLayoutScalable_Avkon::listscroll_menu_pane(0).LayoutLine() );
- if ( iExtension )
- {
- iExtension->AdjustPopupLayoutData( listScrollPaneLayout );
- }
- listScrollPaneRect.LayoutRect( windowRect, listScrollPaneLayout );
- menuPaneRect.LayoutRect( listScrollPaneRect.Rect(),
- AknLayoutScalable_Avkon::list_menu_pane( 0 ).LayoutLine() );
- singleMenuPaneRect.LayoutRect( menuPaneRect.Rect(),
- AknLayoutScalable_Avkon::list_single_pane_cp2( 0 ).LayoutLine() );
- // Give the rect of the first menu item to SCT.
- iExtension->iSct->SetMenuSctRect( singleMenuPaneRect.Rect() );
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if( transApi )
- {
- iExtension->iSctRect = singleMenuPaneRect.Rect();
- TAknLayoutRect cellLayRect;
- cellLayRect.LayoutRect( iExtension->iSctRect,
- AknLayoutScalable_Avkon::cell_graphic_popup_pane( 0, 0, 0 ) );
- iExtension->iSctRect.iTl.iX -= 1;
- iExtension->iSctRect.iTl.iY -= 1;
- iExtension->iSctRect.iBr.iX += 3;
- transApi->ResetNonDrawingRects();
- transApi->AddNonDrawingRect( iExtension->iScrollBarRect );
- transApi->AddNonDrawingRect( iExtension->iSctRect );
- }
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
- }
-
- if ( iExtension->iSct )
- {
+ iExtension->iSct->SetMenuSctRect( ItemRect( 0 ) );
+
TRegionFix<4> region;
- region.AddRect( Rect() );
+ region.AddRect( aRect );
region.SubRect( iExtension->iSct->Rect() );
gc.SetClippingRegion( region );
}
- TRect backgroundRect( iOwner ? windowRect : iExtension->GetBackgroundRect( windowRect ) );
-
// The added flag removes the white bg for transparency
TBool frameDrawn = AknsDrawUtils::Background(
- skin, cc, this, gc, backgroundRect, KAknsDrawParamNoClearUnderImage );
-
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( transApi )
- {
- transApi->StopDrawing();
- }
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
-
- iExtension->iFullRedraw = ETrue;
-
- for ( TInt ii=0;ii<count;++ii )
- {
- if(!iExtension->iSctHighlighted && ii == iSelectedItem )
- DrawItem( gc, ii, EDrawHighlight);
- else
- DrawItem( gc, ii, ENoHighlight);
- }
-
- iExtension->iFullRedraw = EFalse;
+ skin, cc, this, gc, aRect, KAknsDrawParamNoClearUnderImage );
+
+ if ( aRect.Intersects( iExtension->iItemAreaRect ) )
+ {
+ iExtension->iFullRedraw = ETrue;
+
+ for ( TInt ii=0;ii<count;++ii )
+ {
+ if(!iExtension->iSctHighlighted && ii == iSelectedItem )
+ DrawItem( gc, ii, EDrawHighlight);
+ else
+ DrawItem( gc, ii, ENoHighlight);
+ }
+
+ iExtension->iFullRedraw = EFalse;
+ }
if ( iExtension->iSct )
{
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( transApi )
- {
- transApi->StartDrawing( MAknListBoxTfxInternal::EListNotSpecified );
- }
-#endif
gc.CancelClippingRegion();
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( transApi )
- {
- transApi->StopDrawing();
- }
-#endif
- }
-
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( transApi )
- {
- transApi->EndViewRedraw( aRect );
- iExtension->iGc->Deactivate();
- }
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
+ }
}
@@ -4121,7 +3125,6 @@
CEikMenuPane* menu = iOwner ? iOwner : this;
MCoeControlObserver* observer = menu->Observer();
-
if ( commandId != EAknCmdTaskSwapper )
{
_AKNTRACE( "commandId = %d", commandId );
@@ -4159,26 +3162,6 @@
{
_AKNTRACE_FUNC_ENTER;
_AKNTRACE( "aDrawNow = %d", aDrawNow );
- if( iExtension )
- {
- if ( IsFocused() )
- {
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- // Focus must be handled here, otherwise it will come to late
- MAknListBoxTfxInternal *transApi = CAknListLoader::TfxApiInternal( iExtension->iGc );
-
- if ( transApi )
- {
- transApi->HandleFocusChange( ETrue );
- }
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
- iExtension->FocusGained();
- }
- else // Not focused
- {
- iExtension->FocusLost();
- }
- }
if ( !iItemArray || iItemArray->Count() == 0 )
{
@@ -4370,74 +3353,52 @@
TInt itemAfterLastItem = loopScrolling ? 0 : max;
TInt itemAfterFirstItem = loopScrolling ? max : 0;
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- CWindowGc& gc = iExtension->iGc ? *iExtension->iGc : SystemGc();
- MAknListBoxTfxInternal* transApi = CAknListLoader::TfxApiInternal( &gc );
-#endif //RD_UI_TRANSITION_EFFECTS_LIST
-
- if(iExtension->iIsPenEnable)
- {
- _AKNTRACE( "[%s]", "iExtension->iIsPenEnable = TRUE" );
- // Scroll highlighted item so that it becomes visible,
- // if it is not visible before (scrolling with scroll bar
- // can cause highlighted item to go out of screen)
- TInt topItem = iScroller->TopItemIndex();
- TInt bottomItem = topItem + NumberOfItemsThatFitInView();
-
- if ( iExtension->Offset() < 0 )
- {
- // Extra bottom item when panning
- bottomItem++;
- }
-
- if( bottomItem > NumberOfItemsInPane() )
- {
- bottomItem = NumberOfItemsInPane();
- }
- _AKNTRACE( "topItem = %d,bottomItem = %d", topItem,bottomItem );
-
- if ( aType != EEventKeyDown && iSelectedItem != ENothingSelected &&
- !(iExtension->iSctHighlighted && topItem == 0) &&
- (iSelectedItem < topItem || iSelectedItem > bottomItem - 1) )
+ // Scroll highlighted item so that it becomes visible,
+ // if it is not visible before (scrolling with scroll bar
+ // can cause highlighted item to go out of screen)
+ TInt topItem = iScroller->TopItemIndex();
+ TInt bottomItem = topItem + NumberOfItemsThatFitInView();
+
+ if ( iExtension->Offset() < 0 )
+ {
+ // Extra bottom item when panning
+ bottomItem++;
+ }
+
+ if( bottomItem > NumberOfItemsInPane() )
+ {
+ bottomItem = NumberOfItemsInPane();
+ }
+ _AKNTRACE( "topItem = %d,bottomItem = %d", topItem,bottomItem );
+
+ if ( aType != EEventKeyDown && iSelectedItem != ENothingSelected &&
+ !(iExtension->iSctHighlighted && topItem == 0) &&
+ (iSelectedItem < topItem || iSelectedItem > bottomItem - 1) )
+ {
+ _AKNTRACE( "[%s]", "ScrollToMakeItemVisible(iSelectedItem);" );
+ ScrollToMakeItemVisible(iSelectedItem);
+
+ ActivateGc();
+ CWindowGc& gc = SystemGc();
+ PrepareGcForDrawingItems( gc );
+
+ // draw all items that are needed.
+ for( TInt i = 0; i < count; i++ )
{
- _AKNTRACE( "[%s]", "ScrollToMakeItemVisible(iSelectedItem);" );
- ScrollToMakeItemVisible(iSelectedItem);
-
- ActivateGc();
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( transApi )
+ if( i == iSelectedItem && !iExtension->iSctHighlighted)
{
- iExtension->iGc->Activate( *DrawableWindow() );
+ DrawItem( gc, i, EDrawHighlight );
}
-#else
- CWindowGc& gc = SystemGc();
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
- PrepareGcForDrawingItems( gc );
-
- // draw all items that are needed.
- for( TInt i = 0; i < count; i++ )
+ else
{
- if( i == iSelectedItem && !iExtension->iSctHighlighted)
- {
- DrawItem( gc, i, EDrawHighlight );
- }
- else
- {
- DrawItem( gc, i, ERemoveHighlight );
- }
+ DrawItem( gc, i, ERemoveHighlight );
}
-
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( transApi )
- {
- iExtension->iGc->Deactivate();
- }
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
- DeactivateGc();
- _AKNTRACE( "[%s]", "OfferKeyEventL return 9" );
- _AKNTRACE_FUNC_EXIT;
- return EKeyWasConsumed;
}
+
+ DeactivateGc();
+ _AKNTRACE( "[%s]", "OfferKeyEventL return 9" );
+ _AKNTRACE_FUNC_EXIT;
+ return EKeyWasConsumed;
}
if ( iSelectedItem != ENothingSelected || iExtension->iSctHighlighted )
@@ -4454,13 +3415,6 @@
// loop scrolling always used in options menus
case EKeyDownArrow:
_AKNTRACE( "[%s]", "OfferKeyEventL(EKeyDownArrow)" );
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( transApi )
- {
- transApi->SetMoveType(
- MAknListBoxTfxInternal::EListMoveDown );
- }
-#endif //RD_UI_TRANSITION_EFFECTS_LIST
if ( iExtension->iSctHighlighted && iExtension->iSct )
{
iExtension->iSctHighlighted = EFalse;
@@ -4486,13 +3440,6 @@
break;
case EKeyUpArrow:
_AKNTRACE( "[%s]", "OfferKeyEventL(EKeyUpArrow)" );
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( transApi )
- {
- transApi->SetMoveType(
- MAknListBoxTfxInternal::EListMoveUp );
- }
-#endif //RD_UI_TRANSITION_EFFECTS_LIST
if ( iExtension->iSct &&
iSelectedItem == 0 && !iExtension->iSctHighlighted )
{
@@ -4695,100 +3642,72 @@
TInt count( NumberOfItemsInPane() );
- if ( iExtension->iIsPenEnable )
- {
- // Scroll highlighted item so that it becomes visible
- // if it is not visible before (scrolling with scroll bar
- // can cause highlighted item to go out of screen).
- TInt topItem( iScroller->TopItemIndex() );
- TInt bottomItem( topItem + NumberOfItemsThatFitInView() );
- if ( bottomItem > count )
- {
- bottomItem = count;
- }
-
- if ( iExtension->Offset() < 0 &&
- ( iSelectedItem == topItem || iSelectedItem == bottomItem ) )
- {
- // Restoring offset with "simulated" ok key event.
- iExtension->RestoreOffset( EKeyOK );
- }
- else if ( iSelectedItem < topItem ||
- iSelectedItem > bottomItem - 1 )
+ // Scroll highlighted item so that it becomes visible
+ // if it is not visible before (scrolling with scroll bar
+ // can cause highlighted item to go out of screen).
+ TInt topItem( iScroller->TopItemIndex() );
+ TInt bottomItem( topItem + NumberOfItemsThatFitInView() );
+ if ( bottomItem > count )
+ {
+ bottomItem = count;
+ }
+
+ if ( iExtension->Offset() < 0 &&
+ ( iSelectedItem == topItem || iSelectedItem == bottomItem ) )
+ {
+ // Restoring offset with "simulated" ok key event.
+ iExtension->RestoreOffset( EKeyOK );
+ }
+ else if ( iSelectedItem < topItem ||
+ iSelectedItem > bottomItem - 1 )
+ {
+ if ( count > iSelectedItem )
{
- if ( count > iSelectedItem )
+ if ( iExtension->iSctHighlighted && iExtension->iSct )
{
- if ( iExtension->iSctHighlighted && iExtension->iSct )
+ TKeyEvent key;
+ key.iCode = EKeyOK;
+ key.iModifiers = 0;
+
+ TKeyResponse keyResponse( EKeyWasNotConsumed );
+ TEventCode type( EEventNull );
+ keyResponse = iExtension->iSct->OfferKeyEventL( key,
+ type );
+ if ( keyResponse == EKeyWasConsumed )
{
- TKeyEvent key;
- key.iCode = EKeyOK;
- key.iModifiers = 0;
-
- TKeyResponse keyResponse( EKeyWasNotConsumed );
- TEventCode type( EEventNull );
- keyResponse = iExtension->iSct->OfferKeyEventL( key,
- type );
- if ( keyResponse == EKeyWasConsumed )
- {
- ReportSelectionMadeL();
- }
- _AKNTRACE( "[%s]" "ActivateCurrentItemL return 2" );
- _AKNTRACE_FUNC_EXIT;
- return;
+ ReportSelectionMadeL();
}
+ _AKNTRACE( "[%s]" "ActivateCurrentItemL return 2" );
+ _AKNTRACE_FUNC_EXIT;
+ return;
}
-
- iExtension->isUpdateScrollDirectly = ETrue;
- ScrollToMakeItemVisible( iSelectedItem );
- iExtension->isUpdateScrollDirectly = EFalse;
-
- ActivateGc();
-
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
-
- MAknListBoxTfxInternal *transApi =
- CAknListLoader::TfxApiInternal( iExtension->iGc );
- if ( transApi )
+ }
+
+ iExtension->isUpdateScrollDirectly = ETrue;
+ ScrollToMakeItemVisible( iSelectedItem );
+ iExtension->isUpdateScrollDirectly = EFalse;
+
+ ActivateGc();
+ CWindowGc& gc = SystemGc();
+ PrepareGcForDrawingItems( gc );
+
+ // Draw all items that are needed.
+ for ( TInt i = 0; i < count; i++ )
+ {
+ if ( i == iSelectedItem && !iExtension->iSctHighlighted )
{
- iExtension->iGc->Activate( *DrawableWindow() );
+ DrawItem( gc, i, EDrawHighlight );
}
- CWindowGc& gc = transApi ? *iExtension->iGc : SystemGc();
-
-#else
-
- CWindowGc& gc = SystemGc();
-
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
-
- PrepareGcForDrawingItems( gc );
-
- // Draw all items that are needed.
- for ( TInt i = 0; i < count; i++ )
+ else
{
- if ( i == iSelectedItem && !iExtension->iSctHighlighted )
- {
- DrawItem( gc, i, EDrawHighlight );
- }
- else
- {
- DrawItem( gc, i, ERemoveHighlight );
- }
+ DrawItem( gc, i, ERemoveHighlight );
}
-
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
-
- if ( transApi )
- {
- iExtension->iGc->Deactivate();
- }
-
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
-
- DeactivateGc();
- _AKNTRACE( "[%s]" "ActivateCurrentItemL return 3" );
- _AKNTRACE_FUNC_EXIT;
- return;
}
+
+ DeactivateGc();
+ _AKNTRACE( "[%s]" "ActivateCurrentItemL return 3" );
+ _AKNTRACE_FUNC_EXIT;
+ return;
}
if ( iCascadeMenuPane )
@@ -4909,11 +3828,6 @@
//
EXPORT_C void CEikMenuPane::HandlePointerEventL( const TPointerEvent& aPointerEvent )
{
- if( !AknLayoutUtils::PenEnabled() )
- {
- return;
- }
-
_AKNTRACE_FUNC_ENTER;
if ( iOwner && !IsVisible() )
@@ -4949,16 +3863,13 @@
{
if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
{
- if( AknLayoutUtils::PenEnabled() )
+ if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
{
- if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
- {
- iExtension->ImmediateFeedback( ETouchFeedbackDecreasingPopUp );
- }
- else
- {
- iExtension->ImmediateFeedback( ETouchFeedbackPopUp );
- }
+ iExtension->ImmediateFeedback( ETouchFeedbackDecreasingPopUp );
+ }
+ else
+ {
+ iExtension->ImmediateFeedback( ETouchFeedbackPopUp );
}
iExtension->iShowCascadeTransition = ETrue;
CloseCascadeMenu();
@@ -5048,21 +3959,7 @@
// Get the option item's rect in Menu SCT
if ( iExtension->iSct )
{
- TAknLayoutRect menuPaneRect;
- TAknWindowLineLayout menuPane;
-
- TAknWindowLineLayout listScrollPaneLayout(
- AknLayoutScalable_Avkon::listscroll_menu_pane(0).LayoutLine() );
- if ( iExtension )
- {
- iExtension->AdjustPopupLayoutData( listScrollPaneLayout );
- }
- TAknLayoutRect listScrollPaneRect;
- listScrollPaneRect.LayoutRect( Rect(), listScrollPaneLayout );
-
- menuPane = AknLayoutScalable_Avkon::list_menu_pane( 0 ).LayoutLine();
- menuPaneRect.LayoutRect( listScrollPaneRect.Rect(), menuPane );
- menuSctRect = menuPaneRect.Rect();
+ menuSctRect = iExtension->iItemAreaRect;
}
TRect cascadeMenuRect(0,0,0,0);
@@ -5089,8 +3986,8 @@
// if submenu, then move it's rect coordinates to relative to parent.
if ( iCascadeMenuPane )
{
- TPoint subPos = iCascadeMenuPane->PositionRelativeToScreen();
- cascadeMenuRect = TRect(subPos-PositionRelativeToScreen(), iCascadeMenuPane->Size());
+ TPoint subPos = iCascadeMenuPane->Position();
+ cascadeMenuRect = TRect(subPos-Position(), iCascadeMenuPane->Size());
}
// Pointerevent in case we need to pass event from submenu to parent
@@ -5103,12 +4000,6 @@
iExtension->ResetPressedHighlight();
}
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- MAknListBoxTfxInternal *transApi = CAknListLoader::TfxApiInternal(
- iExtension->iGc );
- TBool effects = transApi && !transApi->EffectsDisabled();
-#endif
-
switch (aPointerEvent.iType )
{
case TPointerEvent::EButton1Up:
@@ -5308,16 +4199,13 @@
// if submenu, and clicked outside of it
if ( !cascadeMenuRect.Contains( aPointerEvent.iPosition ) )
{
- if( AknLayoutUtils::PenEnabled() )
- {
- if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
- {
- iExtension->ImmediateFeedback( ETouchFeedbackDecreasingPopUp );
- }
- else
- {
- iExtension->ImmediateFeedback( ETouchFeedbackPopUp );
- }
+ if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
+ {
+ iExtension->ImmediateFeedback( ETouchFeedbackDecreasingPopUp );
+ }
+ else
+ {
+ iExtension->ImmediateFeedback( ETouchFeedbackPopUp );
}
//Just close sub menu
iExtension->iShowCascadeTransition = ETrue;
@@ -5356,12 +4244,6 @@
iExtension->iSct->HighlightSctRow( iExtension->iSctHighlighted );
}
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( effects )
- {
- transApi->SetMoveType( MAknListBoxTfxInternal::EListTap );
- }
-#endif
iExtension->iPressedDown = ETrue;
// Start timer for pressed highlight
@@ -5382,12 +4264,7 @@
{
iExtension->iButtonDownItem = KErrNotFound;
}
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( effects )
- {
- transApi->Draw( Rect() );
- }
-#endif
+
// if new item has submenu, show it
if ( item->iData.iCascadeId )
{
@@ -5415,37 +4292,32 @@
}
else
{
- if ( iExtension->iIsPenEnable )
+ // For finger usability, extend to the right.
+ TRect innerToRightRect;
+ if ( AknLayoutUtils::LayoutMirrored() )
+ {
+ innerToRightRect = TRect( Rect().iTl, innerRect.iBr );
+ }
+ else
{
- // For finger usability, extend to the right.
- TRect innerToRightRect;
- if ( AknLayoutUtils::LayoutMirrored() )
+ innerToRightRect = TRect( innerRect.iTl, Rect().iBr );
+ }
+ // Keep opened
+ if ( innerToRightRect.Contains( aPointerEvent.iPosition ) )
+ {
+ break;
+ }
+
+ // clicked outside, then close menu case by case
+ if ( iCascadeMenuPane )
+ {
+ if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
{
- innerToRightRect = TRect( Rect().iTl, innerRect.iBr );
+ iExtension->ImmediateFeedback( ETouchFeedbackDecreasingPopUp );
}
else
{
- innerToRightRect = TRect( innerRect.iTl, Rect().iBr );
- }
- // Keep opened
- if ( innerToRightRect.Contains( aPointerEvent.iPosition ) )
- {
- break;
- }
- }
- // clicked outside, then close menu case by case
- if ( iCascadeMenuPane )
- {
- if( AknLayoutUtils::PenEnabled() )
- {
- if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
- {
- iExtension->ImmediateFeedback( ETouchFeedbackDecreasingPopUp );
- }
- else
- {
- iExtension->ImmediateFeedback( ETouchFeedbackPopUp );
- }
+ iExtension->ImmediateFeedback( ETouchFeedbackPopUp );
}
iExtension->iShowCascadeTransition = ETrue;
CloseCascadeMenu(); //Just close sub menu.
@@ -5494,15 +4366,6 @@
iExtension->iNextHighlightItem = KErrNotFound;
iExtension->iPanningActive = ETrue;
iExtension->EnableHighlight( EFalse );
-
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- MAknListBoxTfx* tfxApi = CAknListLoader::TfxApi( iExtension->iGc );
-
- if ( tfxApi )
- {
- tfxApi->EnableEffects( EFalse );
- }
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
}
if ( iExtension->iPanningActive )
@@ -5543,19 +4406,16 @@
&& !cascadeMenuRect.Contains(
aPointerEvent.iPosition ) )
{
- if ( AknLayoutUtils::PenEnabled() )
+ if ( CAknTransitionUtils::TransitionsEnabled(
+ AknTransEffect::EComponentTransitionsOff ) )
{
- if ( CAknTransitionUtils::TransitionsEnabled(
- AknTransEffect::EComponentTransitionsOff ) )
- {
- iExtension->ImmediateFeedback(
- ETouchFeedbackDecreasingPopUp );
- }
- else
- {
- iExtension->ImmediateFeedback(
- ETouchFeedbackPopUp );
- }
+ iExtension->ImmediateFeedback(
+ ETouchFeedbackDecreasingPopUp );
+ }
+ else
+ {
+ iExtension->ImmediateFeedback(
+ ETouchFeedbackPopUp );
}
iExtension->iShowCascadeTransition = ETrue;
CloseCascadeMenu();
@@ -5568,14 +4428,6 @@
if ( oldSelected != ii )
{
iExtension->iPressedDown = EFalse;
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( effects
- && !iExtension->iShowCascadeTransition )
- {
- transApi->SetMoveType(
- MAknListBoxTfxInternal::EListDrag );
- }
-#endif
}
TRect screenRect( TPoint( KMinTInt, KMinTInt ),
TPoint( KMaxTInt, KMaxTInt ) );
@@ -5818,9 +4670,6 @@
EXPORT_C void CEikMenuPane::SetSelectedItem( TInt aSelectedItem )
{
iSelectedItem = (aSelectedItem >= NumberOfItemsInPane() ) ? 0 : aSelectedItem;
-
- if( iExtension )
- iExtension->ChangeHighlightBackground();
}
// -----------------------------------------------------------------------------
@@ -5916,10 +4765,6 @@
void CEikMenuPane::HandleScrollEventL( CEikScrollBar* aScrollBar, TEikScrollEvent aEventType )
{
_AKNTRACE_FUNC_ENTER;
- if( !AknLayoutUtils::PenEnabled())
- {
- return;
- }
_AKNTRACE( "[%s]", "Stop physics engine");
iExtension->iPhysics->StopPhysics();
@@ -5967,16 +4812,9 @@
// Items that becomes topmost and downmost items
TInt newTopItem = 0;
-
// if update is not wanted, do nothing.
if ( update )
{
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- MAknListBoxTfxInternal* transApi = CAknListLoader::TfxApiInternal(
- iExtension->iGc );
- TBool effects = transApi && !transApi->EffectsDisabled();
-#endif
-
switch (aEventType)
{
case EEikScrollUp:
@@ -6038,17 +4876,7 @@
{
_AKNTRACE( "[%s]", "EEikScrollPageDown");
_AKNTRACE( "bottomItem = %d", bottomItem);
- // if last item is not visible
- if ( bottomItem < countOfItems)
- {
- // move menu to show one site down or then downmost items.
- newTopItem = (bottomItem <= (countOfItems - itemsThatFitToView)) ? (topItem + itemsThatFitToView) : (countOfItems - itemsThatFitToView);
- }
- else
- {
- update = EFalse;
- }
- _AKNTRACE( "newTopItem = %d", newTopItem);
+ update = ETrue;
_AKNTRACE( "update = %d", update);
}
break;
@@ -6056,77 +4884,35 @@
case EEikScrollThumbDragVert:
{
_AKNTRACE( "[%s]", "EEikScrollThumbDragVert");
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
-
- if ( effects )
- {
- MAknListBoxTfx* tfxApi = CAknListLoader::TfxApi( iExtension->iGc );
-
- if ( tfxApi )
- {
- tfxApi->EnableEffects( EFalse );
- effects = EFalse;
- }
- }
-#endif
// new thumb position
TInt thumb = aScrollBar->ThumbPosition();
_AKNTRACE( "thumb = %d", thumb);
-
- // did dragging cause scrolling
- if ( thumb != topItem )
- {
- newTopItem = thumb;
- }
- else
- {
- update = EFalse;
- }
- _AKNTRACE( "newTopItem = %d", newTopItem);
+ update = ETrue;
_AKNTRACE( "update = %d", update);
}
break;
- case EEikScrollThumbReleaseVert:
- {
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- MAknListBoxTfx* tfxApi = CAknListLoader::TfxApi( iExtension->iGc );
-
- if ( tfxApi )
- {
- tfxApi->EnableEffects( ETrue );
- }
-#endif
- }
- return;
-
default:
update = EFalse;
break;
}
-
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( effects )
- {
- transApi->SetMoveType( newTopItem > topItem ?
- MAknListBoxTfxInternal::EListScrollDown :
- MAknListBoxTfxInternal::EListScrollUp );
- }
-#endif
-
+ // if topItem changed, then draw menu again.
+ if ( newTopItem != topItem || update )
+ {
+ iExtension->iListTopIndex = aScrollBar->ThumbPosition();
+ TPoint newPosition( iExtension->iViewPosition.iX,
+ iExtension->iListTopIndex + iExtension->iViewHeight / 2 );
- iExtension->iListTopIndex = aScrollBar->ThumbPosition();
-
- iExtension->iViewPosition.iY =
- iExtension->iListTopIndex + iExtension->iViewHeight / 2;
-
- iExtension->ViewPositionChanged( iExtension->iViewPosition );
-
+ iExtension->iFlags.Set( CEikMenuPaneExtension::ESkipScrollbarUpdate );
+ iExtension->ViewPositionChanged( newPosition );
+ iExtension->iFlags.Clear( CEikMenuPaneExtension::ESkipScrollbarUpdate );
+ }
}
_AKNTRACE_FUNC_EXIT;
}
+
// -----------------------------------------------------------------------------
// CEikMenuPane::CreateScrollBarFrame
// -----------------------------------------------------------------------------
@@ -6140,13 +4926,13 @@
{
CEikScrollBarFrame::TScrollBarVisibility visibility = CEikScrollBarFrame::EOn;
- if ( iOwner && ( iItemArray->Count() <= NumberOfItemsThatFitInView() ) )
+ if ( iItemArray->Count() <= NumberOfItemsThatFitInView() )
{
- // submenu with less than 6 items
+ // all items fit, no need to show the scrollbar
visibility = CEikScrollBarFrame::EOff;
}
- TRAP_IGNORE( iSBFrame->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff, visibility /*CEikScrollBarFrame::EAuto*/ ) );
-
+
+ TRAP_IGNORE( iSBFrame->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff, visibility ) );
TRAP_IGNORE( iSBFrame->CreateDoubleSpanScrollBarsL( EFalse, EFalse, ETrue, EFalse ) );
iSBFrame->DrawBackground( EFalse, EFalse );
UpdateScrollBar();
@@ -6160,13 +4946,14 @@
//
void CEikMenuPane::UpdateScrollBar()
{
- if ( !CheckCreateScroller() )
+ if ( !CheckCreateScroller() || !IsVisible() )
return;
CIdle* idle = iScroller->Idle();
if ( idle && !idle->IsActive() )
idle->Start( TCallBack( CEikMenuPane::UpdateScrollBarCallBackL, this ) );
}
+
// -----------------------------------------------------------------------------
// CEikMenuPane::UpdateScrollBarCallBackL
// -----------------------------------------------------------------------------
@@ -6177,6 +4964,7 @@
return 0;
}
+
// -----------------------------------------------------------------------------
// CEikMenuPane::DoUpdateScrollBarL
// -----------------------------------------------------------------------------
@@ -6189,17 +4977,7 @@
TEikScrollBarModel hSbarModel;
TEikScrollBarModel vSbarModel;
- TRect menuPaneRect;
- if ( !iOwner )
- {
- menuPaneRect = iExtension->iMenuPaneRect;
- }
- else
- {
- menuPaneRect = Rect();
- }
-
- TRect clientRect( menuPaneRect.Size() );
+ TRect clientRect( iExtension->iMenuPaneRect.Size() );
// Panning uses pixel resolution scrollbar
vSbarModel.iThumbPosition = iExtension->iListTopIndex;
@@ -6218,79 +4996,40 @@
layout.SetInclusiveMargin( 0 );
layout.iTilingMode = TEikScrollBarFrameLayout::EClientRectConstant;
- // For main menupane scrollbar is always shown, for submenu only when needed
- if ( !iOwner )
- {
- iSBFrame->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff, CEikScrollBarFrame::EOn );
- }
- else
- {
- TInt maxItems = NumberOfItemsThatFitInView();
- TInt count = iItemArray->Count();
- iSBFrame->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff,
- (count > maxItems) ? CEikScrollBarFrame::EOn : CEikScrollBarFrame::EOff );
- }
-
+ CEikScrollBarFrame::TScrollBarVisibility visibility =
+ iSBFrame->ScrollBarVisibility( CEikScrollBar::EVertical );
+
+ // scrollbar is shown only if needed
+ if ( iExtension->iScrollbarVisibility == CEikScrollBarFrame::EOn
+ && visibility == CEikScrollBarFrame::EOff )
+ {
+ iSBFrame->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff,
+ CEikScrollBarFrame::EOn );
+ iExtension->iScrollBarRect = iSBFrame->VerticalScrollBar()->Rect();
+ }
+ else if ( iExtension->iScrollbarVisibility == CEikScrollBarFrame::EOff
+ && visibility == CEikScrollBarFrame::EOn )
+ {
+ iSBFrame->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff,
+ CEikScrollBarFrame::EOff );
+ iExtension->iScrollBarRect = TRect::EUninitialized;
+ }
+
TAknLayoutRect scrollLayoutRect;
- if ( !iOwner )
- {
- TAknWindowLineLayout listScrollPaneLayout(
- AknLayoutScalable_Avkon::listscroll_menu_pane(0).LayoutLine() );
- if ( iExtension )
- {
- iExtension->AdjustPopupLayoutData( listScrollPaneLayout );
- }
- scrollLayoutRect.LayoutRect( clientRect, listScrollPaneLayout );
- scrollBarInclusiveRect = scrollLayoutRect.Rect();
- scrollBarClientRect = scrollBarInclusiveRect;
-
- AknLayoutUtils::LayoutVerticalScrollBar( iSBFrame, scrollBarClientRect,
- AknLayoutScalable_Avkon::scroll_pane_cp25(0).LayoutLine() );
- }
- else
- {
- scrollLayoutRect.LayoutRect( clientRect,
- AknLayoutScalable_Avkon::listscroll_popup_sub_pane().LayoutLine() );
- scrollBarInclusiveRect = scrollLayoutRect.Rect();
- scrollBarClientRect = scrollBarInclusiveRect;
-
- AknLayoutUtils::LayoutVerticalScrollBar( iSBFrame, scrollBarClientRect,
- AknLayoutScalable_Avkon::scroll_pane_cp4().LayoutLine());
- }
+ scrollLayoutRect.LayoutRect( clientRect,
+ AknLayoutScalable_Avkon::listscroll_popup_sub_pane().LayoutLine() );
+ scrollBarInclusiveRect = scrollLayoutRect.Rect();
+ scrollBarClientRect = scrollBarInclusiveRect;
+
+ AknLayoutUtils::LayoutVerticalScrollBar( iSBFrame, scrollBarClientRect,
+ AknLayoutScalable_Avkon::scroll_pane_cp4().LayoutLine());
iSBFrame->TileL( &hDsSbarModel, &vDsSbarModel, scrollBarClientRect, scrollBarInclusiveRect, layout );
iSBFrame->SetVFocusPosToThumbPos( vDsSbarModel.FocusPosition() );
-
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- MAknListBoxTfxInternal* transApi = CAknListLoader::TfxApiInternal( iExtension->iGc );
- if ( iSBFrame->VerticalScrollBar() &&
- iSBFrame->VScrollBarVisibility() == CEikScrollBarFrame::EOn )
- {
- iExtension->iScrollBarRect = iSBFrame->VerticalScrollBar()->Rect();
- }
- else
- {
- iExtension->iScrollBarRect = TRect::EUninitialized;
- }
- if ( transApi )
- {
- transApi->ResetNonDrawingRects();
- transApi->AddNonDrawingRect( iExtension->iScrollBarRect );
- transApi->AddNonDrawingRect( iExtension->iSctRect );
- }
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
- if ( iSBFrame->VerticalScrollBar() &&
- iSBFrame->VScrollBarVisibility() == CEikScrollBarFrame::EOn )
- {
- iExtension->iSBRect = iSBFrame->VerticalScrollBar()->Rect();
- }
- else
- {
- iExtension->iSBRect = TRect::EUninitialized;
- }
_AKNTRACE_FUNC_EXIT;
}
+
// -----------------------------------------------------------------------------
// CEikMenuPane::UpdateScrollBarThumbs
// -----------------------------------------------------------------------------
@@ -6303,6 +5042,7 @@
}
}
+
// -----------------------------------------------------------------------------
// CEikMenuPane::ScrollToMakeItemVisible
// -----------------------------------------------------------------------------
@@ -6357,6 +5097,7 @@
return;
}
+
// -----------------------------------------------------------------------------
// CEikMenuPane::Scroll
// -----------------------------------------------------------------------------
@@ -6400,6 +5141,7 @@
return;
}
+
// -----------------------------------------------------------------------------
// CEikMenuPane::ViewRect
// -----------------------------------------------------------------------------
@@ -6409,6 +5151,7 @@
return Rect();
}
+
// -----------------------------------------------------------------------------
// CEikMenuPane::NumberOfItemsThatFitInView
// -----------------------------------------------------------------------------
@@ -6420,7 +5163,7 @@
{
subst = 1;
}
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
+
iExtension->iItemsThatFitInView = iOwner ? AknLayoutScalable_Avkon::
list_single_popup_submenu_pane_ParamLimits().LastRow() + 1 :
AknLayoutScalable_Avkon::
@@ -6431,20 +5174,9 @@
iExtension->iItemsThatFitInView --;
}
- if ( iExtension->iPhysics && iExtension->Offset() != 0 )
- {
- // with kinetic scrolling there can be partial items on the screen
- iExtension->iTotalNumberOfItemsInView = iExtension->iItemsThatFitInView + 1;
- }
-
return iExtension->iItemsThatFitInView;
-#else
- return iOwner ? AknLayoutScalable_Avkon::
- list_single_popup_submenu_pane_ParamLimits().LastRow() + 1 :
- AknLayoutScalable_Avkon::
- list_single_pane_cp2_ParamLimits().LastRow() + 1 - subst;
-#endif
- }
+ }
+
// -----------------------------------------------------------------------------
// CEikMenuPane::TotalItemHeight
@@ -6483,6 +5215,7 @@
return err == KErrNone;
}
+
// -----------------------------------------------------------------------------
// CEikMenuPane::CheckCreateScrollerL
// -----------------------------------------------------------------------------
@@ -6599,21 +5332,6 @@
PrepareHighlightFrame();
SetCascadedIconSize();
- // Background under highlight may have changed -> we need to update
- // highlight background to animation
- if( iExtension )
- {
- iExtension->HandleLayoutSwitch();
- }
-
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- MAknListBoxTfxInternal *transApi = CAknListLoader::TfxApiInternal( iExtension->iGc );
- if ( transApi )
- {
- transApi->Remove( MAknListBoxTfxInternal:: EListEverything );
- }
-#endif
-
//Initialize physics engine
if ( iExtension->iPhysics )
{
@@ -6671,7 +5389,11 @@
}
else if ( aType == KAknMessageFocusLost )
{
- if ( iExtension && iExtension->HighlightEnabled() )
+ if ( iCascadeMenuPane )
+ {
+ iCascadeMenuPane->HandleResourceChange( aType );
+ }
+ else if ( iExtension && iExtension->HighlightEnabled() )
{
iExtension->EnableHighlight( EFalse, EFalse );
DrawItem( iSelectedItem, ENoHighlight );
@@ -6943,14 +5665,17 @@
// it can be only in submenu in case when scalable layout is available
TBool hasIcon = MenuHasIcon();
- TBool hasDoubleSpanScrollBar = EFalse;
-
- if ( iSBFrame && iSBFrame->VScrollBarVisibility() )
- {
- _AKNTRACE( "[%s]", "hasDoubleSpanScrollBar = ETrue;" );
- hasDoubleSpanScrollBar = ETrue;
- }
-
+
+ // scrollbar is shown only if needed
+ if ( iItemArray->Count() > NumberOfItemsThatFitInView() )
+ {
+ iExtension->iScrollbarVisibility = CEikScrollBarFrame::EOn;
+ }
+ else
+ {
+ iExtension->iScrollbarVisibility = CEikScrollBarFrame::EOff;
+ }
+
TRect parentMenuRect;
AknLayoutUtils::TAknCbaLocation cbaPosition = AknLayoutUtils::CbaLocation();
@@ -7042,8 +5767,6 @@
_AKNTRACE( "parentMenuRect.iTl.iY = %d", parentMenuRect.iTl.iY );
_AKNTRACE( "parentMenuRect.Width() = %d", parentMenuRect.Width() );
_AKNTRACE( "parentMenuRect.Height( = %d", parentMenuRect.Height() );
- // if we have landscape layout then main menu should be positioned vertically centered
- TRect appRect( iEikonEnv->EikAppUi()->ApplicationRect() );
if ( !iOwner ) // main menu
{
@@ -7063,28 +5786,46 @@
// to be in correct place - so we calculate correct position for
// background and move control rect to match new background top left
// position.
- TRect backgroundRect( iExtension->GetBackgroundRect( parentMenuRect ) );
TPoint backgroundRectPos(
- AknPopupUtils::Position( backgroundRect.Size(), ETrue ) );
+ AknPopupUtils::Position( parentMenuRect.Size(), ETrue ) );
retVal = parentMenuRect;
- retVal.Move( backgroundRectPos - backgroundRect.iTl );
+ retVal.Move( backgroundRectPos - parentMenuRect.iTl );
// Set embedded cba rect
if ( iExtension->iCba )
{
// There is hidden extra touch space for scroll bar in landscape
- TInt xOffset = backgroundRect.iTl.iX - parentMenuRect.iTl.iX ;
+ TInt xOffset = parentMenuRect.iTl.iX - parentMenuRect.iTl.iX ;
iExtension->iCba->SetRect( TRect(
xOffset,
menuRect.Height(),
- backgroundRect.Width() + xOffset,
+ parentMenuRect.Width() + xOffset,
menuRect.Height() + cbaRect.Rect().Height() ) );
}
iExtension->iMenuPaneRect = TRect( retVal.iTl,
TSize ( menuRect.Size() ) );
-
+
+ TInt variety = 4;
+
+ // reserve area for scrollbar only if it's shown
+ if ( iExtension->iScrollbarVisibility == CEikScrollBarFrame::EOn )
+ {
+ variety = 0;
+ }
+
+ TAknLayoutRect layoutRect;
+ layoutRect.LayoutRect( TRect( iExtension->iMenuPaneRect.Size() ),
+ AknLayoutScalable_Avkon::listscroll_popup_sub_pane( 0 ) );
+
+ iExtension->iMenuAreaRect = layoutRect.Rect();
+
+ layoutRect.LayoutRect( iExtension->iMenuAreaRect,
+ AknLayoutScalable_Avkon::list_menu_pane( variety ) );
+
+ iExtension->iItemAreaRect = layoutRect.Rect();
+
_AKNTRACE( "[%s]", "the layout of main menu return" );
_AKNTRACE_FUNC_EXIT;
return retVal;
@@ -7097,20 +5838,13 @@
iExtension->iSubMenuWidthIndex = KAlternativeSubmenuWidths - 1;
TAknLayoutRect parentListScrollLayoutRect; // listscroll_menu_pane
- TAknLayoutRect parentPaneLayoutRect; // list_menu_pane
TAknTextLineLayout subMenuText; // layout for the text when item is not indicated
TAknTextLineLayout subMenuIconText; // layout for the text when item is indicated
TAknWindowLineLayout parentListScrollPaneLayout(
AknLayoutScalable_Avkon::listscroll_menu_pane(0).LayoutLine() );
- if ( iExtension )
- {
- iExtension->AdjustPopupLayoutData( parentListScrollPaneLayout );
- }
parentListScrollLayoutRect.LayoutRect( parentMenuRect, parentListScrollPaneLayout );
- parentPaneLayoutRect.LayoutRect( parentListScrollLayoutRect.Rect(),
- AknLayoutScalable_Avkon::list_menu_pane(0).LayoutLine() );
subMenuText = AknLayoutScalable_Avkon::list_single_popup_submenu_pane_t1(0).LayoutLine();
subMenuIconText = AknLayoutScalable_Avkon::list_single_popup_submenu_pane_t1(1).LayoutLine();
@@ -7133,6 +5867,13 @@
}
// find the suitable item width, so that the text would be visible
+ TInt submenuVariety = 1;
+
+ if ( iExtension->iScrollbarVisibility == CEikScrollBarFrame::EOn )
+ {
+ submenuVariety = 0;
+ }
+
for ( ii = 6; ii < KAlternativeSubmenuWidths + 6; ++ii )
{
TAknWindowLineLayout submenuLayout( AknLayoutScalable_Avkon::popup_submenu_window( ii ).LayoutLine() );
@@ -7143,7 +5884,7 @@
TAknLayoutRect listScrollPaneRect;
listScrollPaneRect.LayoutRect( submenuRect.Rect(), listScrollPaneLayout );
- TAknWindowLineLayout listSubmenuPaneLayout( AknLayoutScalable_Avkon::list_submenu_pane( !hasDoubleSpanScrollBar ).LayoutLine() );
+ TAknWindowLineLayout listSubmenuPaneLayout( AknLayoutScalable_Avkon::list_submenu_pane( submenuVariety ).LayoutLine() );
TAknLayoutRect listSubmenuPaneRect;
listSubmenuPaneRect.LayoutRect( listScrollPaneRect.Rect(), listSubmenuPaneLayout );
@@ -7175,20 +5916,8 @@
TInt parentPos = iOwner->iScroller->TopItemIndex() - iOwner->SelectedItem() +
Min( parentCount, iOwner->NumberOfItemsThatFitInView() );
- TInt index = iOwner->SelectedItem() - iOwner->iScroller->TopItemIndex();
- TInt rows = AknLayoutScalable_Avkon::list_single_pane_cp2_ParamLimits().LastRow();
-
- // This condition may be true if less items fits to menu view than sub-menu view
- // and sub-menu under sub-menu is launched.
- if (index > rows)
- {
- // Change the out-of-boundary index to last legal one.
- index = rows;
- }
-
- TAknLayoutRect parentSelectedItemRect;
- parentSelectedItemRect.LayoutRect( parentPaneLayoutRect.Rect(),
- AknLayoutScalable_Avkon::list_single_pane_cp2( index ).LayoutLine() );
+ TRect parentSelectedItemRect( iOwner->HighlightRect() );
+ parentSelectedItemRect.Move( iOwner->Position() );
TAknLayoutRect submenuWindowRect;
// To prevent a panic in layout code, count has to be at least 1 even if
@@ -7227,7 +5956,7 @@
if ( ( Layout_Meta_Data::IsLandscapeOrientation()
&& cbaPosition != AknLayoutUtils::EAknCbaLocationBottom ) )
{
- if ( ( parentSelectedItemRect.Rect().iTl.iY + submenuWindowRect.Rect().Height() ) >
+ if ( ( parentSelectedItemRect.iTl.iY + submenuWindowRect.Rect().Height() ) >
aWindowRect.iBr.iY )
{
subMenuPos = EBottom;
@@ -7279,7 +6008,7 @@
}
else // floating
{
- TInt yPos = parentSelectedItemRect.Rect().iTl.iY -
+ TInt yPos = parentSelectedItemRect.iTl.iY -
( listScrollPaneRect.Rect().iTl.iY - submenuWindowRect.Rect().iTl.iY );
// When a submenu is floating, make sure that the possible panning offset of the
@@ -7308,6 +6037,25 @@
retVal.Move( 0, -offset );
}
}
+
+ if ( retVal.iTl.iY < 0 )
+ {
+ retVal.Move( 0, -retVal.iTl.iY );
+ }
+
+ iExtension->iMenuPaneRect = retVal;
+
+ TAknLayoutRect layoutRect;
+ layoutRect.LayoutRect( TRect( iExtension->iMenuPaneRect.Size() ),
+ AknLayoutScalable_Avkon::listscroll_popup_sub_pane( 0 ) );
+
+ iExtension->iMenuAreaRect = layoutRect.Rect();
+
+ layoutRect.LayoutRect( iExtension->iMenuAreaRect,
+ AknLayoutScalable_Avkon::list_submenu_pane( submenuVariety ) );
+
+ iExtension->iItemAreaRect = layoutRect.Rect();
+
_AKNTRACE( "[%s]", "the layout of sub menu return" );
_AKNTRACE_FUNC_EXIT;
return retVal;
@@ -7328,69 +6076,15 @@
if( index < 0 )
index = 0;
- // It is possible that this method is called when iItemArray is NULL. In
- // that case we fake numItems as 1 to make layout code work.
- TInt maxItems = NumberOfItemsThatFitInView();
- TInt numItems = Min( Max( 1, iItemArray->Count() ), maxItems );
- if( !iItemArray )
- numItems = 1;
-
// When physics is enabled highlight can be moved to partially visible
// item which is at the bottom of menu. This causes layout panic and to
// avoid that we reduce index by one.
- if ( index == maxItems )
+ if ( index == NumberOfItemsThatFitInView() )
{
index--;
}
- TRect windowRect = Rect();
-
- TAknWindowLineLayout menuPane( AKN_LAYOUT_WINDOW_list_menu_pane( 0 , 0 ) );
- TAknWindowLineLayout singleMenuPane( AKN_LAYOUT_WINDOW_list_single_popup_menu_pane( index ) );
- TAknLayoutRect menuPaneRect;
- TAknLayoutRect singleMenuPaneRect;
-
- TBool hasDoubleSpanScrollBar = EFalse;
-
- if ( iSBFrame && iSBFrame->VScrollBarVisibility() )
- {
- hasDoubleSpanScrollBar = ETrue;
- }
-
- if ( !iOwner )
- {
- TAknWindowLineLayout listScrollPaneLayout(
- AknLayoutScalable_Avkon::listscroll_menu_pane(0).LayoutLine() );
- if ( iExtension )
- {
- iExtension->AdjustPopupLayoutData( listScrollPaneLayout );
- }
- TAknLayoutRect listScrollPaneRect;
- listScrollPaneRect.LayoutRect( windowRect, listScrollPaneLayout );
-
- menuPane = AknLayoutScalable_Avkon::list_menu_pane( 0 ).LayoutLine();
- menuPaneRect.LayoutRect( listScrollPaneRect.Rect(), menuPane );
-
- singleMenuPane = AknLayoutScalable_Avkon::list_single_pane_cp2( index ).LayoutLine();
- singleMenuPaneRect.LayoutRect( menuPaneRect.Rect(), singleMenuPane );
- }
- else // Submenu
- {
- TAknWindowLineLayout listScrollPaneLayout( AknLayoutScalable_Avkon::listscroll_popup_sub_pane().LayoutLine() );
- TAknLayoutRect listScrollPaneRect;
- listScrollPaneRect.LayoutRect( windowRect, listScrollPaneLayout );
-
- menuPane = AknLayoutScalable_Avkon::list_submenu_pane( !hasDoubleSpanScrollBar ).LayoutLine();
- menuPaneRect.LayoutRect( listScrollPaneRect.Rect(), menuPane );
-
- singleMenuPane = AknLayoutScalable_Avkon::list_single_popup_submenu_pane( index ).LayoutLine();
- singleMenuPaneRect.LayoutRect( menuPaneRect.Rect(), singleMenuPane );
- }
-
- // Compared to normal DrawItem the highlight rect step is omitted because
- // it would shift the highlight towards left.
-
- return singleMenuPaneRect.Rect();
+ return ItemRect( index );
}
@@ -7436,7 +6130,6 @@
{
AknIconUtils::SetSize( itemData->Bitmap(), cascadeRect.Rect().Size() );
}
-
else
{
if (iExtension->iCascadeBitmap)
@@ -7479,8 +6172,7 @@
EXPORT_C TInt CEikMenuPane::CountComponentControls() const
{
TInt count = 0;
- if ( iSBFrame && iSBFrame->VerticalScrollBar() &&
- !( iSBFrame->VerticalScrollBar()->OwnsWindow() ) )
+ if ( iSBFrame && iSBFrame->VerticalScrollBar() )
{
count = 1;
}
@@ -7507,8 +6199,7 @@
{
case 0:
{
- if ( iSBFrame && iSBFrame->VerticalScrollBar() &&
- !( iSBFrame->VerticalScrollBar()->OwnsWindow() ) )
+ if ( iSBFrame && iSBFrame->VerticalScrollBar() )
{
return iSBFrame->VerticalScrollBar();
}
@@ -7551,6 +6242,10 @@
}
+// -----------------------------------------------------------------------------
+// CEikMenuPane::CheckCreateExtensionL
+// -----------------------------------------------------------------------------
+//
void CEikMenuPane::CheckCreateExtensionL()
{
if ( !iExtension )
@@ -7562,6 +6257,50 @@
// -----------------------------------------------------------------------------
+// CEikMenuPane::ItemRect
+// -----------------------------------------------------------------------------
+//
+TRect CEikMenuPane::ItemRect( TInt aItemIndex ) const
+ {
+ // this method is valid for the main menu only
+ TInt lastRow = AknLayoutScalable_Avkon::list_single_pane_cp2_ParamLimits().LastRow();
+ aItemIndex = Min( aItemIndex, lastRow );
+
+ TAknLayoutRect layoutRect;
+ layoutRect.LayoutRect( iExtension->iItemAreaRect,
+ AknLayoutScalable_Avkon::list_single_pane_cp2( aItemIndex ) );
+
+ return layoutRect.Rect();
+ }
+
+
+// -----------------------------------------------------------------------------
+// CEikMenuPane::CalculateItemHeight
+// -----------------------------------------------------------------------------
+//
+TInt CEikMenuPane::CalculateItemHeight() const
+ {
+ TAknWindowLineLayout menuLineLayout;
+
+ if ( iOwner ) // submenu
+ {
+ menuLineLayout =
+ AknLayoutScalable_Avkon::list_single_popup_submenu_pane( 0 ).LayoutLine();
+ }
+ else
+ {
+ menuLineLayout =
+ AknLayoutScalable_Avkon::list_single_pane_cp2( 0 ).LayoutLine();
+ }
+
+ TAknLayoutRect menuLayoutRect;
+ menuLayoutRect.LayoutRect( Rect(), menuLineLayout );
+
+ return menuLayoutRect.Rect().Height();
+ }
+
+
+// -----------------------------------------------------------------------------
// CEikMenuPane::ConstructMenuSctRowL
// Creates an sct row for editing menu.
// @param aSpecialChars Buffer that holds selected characters
@@ -7709,30 +6448,20 @@
if ( iCascadeMenuPane->IsVisible() )
{
okToDraw = AknsUtils::SkinInstance() != NULL;
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- MAknListBoxTfxInternal *transApi = CAknListLoader::TfxApiInternal( iExtension->iGc );
- if ( transApi && okToDraw )
- {
- iCascadeMenuPane->SetFocus( EFalse, EDrawNow );
- }
-#endif
// Stop ongoing comp. transitions, this is mostly for fast clicking
// cases to make sure that no "scrap" is left behind.
GfxTransEffect::NotifyExternalState( ENotifyGlobalAbort );
+
// cascade menu "cancel" animation. This does not apply
// when something is chosen from the menu
-
- if( iExtension->iShowCascadeTransition && okToDraw )
- {
- iCascadeMenuPane->SetParent( this );
-
- GfxTransEffect::Begin( iCascadeMenuPane, KGfxControlDisappearAction );
- GfxTransEffect::SetDemarcation( iCascadeMenuPane, iExtension->iCascadeDRect );
-
- iCascadeMenuPane->MakeVisible( EFalse );
-
- GfxTransEffect::End( iCascadeMenuPane );
-
+ if ( iExtension->iShowCascadeTransition && okToDraw )
+ {
+ iCascadeMenuPane->SetParent( this );
+
+ GfxTransEffect::Begin( iCascadeMenuPane, KGfxControlDisappearAction );
+ GfxTransEffect::SetDemarcation( iCascadeMenuPane, iExtension->iCascadeDRect );
+ iCascadeMenuPane->MakeVisible( EFalse );
+ GfxTransEffect::End( iCascadeMenuPane );
}
}
--- a/uifw/EikStd/coctlsrc/EIKSCRLB.CPP Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/coctlsrc/EIKSCRLB.CPP Fri Feb 19 23:04:46 2010 +0200
@@ -515,9 +515,6 @@
return CEikScrollBar::EArrowHead;
}
-void CEikScrollBarExtension::CreateButtonL(CAknScrollButton*& /*aButton*/,CAknScrollButton::TType /*aType*/)
- {
- }
void CEikScrollBarExtension::DoSetModel(const TEikScrollBarModel* aModel)
{
@@ -706,14 +703,9 @@
if (aWindowOwning)
{
CreateWindowL(aParent);
- if ( CAknEnv::Static()->TransparencyEnabled() )
- {
- Window().SetRequiredDisplayMode( EColor16MA );
- if ( Window().SetTransparencyAlphaChannel() == KErrNone )
- {
- Window().SetBackgroundColor( ~0 );
- }
- }
+ EnableWindowTransparency();
+ Window().SetPointerGrab( ETrue );
+ EnableDragEvents();
}
else if(aParent)
{
@@ -732,18 +724,6 @@
iOrientation=aOrientation;
CreateRequiredComponentsL();
- if (aWindowOwning)
- {
- Window().SetPointerGrab(ETrue);
- EnableDragEvents();
- if (extension->iScrollIndicator)
- extension->iScrollIndicator->SetAsWindowOwning(ETrue);
-
-
- // By default set background to transparent
- SetTransparentBackground(ETrue);
- }
-
SetComponentsToInheritVisibility(ETrue);
MakeVisible(EFalse);
ActivateL();
@@ -1090,7 +1070,7 @@
indicator->SetBackgroudHighlight( ETrue );
extension->iPointerDownPosition = position;
-
+
if(iButtons.iIncreaseNudge &&
iButtons.iIncreaseNudge->Rect().Contains(aPointerEvent.iPosition))
{
@@ -1736,9 +1716,6 @@
return CEikScrollBarFrame::EDoubleSpan;
}
-void CAknDoubleSpanScrollBarExtension::CreateButtonL(CAknScrollButton*& /*aButton*/,CAknScrollButton::TType /*aType*/)
- {
- }
void CAknDoubleSpanScrollBarExtension::DoSetModel(const TEikScrollBarModel* aModel)
{
@@ -1770,10 +1747,6 @@
0);
}
- if (iParent->OwnsWindow() && iScrollIndicator->TransparentBackground())
- {
- iParent->Window().HandleTransparencyUpdate();
- }
if(iScrollIndicator->IsVisible())
{
if(iScrollIndicator->DrawBackgroundState() && !iParent->OwnsWindow())
@@ -1904,6 +1877,7 @@
iScrollIndicator->SetContainerWindowL( *iParent );
iScrollIndicator->SetRect( iParent->Rect() );
iScrollIndicator->SetComponentsToInheritVisibility(ETrue);
+ iScrollIndicator->SetAsWindowOwning( iParent->OwnsWindow() );
}
if ( AknLayoutUtils::PenEnabled() &&
--- a/uifw/EikStd/coctlsrc/EikCcpu.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/coctlsrc/EikCcpu.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -24,7 +24,7 @@
#include <avkon.rsg>
#include <avkon.hrh>
#include <eikappui.h>
-
+#include <eikdialg.h>
const TInt ELeftSoftkeyIndex = 0;
const TInt ERightSoftkeyIndex = 2;
const TInt ENullCommandId = -1;
@@ -48,7 +48,8 @@
{
if (iMenu)
iMenu->RemoveEditMenuObserver(this);
- delete iCba;
+ //delete iCba;
+ TRAP_IGNORE(DeleteCBAL());
iEikonEnv->EikAppUi()->RemoveFromStack(this);
}
@@ -91,8 +92,9 @@
if (iCba && !focused)
{
// something has caused loss of focus while shift is pressed - drop everything.
- delete iCba;
- iCba = NULL;
+ //delete iCba;
+ //iCba = NULL;
+ DeleteCBAL();
}
}
@@ -104,11 +106,54 @@
if (aKeyEvent.iCode == EKeyF21) // FEP generates F21 on long shift press
{
if (aType == EEventKey)
- {
- delete iCba;
- iCba = NULL;
- iCba = CEikButtonGroupContainer::NewL(CEikButtonGroupContainer::ECba, CEikButtonGroupContainer::EHorizontal, this, R_AVKON_SOFTKEYS_EMPTY);
- iCba->SetBoundingRect(iEikonEnv->EikAppUi()->ApplicationRect());
+ {
+ DeleteCBAL();
+ CEikAppUi* eikAppUi = (CEikAppUi *)CCoeEnv::Static()->AppUi();
+ if( eikAppUi!= NULL && eikAppUi->IsDisplayingDialog() && eikAppUi->TopFocusedControl() )
+ {
+ CEikDialog* dlg = eikAppUi->TopFocusedControl()->MopGetObject( dlg );
+ if ( dlg )
+ {
+ CEikButtonGroupContainer* currentCba = dlg->MopGetObject( currentCba );
+
+ if ( currentCba )
+ {
+ CEikCba* dlgcba = static_cast<CEikCba*>( currentCba->ButtonGroup() );
+ TUint flags( 0 );
+ flags |= CEikButtonGroupContainer::EIsEmbedded | CEikButtonGroupContainer::EAddToStack;
+ iCba = CEikButtonGroupContainer::NewL(CEikButtonGroupContainer::ECba, CEikButtonGroupContainer::EHorizontal,
+ this, R_AVKON_SOFTKEYS_EMPTY, flags );
+
+ CEikCba* cba = static_cast<CEikCba*>(
+ iCba->ButtonGroup() );
+
+ if( ! isCbaEmded )
+ {
+ currentCba->AddCommandToStackL(ELeftSoftkeyIndex, -1, _L(""), NULL, NULL);
+ currentCba->AddCommandToStackL(ERightSoftkeyIndex, -1, _L(""), NULL, NULL);
+ currentCba->ActivateL();
+ currentCba->DrawNow();
+ iDialogCba = currentCba;
+ isCbaEmded = ETrue;
+ }
+
+ cba->SetButtonGroupFlags( ~(EEikCbaFlagTransparent | EEikCbaFlagOutlineFont) );
+ TRect dlgRect(dlg->Rect());
+ TRect cbaRect(currentCba->Rect());
+ iCba->SetRect( currentCba->Rect());
+ iCba->SetPosition(TPoint(dlg->DrawableWindow()->Position().iX,dlg->DrawableWindow()->Position().iY + dlgRect.Height() - cbaRect.Height()));
+ iCba->SetBoundingRect( dlg->Rect());
+
+ }
+
+ }
+
+ }
+ if(iCba == NULL)//if iCba was not create in the above branch but was deleted by DeleteCBA
+ {
+ iCba = CEikButtonGroupContainer::NewL(CEikButtonGroupContainer::ECba, CEikButtonGroupContainer::EHorizontal, this, R_AVKON_SOFTKEYS_EMPTY);
+ iCba->SetBoundingRect(iEikonEnv->EikAppUi()->ApplicationRect());
+ }
UpdateCBALabelsL();
}
return EKeyWasConsumed;
@@ -124,8 +169,9 @@
}
else if ((aKeyEvent.iScanCode == EStdKeyLeftShift || aKeyEvent.iScanCode == EStdKeyRightShift) && aType == EEventKeyUp)
{
- delete iCba;
- iCba = NULL;
+ //delete iCba;
+ //iCba = NULL;
+ DeleteCBAL();
}
return EKeyWasNotConsumed;
@@ -178,7 +224,9 @@
change = UpdateCBALabelL(ERightSoftkeyIndex, ENullCommandId, R_TEXT_SOFTKEY_EMPTY) || change;
if (change)
+ {
iCba->DrawNow();
+ }
}
TBool CAknCcpuSupport::UpdateCBALabelL(TInt aPosition, TInt aCommandId, TInt aTextResId)
@@ -206,5 +254,37 @@
{
return NULL;
}
+void CAknCcpuSupport::DeleteCBAL()
+ {
+ if ( iCba != NULL )
+ {
+ delete iCba;
+ iCba = NULL;
+ }
+ if (isCbaEmded)
+ {
+ CEikAppUi* eikAppUi = (CEikAppUi *)CCoeEnv::Static()->AppUi();
+ if( eikAppUi!= NULL && eikAppUi->IsDisplayingDialog() && eikAppUi->TopFocusedControl() )
+ {
+ CEikDialog* dlg = eikAppUi->TopFocusedControl()->MopGetObject( dlg );
+ if ( dlg )
+ {
+ CEikButtonGroupContainer* currentCba = dlg->MopGetObject( currentCba );
+ CEikCba* dlgcba = static_cast<CEikCba*>(
+ currentCba->ButtonGroup() );
+ if ( currentCba && iDialogCba == currentCba )
+ {
+ currentCba->RemoveCommandFromStack(ELeftSoftkeyIndex,-1);
+ currentCba->RemoveCommandFromStack(ERightSoftkeyIndex,-1);
+ //dlgcba->UpdateCbaLabels(EFalse);
+ currentCba->DrawNow();
+ currentCba->ActivateL();
+ iDialogCba = NULL;
+ isCbaEmded = EFalse;
+ }
+ }
+ }
+ }
+ }
--- a/uifw/EikStd/coctlsrc/FormCursorModifier.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/coctlsrc/FormCursorModifier.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -17,7 +17,7 @@
#include <eikedwin.h>
#include <tagma.h>
#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include <tagmaLayoutAndSource.h>
+#include <tagmalayoutandsource.h>
#endif
--- a/uifw/EikStd/coctlsrc/FormCursorModifierUtils.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/coctlsrc/FormCursorModifierUtils.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -18,7 +18,7 @@
#include <frmtview.h>
#include <tagma.h>
#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include <tagmaLayoutAndSource.h>
+#include <tagmalayoutandsource.h>
#endif
#include "FromCursorModifierUtils.h"
--- a/uifw/EikStd/coctlsrc/akndoublespanscrollindicatoritem.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/coctlsrc/akndoublespanscrollindicatoritem.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -106,10 +106,3 @@
}
-CFbsBitmap* CAknDoubleSpanScrollIndicatorItem::CreateBitmapL(CFbsBitmap* /*aSourceBitmap*/, TBool /*aRotated*/)
- {
-
-
- return NULL;
- }
-
--- a/uifw/EikStd/coctlsrc/aknedwinphysicshandler.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/coctlsrc/aknedwinphysicshandler.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -390,6 +390,7 @@
iPhysics->SuspendPhysics();
InitBounce( aPixelsToScroll > 0 );
+ ScrollRestOfPixels( restOfPixels );
iPhysics->ResumePhysics();
}
else
--- a/uifw/EikStd/coctlsrc/aknitemactionmenu.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/coctlsrc/aknitemactionmenu.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-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"
@@ -211,12 +211,15 @@
TBool highlightVisible( ETrue );
for ( TInt i = 0; i < iStates.Count(); i++ )
{
- MAknCollection* state( iStates[ i ] );
- if ( state->CollectionState() &
- MAknCollection::EStateCollectionVisible )
+ MAknCollection* collection( iStates[ i ] );
+ TUint state = collection->CollectionState();
+
+ highlightVisible = state & MAknCollection::EStateHighlightVisible;
+
+ if ( highlightVisible )
{
- highlightVisible = state->CollectionState()
- & MAknCollection::EStateHighlightVisible;
+ // Highlight can't be visible if the collection is not visible.
+ highlightVisible = state & MAknCollection::EStateCollectionVisible;
break;
}
}
--- a/uifw/EikStd/coctlsrc/aknstyluspopupmenu.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/coctlsrc/aknstyluspopupmenu.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005-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"
@@ -119,6 +119,7 @@
//
CAknStylusPopUpMenu::~CAknStylusPopUpMenu()
{
+ iContent->SetObserver(NULL);
if ( iIsDeleted )
{
*iIsDeleted = ETrue;
@@ -223,7 +224,8 @@
// CAknStylusPopUpMenu::SetPosition
// ---------------------------------------------------------------------------
//
-EXPORT_C void CAknStylusPopUpMenu::SetPosition( const TPoint& aPoint, TPositionType aPosType )
+EXPORT_C void CAknStylusPopUpMenu::SetPosition( const TPoint& aPoint,
+ TPositionType aPosType )
{
TPoint adjustedPoint( aPoint );
if ( !iController )
@@ -232,41 +234,106 @@
iPositionType = aPosType;
return;
}
+
iController->UpdateContentSize();
TSize menuSize = iController->Size();
- // calculate to right-top corner by aPosType and popup menu size
+
+ // Calculate the position to right-top corner by aPosType and
+ // popup menu size. Add also a margin between the screen borders and the
+ // popup if the popup is too close to screen border.
+ TBool layoutMirrored( AknLayoutUtils::LayoutMirrored() );
+ TRect screenRect;
+ AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EScreen,
+ screenRect );
+
+ // Margin is read from the popup window's layout data
+ // (left parameter used).
+ TAknWindowLineLayout popupWindowLayout(
+ AknLayoutScalable_Avkon::popup_touch_menu_window( 0 ).LayoutLine() );
+ TInt windowMargin = layoutMirrored ? popupWindowLayout.ir :
+ popupWindowLayout.il;
+
switch ( aPosType )
{
- case EPositionTypeRightTop:
+ case EPositionTypeRightTop:
+ {
break;
+ }
+
case EPositionTypeLeftTop:
- if( AknLayoutUtils::LayoutMirrored() )
+ {
+ if ( !layoutMirrored )
{
- adjustedPoint.iX -= menuSize.iWidth;
+ adjustedPoint.iX += menuSize.iWidth;
}
- else
+
+ break;
+ }
+
+ case EPositionTypeRightBottom:
+ {
+ adjustedPoint.iY -= menuSize.iHeight;
+
+ break;
+ }
+
+ case EPositionTypeLeftBottom:
+ {
+ if ( !layoutMirrored )
{
adjustedPoint.iX += menuSize.iWidth;
}
- break;
- case EPositionTypeRightBottom:
+
adjustedPoint.iY -= menuSize.iHeight;
+
+ break;
+ }
+
+ default:
+ {
break;
- case EPositionTypeLeftBottom:
- if( AknLayoutUtils::LayoutMirrored() )
- {
- adjustedPoint.iX -= menuSize.iWidth;
- }
- else
- {
- adjustedPoint.iX += menuSize.iWidth;
- }
- adjustedPoint.iY -= menuSize.iHeight;
- break;
- default:
- break;
+ }
+ }
+
+ // Check if margins need to be added.
+ TInt xLeftPos( layoutMirrored ? adjustedPoint.iX :
+ adjustedPoint.iX - menuSize.iWidth );
+ TInt xRightPos( layoutMirrored ? adjustedPoint.iX + menuSize.iWidth :
+ adjustedPoint.iX );
+ TInt xPosRightMargin( screenRect.iBr.iX - windowMargin );
+ TInt xPosBottomMargin( screenRect.iBr.iY - windowMargin );
+
+ if ( xLeftPos < windowMargin )
+ {
+ // Too close to the left side of the screen.
+ adjustedPoint.iX = windowMargin + menuSize.iWidth;
+ }
+ else if ( xRightPos > xPosRightMargin )
+ {
+ // Too close to the right side of the screen.
+ if ( layoutMirrored )
+ {
+ // In mirrored layout a left-top position must be provided
+ // for the preview popup controller.
+ adjustedPoint.iX = xPosRightMargin - menuSize.iWidth;
+ }
+ else
+ {
+ adjustedPoint.iX = xPosRightMargin;
+ }
+ }
+
+ if ( adjustedPoint.iY < windowMargin )
+ {
+ // Too close to the top border of the screen.
+ adjustedPoint.iY = windowMargin;
+ }
+ else if ( adjustedPoint.iY + menuSize.iHeight > xPosBottomMargin )
+ {
+ // Too close to the bottom border of the screen.
+ adjustedPoint.iY = xPosBottomMargin - menuSize.iHeight;
+ }
- }
iPosition = adjustedPoint;
iController->SetPosition( adjustedPoint );
}
--- a/uifw/EikStd/coctlsrc/aknstyluspopupmenucontent.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/coctlsrc/aknstyluspopupmenucontent.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005-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"
@@ -27,6 +27,7 @@
#include <aknappui.h>
#include <AknDef.h>
#include <touchfeedback.h>
+#include <layoutmetadata.cdl.h>
#include "aknstyluspopupmenuphysicshandler.h"
#include "aknstyluspopupmenucontent.h"
@@ -545,7 +546,6 @@
item->ConstructL( aItem );
iItems.AppendL( item );
CleanupStack::Pop( item );
-
}
// ---------------------------------------------------------------------------
@@ -695,25 +695,39 @@
TInt visibleItems = 0; // Number of visible items
// Find the widest visible item and count visible items
+ TRect screenRect;
+ AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EScreen,
+ screenRect );
+ TInt screenHeight( screenRect.Height() );
+ TInt screenWidth( screenRect.Width() );
+
+ const CFont* usedFont = AknLayoutUtils::FontFromId(
+ AknLayoutScalable_Avkon::list_single_popup_submenu_pane_t1( 0 ).Font() );
for ( TInt i = 0; i < iItems.Count(); i++ )
{
if ( iItems[i]->iVisibility == KShown )
{
visibleItems++;
- textWidth = AknLayoutUtils::FontFromId( AknLayoutScalable_Avkon::
- list_single_popup_submenu_pane_t1( 0 ).LayoutLine().FontId() )->TextWidthInPixels( *( iItems[i]->iText ) );
+ textWidth = usedFont->TextWidthInPixels( *( iItems[i]->iText ) );
width = Max( width, textWidth );
}
}
-
+
if ( visibleItems == 0 )
{
return TSize( 0, 0 );
}
-
- TRect mainPaneRect;
- AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane,
- mainPaneRect );
+
+ // Check the minimum width from the layout data and adjust the width
+ // if the text would take less space than that.
+ TInt minWidth =
+ TAknWindowComponentLayout::Compose(
+ AknLayoutScalable_Avkon::popup_touch_menu_window( 0 ),
+ TAknWindowComponentLayout::Compose(
+ AknLayoutScalable_Avkon::list_touch_menu_pane( 0 ),
+ AknLayoutScalable_Avkon::list_single_touch_menu_pane( 0 ) ) ).LayoutLine().iW;
+ width = Max( width, minWidth );
+
TAknWindowLineLayout listLayout =
AknLayoutScalable_Avkon::list_single_touch_menu_pane(0).LayoutLine();
@@ -726,9 +740,28 @@
TInt singleItemHeight = listLayout.iH;
height = singleItemHeight * visibleItems;
- if ( height > mainPaneRect.Height() )
+ if ( height > screenHeight )
{
- TInt fitsToMenu = mainPaneRect.Height() / singleItemHeight;
+ // Amount of items that fit in the popup.
+ TInt fitsToMenu = visibleItems;
+
+ if ( Layout_Meta_Data::IsLandscapeOrientation() )
+ {
+ // In landscape orientation the max amount of items comes from
+ // the layout data.
+ TAknLayoutScalableParameterLimits paramLimits(
+ AknLayoutScalable_Avkon::list_single_touch_menu_pane_ParamLimits() );
+
+ // Add one to the last row as it's row index starting from zero.
+ fitsToMenu = paramLimits.LastRow() + 1;
+ }
+ else
+ {
+ // In potrait orientation the menu can show as many items as fit
+ // on the screen.
+ fitsToMenu = screenHeight / singleItemHeight;
+ }
+
height = fitsToMenu * singleItemHeight;
TAknWindowLineLayout scrollBar =
AknLayoutScalable_Avkon::scroll_pane( 0 );
@@ -737,9 +770,9 @@
width += textLayout.ir + textLayout.il;
- if ( width > ( mainPaneRect.Width() - unit.iW ) )
+ if ( width > ( screenWidth - unit.iW ) )
{
- width = mainPaneRect.Width() - ( unit.iW );
+ width = screenWidth - ( unit.iW );
}
return TSize( width, height );
@@ -825,8 +858,11 @@
if ( iExtension && iExtension->iInformObserver && !iExtension->iObserverInformed )
{
iExtension->iInformObserver = EFalse;
- TRAP_IGNORE(Observer()->HandleControlEventL( this,
- MCoeControlObserver::EEventRequestCancel ));
+ if ( Observer() )
+ {
+ TRAP_IGNORE(Observer()->HandleControlEventL( this,
+ MCoeControlObserver::EEventRequestCancel ));
+ }
}
if ( iSBFrame )
{
@@ -912,65 +948,73 @@
{
TRect rect( iItems[aItem]->iRect );
- // Use offset to move items smoothly.
- // If physics not in use, offset is always 0.
- rect.Move( TPoint( 0, -Offset() ) );
-
- if ( aHighlight == EDrawHighlight )
+ if ( !rect.IsEmpty() )
{
- TBool drawOk = EFalse;
- if( iExtension->iAnimation ) // Draw animated highlight
- {
- drawOk = iExtension->iAnimation->Render( aGc, rect );
- }
- if ( !drawOk )
+ // Use offset to move items smoothly.
+ // If physics not in use, offset is always 0.
+ rect.Move( TPoint( 0, -Offset() ) );
+
+ if ( aHighlight == EDrawHighlight )
{
- // Animated highlight was not available, use normal skinned
- // rendering.
- TAknLayoutRect listRect;
- TAknLayoutRect innerRect;
-
- listRect.LayoutRect( rect,
- AknLayoutScalable_Avkon::list_highlight_pane_cp1().LayoutLine() );
- innerRect.LayoutRect( listRect.Rect(),
- AknLayoutScalable_Avkon::list_highlight_pane_g1_cp1().LayoutLine() );
-
- MAknsSkinInstance* skin = AknsUtils::SkinInstance();
- aGc.SetBrushStyle( CGraphicsContext::ESolidBrush );
- // if we have transparent highlight, draw also background under highlight
- if ( Background() )
+ TBool drawOk = EFalse;
+ if( iExtension->iAnimation ) // Draw animated highlight
{
- Background()->Draw( aGc, *this, rect );
+ drawOk = iExtension->iAnimation->Render( aGc, rect );
}
-
- drawOk = AknsDrawUtils::DrawFrame( skin, aGc, rect, innerRect.Rect(),
- KAknsIIDQsnFrList, KAknsIIDDefault );
-
- //Both highlight animation and frame drawing failed.
if ( !drawOk )
{
- listRect.DrawRect( aGc );
- innerRect.DrawRect( aGc );
+ // Animated highlight was not available, use normal skinned
+ // rendering.
+ TAknLayoutRect listRect;
+ TAknLayoutRect innerRect;
+
+ listRect.LayoutRect( rect,
+ AknLayoutScalable_Avkon::list_highlight_pane_cp1().LayoutLine() );
+ innerRect.LayoutRect( listRect.Rect(),
+ AknLayoutScalable_Avkon::list_highlight_pane_g1_cp1().LayoutLine() );
+
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+ aGc.SetBrushStyle( CGraphicsContext::ESolidBrush );
+ // if we have transparent highlight, draw also background under highlight
+ if ( Background() )
+ {
+ Background()->Draw( aGc, *this, rect );
+ }
+
+ drawOk = AknsDrawUtils::DrawFrame( skin, aGc, rect, innerRect.Rect(),
+ KAknsIIDQsnFrList, KAknsIIDDefault );
+
+ //Both highlight animation and frame drawing failed.
+ if ( !drawOk )
+ {
+ listRect.DrawRect( aGc );
+ innerRect.DrawRect( aGc );
+ }
}
}
- }
-
- if ( aHighlight == ERemoveHighlight && Background() )
- {
- Background()->Draw( aGc, *this, rect );
- }
+
+ if ( aHighlight == ERemoveHighlight && Background() )
+ {
+ Background()->Draw( aGc, *this, rect );
+ }
+
+ TAknLayoutText layoutText;
+ layoutText.LayoutText( rect,
+ AknLayoutScalable_Avkon::list_single_touch_menu_pane_t1().LayoutLine());
+
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+
+ TRgb textColor(layoutText.Color());
+ AknsUtils::GetCachedColor( skin, textColor, KAknsIIDQsnTextColors,
+ EAknsCIQsnTextColorsCG20 );
+
+ layoutText.DrawText( aGc, *(iItems[aItem]->iText), ETrue, textColor );
- TAknLayoutText layoutText;
- layoutText.LayoutText( rect,
- AknLayoutScalable_Avkon::list_single_touch_menu_pane_t1().LayoutLine());
-
- MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-
- TRgb textColor(layoutText.Color());
- AknsUtils::GetCachedColor( skin, textColor, KAknsIIDQsnTextColors,
- EAknsCIQsnTextColorsCG20 );
-
- layoutText.DrawText( aGc, *(iItems[aItem]->iText), ETrue, textColor );
+ if ( aItem < iLastVisibleItem )
+ {
+ AknListUtils::DrawSeparator( aGc, rect, textColor );
+ }
+ }
}
// -----------------------------------------------------------------------------
@@ -1041,31 +1085,21 @@
}
TAknDoubleSpanScrollBarModel vsbarModel;
- TAknDoubleSpanScrollBarModel hsbarModel;
if ( iSBFrame->VScrollBarVisibility() != CEikScrollBarFrame::EOff )
{
vsbarModel.iThumbPosition = thumbPos * singleItemHeight + Offset();
vsbarModel.iScrollSpan = visibleItems * singleItemHeight;
vsbarModel.iThumbSpan = fitsToMenu * singleItemHeight;
-
- TEikScrollBarFrameLayout layout;
- layout.iTilingMode=TEikScrollBarFrameLayout::EInclusiveRectConstant;
- layout.SetClientMargin(0);
- layout.SetInclusiveMargin(0);
+
+ TAknLayoutRect scrollBarLayout;
+ scrollBarLayout.LayoutRect( listRect,
+ AknLayoutScalable_Avkon::scroll_pane() );
+ TRect scrollBarRect( scrollBarLayout.Rect() );
- TBool changed ( EFalse );
- TRect clientRect( listRect );
- TRect inclusiveRect( listRect );
- TRAP_IGNORE ( changed = iSBFrame->TileL( &hsbarModel,
- &vsbarModel,
- clientRect,
- inclusiveRect,
- layout ) );
- if ( changed )
- {
- iSBFrame->DrawScrollBarsDeferred();
- }
+ iSBFrame->Tile( &vsbarModel, scrollBarRect );
+
+ iSBFrame->DrawScrollBarsDeferred();
}
}
@@ -1245,7 +1279,13 @@
iItems[i]->iRect = itemRect;
}
- return lastItem;
+ if ( lastItem == iItems.Count() )
+ {
+ // substract the partially visible item
+ --lastItem;
+ }
+
+ return lastItem;
}
// ---------------------------------------------------------------------------
@@ -1264,7 +1304,7 @@
TRAP_IGNORE( InitPhysicsL() );
- if ( CalculateShownItems( ENoScroll ) != KNoItemSelected )
+ if ( ( iLastVisibleItem = CalculateShownItems( ENoScroll ) ) != KNoItemSelected )
{
UpdateScrollBar();
DrawNow();
@@ -1282,6 +1322,8 @@
{
CWindowGc& gc = SystemGc();
+ gc.SetClippingRect( Rect() );
+
for ( TInt i=iFirstItem; i < iItems.Count(); i++ )
{
if ( iItems[i]->iVisibility != KHidden )
@@ -1290,6 +1332,7 @@
ENoHighlight );
}
}
+ gc.CancelClippingRect();
}
}
@@ -1402,17 +1445,8 @@
return 0;
}
- TRect mainPaneRect;
- AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane,
- mainPaneRect );
TAknWindowLineLayout listLayout =
AknLayoutScalable_Avkon::list_single_touch_menu_pane(0).LayoutLine();
-
- TAknTextLineLayout textLayout =
- AknLayoutScalable_Avkon::list_single_touch_menu_pane_t1().LayoutLine();
-
- TAknWindowLineLayout unit =
- AknLayoutScalable_Avkon::aid_value_unit2().LayoutLine();
TInt singleItemHeight = listLayout.iH;
TInt height = singleItemHeight * visibleItems;
--- a/uifw/EikStd/coctlsrc/aknstyluspopupmenuphysicshandler.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/coctlsrc/aknstyluspopupmenuphysicshandler.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -244,7 +244,10 @@
TSize viewSize( iViewRect.Width(), iViewRect.Height() );
iPhysics->InitPhysicsL( worldSize, viewSize, EFalse );
- iPhysics->UpdateViewWindowControl( iPopUpMenuContent );
+ if ( iPopUpMenuContent->IsVisible() )
+ {
+ iPhysics->UpdateViewWindowControl( iPopUpMenuContent );
+ }
}
@@ -382,7 +385,7 @@
iPrevTopmostItem = topmostItem;
//when appear or dispear a tiem,a feedback was given.
- if ( abs( iPrevOffset ) <= iViewRect.Height()
+ if ( abs( iPrevOffset ) < iViewRect.Height() + iItemHeight
&& ( iPrevOffset/iItemHeight ) != iOffsetItemCount )
{
if ( iPhysics )
@@ -412,8 +415,8 @@
break;
}
}
+ iOffsetItemCount = iPrevOffset/iItemHeight;
}
- iOffsetItemCount = iPrevOffset/iItemHeight;
}
}
--- a/uifw/EikStd/coctlsrc/eikcba.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/coctlsrc/eikcba.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002-2009 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"
@@ -26,6 +26,8 @@
#include <eiksoftkeypostingtransparency.h>
#include <eikbtgpc.h>
#include <aknappui.h>
+#include <eikappui.h>
+#include <eikapp.h>
#include <AknUtils.h> // LayoutUtils
#include <aknlayoutscalable_apps.cdl.h>
#include <AknsBasicBackgroundControlContext.h>
@@ -268,7 +270,6 @@
iCbaRect = TRect( 0,0,0,0 );
iIfSkinChanged = EFalse;
iIfMskIconSet = EFalse;
- iSemiBgID = KAknsIIDNone;
if ( iOwner.Flags().IsSet( ECbaSingleClickEnabled ) )
{
@@ -731,16 +732,85 @@
void DrawSemiTransparencyL(CWindowGc& aGc,
const TRect& aRect)
{
- //Temporary inner rectangal value
- TRect innerRect = aRect;
- innerRect.Shrink( 5, 5 );
- if ( iSemiBgID != KAknsIIDNone )
- {
- AknsDrawUtils::DrawFrame( AknsUtils::SkinInstance(),
- aGc, aRect, innerRect, iSemiBgID, iSemiBgCenterID );
- }
+ aGc.SetBrushStyle( CGraphicsContext::ESolidBrush );
+ aGc.SetBrushColor( TRgb(128, 128, 128, 64) );
+ aGc.Clear();
+
+ TAknsItemID SemiButtonID = KAknsIIDQgnHomeButtonWidget;
+ TAknsItemID SemiButtonCenterID = KAknsIIDQgnHomeButtonWidgetCenter;
+ TAknsItemID SemiButtonPressedID = KAknsIIDQgnHomeButtonWidget;
+ TAknsItemID SemiButtonPressedCenterID = KAknsIIDQsnFrHomeCenterPressed;
+
+ CEikCbaButton* button1 = static_cast<CEikCbaButton*>
+ (iOwner.Control(KControlArrayCBAButton1Posn));
+ CEikCbaButton* button2 = static_cast<CEikCbaButton*>
+ (iOwner.Control(KControlArrayCBAButton2Posn));
+
+ if (IsMskEnabledLayoutActive())
+ {
+ TRect innerRect = iMiddleFrameOuterRect;
+ innerRect.Shrink(4, 4);
+
+ CEikCbaButton* buttonMSK = static_cast<CEikCbaButton*>
+ (iOwner.Control(KControlArrayCBAButtonMSKPosn));
+
+ if (buttonMSK && buttonMSK->PressedDown())
+ {
+ AknsDrawUtils::DrawFrame(AknsUtils::SkinInstance(), aGc,
+ iMiddleFrameOuterRect,
+ innerRect,//iMiddleFrameInnerRect,
+ SemiButtonPressedID,
+ SemiButtonPressedCenterID);
+ }
+ else
+ {
+ AknsDrawUtils::DrawFrame(AknsUtils::SkinInstance(), aGc,
+ iMiddleFrameOuterRect,
+ innerRect,//iMiddleFrameInnerRect,
+ SemiButtonID,
+ SemiButtonCenterID);
+ }
+ }
+
+ TRect innerRect = iLeftFrameOuterRect;
+ innerRect.Shrink(4, 4);
+
+ if (button1 && button1->PressedDown())
+ {
+ AknsDrawUtils::DrawFrame(AknsUtils::SkinInstance(), aGc,
+ iLeftFrameOuterRect,
+ innerRect,//iLeftFrameInnerRect,
+ SemiButtonPressedID,
+ SemiButtonPressedCenterID);
+ }
+ else
+ {
+ AknsDrawUtils::DrawFrame(AknsUtils::SkinInstance(), aGc,
+ iLeftFrameOuterRect,
+ innerRect,//iLeftFrameInnerRect,
+ SemiButtonID,
+ SemiButtonCenterID);
+ }
+
+ innerRect = iRightFrameOuterRect;
+ innerRect.Shrink(4, 4);
+ if (button2 && button2->PressedDown())
+ {
+ AknsDrawUtils::DrawFrame(AknsUtils::SkinInstance(), aGc,
+ iRightFrameOuterRect,
+ innerRect,//iRightFrameInnerRect,
+ SemiButtonPressedID,
+ SemiButtonPressedCenterID);
+ }
+ else
+ {
+ AknsDrawUtils::DrawFrame(AknsUtils::SkinInstance(), aGc,
+ iRightFrameOuterRect,
+ innerRect,//iRightFrameInnerRect,
+ SemiButtonID,
+ SemiButtonCenterID);
+ }
}
-
public:
CEikCba& iOwner;
@@ -796,11 +866,6 @@
*/
TRect iUpdateFrameOuterRect;
- /*
- * Frame and center theme ID, using for semi-transparent
- */
- TAknsItemID iSemiBgID;
- TAknsItemID iSemiBgCenterID;
/**
* Inner rect used in UpdateSoftkeyFrameL method.
*/
@@ -1195,12 +1260,6 @@
}
iExtension = CEikCbaExtension::NewL( *this );
- //create bitmap for semi-transparent background
- if ( iCbaFlags & EEikCbaFlagSemiTransparent && iExtension )
- {
- iExtension->iSemiBgID = KAknsIIDQsnHomeBgWidget;
- iExtension->iSemiBgCenterID = KAknsIIDQsnHomeBgWidgetCenter;
- }
// Skin background is not drawn by embedded CBA.
if ( !iFlags.IsSet( ECbaEmbedded ) )
@@ -1333,6 +1392,17 @@
TResourceReader reader;
iCoeEnv->CreateResourceReaderLC(reader, aResourceId);
iCbaFlags = reader.ReadInt32(); // flags resource
+
+ const TUid KActiveIdle2Uid = {0x102750F0};
+ CEikApplication* app = CEikonEnv::Static()->EikAppUi()->Application();
+ if ( app && app->AppDllUid() == KActiveIdle2Uid )
+ {
+ //it's intereting that the transparent can't not be set after the CBA was created for a while.
+ //it just can be done in the CBA constructor, maybe some defect in Window server, but I'm not sure
+ //about that, in order to fix the defect I have hardcode the transparent flag for homescreen the only usercase.
+ //it should be fixed later.
+ iCbaFlags |= EEikCbaFlagSemiTransparent;
+ }
// If using enhanced cba.
if ( (iCbaFlags & EEikEnhancedButtonGroup) == EEikEnhancedButtonGroup )
@@ -2773,16 +2843,8 @@
//
if ( statusPane &&
statusPane->IsVisible() &&
- AknStatuspaneUtils::ExtendedFlatLayoutActive() &&
- ( iBgIID == KAknsIIDQsnBgAreaControl ||
- iBgIID == KAknsIIDQsnBgAreaControlIdle ||
- iBgIID == KAknsIIDQsnBgAreaControlMp ||
- ( iBgIID == KAknsIIDWallpaper &&
- AknStatuspaneUtils::IdleLayoutActive() ) ) )
- {
- TRect digitalClockRect( 0,0,0,0 );
- TRect indicatorRect( 0,0,0,0 );
-
+ AknStatuspaneUtils::ExtendedFlatLayoutActive() )
+ {
if ( iBgIID == KAknsIIDQsnBgAreaControlMp )
{
if ( !iIsClockIndicBgIIDSet )
@@ -2803,35 +2865,65 @@
}
}
- TRAPD( err1,
- indicatorRect = statusPane->PaneRectL( TUid::Uid(
- EEikStatusPaneUidIndic ) ) );
-
- TRAPD( err2,
- digitalClockRect = statusPane->PaneRectL( TUid::Uid(
- EEikStatusPaneUidDigitalClock ) ) );
-
- if ( !err1 && !err2 )
- {
- TPoint cbaPositionRelativeToScreen( PositionRelativeToScreen() );
- TRect cbaRectRelativeToScreen( cbaPositionRelativeToScreen, Size() );
-
- if ( cbaRectRelativeToScreen.Intersects( indicatorRect ) )
+ if ( statusPane->PaneCapabilities(
+ TUid::Uid( EEikStatusPaneUidCombined ) ).IsInCurrentLayout() )
+ {
+ TRect combinedPaneRect( 0, 0, 0, 0 );
+ TRAPD( err,
+ combinedPaneRect =
+ statusPane->PaneRectL( TUid::Uid(
+ EEikStatusPaneUidCombined ) ) );
+
+ if ( !err )
{
- indicatorRect.Move(
- -cbaPositionRelativeToScreen.iX,
- -cbaPositionRelativeToScreen.iY );
-
- region.SubRect( indicatorRect );
+ TPoint cbaPositionRelativeToScreen( PositionRelativeToScreen() );
+ TRect cbaRectRelativeToScreen( cbaPositionRelativeToScreen, Size() );
+
+ if ( cbaRectRelativeToScreen.Intersects( combinedPaneRect ) )
+ {
+ combinedPaneRect.Move(
+ -cbaPositionRelativeToScreen.iX,
+ -cbaPositionRelativeToScreen.iY );
+
+ region.SubRect( combinedPaneRect );
+ }
}
+ }
+ else
+ {
+ TRect digitalClockRect( 0, 0, 0, 0 );
+ TRect indicatorRect( 0, 0, 0, 0 );
+
+ TRAPD( err1,
+ indicatorRect = statusPane->PaneRectL( TUid::Uid(
+ EEikStatusPaneUidIndic ) ) );
+
+ TRAPD( err2,
+ digitalClockRect = statusPane->PaneRectL( TUid::Uid(
+ EEikStatusPaneUidDigitalClock ) ) );
- if ( cbaRectRelativeToScreen.Intersects( digitalClockRect ) )
+ if ( !err1 && !err2 )
{
- digitalClockRect.Move(
- -cbaPositionRelativeToScreen.iX,
- -cbaPositionRelativeToScreen.iY );
-
- region.SubRect( digitalClockRect );
+ TPoint cbaPositionRelativeToScreen( PositionRelativeToScreen() );
+ TRect cbaRectRelativeToScreen( cbaPositionRelativeToScreen, Size() );
+
+ if ( cbaRectRelativeToScreen.Intersects( indicatorRect ) )
+ {
+ indicatorRect.Move(
+ -cbaPositionRelativeToScreen.iX,
+ -cbaPositionRelativeToScreen.iY );
+
+ region.SubRect( indicatorRect );
+ }
+
+ if ( cbaRectRelativeToScreen.Intersects( digitalClockRect ) )
+ {
+ digitalClockRect.Move(
+ -cbaPositionRelativeToScreen.iX,
+ -cbaPositionRelativeToScreen.iY );
+
+ region.SubRect( digitalClockRect );
+ }
}
}
}
@@ -3179,22 +3271,6 @@
{
iCbaFlags &= ~EEikCbaFlagTransparent;
}
- if ( iCbaFlags & EEikCbaFlagSemiTransparent )
- {
- if ( iExtension )
- {
- iExtension->iSemiBgID = KAknsIIDQsnHomeBgWidget;
- iExtension->iSemiBgCenterID = KAknsIIDQsnHomeBgWidgetCenter;
- }
- }
- else
- {
- if ( iExtension )
- {
- iExtension->iSemiBgID = KAknsIIDNone;
- iExtension->iSemiBgCenterID = KAknsIIDNone;
- }
- }
UpdateFonts();
}
@@ -3285,12 +3361,30 @@
TKeyResponse response(EKeyWasNotConsumed);
+ CEikCbaButton* button1 =
+ static_cast<CEikCbaButton*>(
+ (*iControlArray)[KControlArrayCBAButton1Posn].iControl );
+ CEikCbaButton* button2 =
+ static_cast<CEikCbaButton*>(
+ (*iControlArray)[KControlArrayCBAButton2Posn].iControl );
+ CEikCbaButton* buttonMSK = NULL;
+ if ( iMSKset && AknLayoutUtils::MSKEnabled() )
+ {
+ buttonMSK =
+ static_cast<CEikCbaButton*>(
+ (*iControlArray)[KControlArrayCBAButtonMSKPosn].iControl );
+ }
+
// AknLaf - changed to use keys defined in AknKeys.h.
// Left soft key will be returned also when MSK is enabled but not defined.
if (aKeyEvent.iCode == EKeyCBA1)
{
if (KControlArrayCBAButton1Posn < iControlArray->Count())
{
+ if( button1->IsDimmed() )
+ {
+ return EKeyWasConsumed;
+ }
// Return immediately if the button is invisible
if ( (*iControlArray)[KControlArrayCBAButton1Posn].iControl &&
!(*iControlArray)[KControlArrayCBAButton1Posn].iControl->IsVisible() &&
@@ -3322,6 +3416,10 @@
{
if (KControlArrayCBAButton2Posn < iControlArray->Count())
{
+ if( button2->IsDimmed() )
+ {
+ return EKeyWasConsumed;
+ }
// Return immediately if the button is invisible.
if ( (*iControlArray)[KControlArrayCBAButton2Posn].iControl &&
!(*iControlArray)[KControlArrayCBAButton2Posn].iControl->IsVisible() &&
@@ -3365,6 +3463,10 @@
&& aKeyEvent.iCode == EKeyOK
&& !Window().IsFaded() )
{
+ if( buttonMSK->IsDimmed() )
+ {
+ return EKeyWasConsumed;
+ }
if (KControlArrayCBAButtonMSKPosn < iControlArray->Count())
{
// Return immediately if the button is invisible.
@@ -3577,6 +3679,11 @@
// If hits the left softkey.
if ( button1Rect.Contains( aPointerEvent.iPosition ) && !button1Empty )
{
+ if( button1->IsDimmed() )
+ {
+ CCoeControl::HandlePointerEventL( aPointerEvent );
+ return;
+ }
if ( button1->IsVisible() )
{
if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
@@ -3636,6 +3743,11 @@
}
else if ( button2Rect.Contains( aPointerEvent.iPosition ) && !button2Empty )
{
+ if( button2->IsDimmed() )
+ {
+ CCoeControl::HandlePointerEventL( aPointerEvent );
+ return;
+ }
if ( button2->IsVisible() )
{
if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
@@ -3697,6 +3809,11 @@
!buttonMSKEmpty &&
buttonMSKRect.Contains( aPointerEvent.iPosition ) )
{
+ if( buttonMSK->IsDimmed() )
+ {
+ CCoeControl::HandlePointerEventL( aPointerEvent );
+ return;
+ }
if ( buttonMSK->IsVisible() )
{
if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
@@ -4199,18 +4316,19 @@
{
return;
}
+
+ if ( iCbaFlags & EEikCbaFlagSemiTransparent )
+ {
+ CWindowGc &gc = SystemGc();
+
+ iExtension->DrawSemiTransparencyL( gc, Rect() );
+ return;
+ }
MAknsSkinInstance* skin = AknsUtils::SkinInstance();
const TRect rect( Rect() );
CWindowGc& gc = SystemGc();
-
- TRgb rgb( TRgb::Color16MA( 0 ) );
- gc.SetDrawMode( CGraphicsContext::EDrawModeWriteAlpha );
- gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
- gc.SetBrushColor( rgb );
- gc.Clear();
-
MAknsControlContext* cc = iMLBgContext;
if ( iFlags.IsSet( ECbaEmbedded ) )
@@ -4443,13 +4561,6 @@
}
}
}
- else if ( ( iCbaFlags & EEikCbaFlagSemiTransparent) && iExtension )
- {
- if ( iExtension->iSemiBgID != KAknsIIDNone )
- {
- iExtension->DrawSemiTransparencyL( gc, rect );
- }
- }
else
{
// No background since EEikCbaFlagTransparent is set.
@@ -5021,7 +5132,7 @@
}
if ( iExtension->iEnablePostingTransparency ||
- ( iCbaFlags & EEikCbaFlagTransparent ) || ( iCbaFlags & EEikCbaFlagSemiTransparent ) )
+ ( iCbaFlags & EEikCbaFlagTransparent ) )
{
textVariety = 6; // Outline font used
}
@@ -5113,7 +5224,7 @@
}
TInt textMSKVariety = 3;
- TInt graphicMSKVariety = 0;
+ TInt graphicMSKVariety = 1;
if ( mskEnabledInApplication && mskEnabledInPlatform )
{
@@ -5163,9 +5274,7 @@
MAknsSkinInstance* skin = AknsUtils::SkinInstance();
const TBool transparentSoftkeys =
- iExtension->iEnablePostingTransparency ||
- ( iCbaFlags & EEikCbaFlagTransparent ) ||
- ( iCbaFlags & EEikCbaFlagSemiTransparent );
+ iExtension->iEnablePostingTransparency || ( iCbaFlags & EEikCbaFlagTransparent );
TRgb leftColor;
TRgb rightColor;
TRgb MSKColor;
@@ -6076,7 +6185,7 @@
TInt rightPaneTextVariety = 0;
if ( iExtension->iEnablePostingTransparency ||
- ( iCbaFlags & EEikCbaFlagTransparent ) || ( iCbaFlags & EEikCbaFlagSemiTransparent ) )
+ ( iCbaFlags & EEikCbaFlagTransparent ) )
{
rightPaneTextVariety = 1; // Outline font used
}
@@ -7250,7 +7359,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() );
--- a/uifw/EikStd/coctlsrc/eikspane.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/coctlsrc/eikspane.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -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"
@@ -301,6 +301,24 @@
return EFalse;
}
+// ----------------------------------------------------------------------------
+// Sets the container control for the specified control and updates the
+// the whole parent hierarchy.
+// ----------------------------------------------------------------------------
+//
+static void SetContainersL( CCoeControl& aControl,
+ const CCoeControl& aContainer )
+ {
+ aControl.SetContainerWindowL( aContainer );
+
+ TInt count = aControl.CountComponentControls();
+
+ for ( TInt i = 0; i < count; ++i )
+ {
+ CCoeControl* child = aControl.ComponentControl( i );
+ SetContainersL( *child, aControl );
+ }
+ }
// ---------------------------------------------------------------------------
// Helper method to compose two layout lines together.
@@ -1146,6 +1164,41 @@
*/
void HandleResourceChange( TInt aType );
+ /**
+ * Sets the parent window of the container control and the child controls
+ * inside it.
+ *
+ * @param aParentWindowGroup If not @c NULL, then the control is made
+ * window-owning with this window group
+ * as parent.
+ * @param aParentControl Control to be set as parent. Note that
+ * specifying this parameter has no effect
+ * if the @c aParentWindowGroup is not
+ * @c NULL.
+ * @param aRedrawStoreHandler Pointer to the redraw store handler should
+ * be also passed if @c aParentWindowGroup
+ * is specified.
+ */
+ void SetParentWindowL( RWindowGroup* aParentWindowGroup,
+ CCoeControl* aParentControl,
+ CRedrawStoreHandler* aRedrawStoreHandler );
+
+ /**
+ * Sets the background drawer for the container control.
+ *
+ * @param aBackground The background drawer.
+ */
+ void SetBackgroundDrawer( MCoeControlBackground* aBackground );
+
+ /**
+ * Checks if the status pane container is in the idle (Home Screen)
+ * application. This check in required in some places since Home
+ * Screen draws the status pane background itself.
+ *
+ * @return @c ETrue if in idle application, @c EFalse otherwise.
+ */
+ TBool InIdleApplication();
+
public: // From base class @c CCoeControl.
/**
@@ -1342,9 +1395,8 @@
CreateWindowL( aParent );
- //This is added for homescreen transparent
- CEikApplication* app = iEikonEnv->EikAppUi()->Application();
- if ( app && app->AppDllUid() == KActiveIdle2Uid )
+ // This is added for homescreen transparency support.
+ if ( InIdleApplication() )
{
if( KErrNone == Window().SetTransparencyAlphaChannel())
Window().SetBackgroundColor(~0);
@@ -2237,105 +2289,194 @@
case R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT:
case R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT: // fallthrough
{
- TBool idleLayout =
- aLayoutId == R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT;
-
- TAknLayoutRect flatWideStatusPane;
- flatWideStatusPane.LayoutRect(
- application_window,
- DoCompose( AknLayoutScalable_Avkon::area_top_pane( 19 ),
- AknLayoutScalable_Avkon::status_pane( 4 ) ).LayoutLine() );
- TRect spRect( flatWideStatusPane.Rect() );
-
- if ( idleLayout )
+ if ( aContextNumber == 0 )
{
- aBgContext->SetLayerImage( ELayerFlatWallpaper, KAknsIIDWallpaper );
- aBgContext->SetLayerRect( ELayerFlatWallpaper, screen );
- maskIID = KAknsIIDQgnGrafBgLscTopMaskIcon;
- maskRect = spRect;
+ // We use frame as layered context so that we can avoid having
+ // two separate background contexts in this class.
+ // In any case frame context is implemented using layered
+ // context so this should be quite ok thing to do.
+
+ TAknLayoutRect layoutRect;
+ layoutRect.LayoutRect(
+ application_window,
+ AknLayoutScalable_Avkon::area_top_pane( 2 ) );
+ TRect topLayoutRect( layoutRect.Rect() );
+
+ layoutRect.LayoutRect(
+ topLayoutRect,
+ AknLayoutScalable_Avkon::status_pane( 1 ) );
+ TRect spRect( layoutRect.Rect() );
+
+ layoutRect.LayoutRect(
+ spRect,
+ AknLayoutScalable_Avkon::bg_status_flat_pane( 0 ) );
+ TRect bgRect( layoutRect.Rect() );
+
+ if ( aLayoutId == R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT )
+ {
+ TAknLayoutRect extension;
+ extension.LayoutRect(
+ application_window,
+ AknLayoutScalable_Avkon::main_pane( 4 ) );
+
+ // Wallpaper
+ aBgContext->SetLayerImage( ELayerFlatWallpaper,
+ KAknsIIDWallpaper );
+ aBgContext->SetLayerRect( ELayerFlatWallpaper, screen );
+
+ // Main pane
+ aBgContext->SetLayerImage( ELayerFlatMain,
+ KAknsIIDQsnBgAreaMainIdle );
+ aBgContext->SetLayerRect( ELayerFlatMain,
+ extension.Rect() );
+
+ // Skin background, transparency support
+ aBgContext->SetLayerImage( ELayerFlatBackground,
+ KAknsIIDQsnBgScreenIdle );
+ aBgContext->SetLayerRect( ELayerFlatBackground,
+ topLayoutRect );
+
+ // CBA area
+ aBgContext->SetLayerImage( ELayerFlatCba,
+ KAknsIIDQsnBgAreaControlIdle );
+ aBgContext->SetLayerRect( ELayerFlatCba, cbaRect );
+ }
+ else
+ { // Not Idle.
+ // Main pane
+ aBgContext->SetLayerImage( ELayerFlatMain, KAknsIIDNone );
+
+ // Wallpaper
+ aBgContext->SetLayerImage( ELayerFlatWallpaper,
+ KAknsIIDNone );
+
+ // Skin background, transparency support
+ aBgContext->SetLayerImage( ELayerFlatBackground,
+ KAknsIIDQsnBgScreen );
+ aBgContext->SetLayerRect( ELayerFlatBackground, screen );
+
+ // CBA area
+ aBgContext->SetLayerImage( ELayerFlatCba, aCbaBgID );
+ aBgContext->SetLayerRect( ELayerFlatCba, cbaRect );
+ }
+
+ MAknsSkinInstance* si = AknsUtils::SkinInstance();
+ CAknsItemData* idata = NULL;
+ if ( si )
+ {
+ TRAP_IGNORE(
+ idata = si->CreateUncachedItemDataL(
+ KAknsIIDQsnFrStatusFlat, EAknsITImageTable ) );
+ }
+
+ if ( idata ) // 9 piece frame used
+ {
+ layoutRect.LayoutRect( bgRect, AknLayoutScalable_Avkon::bg_status_flat_pane_g2() );
+ aBgContext->SetLayerImage( ELayerFlatTl, KAknsIIDQsnFrStatusFlatCornerTl );
+ aBgContext->SetLayerRect( ELayerFlatTl, layoutRect.Rect() );
+
+ layoutRect.LayoutRect( bgRect, AknLayoutScalable_Avkon::bg_status_flat_pane_g3() );
+ aBgContext->SetLayerImage( ELayerFlatTr, KAknsIIDQsnFrStatusFlatCornerTr );
+ aBgContext->SetLayerRect( ELayerFlatTr, layoutRect.Rect() );
+
+ layoutRect.LayoutRect( bgRect, AknLayoutScalable_Avkon::bg_status_flat_pane_g4() );
+ aBgContext->SetLayerImage( ELayerFlatBl, KAknsIIDQsnFrStatusFlatCornerBl );
+ aBgContext->SetLayerRect( ELayerFlatBl, layoutRect.Rect() );
+
+ layoutRect.LayoutRect( bgRect, AknLayoutScalable_Avkon::bg_status_flat_pane_g5() );
+ aBgContext->SetLayerImage( ELayerFlatBr, KAknsIIDQsnFrStatusFlatCornerBr );
+ aBgContext->SetLayerRect( ELayerFlatBr, layoutRect.Rect() );
+
+ layoutRect.LayoutRect( bgRect, AknLayoutScalable_Avkon::bg_status_flat_pane_g6() );
+ aBgContext->SetLayerImage( ELayerFlatT, KAknsIIDQsnFrStatusFlatSideT);
+ aBgContext->SetLayerRect( ELayerFlatT, layoutRect.Rect() );
+
+ layoutRect.LayoutRect( bgRect, AknLayoutScalable_Avkon::bg_status_flat_pane_g7() );
+ aBgContext->SetLayerImage( ELayerFlatB, KAknsIIDQsnFrStatusFlatSideB );
+ aBgContext->SetLayerRect( ELayerFlatB, layoutRect.Rect() );
+
+ layoutRect.LayoutRect( bgRect, AknLayoutScalable_Avkon::bg_status_flat_pane_g9() );
+ aBgContext->SetLayerImage( ELayerFlatR, KAknsIIDQsnFrStatusFlatSideR );
+ aBgContext->SetLayerRect( ELayerFlatR, layoutRect.Rect() );
+
+ layoutRect.LayoutRect( bgRect, AknLayoutScalable_Avkon::bg_status_flat_pane_g8() );
+ aBgContext->SetLayerImage( ELayerFlatL, KAknsIIDQsnFrStatusFlatSideL );
+ aBgContext->SetLayerRect( ELayerFlatL, layoutRect.Rect() );
+
+ layoutRect.LayoutRect( bgRect, AknLayoutScalable_Avkon::bg_status_flat_pane_g1() );
+ aBgContext->SetLayerImage( ELayerFlatCenter, KAknsIIDQsnFrStatusFlatCenter );
+ aBgContext->SetLayerRect( ELayerFlatCenter, layoutRect.Rect() );
+
+ if ( aLayoutId == R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT )
+ {
+ maskIID = KAknsIIDQgnGrafBgLscTopMaskIcon;
+ maskRect = spRect;
+ }
+ }
+ else // handle one piece version here
+ {
+ if ( aLayoutId == R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT )
+ {
+ // Wallpaper
+ aBgContext->SetLayerImage( ELayerFlatWallpaper,
+ KAknsIIDWallpaper );
+ aBgContext->SetLayerRect( ELayerFlatWallpaper,
+ staconTop );
+
+ // Skin background
+ aBgContext->SetLayerImage( ELayerFlatBackground,
+ KAknsIIDQsnFrStatusFlat );
+ aBgContext->SetLayerRect( ELayerFlatBackground,
+ bgRect );
+
+ // Set all other frame parts empty as they
+ // might already be filled with something
+ for ( TInt n = ELayerFlatBackground + 1; n <= ELayerFlatCenter; n++ )
+ {
+ aBgContext->SetLayerImage( n, KAknsIIDNone );
+ }
+
+ maskIID = KAknsIIDQgnGrafBgLscTopMaskIcon;
+ maskRect = spRect;
+ }
+ else
+ {
+ aBgContext->SetLayerImage( ELayerFlatWallpaper,
+ KAknsIIDQsnFrStatusFlat );
+ aBgContext->SetLayerRect( ELayerFlatWallpaper,
+ bgRect );
+
+ // Set all other frame parts empty as they
+ // might already be filled with something
+ for ( TInt n = ELayerFlatBackground; n <= ELayerFlatCenter; n++ )
+ {
+ aBgContext->SetLayerImage( n, KAknsIIDNone );
+ }
+ }
+ }
+
+ delete idata;
}
-
- aBgContext->SetLayerImage( ELayerFlatMain, KAknsIIDNone );
-
- aBgContext->SetLayerImage( ELayerFlatCba, KAknsIIDNone );
-
- MAknsSkinInstance* si = AknsUtils::SkinInstance();
- CAknsItemData* idata = NULL;
- if ( si )
+ else // context == 1 - this is the area removed from CBA for clock
+ // and indicator panes.
{
- TRAP_IGNORE(
- idata = si->CreateUncachedItemDataL( KAknsIIDQsnFrStatusFlat,
- EAknsITImageTable ) );
- }
-
- if ( idata ) // 9 piece frame used
- {
- if ( aCbaBgID == KAknsIIDQsnBgAreaControlMp )
+ if ( aLayoutId == R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT )
{
- aBgContext->SetLayerImage( ELayerFlatBackground,
- KAknsIIDQsnBgScreenMp );
+ aBgContext->SetLayerImage( ELayerFlatCbaWp,
+ KAknsIIDWallpaper );
+ aBgContext->SetLayerRect( ELayerFlatCbaWp, screen );
+
+ maskIID = KAknsIIDQgnGrafBgLscBottomMaskIcon;
+ maskRect = cbaRect;
}
else
{
- aBgContext->SetLayerImage(
- ELayerFlatBackground,
- idleLayout ? KAknsIIDQsnBgScreenIdle :
- KAknsIIDQsnBgScreen );
+ aBgContext->SetLayerImage( ELayerFlatCbaWp, KAknsIIDNone );
}
- aBgContext->SetLayerRect( ELayerFlatBackground, screen );
-
- TAknWindowLineLayout layout( AknLayoutScalable_Avkon::bg_status_flat_pane_g2().LayoutLine() );
- layoutRect.LayoutRect( spRect, layout );
- aBgContext->SetLayerImage( ELayerFlatTl, KAknsIIDQsnFrStatusFlatCornerTl );
- aBgContext->SetLayerRect( ELayerFlatTl, layoutRect.Rect() );
-
- layout = AknLayoutScalable_Avkon::bg_status_flat_pane_g3().LayoutLine();
- layoutRect.LayoutRect( spRect, AknLayoutScalable_Avkon::bg_status_flat_pane_g3() );
- aBgContext->SetLayerImage( ELayerFlatTr, KAknsIIDQsnFrStatusFlatCornerTr );
- aBgContext->SetLayerRect( ELayerFlatTr, layoutRect.Rect());
-
- layout = AknLayoutScalable_Avkon::bg_status_flat_pane_g4().LayoutLine();
- layoutRect.LayoutRect( spRect, layout );
- aBgContext->SetLayerImage( ELayerFlatBl, KAknsIIDQsnFrStatusFlatCornerBl );
- aBgContext->SetLayerRect( ELayerFlatBl, layoutRect.Rect() );
-
- layout = AknLayoutScalable_Avkon::bg_status_flat_pane_g5().LayoutLine();
- layoutRect.LayoutRect( spRect, layout );
- aBgContext->SetLayerImage( ELayerFlatBr, KAknsIIDQsnFrStatusFlatCornerBr );
- aBgContext->SetLayerRect( ELayerFlatBr, layoutRect.Rect() );
-
- layout = AknLayoutScalable_Avkon::bg_status_flat_pane_g6().LayoutLine();
- layoutRect.LayoutRect( spRect, layout );
- aBgContext->SetLayerImage( ELayerFlatT, KAknsIIDQsnFrStatusFlatSideT);
- aBgContext->SetLayerRect( ELayerFlatT, layoutRect.Rect() );
-
- layout = AknLayoutScalable_Avkon::bg_status_flat_pane_g7().LayoutLine();
- layoutRect.LayoutRect( spRect, layout );
- aBgContext->SetLayerImage( ELayerFlatB, KAknsIIDQsnFrStatusFlatSideB );
- aBgContext->SetLayerRect( ELayerFlatB, layoutRect.Rect() );
-
- layout = AknLayoutScalable_Avkon::bg_status_flat_pane_g9().LayoutLine();
- layoutRect.LayoutRect( spRect, layout );
- aBgContext->SetLayerImage( ELayerFlatR, KAknsIIDQsnFrStatusFlatSideR );
- aBgContext->SetLayerRect( ELayerFlatR, layoutRect.Rect() );
-
- layout = AknLayoutScalable_Avkon::bg_status_flat_pane_g8().LayoutLine();
- layoutRect.LayoutRect( spRect, layout );
- aBgContext->SetLayerImage( ELayerFlatL, KAknsIIDQsnFrStatusFlatSideL );
- aBgContext->SetLayerRect( ELayerFlatL, layoutRect.Rect() );
-
- layout = AknLayoutScalable_Avkon::bg_status_flat_pane_g1().LayoutLine();
- layoutRect.LayoutRect( spRect, layout );
- aBgContext->SetLayerImage( ELayerFlatCenter, KAknsIIDQsnFrStatusFlatCenter );
- aBgContext->SetLayerRect( ELayerFlatCenter, layoutRect.Rect() );
-
- delete idata;
- }
- else
- {
- aBgContext->SetLayerImage( ELayerFlatBackground,
- KAknsIIDQsnFrStatusFlat );
- aBgContext->SetLayerRect( ELayerFlatBackground, spRect );
+
+ aBgContext->SetLayerImage( ELaterFlatCbaSkin,
+ KAknsIIDQsnBgAreaControlIdle );
+ aBgContext->SetLayerRect( ELaterFlatCbaSkin, cbaRect );
}
break;
@@ -2474,6 +2615,100 @@
// ---------------------------------------------------------------------------
+// Sets the parent window of the container control and the child controls
+// inside it.
+// ---------------------------------------------------------------------------
+//
+void CEikStatusPaneContainer::SetParentWindowL(
+ RWindowGroup* aParentWindowGroup,
+ CCoeControl* aParentControl,
+ CRedrawStoreHandler* aRedrawStoreHandler )
+ {
+ if ( aParentWindowGroup )
+ {
+ MakeVisible( EFalse );
+
+ SetMopParent( iEikonEnv->EikAppUi() );
+ SetParent( NULL );
+
+ if ( OwnsWindow() )
+ {
+ CloseWindow();
+ }
+
+ CreateWindowL( aParentWindowGroup );
+
+ // Enable the transparency only in HomeScreen where it's needed
+ // for performance reasons.
+ if ( InIdleApplication() )
+ {
+ EnableWindowTransparency();
+ }
+ else
+ {
+ Window().SetBackgroundColor(
+ iEikonEnv->ControlColor( EColorStatusPaneBackground, *this ) );
+ }
+
+ RWindow& window = Window();
+ if ( aRedrawStoreHandler )
+ {
+ aRedrawStoreHandler->SetStore( &window, KEnableRedrawStoring );
+ }
+
+ window.SetPointerGrab( ETrue );
+ window.SetShadowDisabled( ETrue );
+ window.SetNonFading( !LafStatusPaneContainer::AllowFading() );
+ EnableDragEvents();
+
+ SetContainersL( *iControl, *this );
+
+ ActivateL();
+ }
+ else if ( aParentControl )
+ {
+ SetContainersL( *this, *aParentControl );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// Sets the background drawer for the container control.
+// ---------------------------------------------------------------------------
+//
+void CEikStatusPaneContainer::SetBackgroundDrawer(
+ MCoeControlBackground* aBackground )
+ {
+ if ( aBackground && InIdleApplication() )
+ {
+ // In Home Screen the application draws also the status
+ // pane background.
+ aBackground = NULL;
+ }
+
+ SetBackground( aBackground );
+ }
+
+
+// ---------------------------------------------------------------------------
+// Checks if the status pane container is in the Home Screen application.
+// ---------------------------------------------------------------------------
+//
+TBool CEikStatusPaneContainer::InIdleApplication()
+ {
+ TBool retVal( EFalse );
+
+ CEikApplication* app = iEikonEnv->EikAppUi()->Application();
+ if ( app && app->AppDllUid() == KActiveIdle2Uid )
+ {
+ retVal = ETrue;
+ }
+
+ return retVal;
+ }
+
+
+// ---------------------------------------------------------------------------
// CEikStatusPaneContainer::Draw
// Draws the pane.
// ---------------------------------------------------------------------------
@@ -2653,7 +2888,8 @@
/**
* Internal extension class
*/
-class CEikStatusPaneBaseExtension : public CBase
+class CEikStatusPaneBaseExtension : public CBase,
+ public MCoeControlBackground
{
public:
static CEikStatusPaneBaseExtension* NewL()
@@ -2675,6 +2911,24 @@
{
};
+ // From base class MCoeControlBackground
+ // This is used for drawing background of all status pane containers.
+ void Draw( CWindowGc& aGc,
+ const CCoeControl& aControl,
+ const TRect& aRect ) const
+ {
+ if ( iCommonBgContext )
+ {
+ AknsDrawUtils::DrawBackground( AknsUtils::SkinInstance(),
+ AknsDrawUtils::ControlContext( &aControl ),
+ &aControl,
+ aGc,
+ TPoint( 0, 0 ),
+ aRect,
+ KAknsDrawParamDefault );
+ }
+ }
+
public:
/** Resource id that last has been reuqested by app using switch layout. */
@@ -2800,6 +3054,11 @@
}
}
+ // Check if combined pane was used in the previous status pane layout
+ // to avoid unnecessary subpane parent hierarchy changes.
+ TBool combinedPaneInOldLayout(
+ PaneCapabilities(
+ TUid::Uid( EEikStatusPaneUidCombined ) ).IsInCurrentLayout() );
// If AknLayout system is used for placing statuspane elements, then
// we need to be less strict when new layout is applied or size change
@@ -2831,6 +3090,16 @@
// Need to refresh the model's layout.
iModel->AknLayoutRefresh();
+ // Update the combined pane's subpane parent hierarchy if necessary.
+ TBool combinedPaneInCurrentLayout(
+ PaneCapabilities(
+ TUid::Uid( EEikStatusPaneUidCombined ) ).IsInCurrentLayout() );
+ if ( !COMPARE_BOOLS( combinedPaneInOldLayout,
+ combinedPaneInCurrentLayout ) )
+ {
+ SetCombinedPaneVisibilityL( combinedPaneInCurrentLayout );
+ }
+
TBool drawNavi = ETrue;
if ( clearer )
@@ -3081,6 +3350,11 @@
iControls =
new (ELeave) CContainerControls( KEikStatusPaneControlGranularity );
CreatePanesL();
+
+ SetCombinedPaneVisibilityL(
+ PaneCapabilities(
+ TUid::Uid( EEikStatusPaneUidCombined ) ).IsInCurrentLayout() );
+
ApplyLayoutL( iModel->CurrentLayout(), ENoDraw );
// Clearer is not needed anymore if all panes are drawn in app side.
@@ -3129,6 +3403,9 @@
iExtension->iCommonBgContext->GetControlContext( 1 ) ),
iExtension->iDataSubscriber,
*iExtension->iRedrawStoreHandler );
+
+ cont->SetBackgroundDrawer( iExtension );
+
CleanupStack::PushL( cont );
iControls->AppendL( cont );
CleanupStack::Pop( cont );
@@ -3164,7 +3441,9 @@
// has two background contextes.
if ( ( layoutResId == R_AVKON_STACON_PANE_LAYOUT_IDLE_SOFTKEYS_LEFT ||
layoutResId == R_AVKON_STACON_PANE_LAYOUT_IDLE_SOFTKEYS_RIGHT ||
- layoutResId == R_AVKON_STATUS_PANE_LAYOUT_IDLE_FLAT ) )
+ layoutResId == R_AVKON_STATUS_PANE_LAYOUT_IDLE_FLAT ||
+ layoutResId == R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT ||
+ layoutResId == R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT ) )
{
partOfCombinedContext =
iExtension->iCommonBgContext->GetControlContext( 1 );
@@ -3510,6 +3789,55 @@
}
+// ---------------------------------------------------------------------------
+// CEikStatusPaneBase::SetCombinedPaneVisibility
+// Updates the parent hierarchy of subpanes in the combined pane based
+// on whether or not the combined pane is used in the current status pane
+// layout.
+// ---------------------------------------------------------------------------
+//
+void CEikStatusPaneBase::SetCombinedPaneVisibilityL( TBool aVisible )
+ {
+ CEikStatusPaneContainer* combinedPane =
+ Find( TUid::Uid( EEikStatusPaneUidCombined ) );
+ if ( combinedPane )
+ {
+ CCoeControl* combinedPaneControl = combinedPane->Control();
+
+ // The subpane container controls inside combined pane are it's
+ // component controls.
+ TInt count( combinedPaneControl->CountComponentControls() );
+
+ for ( TInt i = 0; i < count; ++i )
+ {
+ CEikStatusPaneContainer* subPane =
+ static_cast<CEikStatusPaneContainer*>(
+ combinedPaneControl->ComponentControl( i ) );
+ if ( subPane )
+ {
+ if ( aVisible )
+ {
+ subPane->SetParentWindowL( NULL,
+ combinedPaneControl,
+ NULL );
+ // Background is drawn by the combined pane so remove
+ // the subpane's own background drawer.
+ subPane->SetBackgroundDrawer( NULL );
+ }
+ else
+ {
+ subPane->SetParentWindowL(
+ iParentWindowGroup,
+ NULL,
+ iExtension ? iExtension->iRedrawStoreHandler : NULL );
+ subPane->SetBackgroundDrawer( iExtension );
+ }
+ }
+ }
+ }
+ }
+
+
/**
* Visitor class for collecting the sub-pane areas to a single region.
*/
--- a/uifw/EikStd/coctlsrc/eikspmod.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/coctlsrc/eikspmod.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -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"
@@ -620,10 +620,11 @@
if (Layout_Meta_Data::IsLandscapeOrientation())
{
TAknLayoutRect layoutRect;
- TAknWindowComponentLayout parentLayout = aknLayoutScalable_Avkon.area_top_pane(8);
- layoutRect.LayoutRect(screenRect, parentLayout.LayoutLine());
+ layoutRect.LayoutRect(
+ screenRect,
+ aknLayoutScalable_Avkon.area_top_pane( 2 ) );
parentRect = layoutRect.Rect();
- layout = aknLayoutScalable_Avkon.battery_pane(2).LayoutLine();
+ layout = aknLayoutScalable_Avkon.battery_pane( 14 ).LayoutLine();
}
else
{
@@ -1364,11 +1365,11 @@
TAknLayoutRect layout1ParentRect;
layout1ParentRect.LayoutRect(
iLayout->iApplicationWindowRect,
- iLayout->iAknLayoutScalable_Avkon.area_top_pane( 19 ).LayoutLine() );
+ iLayout->iAknLayoutScalable_Avkon.area_top_pane( 2 ).LayoutLine() );
TAknLayoutRect layout1Rect;
layout1Rect.LayoutRect(
layout1ParentRect.Rect(),
- iLayout->iAknLayoutScalable_Avkon.status_pane( 4 ).LayoutLine() );
+ iLayout->iAknLayoutScalable_Avkon.status_pane( 1 ).LayoutLine() );
parentRect = layout1Rect.Rect();
switch ( aPaneId.iUid )
@@ -1382,7 +1383,7 @@
case EEikStatusPaneUidSignal:
{
layout =
- aknLayoutScalable_Avkon.signal_pane( 11 ).LayoutLine();
+ aknLayoutScalable_Avkon.signal_pane( 14 ).LayoutLine();
break;
}
case EEikStatusPaneUidTitle:
@@ -1393,14 +1394,68 @@
}
case EEikStatusPaneUidIndic:
{
- layout =
- aknLayoutScalable_Avkon.uni_indicator_pane( 3 ).LayoutLine();
+ TAknWindowComponentLayout nstaClockIndicPane(
+ DoCompose(
+ aknLayoutScalable_Avkon.area_bottom_pane( 2 ),
+ DoCompose(
+ aknLayoutScalable_Avkon.control_pane(),
+ aknLayoutScalable_Avkon.nsta_clock_indic_pane() ) ) );
+ TAknLayoutRect layoutRect;
+ layoutRect.LayoutRect( applicationWindowRect,
+ nstaClockIndicPane );
+ parentRect = layoutRect.Rect();
+
+ layout = aknLayoutScalable_Avkon.indicator_nsta_pane_cp().LayoutLine();
+ layoutRect.LayoutRect( parentRect, layout );
+ paneRect = layoutRect.Rect();
+
+ // Digital clock pane resides inside the
+ // combined pane, so it must be made relative to the
+ // combined pane rectangle instead of the screen.
+ paneRect.Move( applicationWindowRect.iTl.iX - parentRect.iTl.iX,
+ applicationWindowRect.iTl.iY - parentRect.iTl.iY );
break;
}
case EEikStatusPaneUidBattery:
{
layout =
- aknLayoutScalable_Avkon.battery_pane( 11 ).LayoutLine();
+ aknLayoutScalable_Avkon.battery_pane( 14 ).LayoutLine();
+ break;
+ }
+ case EEikStatusPaneUidDigitalClock:
+ {
+ TAknWindowComponentLayout nstaClockIndicPane(
+ DoCompose(
+ aknLayoutScalable_Avkon.area_bottom_pane( 2 ),
+ DoCompose(
+ aknLayoutScalable_Avkon.control_pane(),
+ aknLayoutScalable_Avkon.nsta_clock_indic_pane() ) ) );
+ TAknLayoutRect layoutRect;
+ layoutRect.LayoutRect( applicationWindowRect,
+ nstaClockIndicPane );
+ parentRect = layoutRect.Rect();
+
+ layout = aknLayoutScalable_Avkon.clock_nsta_pane_cp().LayoutLine();
+ layoutRect.LayoutRect( parentRect, layout );
+ paneRect = layoutRect.Rect();
+
+ // Digital clock pane resides inside the
+ // combined pane, so it must be made relative to the
+ // combined pane rectangle instead of the screen.
+ paneRect.Move( applicationWindowRect.iTl.iX - parentRect.iTl.iX,
+ applicationWindowRect.iTl.iY - parentRect.iTl.iY );
+ break;
+ }
+ case EEikStatusPaneUidCombined:
+ {
+ TAknWindowComponentLayout nstaClockIndicPane(
+ DoCompose(
+ aknLayoutScalable_Avkon.area_bottom_pane( 2 ),
+ DoCompose(
+ aknLayoutScalable_Avkon.control_pane(),
+ aknLayoutScalable_Avkon.nsta_clock_indic_pane() ) ) );
+ layout = nstaClockIndicPane.LayoutLine();
+ parentRect = applicationWindowRect;
break;
}
}
@@ -1426,8 +1481,16 @@
{
case EEikStatusPaneUidNavi:
{
- layout =
- aknLayoutScalable_Avkon.navi_pane( 11 ).LayoutLine();
+ if ( aLayoutId == R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT_NO_SOFTKEYS )
+ {
+ layout =
+ aknLayoutScalable_Avkon.navi_pane( 10 ).LayoutLine();
+ }
+ else
+ {
+ layout =
+ aknLayoutScalable_Avkon.navi_pane( 11 ).LayoutLine();
+ }
break;
}
case EEikStatusPaneUidSignal:
@@ -1438,8 +1501,16 @@
}
case EEikStatusPaneUidTitle:
{
- layout =
- aknLayoutScalable_Avkon.title_pane( 13 ).LayoutLine();
+ if ( aLayoutId == R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT_NO_SOFTKEYS )
+ {
+ layout =
+ aknLayoutScalable_Avkon.title_pane( 12 ).LayoutLine();
+ }
+ else
+ {
+ layout =
+ aknLayoutScalable_Avkon.title_pane( 13 ).LayoutLine();
+ }
break;
}
case EEikStatusPaneUidIndic:
--- a/uifw/EikStd/dlginc/aknrecordinggc.h Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/dlginc/aknrecordinggc.h Fri Feb 19 23:04:46 2010 +0200
@@ -164,7 +164,8 @@
ESetBrushColor,
ESetBrushStyle,
EDrawRect,
- EClear
+ EClear,
+ EDrawLine
};
public:
--- a/uifw/EikStd/dlgsrc/EIKCAPC.CPP Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/dlgsrc/EIKCAPC.CPP Fri Feb 19 23:04:46 2010 +0200
@@ -80,7 +80,7 @@
#include <aknmfnecommandobserver.h>
#endif //if defined( RD_SCALABLE_UI_V2)
-
+#include "akntrace.h"
GLREF_C void Panic(TEikDialogPanic aPanic);
@@ -394,20 +394,24 @@
iIdleData(NULL),
iPartiallyVisible( EFalse )
{
+ _AKNTRACE_FUNC_ENTER;
if ( iAvkonAppUi )
{
iUsesSingleClick = iAvkonAppUi->IsSingleClickCompatible();
}
+ _AKNTRACE_FUNC_EXIT;
};
CEikCapCExtension::~CEikCapCExtension()
{
+ _AKNTRACE_FUNC_ENTER;
// Remember to unacquire animation
if( iAnimation && iSelf )
{
if( iSelf->iDialogPage )
iSelf->iDialogPage->AcquireAnim( EFalse, this );
}
+ _AKNTRACE_FUNC_EXIT;
}
TBool CEikCapCExtension::IsHighlightAnimated() const
@@ -424,6 +428,7 @@
void CEikCapCExtension::SkinChanged()
{
+ _AKNTRACE_FUNC_ENTER;
iAnimation = NULL;
if( iSelf->iDialogPage )
iAnimation = iSelf->iDialogPage->AcquireAnim( ETrue, this );
@@ -432,10 +437,12 @@
{
iAnimation->SetHighlightSize( iSelf->Rect().Size() );
}
+ _AKNTRACE_FUNC_EXIT;
}
void CEikCapCExtension::HandleLayoutSwitch( const TSize& aSize )
{
+ _AKNTRACE_FUNC_ENTER;
if( iAnimation )
{
if( iAnimation->Size() == aSize )
@@ -449,6 +456,7 @@
iAnimation->SetHighlightSize( aSize );
}
}
+ _AKNTRACE_FUNC_EXIT;
}
void CEikCapCExtension::AnimFrameReady()
@@ -589,6 +597,7 @@
*/
void CEikCaptionedControlFormHighlightLine::Draw(const TRect& /*aRect*/) const
{
+ _AKNTRACE_FUNC_ENTER;
CWindowGc& gc=SystemGc();
TBool drawn = EFalse;
@@ -658,6 +667,7 @@
}
}
}
+ _AKNTRACE_FUNC_EXIT;
};
@@ -698,6 +708,7 @@
TBool CEikCaptionedControlFormHighlightLine::DrawingSkins() const
{
+ _AKNTRACE_FUNC_ENTER;
TBool drawingSkins = EFalse;
if ( AknsUtils::AvkonSkinEnabled() )
{
@@ -706,17 +717,21 @@
CWindowGc& gc = SystemGc();
drawingSkins = AknsDrawUtils::Background( skin, cc, this, gc, Rect(), KAknsDrawParamPrepareOnly );
}
+ _AKNTRACE_FUNC_EXIT;
return drawingSkins;
}
EXPORT_C CEikCaptionedControl::CEikCaptionedControl() : iHasAppendedEditIndicator(EFalse)
{
+ _AKNTRACE_FUNC_ENTER;
iNumberOfLines = 1 ; // default starting value
AKNTASHOOK_ADD( this, "CEikCaptionedControl" );
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C CEikCaptionedControl::~CEikCaptionedControl()
{
+ _AKNTRACE_FUNC_ENTER;
AKNTASHOOK_REMOVE();
AknsUtils::DeregisterControlPosition(this);
AknsUtils::DeregisterControlPosition(iBitmap);
@@ -749,6 +764,7 @@
delete iExtension->iIndicator2;
}
delete iExtension ;
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CEikCaptionedControl::SetPointerEventObserver(MPointerEventObserver *aObserver)
@@ -792,12 +808,14 @@
EXPORT_C TSize CEikCaptionedControl::MinimumSize()
{
+ _AKNTRACE_FUNC_ENTER;
// NTBD Add an extra line for those with the label on a separate
if ( iIsFormControl )
{
if (iControl->IsDimmed())
{
iSize = TSize( 0, 0) ;
+ _AKNTRACE_FUNC_EXIT;
return iSize;
}
// We can get the minimum size from the resource - and the size of the editor (EditorControlSize() in lines)
@@ -872,6 +890,7 @@
// ------------------------
iSize = layout.Size();
+ _AKNTRACE_FUNC_EXIT;
return ( iSize ) ;
}
else
@@ -948,6 +967,7 @@
if ( iDoNotDisplay )
// This flag is set if the control is not to be shown - so set it's height to zero
iMinSize.iHeight = 0 ;
+ _AKNTRACE_FUNC_EXIT;
return(size);
}
}
@@ -959,6 +979,7 @@
*/
EXPORT_C void CEikCaptionedControl::SizeChanged()
{
+ _AKNTRACE_FUNC_ENTER;
// Resize the animation
if( iIsFormControl && iExtension->iAnimation )
{
@@ -1125,6 +1146,7 @@
mfne->SetSuppressBackgroundDrawing( EFalse );
}
}
+ _AKNTRACE_FUNC_EXIT;
}
@@ -1366,6 +1388,7 @@
static TInt IdleCallback(TAny *aAny)
{
+ _AKNTRACE_FUNC_ENTER;
CIdleCallbackData *data = (CIdleCallbackData*)aAny;
CEikCapCExtension *ext = data->iExt;
CEikCaptionedControl *ctrl = data->iCtrl;
@@ -1378,11 +1401,13 @@
ext->iIdle = NULL;
delete data;
ext->iIdleData = NULL;
+ _AKNTRACE_FUNC_EXIT;
return EFalse;
}
void CEikCaptionedControl::ScrollBackEditor()
{
+_AKNTRACE_FUNC_ENTER;
//
// For long single-line edwin, scroll horizontally to show beginning of the edwin
// when focus changes away from the edwin.
@@ -1397,10 +1422,12 @@
iExtension->iIdle = CIdle::NewL(0);
iExtension->iIdle->Start(TCallBack(&IdleCallback, iExtension->iIdleData));
}
+_AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CEikCaptionedControl::FocusChanged(TDrawNow aDrawNow)
{
+ _AKNTRACE_FUNC_ENTER;
// Only form controls need to adapt animation to focus changes.
if( iExtension->iAnimation && iIsFormControl )
{
@@ -1481,15 +1508,18 @@
if (aDrawNow && iCapCFlags&EUsesEars && IsReadyToDraw())
DrawEarsNow(EBothEars);
+ _AKNTRACE_FUNC_EXIT;
}
void CEikCaptionedControl::DrawEarsNow(TWhichEars aEar) const
{
+ _AKNTRACE_FUNC_ENTER;
ActivateGc();
DrawEars(aEar);
DeactivateGc();
+ _AKNTRACE_FUNC_EXIT;
}
void CEikCaptionedControl::DrawEars(TWhichEars aEar) const
@@ -1557,15 +1587,17 @@
EXPORT_C void CEikCaptionedControl::Draw(const TRect& aRect) const
{
+ _AKNTRACE_FUNC_ENTER;
if (iIsFormControl )
DrawAsForm( aRect );
else
DrawAsEikonDialog( aRect );
+ _AKNTRACE_FUNC_EXIT;
}
void CEikCaptionedControl::DrawAsForm( const TRect& aRect ) const
{
-
+ _AKNTRACE_FUNC_ENTER;
CWindowGc& gc=SystemGc();
gc.SetPenStyle(CGraphicsContext::ENullPen);
@@ -1609,10 +1641,12 @@
DrawAsFormInViewMode( aRect );
else
DrawAsFormUnFocusedLine( aRect );
+ _AKNTRACE_FUNC_EXIT;
}
void CEikCaptionedControl::DrawAsFormInEditMode( const TRect& /*aRect*/ ) const
{
+ _AKNTRACE_FUNC_ENTER;
CWindowGc& gc=SystemGc();
gc.SetPenStyle(CGraphicsContext::ENullPen);
@@ -1684,11 +1718,13 @@
gc.SetBrushStyle( CGraphicsContext::ENullBrush ) ;
gc.SetPenColor( line2Rect.Color() ) ;
gc.DrawRect(line2Rect.Rect());
+ _AKNTRACE_FUNC_EXIT;
}
void CEikCaptionedControl::DrawAsFormInViewMode( const TRect& /*aRect*/ ) const
{
+ _AKNTRACE_FUNC_ENTER;
CWindowGc& gc=SystemGc();
gc.SetPenStyle(CGraphicsContext::ENullPen);
@@ -1749,10 +1785,12 @@
gc.DrawLine(TPoint(iVerticalLineXPosition,Rect().iBr.iY-1),
TPoint(iVerticalLineXPosition,Rect().iBr.iY+1));
+ _AKNTRACE_FUNC_EXIT;
}
void CEikCaptionedControl::DrawAsFormUnFocusedLine( const TRect& /*aRect*/ ) const
{
+ _AKNTRACE_FUNC_ENTER;
CWindowGc& gc=SystemGc();
gc.SetPenStyle(CGraphicsContext::ENullPen);
@@ -1791,6 +1829,7 @@
if (HasSeparator() && !atTopOfPage)
DrawFormSeparator( gc );
}
+ _AKNTRACE_FUNC_EXIT;
}
@@ -1817,6 +1856,7 @@
void CEikCaptionedControl::DrawAsEikonDialog( const TRect& aRect ) const
{
+ _AKNTRACE_FUNC_ENTER;
CWindowGc& gc=SystemGc();
gc.SetPenStyle(CGraphicsContext::ENullPen);
@@ -1856,6 +1896,7 @@
if (iCapCFlags&EUsesEars)
DrawEars(EBothEars);
+ _AKNTRACE_FUNC_EXIT;
}
/*
@@ -1869,15 +1910,18 @@
EXPORT_C TKeyResponse CEikCaptionedControl::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType)
{
+ _AKNTRACE_FUNC_ENTER;
if ( !iIsFormControl)
return iControl->OfferKeyEventL(aKeyEvent,aType);
else if ( iIsFormControl && iIsEditable )
{
TKeyResponse retVal ;
retVal = iControl->OfferKeyEventL( aKeyEvent, aType ) ;
+ _AKNTRACE_FUNC_EXIT;
return retVal ;
}
else
+ _AKNTRACE_FUNC_EXIT;
return EKeyWasNotConsumed ;
}
@@ -1888,6 +1932,7 @@
EXPORT_C void CEikCaptionedControl::SetDimmed(TBool aDimmed)
{
+ _AKNTRACE_FUNC_ENTER;
CCoeControl::SetDimmed(aDimmed);
if (iControl && iControl->IsVisible())
{
@@ -1901,6 +1946,7 @@
{
iTrailer->SetDimmed(aDimmed);
}
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void* CEikCaptionedControl::ExtensionInterface( TUid /*aInterface*/ )
@@ -1910,11 +1956,13 @@
EXPORT_C void CEikCaptionedControl::HandlePointerEventL(const TPointerEvent& aPointerEvent)
{
+ _AKNTRACE_FUNC_ENTER;
if (!IsNonFocusing())
{
TWhichEars ear=ENoEar;
if (aPointerEvent.iType!=TPointerEvent::EButton1Down)
{
+ _AKNTRACE("TPointerEvent::EButton1Down");
if (iCapCFlags&ELeftEarGrab)
ear=ELeftEar;
else if (iCapCFlags&ERightEarGrab)
@@ -1935,6 +1983,7 @@
}
if (oldDrawFlags!=(iCapCFlags&(ELeftEarDown|ERightEarDown)))
DrawEarsNow(ear);
+ _AKNTRACE_FUNC_EXIT;
return;
}
}
@@ -1948,6 +1997,7 @@
if (ear)
{
FireEarL(ear, KCapCInitialEarRepeat);
+ _AKNTRACE_FUNC_EXIT;
return;
}
}
@@ -1962,6 +2012,7 @@
}
else if(aPointerEvent.iType == TPointerEvent::EButton1Up)
{
+ _AKNTRACE("TPointerEvent::EButton1Up");
SetPressedDownState( EFalse );
DrawDeferred();
}
@@ -1970,6 +2021,7 @@
if ( !iIsEditable && (ControlIsAnEdwin(iControlType) || ControlIsAMfne(iControlType))
&&( iDialogPage && CEikDialogPage::EDouble == iDialogPage->FormLayout() ))
{
+ _AKNTRACE_FUNC_EXIT;
return;
}
@@ -2002,6 +2054,8 @@
EXPORT_C void CEikCaptionedControl::SetCaptionL(const TDesC& aText)
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE("aText = %s", &aText);
ConstructExtensionL() ; // One of several places where this is made
if (!iCaption)
{
@@ -2028,6 +2082,7 @@
DoFormCaptionSettingsL(aText);
else
iCaption->SetTextL(aText);
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CEikCaptionedControl::SetDrawNoWhiteBackground(TBool aEnabled)
@@ -2037,6 +2092,7 @@
EXPORT_C void CEikCaptionedControl::SetTrailerL(const TDesC& aText)
{
+ _AKNTRACE_FUNC_ENTER;
if (!aText.Length())
return;
if (!iTrailer)
@@ -2049,6 +2105,8 @@
iTrailer->SetNonFocusing();
}
iTrailer->SetTextL(aText);
+ _AKNTRACE( "SetTextL = %s" , &aText);
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CEikCaptionedControl::SetCurrent(TBool aSelected)
@@ -2058,6 +2116,7 @@
EXPORT_C void CEikCaptionedControl::ConstructFromResourceL(TResourceReader& aReader)
{
+ _AKNTRACE_FUNC_ENTER;
TPtrC capTextTPtrC = aReader.ReadTPtrC();
iCaptionText = capTextTPtrC.AllocL();
SetCaptionL(capTextTPtrC);
@@ -2135,6 +2194,7 @@
STATIC_CAST(CEikCaptionedControlFormHighlightLine*,iHighlightControl)->ConstructL() ;
}
ConstructExtensionL() ;
+ _AKNTRACE_FUNC_EXIT;
}
@@ -2177,9 +2237,11 @@
EXPORT_C void CEikCaptionedControl::ResetMinimumSizes()
{
+ _AKNTRACE_FUNC_ENTER;
iMinSize.iWidth=0;
iCaptionWidth=0;
iFullWidth=0;
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C TBool CEikCaptionedControl::IsLatent() const
@@ -2264,6 +2326,7 @@
*/
EXPORT_C void CEikCaptionedControl::GetColorUseListL(CArrayFix<TCoeColorUse>& aColorUseList) const
{
+ _AKNTRACE_FUNC_ENTER;
CCoeControl::GetColorUseListL(aColorUseList);
TCoeColorUse colorUse;
@@ -2274,6 +2337,7 @@
const TInt count=CountComponentControls();
for(TInt ii=0;ii<count;ii++)
ComponentControl(ii)->GetColorUseListL(aColorUseList);
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -2284,6 +2348,8 @@
*/
EXPORT_C void CEikCaptionedControl::HandleResourceChange(TInt aType)
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "[%s][%s][%d].", "CEikCaptionedControl", __FUNCTION__, aType );
CCoeControl::HandleResourceChange(aType);
// Animation is skin dependent, whenever skin changes animation changes
@@ -2307,6 +2373,7 @@
}
DrawDeferred();
}
+ _AKNTRACE_FUNC_EXIT;
}
@@ -2382,6 +2449,8 @@
EXPORT_C void CEikCaptionedControl::SetEditableL( TBool aEditable, TBool /*aShowEmptyFields*/ )
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "CEikCaptionedControl::SetEditableL() aEditable: [%d]", aEditable );
// Construct extension object if needed
ConstructExtensionL() ;
@@ -2456,6 +2525,7 @@
if (IsReadyToDraw())
SizeChanged(); // needed because layout lines change when editable flag is switched.
}
+ _AKNTRACE_FUNC_EXIT;
}
void CEikCaptionedControl::SetVertEdgeSpacing( TInt aVertEdgeSpacing )
@@ -2474,6 +2544,7 @@
void CEikCaptionedControl::PositionFormComponents()
{
+ _AKNTRACE_FUNC_ENTER;
if( iExtension->iPartiallyVisible )
return;
TBool isFocused = iIsCurrentLine;
@@ -2698,6 +2769,7 @@
}
TRAP_IGNORE( SetElementTextColorsL(TRgb()));
+ _AKNTRACE_FUNC_EXIT;
}
TBool CEikCaptionedControl::ShowBitmap() const
@@ -2750,6 +2822,7 @@
*/
void CEikCaptionedControl::CalculateNumberOfLinesForControl( TInt aLines )
{
+ _AKNTRACE_FUNC_ENTER;
// NB if new control types are added, ones which should be invisible in view mode
// should be also added to IsDisplayable().
if ( aLines == ENotSupplied )
@@ -2805,6 +2878,8 @@
}
}
iNumberOfLines = aLines ;
+ _AKNTRACE( "iNumberOfLines: [%d]", iNumberOfLines );
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CEikCaptionedControl::SetFormFlags( TInt aFlags )
@@ -2929,9 +3004,12 @@
case EAknCtUnitEditor:
return ETrue;
}
- TInt typeOfControlToLayout=iDialogPage->PageContainer()->PageSelector()->Dialg()->ConvertCustomControlTypeToBaseControlType(iControlType);
- if (typeOfControlToLayout==MEikDialogPageObserver::EMfneDerived)
- return ETrue;
+ if (iDialogPage)
+ {
+ TInt typeOfControlToLayout=iDialogPage->PageContainer()->PageSelector()->Dialg()->ConvertCustomControlTypeToBaseControlType(iControlType);
+ if (typeOfControlToLayout==MEikDialogPageObserver::EMfneDerived)
+ return ETrue;
+ }
return EFalse;
}
@@ -2964,9 +3042,12 @@
case EAknCtNumericSecretEditor:
return ETrue;
}
- TInt typeOfControlToLayout=iDialogPage->PageContainer()->PageSelector()->Dialg()->ConvertCustomControlTypeToBaseControlType(iControlType);
- if (typeOfControlToLayout==MEikDialogPageObserver::ESecretEditorDerived)
- return ETrue;
+ if (iDialogPage)
+ {
+ TInt typeOfControlToLayout=iDialogPage->PageContainer()->PageSelector()->Dialg()->ConvertCustomControlTypeToBaseControlType(iControlType);
+ if (typeOfControlToLayout==MEikDialogPageObserver::ESecretEditorDerived)
+ return ETrue;
+ }
return EFalse;
}
@@ -2979,9 +3060,12 @@
case EAknCtSlider :
return ETrue;
}
- TInt typeOfControlToLayout=iDialogPage->PageContainer()->PageSelector()->Dialg()->ConvertCustomControlTypeToBaseControlType(iControlType);
- if (typeOfControlToLayout==MEikDialogPageObserver::ESliderDerived)
- return ETrue;
+ if (iDialogPage)
+ {
+ TInt typeOfControlToLayout=iDialogPage->PageContainer()->PageSelector()->Dialg()->ConvertCustomControlTypeToBaseControlType(iControlType);
+ if (typeOfControlToLayout==MEikDialogPageObserver::ESliderDerived)
+ return ETrue;
+ }
return EFalse;
}
@@ -3000,9 +3084,12 @@
case EAknCtColourSelectionDialogNoneField:
return ETrue;
}
- TInt typeOfControlToLayout=iDialogPage->PageContainer()->PageSelector()->Dialg()->ConvertCustomControlTypeToBaseControlType(iControlType);
- if (typeOfControlToLayout==MEikDialogPageObserver::EColourSelectionGridDerived)
- return ETrue;
+ if (iDialogPage)
+ {
+ TInt typeOfControlToLayout=iDialogPage->PageContainer()->PageSelector()->Dialg()->ConvertCustomControlTypeToBaseControlType(iControlType);
+ if (typeOfControlToLayout==MEikDialogPageObserver::EColourSelectionGridDerived)
+ return ETrue;
+ }
return EFalse;
}
@@ -3028,6 +3115,7 @@
TInt CEikCaptionedControl::MaximumNumberOfControlLinesOnVisiblePage() const
{
+ _AKNTRACE_FUNC_ENTER;
TInt maxItems = 0;
TAknLayoutScalableParameterLimits paneLimits;
if (IsPopupField(this))
@@ -3070,6 +3158,8 @@
return defineHeight;
}
//maxItems -= 1; // TODO: this is a temporary workaround for layout data being incorrect, it has too many options available
+ _AKNTRACE( "maxItems: [%d]", maxItems );
+ _AKNTRACE_FUNC_EXIT;
return maxItems;
};
@@ -3811,9 +3901,12 @@
void CEikCaptionedControl::DrawAsSkinnedForm( CWindowGc& aGc, const TRect& /*aRect*/ ) const
{
MAknsSkinInstance* skin = AknsUtils::SkinInstance() ;
+ TRgb textColor( KRgbBlack );
+ GetColor( EColorLabelText, textColor );
if ( !iIsCurrentLine )
{
+ AknListUtils::DrawSeparator( aGc, Rect(), textColor );
aGc.SetBrushStyle( CGraphicsContext::ENullBrush ) ;
}
else // Highlight Skinning. Requires Frame
@@ -3827,6 +3920,8 @@
MAknsControlContext* parentCc = GetDialogControlContext( iDialogPage ) ;
AknsDrawUtils::Background( skin, parentCc, this, aGc, Rect() ) ;
+ AknListUtils::DrawSeparator( aGc, Rect(), textColor );
+
// Set the rectangle(s) for the Frame context
iExtension->iEditModeHighlightControlContext->SetFrameRects( EditRect(), innerRect ) ;
iExtension->iEditModeHighlightControlContextPressed->SetFrameRects( EditRect(), innerRect ) ;
@@ -3838,52 +3933,38 @@
else // View Mode highlight
{
TBool drawOk = EFalse;
- if( iExtension->IsHighlightAnimated() ) // Draw animated highlight
+ TRect viewRect( ViewRect() );
+ TRect innerRect( viewRect );
+ innerRect.iTl = ViewFrameTopLeftRect( viewRect ).iBr;
+ innerRect.iTl.iX-- ; innerRect.iTl.iY--;
+ innerRect.iBr = ViewFrameBottomRightRect( viewRect ).iTl ;
+
+ // The bit around the outside must use the parent's control context
+ MAknsControlContext* parentCc = GetDialogControlContext( iDialogPage );
+ AknsDrawUtils::BackgroundBetweenRects( skin, parentCc, this, aGc,
+ Rect(), innerRect );
+
+ AknListUtils::DrawSeparator( aGc, Rect(), textColor );
+
+ // Draw the animation itself
+ if ( iExtension->IsHighlightAnimated()
+ && iExtension->iAnimation->Animation() )
{
- CAknsEffectAnim* anim = iExtension->iAnimation->Animation();
-
- // TODO: Background is drawn first to prevent white stripes
- // appearing above and below the highlight. Wasting resources
- // here, you could create animation that is a tad bigger and
- // remove background drawing from here.
- TRect viewRect = ViewRect() ;
- TRect innerRect( viewRect ) ;
- innerRect.iTl = ViewFrameTopLeftRect( viewRect ).iBr ;
- innerRect.iTl.iX-- ; innerRect.iTl.iY-- ; // not sure why this adjustment is required here and not above.
- innerRect.iBr = ViewFrameBottomRightRect( viewRect ).iTl ;
-
- // The bit around the outside must use the parent's control context
- MAknsControlContext* parentCc = GetDialogControlContext( iDialogPage ) ;
- AknsDrawUtils::BackgroundBetweenRects( skin, parentCc, this, aGc, Rect() , innerRect ) ;
-
- // Draw the animation itself
- if( anim )
- {
- drawOk = anim->Render( aGc, ViewRect() );
- }
+ drawOk = iExtension->iAnimation->Animation()->Render( aGc,
+ viewRect );
}
-
- if( !drawOk )
+
+ if ( !drawOk )
{
- // Code for skinning Highlight ( Using AVKON LAF highlight in place of
- // Skins LAF to establish highlight outer rect )
- TRect viewRect = ViewRect() ;
- TRect innerRect( viewRect ) ;
- innerRect.iTl = ViewFrameTopLeftRect( viewRect ).iBr ;
- innerRect.iTl.iX-- ; innerRect.iTl.iY-- ; // not sure why this adjustment is required here and not above.
- innerRect.iBr = ViewFrameBottomRightRect( viewRect ).iTl ;
-
- // The bit around the outside must use the parent's control context
- MAknsControlContext* parentCc = GetDialogControlContext( iDialogPage ) ;
- AknsDrawUtils::BackgroundBetweenRects( skin, parentCc, this, aGc, Rect() , innerRect ) ;
-
// Set the rectangle(s) for the Frame context
- iExtension->iViewModeHighlightControlContext->SetFrameRects( viewRect, innerRect ) ;
- iExtension->iViewModeHighlightControlContextPressed->SetFrameRects( viewRect, innerRect ) ;
+ iExtension->iViewModeHighlightControlContext->SetFrameRects(
+ viewRect, innerRect ) ;
+ iExtension->iViewModeHighlightControlContextPressed->
+ SetFrameRects( viewRect, innerRect ) ;
AknsDrawUtils::DrawFrame( skin, aGc, viewRect, innerRect,
- PressedDownState() ?
- KAknsIIDQsnFrListPressed : KAknsIIDQsnFrList, KAknsIIDDefault );
+ PressedDownState() ? KAknsIIDQsnFrListPressed :
+ KAknsIIDQsnFrList, KAknsIIDDefault );
}
}
}
--- a/uifw/EikStd/dlgsrc/EIKCAPCA.CPP Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/dlgsrc/EIKCAPCA.CPP Fri Feb 19 23:04:46 2010 +0200
@@ -24,6 +24,7 @@
#include <AknsUtils.h>
#include <eikedwin.h>
#include "AknPanic.h"
+#include "akntrace.h"
const TInt KVerticalSpacing=-2; // Avkon form controls overlap by two pixels!
const TInt KVerticalSpacingSquash=0;
@@ -98,6 +99,7 @@
TInt CEikCapCArray::NumberOfTextLines() const
{
+ _AKNTRACE_FUNC_ENTER;
CEikCaptionedControl *firstCapCC = Count() > 0 ? (*this)[0] : NULL;
const CEikDialogPage *dialogPage = firstCapCC ? firstCapCC->DialogPage() : NULL;
CEikDialogPage::TFormLayoutSelection ret = CEikDialogPage::ESingle;
@@ -123,11 +125,14 @@
}
lines += num_of_lines;
}
+ _AKNTRACE( "lines: [%d]", lines );
+ _AKNTRACE_FUNC_EXIT;
return lines;
}
TInt CEikCapCArray::NumberOfTextLinesBeforeLine(TInt aLine) const
{
+ _AKNTRACE_FUNC_ENTER;
CEikCaptionedControl *firstCapCC = Count() > 0 ? (*this)[0] : NULL;
const CEikDialogPage *dialogPage = firstCapCC ? firstCapCC->DialogPage() : NULL;
CEikDialogPage::TFormLayoutSelection ret = CEikDialogPage::ESingle;
@@ -153,6 +158,8 @@
}
lines += num_of_lines;
}
+ _AKNTRACE( "lines: [%d]", lines );
+ _AKNTRACE_FUNC_EXIT;
return lines;
}
@@ -195,6 +202,7 @@
*/
EXPORT_C TSize CEikCapCArray::MinimumSize()
{
+ _AKNTRACE_FUNC_ENTER;
TSize size(0,0);
CEikCaptionedControl *firstCapCC = Count() > 0 ? (*this)[0] : NULL;
@@ -276,6 +284,8 @@
size.iHeight+=2 ; // (we have included one too many '-2's)
}
}
+ _AKNTRACE( "The Size : ( %d, %d ) ", size.iHeight, size.iWidth );
+ _AKNTRACE_FUNC_EXIT;
return size;
}
@@ -636,6 +646,7 @@
*/
void CEikCapCArray::SetRect(const TRect& aRect, TInt aTop, TInt /*aMiddle*/, TInt aBottom)
{
+ _AKNTRACE_FUNC_ENTER;
TAknLayoutRect formtLayoutRect;
formtLayoutRect.LayoutRect(aRect, AknLayoutScalable_Avkon::listscroll_form_pane().LayoutLine());
formtLayoutRect.LayoutRect(formtLayoutRect.Rect(), AknLayoutScalable_Avkon::list_form_gen_pane().LayoutLine());
@@ -655,6 +666,7 @@
if ( control->DialogPage()->IsForm() )
{
SetRealRect( aRect, aTop, aBottom );
+ _AKNTRACE_FUNC_EXIT;
return;
}
}
@@ -879,6 +891,7 @@
}
}
}
+ _AKNTRACE_FUNC_EXIT;
}
TInt CEikCapCArray::YPosToLine(const TRect &aRect,
@@ -974,6 +987,7 @@
//
TInt CEikCapCArray::ScrollByPixels( TInt aDelta )
{
+ _AKNTRACE_FUNC_ENTER;
TInt count = Count();
// Top and bottom of lines
@@ -1019,7 +1033,7 @@
}
}
}
-
+ _AKNTRACE_FUNC_EXIT;
return aDelta;
}
@@ -1030,6 +1044,7 @@
void CEikCapCArray::SetRealRect(
const TRect& /*aRect*/, TInt /*aTop*/, TInt /*aBottom*/ )
{
+ _AKNTRACE_FUNC_ENTER;
TInt count = Count();
const TPoint virtualTl( 1000, 0 );
TPoint skinLocation( 0, 0 );
@@ -1056,6 +1071,7 @@
AknsUtils::RegisterControlPosition( line->iTrailer, skinLocation );
AknsUtils::RegisterControlPosition( line->iBitmap, skinLocation );
}
+ _AKNTRACE_FUNC_EXIT;
}
@@ -1109,6 +1125,8 @@
//
void CEikCapCArray::MoveLineToScreen( TInt aLine, TInt aTopY, TBool aVisible )
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "aLine: [%d], aTopY: [%d], aVisible: [%d]", aLine, aTopY, aVisible );
if ( aLine != -1 && aLine < Count() )
{
CEikCaptionedControl* line = (*this)[aLine];
@@ -1121,6 +1139,7 @@
line->SetRect( TRect( topLeft, line->Size() ) );
}
+ _AKNTRACE_FUNC_EXIT;
}
@@ -1130,6 +1149,8 @@
//
TInt CEikCapCArray::FocusableLine( TInt aCurrentLine, TInt aTopY )
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "aCurrentLine: [%d]", aCurrentLine );
TInt focusableLine = KErrNotFound;
if ( aCurrentLine >= 0 && aCurrentLine < Count() )
@@ -1157,7 +1178,7 @@
}
}
}
-
+ _AKNTRACE_FUNC_EXIT;
return focusableLine;
}
--- a/uifw/EikStd/dlgsrc/EIKDIALG.CPP Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/dlgsrc/EIKDIALG.CPP Fri Feb 19 23:04:46 2010 +0200
@@ -69,8 +69,10 @@
#endif
#include <AknQueryDialog.h>
#include <aknQueryControl.h>
+#include <aknitemactionmenuregister.h>
#include "akncbacontentobserver.h"
+#include "akntrace.h"
TBool IsBlankScreenDisplayed();
@@ -120,6 +122,7 @@
//
TBool IsFocusedWindowGroup( CEikDialog* aThis )
{
+ _AKNTRACE_FUNC_ENTER;
RWindowTreeNode* node = aThis->DrawableWindow();
// this code finds out if this control belongs to window group
// that is in focus, there are some rare cases when the latest opened
@@ -152,9 +155,13 @@
if ( focusedWindowGroupId == wgId )
{
+ _AKNTRACE( "return ETrue;");
+ _AKNTRACE_FUNC_EXIT;
return ETrue;
}
}
+ _AKNTRACE( "return EFalse;");
+ _AKNTRACE_FUNC_EXIT;
return EFalse;
}
@@ -209,6 +216,7 @@
EXPORT_C CEikDialog::CEikDialog()
{
+ _AKNTRACE_FUNC_ENTER;
// __DECLARE_NAME(_S("CEikDialog"));
// No border in Avkon
iBorder=TGulBorder(TGulBorder::ENone);
@@ -221,12 +229,16 @@
GfxTransEffect::Register(this,KGfxPopupDefaultControlUid);
#endif
AKNTASHOOK_ADD( this, "CEikDialog" );
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C CEikDialog::~CEikDialog()
{
+ _AKNTRACE_FUNC_ENTER;
AKNTASHOOK_REMOVE();
+ AknItemActionMenuRegister::SetConstructingMenuBarOwnerL( NULL );
+
EnableContentObserver( EFalse );
if ( GfxTransEffect::IsRegistered( this ) )
@@ -253,10 +265,12 @@
delete iExtension ;
iExtension = NULL;
StopWaitingAsRequired();
+ _AKNTRACE_FUNC_EXIT;
}
void CEikDialog::DynamicConstructL()
{
+ _AKNTRACE_FUNC_ENTER;
PreLayoutDynInitL();
if ( iPageSelector && iPageSelector->IsForm() && Extension() )
@@ -268,6 +282,7 @@
Layout();
PostLayoutDynInitL();
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -279,6 +294,7 @@
*/
EXPORT_C void CEikDialog::PrepareLC(TInt aResourceId)
{
+ _AKNTRACE_FUNC_ENTER;
CleanupStack::PushL(this);
BaseConstructL();
StaticConstructL(aResourceId);
@@ -287,6 +303,7 @@
{
AknGlobalPopupPriorityController::AddPopupToControlStackL(*this,ECoeStackPriorityDialog,ECoeStackFlagRefusesAllKeys);
}
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -310,12 +327,15 @@
*/
EXPORT_C TInt CEikDialog::ExecuteLD(TInt aResourceId)
{
+ _AKNTRACE_FUNC_ENTER;
PrepareLC(aResourceId);
+ _AKNTRACE_FUNC_EXIT;
return(RunLD());
}
void CEikDialog::BaseConstructL()
{
+ _AKNTRACE_FUNC_ENTER;
CreateWindowL();
Window().SetBackgroundColor(iEikonEnv->ControlColor(EColorDialogBackground,*this));
EnableDragEvents();
@@ -328,10 +348,14 @@
{
iExtension = CEikDialogExtension::NewL( *this ) ;
}
+ _AKNTRACE_FUNC_EXIT;
}
void CEikDialog::StaticConstructL(TInt aResourceId)
{
+ _AKNTRACE_FUNC_ENTER;
+ AknItemActionMenuRegister::SetConstructingMenuBarOwnerL( this );
+
TResourceReader reader;
iCoeEnv->CreateResourceReaderLC(reader,aResourceId);
ConstructFromResourceL(reader);
@@ -351,6 +375,7 @@
}
}
}
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -379,6 +404,7 @@
// code common to both ConstructSleepingDialogL & ConstructSleepingAlertDialogL
//
{
+ _AKNTRACE_FUNC_ENTER;
iDialogFlags|=EEikDialogFlagSleeping;
BaseConstructL();
StaticConstructL(aResourceId);
@@ -388,10 +414,12 @@
// non visible CBA's do not recieve keys
iButtonGroupContainer->MakeVisible(EFalse);
}
+ _AKNTRACE_FUNC_EXIT;
}
TInt CEikDialog::WaitAsRequired()
{
+ _AKNTRACE_FUNC_ENTER;
TInt exitConfirmed=0;
#if defined (__DEBUG__)
RDebug::ProfileEnd(PROFILE_POINT_EIKON_DIALOG_LOAD);
@@ -408,7 +436,7 @@
iExitConfirmed=(&exitConfirmed);
iWait.Start();
}
-
+ _AKNTRACE_FUNC_EXIT;
return(exitConfirmed);
}
@@ -423,6 +451,7 @@
*/
EXPORT_C TInt CEikDialog::RouseSleepingDialog()
{ // none of following ...L calls to Leave
+ _AKNTRACE_FUNC_ENTER;
if (IsVisible())
ExitSleepingDialog(); // eg for rousing an already roused Alert dialog
@@ -541,7 +570,7 @@
cba->DrawNow();
}
}
-
+ _AKNTRACE_FUNC_EXIT;
return(WaitAsRequired());
}
@@ -550,6 +579,7 @@
*/
EXPORT_C void CEikDialog::ExitSleepingDialog()
{
+ _AKNTRACE_FUNC_ENTER;
FadeBehindPopup(EFalse);
EnableContentObserver( EFalse );
@@ -615,6 +645,7 @@
}
#endif
CancelMediatorCommand(this);
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -638,6 +669,7 @@
*/
EXPORT_C void CEikDialog::ConstructFromResourceL(TResourceReader& aReader)
{
+ _AKNTRACE_FUNC_ENTER;
iDialogFlags |=aReader.ReadInt32();
#ifdef RD_SCALABLE_UI_V2
@@ -667,6 +699,7 @@
ASSERT(aReader.ReadInt16()==0);
SetBorderStyle(); // Moved to the end of construction to allow access to individual lines.
+ _AKNTRACE_FUNC_EXIT;
}
void CEikDialog::SetBorderStyle()
@@ -686,13 +719,16 @@
void CEikDialog::CreatePageSelectorL()
{
+ _AKNTRACE_FUNC_ENTER;
iPageSelector=CEikDialogPageSelector::NewL(*this,this);
iPageSelector->SetObserver(this);
RegisterDialgWithPageSelector(); // Added JIn
+ _AKNTRACE_FUNC_EXIT;
}
void CEikDialog::CreatePageSelectorL(TInt aResourceId)
{
+ _AKNTRACE_FUNC_ENTER;
if (aResourceId)
{
TResourceReader reader;
@@ -704,6 +740,7 @@
iPageSelector->SetAllPagesDensePacked(ETrue);
RegisterDialgWithPageSelector(); // Added JIn
}
+ _AKNTRACE_FUNC_EXIT;
}
void CEikDialog::CreateButtonGroupContainerL(TInt aResourceId)
@@ -714,7 +751,7 @@
// don't activate them in case of sleeping dialog
// yet so extra drawings are suppressed until dialog is really
// roused to screen
-
+ _AKNTRACE_FUNC_ENTER;
TUint flags = ( iDialogFlags & EEikDialogFlagSleeping ) ?
( CEikButtonGroupContainer::EAddToStack |
CEikButtonGroupContainer::EDelayActivation ) :
@@ -739,6 +776,7 @@
AknGlobalPopupPriorityController::AddSubPopupL(*this, *iButtonGroupContainer->ButtonGroup()->AsControl());
AknGlobalPopupPriorityController::AddPopupToControlStackL(*iButtonGroupContainer->ButtonGroup()->AsControl(), ECoeStackPriorityCba, ECoeStackFlagRefusesFocus);
+ _AKNTRACE_FUNC_EXIT;
}
void CEikDialog::CreateTitleBarL()
@@ -770,6 +808,7 @@
*/
EXPORT_C void CEikDialog::SetSizeAndPosition(const TSize& aSize)
{
+ _AKNTRACE_FUNC_ENTER;
if (iDialogFlags&EEikDialogFlagFillAppClientRect)
{
// if this is a view app then ask client rect from the currently active view
@@ -802,6 +841,7 @@
{
SetRect( TRect( AknPopupUtils::Position( aSize, this ), aSize ) );
}
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -821,6 +861,7 @@
*/
EXPORT_C TSize CEikDialog::MinimumSize()
{
+ _AKNTRACE_FUNC_ENTER;
if (iDialogFlags&EEikDialogFlagFillScreen)
{
TAknWindowLineLayout windowLineLayoutScreen = AknLayoutScalable_Avkon::Screen().LayoutLine();
@@ -861,7 +902,7 @@
}
TSize pageSelectorSize(iPageSelector->MinimumSize());
-
+ _AKNTRACE_FUNC_EXIT;
return pageSelectorSize;
}
@@ -961,6 +1002,7 @@
*/
EXPORT_C void CEikDialog::SizeChanged()
{
+ _AKNTRACE_FUNC_ENTER;
__ASSERT_DEBUG( iButtonGroupContainer->Location() == CEikButtonGroupContainer::EExternal,
Panic( EEikDialogPanicIllegalOption ) );
@@ -1047,6 +1089,7 @@
// <SKIN>
iExtension->iBgContext->SetParentPos( PositionRelativeToScreen() ) ;
iExtension->iBgContext->SetRect( Rect() ) ;
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -1099,12 +1142,14 @@
*/
EXPORT_C void CEikDialog::MakeLineVisible(TInt aControlId,TBool aVisible)
{
+ _AKNTRACE_FUNC_ENTER;
CEikCaptionedControl* line=Line(aControlId);
CCoeControl* control=line->iControl;
if (control->IsVisible()==aVisible)
return;
control->MakeVisible(aVisible);
line->CheckDimmedDisplayState();
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -1113,6 +1158,7 @@
*/
EXPORT_C void CEikDialog::MakeWholeLineVisible(TInt aControlId,TBool aVisible)
{
+ _AKNTRACE_FUNC_ENTER;
CEikCaptionedControl* line=Line(aControlId);
if (line->IsVisible()==aVisible)
return;
@@ -1123,6 +1169,7 @@
line->iTrailer->MakeVisible(aVisible);
control->MakeVisible(aVisible);
line->MakeVisible(aVisible);
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -1379,6 +1426,8 @@
*/
EXPORT_C void CEikDialog::SetEditableL( TBool aEditable )
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "CEikDialog::SetEditableL() aEditable: [%d]", aEditable );
if ( !iExtension->iFlags[CEikDialogExtension::EEditableStateInitialised] ||
iIsEditable != aEditable )
{
@@ -1388,6 +1437,7 @@
iPageSelector->SetEditableL( aEditable );
DrawNow();
}
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -1397,6 +1447,7 @@
*/
EXPORT_C TBool CEikDialog::IsEditable() const
{
+ _AKNTRACE( "CEikDialog::IsEditable(): [%d]", iIsEditable );;
return ( iIsEditable ) ;
}
@@ -1452,6 +1503,7 @@
*/
EXPORT_C TInt CEikDialog::RunLD()
{
+ _AKNTRACE_FUNC_ENTER;
// Moved BringForwards in the beginning to enable 1-frame animations.
iEikonEnv->BringForwards(ETrue); // before call to EnableBackup()
AknGlobalPopupPriorityController::ShowPopup(*this, ETrue);
@@ -1573,13 +1625,14 @@
// Claim pointer grab and send the pointer up event to the
// control that otherwise would be receiving the drag events.
Window().ClaimPointerGrab(ETrue);
-
+ _AKNTRACE_FUNC_EXIT;
return(WaitAsRequired());
}
EXPORT_C void CEikDialog::Draw(const TRect& /*aRect*/) const
{
+ _AKNTRACE_FUNC_ENTER;
TRect rect=Rect();
CWindowGc& gc=SystemGc(); //No reason to demote the gc, CWindowGc is more usable.
@@ -1667,6 +1720,7 @@
KAknsIIDQsnFrPopup,KAknsIIDQsnFrPopupCenter);
}
}
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C void CEikDialog::HandlePointerEventL(const TPointerEvent& aPointerEvent)
@@ -1681,6 +1735,7 @@
TKeyResponse CEikDialog::TryAnimateButtonAndExitL(TInt aKeycode)
{
+ _AKNTRACE_FUNC_ENTER;
TInt buttonId=EEikBidCancel;
switch (aKeycode)
{
@@ -1705,16 +1760,20 @@
if (button)
{
if (button->IsDimmed() || !button->IsVisible())
- return EKeyWasNotConsumed;
+ {
+ _AKNTRACE_FUNC_EXIT;
+ return EKeyWasNotConsumed;
+ }
buttonGroupContainer.AnimateCommand(buttonId);
}
if (button || buttonId==EEikBidCancel || buttonId==EEikBidOk)
{
TryExitL(buttonId);
+ _AKNTRACE_FUNC_EXIT;
return EKeyWasConsumed;
}
-
+ _AKNTRACE_FUNC_EXIT;
return EKeyWasNotConsumed;
}
@@ -1735,7 +1794,7 @@
*/
EXPORT_C TKeyResponse CEikDialog::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType)
{
-
+ _AKNTRACE_FUNC_ENTER;
// Hide the tool tip (if there is one!)
if ( ( iPageSelector->NumPages() == 1 ) && ( CurrentLine() ) && ( CurrentLine()->ToolTipText( ) ) )
@@ -1750,7 +1809,10 @@
if (!(iDialogFlags&EEikDialogFlagDontEatUpDownEvents) && aKeyEvent.iScanCode != EStdKeyYes)
{
if (aType!=EEventKey)
- return(EKeyWasConsumed);
+ {
+ _AKNTRACE_FUNC_EXIT;
+ return(EKeyWasConsumed);
+ }
}
TInt code=aKeyEvent.iCode;
@@ -1763,7 +1825,10 @@
{
response = iButtonGroupContainer->OfferKeyEventL(aKeyEvent,aType);
if(response==EKeyWasConsumed)
- return EKeyWasConsumed;
+ {
+ _AKNTRACE_FUNC_EXIT;
+ return EKeyWasConsumed;
+ }
}
//
@@ -1786,7 +1851,10 @@
iPageSelector->OfferKeyEventL(aKeyEvent, aType);
// Add to remove repeated keypress return event of OK key
if (aKeyEvent.iRepeats&&EKeyOK==code)
- return EKeyWasConsumed;
+ {
+ _AKNTRACE_FUNC_EXIT;
+ return EKeyWasConsumed;
+ }
if ((!(modifiers&EModifierCtrl) || modifiers&EModifierPureKeycode) &&
!(iDialogFlags&EEikDialogFlagModeless))
TryAnimateButtonAndExitL(code);
@@ -1808,10 +1876,12 @@
break;
KeyToFocus:
if(iPageSelector->OfferHotKeysKeyEventL(aKeyEvent,aType)==EKeyWasConsumed)
- return EKeyWasConsumed;
-
+ {
+ _AKNTRACE_FUNC_EXIT;
+ return EKeyWasConsumed;
+ }
}
-
+ _AKNTRACE_FUNC_EXIT;
return (aKeyEvent.iScanCode == EStdKeyYes ? EKeyWasNotConsumed:EKeyWasConsumed);
}
@@ -1820,6 +1890,7 @@
*/
EXPORT_C void CEikDialog::FocusChanged(TDrawNow aDrawNow)
{
+ _AKNTRACE_FUNC_ENTER;
CEikBorderedControl::FocusChanged( aDrawNow );
TInt controlID = IdOfFocusControl();
@@ -1827,6 +1898,7 @@
{
Line(controlID)->SetFocus(IsFocused(), aDrawNow);
}
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -1840,8 +1912,10 @@
*/
EXPORT_C void CEikDialog::TryExitL(TInt aButtonId)
{
+ _AKNTRACE_FUNC_ENTER;
if ( iDialogFlags & EEikDialogFlagNoUserExit )
{
+ _AKNTRACE_FUNC_EXIT;
return;
}
@@ -1850,6 +1924,7 @@
{
Extension()->iButtonId = aButtonId;
Extension()->StartDelayedExit();
+ _AKNTRACE_FUNC_EXIT;
return;
}
@@ -1895,6 +1970,7 @@
( const TDesC8* ) this );
GfxTransEffect::Abort( this );
}
+ _AKNTRACE_FUNC_EXIT;
return;
}
@@ -1936,6 +2012,7 @@
}
delete(this);
}
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -2063,6 +2140,7 @@
*/
EXPORT_C void CEikDialog::SetInitialCurrentLine()
{
+ _AKNTRACE_FUNC_ENTER;
if ( !iExtension->iInitialMade )
{
TRAP_IGNORE(iPageSelector->ActivateFirstPageL());
@@ -2071,6 +2149,7 @@
{
iPageSelector->SetInitialFocus();
}
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -2199,7 +2278,7 @@
*/
EXPORT_C void CEikDialog::HandleResourceChange(TInt aType)
{
-
+ _AKNTRACE_FUNC_ENTER;
if(aType==KEikDynamicLayoutVariantSwitch)
{
if (IsVisible())
@@ -2208,6 +2287,7 @@
iExtension->iFlags.Set(CEikDialogExtension::ELayoutChangeWhileInvisible);
CCoeControl::HandleResourceChange(aType);
+ _AKNTRACE_FUNC_EXIT;
return;
}
else
@@ -2219,13 +2299,14 @@
{
Window().SetBackgroundColor(iEikonEnv->ControlColor(EColorDialogBackground,*this));
}
+ _AKNTRACE_FUNC_EXIT;
}
void CEikDialog::DoResourceChangeLayout()
{
// Layout must be forced through - bypass optimisations
// Must work through all pages
-
+ _AKNTRACE_FUNC_ENTER;
Layout();
SizeChanged();
@@ -2241,6 +2322,7 @@
if (iExtension)
iExtension->iFlags.Clear(CEikDialogExtension::ELayoutChangeWhileInvisible);
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -2284,6 +2366,8 @@
EXPORT_C void CEikDialog::MakeVisible(TBool aVisible)
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "CEikDialog::MakeVisible(): [%d]", aVisible );
if (iExtension && iExtension->iFlags[CEikDialogExtension::ELayoutChangeWhileInvisible])
DoResourceChangeLayout();
@@ -2301,7 +2385,7 @@
}
CEikBorderedControl::MakeVisible(aVisible);
-
+ _AKNTRACE_FUNC_EXIT;
}
void CEikDialog::FadeBehindPopup(TBool aFade)
@@ -2504,6 +2588,7 @@
EXPORT_C void CEikDialog::UpdatePageL(TBool aRedraw)
{
+ _AKNTRACE_FUNC_ENTER;
if (Rect().Height())
{
if (iPageSelector)
@@ -2517,11 +2602,13 @@
DrawDeferred();
}
}
+ _AKNTRACE_FUNC_EXIT;
}
EXPORT_C TInt CEikDialog::GetNumberOfLinesOnPage(TInt aPageIndex) const
{
+ _AKNTRACE_FUNC_ENTER;
if (iPageSelector)
{
CEikDialogPageContainer* pageContainer = iPageSelector->PageContainer();
@@ -2529,20 +2616,33 @@
{
CEikDialogPage* page = pageContainer->Page(aPageIndex);
if (page)
- return page->NumberOfLines();
+ {
+ _AKNTRACE( "CEikDialog::GetNumberOfLinesOnPage(): [%d]", page->NumberOfLines() );
+ _AKNTRACE_FUNC_EXIT;
+ return page->NumberOfLines();
+ }
}
}
+ _AKNTRACE( "CEikDialog::GetNumberOfLinesOnPage(): 0");
+ _AKNTRACE_FUNC_EXIT;
return 0;
}
EXPORT_C TInt CEikDialog::GetNumberOfPages() const
{
+ _AKNTRACE_FUNC_ENTER;
if (iPageSelector)
{
CEikDialogPageContainer* pageContainer = iPageSelector->PageContainer();
if (pageContainer)
- return pageContainer->NumPages();
+ {
+ _AKNTRACE( "CEikDialog::GetNumberOfPages(): [%d]", pageContainer->NumPages() );
+ _AKNTRACE_FUNC_EXIT;
+ return pageContainer->NumPages();
+ }
}
+ _AKNTRACE( "CEikDialog::GetNumberOfPages(): return 0;" );
+ _AKNTRACE_FUNC_EXIT;
return 0;
}
@@ -3123,6 +3223,7 @@
const TInt KWgPriorityOfBlankScreen = 10000; // copied from akncapserverentry.cpp
TBool IsBlankScreenDisplayed()
{
+ _AKNTRACE_FUNC_ENTER;
TBool isBlankScreenDisplayed(EFalse);
RWsSession& wsSession = CEikonEnv::Static()->WsSession();
@@ -3132,7 +3233,7 @@
if (KErrNone == wsSession.WindowGroupList(wgIds) && wgIds->Count() > 0)
{
TInt priority = wsSession.GetWindowGroupOrdinalPriority(wgIds->At(0));
- RDebug::Printf("IsBlankScreenDisplayed():priority:%d",priority);
+ _AKNTRACE( "IsBlankScreenDisplayed():priority: [%d]", priority );
if (priority == KWgPriorityOfBlankScreen)
{
isBlankScreenDisplayed = ETrue;
@@ -3140,7 +3241,8 @@
}
}
delete wgIds;
- RDebug::Printf("IsBlankScreenDisplayed():isBlankScreenDisplayed:%d",isBlankScreenDisplayed);
+ _AKNTRACE( "IsBlankScreenDisplayed():isBlankScreenDisplayed: [%d]", isBlankScreenDisplayed );
+ _AKNTRACE_FUNC_EXIT;
return isBlankScreenDisplayed;
}
--- a/uifw/EikStd/dlgsrc/EIKDLG.MMP Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/dlgsrc/EIKDLG.MMP Fri Feb 19 23:04:46 2010 +0200
@@ -94,6 +94,8 @@
LIBRARY aknphysics.lib
+LIBRARY aknnotify.lib
+
DEFFILE EIKDLG.DEF
START WINS
--- a/uifw/EikStd/dlgsrc/EIKDPAGE.CPP Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/dlgsrc/EIKDPAGE.CPP Fri Feb 19 23:04:46 2010 +0200
@@ -55,8 +55,8 @@
#include "aknrecordinggc.h"
#include <aknphysics.h>
#include <aknappui.h>
-#include <aknPriv.hrh>
-
+#include <AknPriv.hrh>
+#include "akntrace.h"
//
// Global constants.
//
@@ -333,6 +333,7 @@
CEikDialogPage::~CEikDialogPage()
{
+ _AKNTRACE_FUNC_ENTER;
AKNTASHOOK_REMOVE();
// Page observer needs to be nulled or an already deleted instance is
// called when pointer up event is handled. This is valid only for dialogs
@@ -342,12 +343,15 @@
delete iLines;
delete iScroll;
delete iExtension;
+ _AKNTRACE_FUNC_EXIT;
}
CEikDialogPage* CEikDialogPage::NewL(TInt aPageId,RWindow& aViewWin,CEikScrollBarFrame& aSBFrame,const CEikDialogPageContainer& aParent,MEikDialogPageObserver* aPageObserver)
{
+ _AKNTRACE_FUNC_ENTER;
CEikDialogPage* self=CEikDialogPage::NewLC(aPageId,aViewWin,aSBFrame,aParent,aPageObserver);
CleanupStack::Pop();
+ _AKNTRACE_FUNC_EXIT;
return self;
}
@@ -365,27 +369,33 @@
CEikDialogPage* CEikDialogPage::NewLC(TInt aPageId,RWindow& aViewWin,CEikScrollBarFrame& aSBFrame,const CEikDialogPageContainer& aParent,MEikDialogPageObserver* aPageObserver)
{
+ _AKNTRACE_FUNC_ENTER;
CEikDialogPage* self=new(ELeave) CEikDialogPage(aPageId,aViewWin,aSBFrame,aPageObserver);
CleanupStack::PushL(self);
CommonConstructCodeBetweenNewL(*self,aParent);
AKNTASHOOK_ADDL( self, "CEikDialogPage" );
+ _AKNTRACE_FUNC_EXIT;
return self;
}
CEikDialogPage* CEikDialogPage::NewL(TInt aPageId,RWindow& aViewWin,CEikScrollBarFrame& aSBFrame,const CEikDialogPageContainer& aParent,MEikDialogPageObserver* aPageObserver,TResourceReader& aReader)
{
+ _AKNTRACE_FUNC_ENTER;
CEikDialogPage* self=CEikDialogPage::NewLC(aPageId,aViewWin,aSBFrame,aParent,aPageObserver,aReader);
CleanupStack::Pop();
+ _AKNTRACE_FUNC_EXIT;
return self;
}
CEikDialogPage* CEikDialogPage::NewLC(TInt aPageId,RWindow& aViewWin,CEikScrollBarFrame& aSBFrame,const CEikDialogPageContainer& aParent,MEikDialogPageObserver* aPageObserver,TResourceReader& aReader)
{
+ _AKNTRACE_FUNC_ENTER;
CEikDialogPage* self=new(ELeave) CEikDialogPage(aPageId,aViewWin,aSBFrame,aPageObserver);
CleanupStack::PushL(self);
CommonConstructCodeBetweenNewL(*self,aParent);
self->ConstructFromResourceL(aReader);
AKNTASHOOK_ADDL( self, "CEikDialogPage" );
+ _AKNTRACE_FUNC_EXIT;
return self;
}
@@ -394,12 +404,15 @@
: iPageObserver(aPageObserver),
iPageId(aPageId),iCurrentLine(-1)
{
+ _AKNTRACE_FUNC_ENTER;
SetBlank();
SetComponentsToInheritVisibility();
+ _AKNTRACE_FUNC_EXIT;
}
void CEikDialogPage::ConstructL()
{
+ _AKNTRACE_FUNC_ENTER;
iLines=new(ELeave)CEikCapCArray(KLineArrayGranularity);
SetContainerWindowL( *iPageContainer );
Window().SetPointerGrab(ETrue);
@@ -408,10 +421,12 @@
iScroll = new(ELeave)CAknPaneScroll(this);
iScroll->SetLines(iLines);
iExtension = CDialogPageExtension::NewL();
+ _AKNTRACE_FUNC_EXIT;
}
void CEikDialogPage::ConstructFromResourceL(TResourceReader& aReader, TBool aFormControl )
{
+ _AKNTRACE_FUNC_ENTER;
iFormControl = aFormControl ;
if ( IsForm() )
@@ -436,6 +451,7 @@
iCoeEnv->CreateResourceReaderLC(indirectReader,indirectRid);
ConstructFromResourceL(indirectReader);
CleanupStack::PopAndDestroy();
+ _AKNTRACE_FUNC_EXIT;
return;
}
@@ -469,17 +485,21 @@
iScroll = new(ELeave)CAknPaneScroll(this);
}
iScroll->SetLines(iLines);
+ _AKNTRACE_FUNC_EXIT;
}
void CEikDialogPage::ConstructFormFromResourceL( TResourceReader& aReader )
{
+ _AKNTRACE_FUNC_ENTER;
iFormFlags = TInt16(aReader.ReadInt16()) ;
iFormLayout = (iFormFlags&EEikFormUseDoubleSpacedFormat) ? EDouble : ESingle;
ConstructFromResourceL( aReader, ETrue ) ;
+ _AKNTRACE_FUNC_EXIT;
}
CCoeControl* CEikDialogPage::CreateLineByTypeL(const TDesC& aCaption,TInt aLineId,TInt aControlType,TAny* aReturnValue)
{
+ _AKNTRACE_FUNC_ENTER;
ShowFocus( EFalse, EFalse ) ; // Turn the focus off the current line.
CEikCaptionedControl* line=new(ELeave) CEikCaptionedControl;
CleanupStack::PushL(line);
@@ -515,21 +535,24 @@
// physics engine needs to be updated when lines are added after the initial layout
UpdatePhysics();
-
+ _AKNTRACE_FUNC_EXIT;
return line->iControl;
}
CEikCaptionedControl* CEikDialogPage::ConstructLineL(TInt aResourceId)
{
+ _AKNTRACE_FUNC_ENTER;
TResourceReader resourceReader;
iCoeEnv->CreateResourceReaderLC(resourceReader,aResourceId);
CEikCaptionedControl* line=ConstructLineL(resourceReader);
CleanupStack::PopAndDestroy(); // resourceReader
+ _AKNTRACE_FUNC_EXIT;
return line;
}
CEikCaptionedControl* CEikDialogPage::ConstructLineL(TResourceReader& aReader)
{
+ _AKNTRACE_FUNC_ENTER;
CEikCaptionedControl* line=new(ELeave) CEikCaptionedControl;
CleanupStack::PushL(line);
line->iIsFormControl=iFormControl;
@@ -551,11 +574,13 @@
if (indirectRid)
CleanupStack::PopAndDestroy();
CleanupStack::Pop(); // line
+ _AKNTRACE_FUNC_EXIT;
return line;
}
void CEikDialogPage::ConstructByTypeL(TInt aType,CEikCaptionedControl* aLine,CCoeControl* aContainer)
{
+ _AKNTRACE_FUNC_ENTER;
SEikControlInfo controlInfo=EikControlFactory::CreateByTypeL(aType);
if (!controlInfo.iControl)
controlInfo=CreateCustomControlL(aType);
@@ -589,6 +614,7 @@
aLine->SetTrailerL(tmp->Des());
CleanupStack::PopAndDestroy(); // tmp
}
+ _AKNTRACE_FUNC_EXIT;
}
SEikControlInfo CEikDialogPage::CreateCustomControlL(TInt aControlType)
@@ -599,6 +625,7 @@
void CEikDialogPage::SetActiveL()
{
+ _AKNTRACE_FUNC_ENTER;
ActivateL();
MakeVisible(ETrue);
@@ -646,10 +673,12 @@
}
}
+ _AKNTRACE_FUNC_EXIT;
}
void CEikDialogPage::SetActiveAndFocusL()
{
+ _AKNTRACE_FUNC_ENTER;
SetActiveL();
SetEditableL(iIsEditable, ETrue);
//When active a page, need to show the focus in that page.
@@ -662,16 +691,20 @@
ExposeLine( iCurrentLine, EFalse );
UpdateScrollBarL();
+ _AKNTRACE_FUNC_EXIT;
}
void CEikDialogPage::SetInactiveL()
{
+ _AKNTRACE_FUNC_ENTER;
MakeEdwinScrollbarsVisibleL(EFalse);
MakeVisible(EFalse);
+ _AKNTRACE_FUNC_EXIT;
}
void CEikDialogPage::MakeEdwinScrollbarsVisibleL(TBool aVisible)
{
+ _AKNTRACE_FUNC_ENTER;
const TInt numLines=iLines->Count();
for (TInt ii=0;ii<numLines;ii++)
{
@@ -691,6 +724,7 @@
}
}
}
+ _AKNTRACE_FUNC_EXIT;
}
TInt CEikDialogPage::PageId() const
@@ -709,6 +743,7 @@
TBool CEikDialogPage::SetInitialFocus()
{
+ _AKNTRACE_FUNC_ENTER;
TBool focusSet=EFalse;
const TInt numLines=iLines->Count();
@@ -728,17 +763,23 @@
break;
}
iExtension->iSetInitialFocusDone = ETrue;
+ _AKNTRACE( "return focusSet;: [%d]", focusSet );
+ _AKNTRACE_FUNC_EXIT;
return focusSet;
}
TKeyResponse CEikDialogPage::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType)
{
+ _AKNTRACE_FUNC_ENTER;
TKeyResponse response=EKeyWasNotConsumed;
if (!(PageContainer()->PageSelector()->Dialg()->DialogFlags() & EEikDialogFlagDontEatUpDownEvents))
{
if (aType != EEventKey)
- return response;
+ {
+ _AKNTRACE_FUNC_EXIT;
+ return response;
+ }
}
const TInt numLines=iLines->Count();
@@ -762,11 +803,13 @@
|| aKeyEvent.iCode==EKeyPrevious
))
response=OfferUpDownKeyEventL(aKeyEvent,aType,ENonCyclic);
+ _AKNTRACE_FUNC_EXIT;
return response;
}
TKeyResponse CEikDialogPage::OfferUpDownKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType,TFocusNavigationMode aFocusNavigationMode)
{
+ _AKNTRACE_FUNC_ENTER;
TKeyResponse response=EKeyWasNotConsumed;
if (aType==EEventKey)
{
@@ -823,7 +866,7 @@
if (response==EKeyWasConsumed)
UpdateScrollBarThumb();
-
+ _AKNTRACE_FUNC_EXIT;
return response;
}
@@ -932,6 +975,7 @@
void CEikDialogPage::SetDimmed(TBool aDimmed)
{
+ _AKNTRACE_FUNC_ENTER;
CCoeControl::SetDimmed(aDimmed);
const TInt numLines=iLines->Count();
@@ -941,13 +985,18 @@
thisLine->iControl->SetDimmed(aDimmed);
thisLine->CheckDimmedDisplayState();
}
+ _AKNTRACE_FUNC_EXIT;
}
TBool CEikDialogPage::RotateFocusByL(TInt aDelta)
{
+ _AKNTRACE_FUNC_ENTER;
TInt numLines=iLines->Count();
if (numLines == 0)
+ {
+ _AKNTRACE_FUNC_EXIT;
return(EFalse);
+ }
// If form is in view mode and highlight is hidden then the first
// navigation key press just displays the highlight.
@@ -971,7 +1020,7 @@
HandleHighlightTimer();
}
}
-
+ _AKNTRACE_FUNC_EXIT;
return ETrue;
}
@@ -1000,16 +1049,22 @@
ChangeFocusToAndExposeL(currentLine);
LineChangedL((*iLines)[currentLine]->iId);
iExtension->iFocusedClicked = ETrue;
+ _AKNTRACE_FUNC_EXIT;
return(ETrue);
}
-
+ _AKNTRACE_FUNC_EXIT;
return EFalse;
}
void CEikDialogPage::ChangeFocusToAndExposeL( TInt aLine, TBool /*aShowWholeControl*/ )
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "CEikDialogPage::ChangeFocusToAndExposeL() aLine: [%d]", aLine );
if ( aLine < 0 || aLine == iCurrentLine )
+ {
+ _AKNTRACE_FUNC_EXIT;
return;
+ }
TInt oldLine = iCurrentLine;
@@ -1032,6 +1087,7 @@
DrawDeferred();
}
+ _AKNTRACE_FUNC_EXIT;
}
TInt CEikDialogPage::TopFocusableLine() const
@@ -1060,12 +1116,14 @@
TBool CEikDialogPage::LineIsFocusable(TInt aLine) const
{
+ _AKNTRACE_FUNC_ENTER;
TBool focusable(ETrue);
CEikCaptionedControl* line=(*iLines)[aLine];
if (line->IsNonFocusing() || line->IsDimmed() || !(line->IsVisible()))
focusable=EFalse;
-
+ _AKNTRACE( "focusable: [%d]", focusable );
+ _AKNTRACE_FUNC_EXIT;
return focusable;
}
@@ -1076,6 +1134,8 @@
void CEikDialogPage::InsertLineL(TInt aPosition,TInt aResourceId)
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "aPosition: [%d]", aPosition );
// alteration is bloated but should not provide any side-effects.
if (!iFormControl)
{
@@ -1099,11 +1159,14 @@
*/
if (iCurrentLine>=aPosition)
iCurrentLine++;
+ _AKNTRACE_FUNC_EXIT;
}
void CEikDialogPage::DeleteLine(TInt aLineId, TBool aRedraw)
{
+ _AKNTRACE_FUNC_ENTER;
TInt index( LineIndex( aLineId ) ) ;
+ _AKNTRACE( "Delete line index: [%d]", index );
if ( index == iCurrentLine ) // we're deleting the current line
{
// If this is the last line then move the focus to the line above. (becomes -1 if last line)
@@ -1153,6 +1216,7 @@
DrawNow();
TRAP_IGNORE(UpdateScrollBarL()); // if OOM, scrollbar will not be updated - No great loss.
}
+ _AKNTRACE_FUNC_EXIT;
}
void CEikDialogPage::AdjustAllIds(TInt aControlIdDelta)
@@ -1162,8 +1226,9 @@
TInt CEikDialogPage::FocusLineL(TInt aLineId)
{
+ _AKNTRACE_FUNC_ENTER;
TInt lineIndex=LineIndex(aLineId);
-
+ _AKNTRACE( "Delete line index: [%d]", lineIndex );
if (lineIndex==KErrNotFound)
return KErrNotFound;
@@ -1171,6 +1236,7 @@
// Show whole line, not scroll into line.
ChangeFocusToAndExposeL(lineIndex, ETrue);
LineChangedL(aLineId);
+ _AKNTRACE_FUNC_EXIT;
return KErrNone;
}
@@ -1258,6 +1324,7 @@
//
// Calcs YPos of line relative to the ViewWin and adjusts aLine if its out of bounds
{
+ _AKNTRACE_FUNC_ENTER;
ASSERT(iLines);
const TInt numLines=iLines->Count();
ASSERT(numLines>0);
@@ -1265,6 +1332,8 @@
aLine=0;
else if (aLine>=numLines)
aLine=numLines-1;
+ _AKNTRACE( "[%s][%s][%d]", "CEikDialogPage", __FUNCTION__, (*iLines)[aLine]->Position().iY );
+ _AKNTRACE_FUNC_EXIT;
return (*iLines)[aLine]->Position().iY; // TPREMOVAL +iDataWinPos.iY;
}
@@ -1272,8 +1341,10 @@
//
/* Exposes the given line so that its fully visible in the ViewWin
*/ {
+ _AKNTRACE_FUNC_ENTER;
if ( iSize.iHeight == 0 || aLine == -1 )
{
+ _AKNTRACE_FUNC_EXIT;
return;
}
@@ -1281,6 +1352,7 @@
if ( change == CAknPaneScroll::ENoChange && !aForceResize )
{
+ _AKNTRACE_FUNC_EXIT;
return;
}
@@ -1327,10 +1399,13 @@
iLastExposedLine = aLine;
iLastExposedLineViewWinYPosition = topYPosOfControlWhichMustBeViewable + idealDataWindowPosition;
}
+ _AKNTRACE_FUNC_EXIT;
}
void CEikDialogPage::SetDataPosition( TInt aTopY, TInt aBottomY, TBool aForceResize )
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "[%s][%s] aTopY: [%d]", "CEikDialogPage", __FUNCTION__, aTopY );
// update rect only if the currently focused control doesn't fit
if ( iFormControl )
{
@@ -1376,6 +1451,7 @@
iLines->MoveLineToScreen( iCurrentLine, iPhysics->ViewTopY(), ETrue );
}
}
+ _AKNTRACE_FUNC_EXIT;
}
/*
@@ -1417,6 +1493,7 @@
void CEikDialogPage::SizeChanged()
{
+ _AKNTRACE_FUNC_ENTER;
// update form area's size to scroll control
iScroll->SetOutsideRect( Rect() );
iLines->SetRect( Rect(), iScroll->Top(), iScroll->Middle(), iScroll->Bottom() );
@@ -1431,10 +1508,13 @@
UpdatePhysics();
iExtension->iInitialLayoutDone = ETrue;
+ _AKNTRACE_FUNC_EXIT;
}
TSize CEikDialogPage::MinimumSize()
{
+ _AKNTRACE( "[%s][%s] MinimumSize: w = %d, h = %d.",
+ "CEikDialogPage", __FUNCTION__, iLines->MinimumSize().iWidth, 0 );
return TSize( iLines->MinimumSize().iWidth, 0 ); // Can be zero height
}
@@ -1489,6 +1569,7 @@
*/
void CEikDialogPage::HandleEdwinEventL(CEikEdwin* aEdwin,TEdwinEvent aEventType)
{
+ _AKNTRACE_FUNC_ENTER;
if ( IsForm() && ( aEventType == EEventTextUpdate
|| aEventType == EEventTextUpdateAPI ) )
{
@@ -1518,13 +1599,17 @@
}
if( iCurrentLine == iLastExposedLine || iCurrentLine == -1 )
+ {
+ _AKNTRACE_FUNC_EXIT;
return;
+ }
if( aEventType == EEventNavigation || aEventType == EEventTextUpdate )
{
ExposeLine( iCurrentLine, EFalse );
UpdateScrollBarL();
}
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -1532,10 +1617,13 @@
*/
void CEikDialogPage::HandlePopupFieldEventL(CAknPopupField* aPopupField, TAknPopupFieldEvent aEventType, TInt /*aHint*/)
{
+ _AKNTRACE_FUNC_ENTER;
switch (aEventType)
{
case EAknPopupFieldEventValueChange:
{
+ _AKNTRACE( "[%s][%s][%d] EAknPopupFieldEventValueChange",
+ "CEikDialogPage", __FUNCTION__, __LINE__ );
CEikCaptionedControl* line = NULL;
for ( TInt i = 0; i < iLines->Count(); ++i )
{
@@ -1554,6 +1642,8 @@
}
case EAknPopupFieldEventModeChange:
{
+ _AKNTRACE( "[%s][%s][%d] EAknPopupFieldEventModeChange",
+ "CEikDialogPage", __FUNCTION__, __LINE__ );
TInt index = iCurrentLine;
if(iIsEditable && (iExtension->iPopFieldEvents != 0))
@@ -1577,6 +1667,7 @@
default:
break;
}
+ _AKNTRACE_FUNC_EXIT;
}
void CEikDialogPage::PrepareToDrawVerticalLine() const
@@ -1615,6 +1706,7 @@
void CEikDialogPage::HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType)
{
+ _AKNTRACE_FUNC_ENTER;
switch (aEventType)
{
case EEventPrepareFocusTransition:
@@ -1666,6 +1758,7 @@
default:
break;
}
+ _AKNTRACE_FUNC_EXIT;
}
void CEikDialogPage::PassOnEventL(CCoeControl* aControl,MCoeControlObserver::TCoeEvent aEvent)
@@ -1781,6 +1874,7 @@
void CEikDialogPage::HandleScrollEventL(CEikScrollBar* aScrollBar,TEikScrollEvent aEventType)
{
+ _AKNTRACE_FUNC_ENTER;
iExtension->iHandlingScrollEvent = ETrue;
switch (aEventType)
@@ -1814,6 +1908,7 @@
}
iExtension->iHandlingScrollEvent = EFalse;
+ _AKNTRACE_FUNC_EXIT;
}
TBool CEikDialogPage::LineHandlerCalled() const
@@ -1830,9 +1925,11 @@
void CEikDialogPage::UpdateScrollBarL()
{
+ _AKNTRACE_FUNC_ENTER;
// Only forms in S60 need dialog's scrollbar.
if ( !iFormControl || !iPageContainer->ScrollBar() || iSize.iHeight == 0 || iSize.iWidth == 0 || iExtension->iHandlingScrollEvent )
{
+ _AKNTRACE_FUNC_EXIT;
return;
}
@@ -1865,19 +1962,23 @@
CAknPopupField::EAknPopupFieldSelectionMode mode = ((CAknPopupField*)ctrl->iControl)->SelectionMode();
if (mode == CAknPopupField::EAknPopupFieldSelectionListMode)
{
+ _AKNTRACE_FUNC_EXIT;
return;
}
}
UpdateScrollBarThumb();
}
}
+ _AKNTRACE_FUNC_EXIT;
}
void CEikDialogPage::UpdateScrollBarThumb()
{
+ _AKNTRACE_FUNC_ENTER;
if ( !iFormControl || !iPageContainer->ScrollBar() || ScbState() )
{
+ _AKNTRACE_FUNC_EXIT;
return;
}
@@ -1898,6 +1999,7 @@
iPageContainer->ScrollBar()->Tile(&vertModel);
iPageContainer->ScrollBar()->SetVFocusPosToThumbPos(vertModel.iThumbPosition);
}
+ _AKNTRACE_FUNC_EXIT;
}
CCoeControl* CEikDialogPage::ComponentControl(TInt aIndex) const
@@ -1964,6 +2066,7 @@
void CEikDialogPage::ShowFocus(TBool aFocus, TBool aRedraw)
{
+ _AKNTRACE_FUNC_ENTER;
if (iCurrentLine>=0)
{
if ( iExtension && iExtension->iUsesSingleClick && aFocus )
@@ -1978,14 +2081,30 @@
else
(*iLines)[iCurrentLine]->DrawDeferred();
}
+ _AKNTRACE_FUNC_EXIT;
}
void CEikDialogPage::ChangeFocusTo(TInt aLineIndex)
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "CEikDialogPage::ChangeFocusTo() aLineIndex: [%d]", aLineIndex );
TInt oldLine = iCurrentLine;
if (aLineIndex==iCurrentLine)
return;
+ // If current line has settingslist open, close it
+ CEikCaptionedControl* currentLine = CurrentLine();
+ if ( currentLine &&
+ currentLine->ControlIsAPopfield( currentLine->ControlType() ) )
+ {
+ CAknPopupField *field = ( CAknPopupField* )currentLine->iControl;
+ if ( field && field->SelectionMode()
+ == CAknPopupField::EAknPopupFieldSelectionListMode )
+ {
+ TRAP_IGNORE( field->CloseSelectionListL() );
+ }
+ }
+
ShowFocus( EFalse, EFalse );
iCurrentLine=aLineIndex;
ShowFocus(ETrue, EFalse );
@@ -2002,6 +2121,7 @@
RecordLineL( iCurrentLine );
iLines->MoveLineToScreen( iCurrentLine, iPhysics->ViewTopY(), ETrue );
}
+ _AKNTRACE_FUNC_EXIT;
}
TInt CEikDialogPage::FindLineIndex(const CCoeControl* aControl) const
@@ -2027,6 +2147,7 @@
*/
void CEikDialogPage::HandleResourceChange(TInt aType)
{
+ _AKNTRACE_FUNC_ENTER;
if ( aType==KEikDynamicLayoutVariantSwitch )
{
const TInt numLines=iLines->Count();
@@ -2107,6 +2228,7 @@
break;
}
}
+ _AKNTRACE_FUNC_EXIT;
}
CCoeControl* CEikDialogPage::Control(TInt aLineId) const
@@ -2150,11 +2272,13 @@
void CEikDialogPage::FocusChanged(TDrawNow /*aDrawNow*/)
{
+ _AKNTRACE_FUNC_ENTER;
if (iCurrentLine>=0 && !IsFocused())
{
CEikCaptionedControl* currentLine=(*iLines)[iCurrentLine];
currentLine->SetCurrent(EFalse);
}
+ _AKNTRACE_FUNC_EXIT;
}
void CEikDialogPage::ResetLineMinimumSizes()
@@ -2190,7 +2314,8 @@
void CEikDialogPage::SetEditableL( TBool aEditable, TBool /*aActivePage*/ )
{
// Tell each of the controls on the page (which are part of a form) of their editable state.
-
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "CEikDialogPage::SetEditableL() aEditable: [%d]", aEditable );
iIsEditable = aEditable;
HighlightVisible( aEditable );
@@ -2269,6 +2394,7 @@
{
ExposeLine(iCurrentLine,ETrue);
}
+ _AKNTRACE_FUNC_EXIT;
}
TBool CEikDialogPage::AnythingToDisplay() const
@@ -2296,6 +2422,7 @@
void CEikDialogPage::Draw(const TRect& /*aRect*/) const
{
+ _AKNTRACE_FUNC_ENTER;
if ( iFormControl )
{
// added this to see if anything on the page is visible.
@@ -2339,6 +2466,7 @@
iExtension->iRecordingGc->FlushBuffer( targetRect, lineToSkip );
}
}
+ _AKNTRACE_FUNC_EXIT;
}
void CEikDialogPage::AfterAddingNewLinesL(TInt aNewLineAdded)
@@ -2355,9 +2483,14 @@
* #3 call Register component on the line, to set up listeners, etc.
* #4 Set the editable value to whatever the dialog page's editable value is.
*/
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "aNewLineAdded: [%d]", aNewLineAdded );
__ASSERT_DEBUG(iLines && (aNewLineAdded<=iLines->Count()), Panic(EEikDialogPanicErrorDuringAddingLine));
if (aNewLineAdded== -1)
+ {
+ _AKNTRACE_FUNC_EXIT;
return; // line has not been added yet.
+ }
CEikCaptionedControl* lineAdded = iLines->At(aNewLineAdded);
// if aNewLineAdded is zero, then there is no line above, else set value.
CEikCaptionedControl* lineVisuallyAboveAndNumericallyBelow =
@@ -2402,6 +2535,7 @@
if ( IsForm() && iSize.iHeight != 0 && aNewLineAdded != -1 )
iLines->MoveLineToScreen( aNewLineAdded, iPhysics->ViewTopY(), EFalse );
+ _AKNTRACE_FUNC_EXIT;
}
TInt CEikDialogPage::GetFormFlags() const
@@ -2612,8 +2746,10 @@
//
void CEikDialogPage::HandleFormPointerEventL( const TPointerEvent& aPointerEvent )
{
+ _AKNTRACE_FUNC_ENTER;
if ( LineHandlerCalled() )
{
+ _AKNTRACE_FUNC_EXIT;
return;
}
@@ -2625,6 +2761,7 @@
if ( ( aPointerEvent.iType == TPointerEvent::EButton1Down && touchedLine == KErrNotFound ) || !iPhysics->CanBeStopped() )
{
IgnoreEventsUntilNextPointerUp();
+ _AKNTRACE_FUNC_EXIT;
return;
}
@@ -2666,6 +2803,7 @@
if ( aPointerEvent.iType == TPointerEvent::EButton1Down && touchedLine != KErrNotFound )
{
+ _AKNTRACE( "TPointerEvent::EButton1Down" );
iExtension->iOldCenterY = iPhysics->ViewCenter().iY;
TInt bottom = iExtension->iOldCenterY + iSize.iHeight - iSize.iHeight / 2;
if ( bottom < 0 )
@@ -2744,6 +2882,7 @@
if ( aPointerEvent.iType == TPointerEvent::EDrag )
{
+ _AKNTRACE( "TPointerEvent::EDrag" );
TPoint drag( iExtension->iDragStartPosition - aPointerEvent.iPosition );
if ( Abs( drag.iY ) > iPhysics->DragThreshold() )
@@ -2791,6 +2930,7 @@
if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
{
+ _AKNTRACE( "TPointerEvent::EButton1Up" );
iExtension->HandleFormFeedback( this, aPointerEvent, touchedLine, iCurrentLine );
if ( !IsEditable() && iExtension->iUsesSingleClick &&
HighlightVisible() )
@@ -2897,6 +3037,7 @@
key.iRepeats = 0;
CEikonEnv::Static()->SimulateKeyEventL( key, EEventKey );
}
+ _AKNTRACE_FUNC_EXIT;
}
@@ -2906,6 +3047,7 @@
//
void CEikDialogPage::UpdatePhysics()
{
+ _AKNTRACE_FUNC_ENTER;
if ( IsForm() )
{
TPoint viewCenter( iSize.iWidth / 2, 0 );
@@ -2933,6 +3075,7 @@
TRAP_IGNORE( iPhysics->InitPhysicsL( worldSize, iSize, viewCenter ) );
TRAP_IGNORE( UpdateScrollBarL() );
}
+ _AKNTRACE_FUNC_EXIT;
}
@@ -3058,6 +3201,7 @@
//
void CEikDialogPage::UpdateLineInCache( CEikCaptionedControl* aLine )
{
+ _AKNTRACE_FUNC_ENTER;
TInt lineIndex = iLines->FindLineIndex( aLine );
if ( lineIndex != KErrNotFound )
@@ -3084,6 +3228,7 @@
{
UpdatePhysics();
}
+ _AKNTRACE_FUNC_EXIT;
}
@@ -3131,6 +3276,7 @@
//
void CEikDialogPage::RecordLinesL()
{
+ _AKNTRACE_FUNC_ENTER;
Parent()->Parent()->Parent()->SetCustomGc( iExtension->iRecordingGc );
iExtension->iRecordingGc->PurgeBuffer();
@@ -3146,6 +3292,7 @@
}
Parent()->Parent()->Parent()->SetCustomGc( NULL );
+ _AKNTRACE_FUNC_EXIT;
}
@@ -3155,6 +3302,8 @@
//
void CEikDialogPage::RecordLineL( TInt aLine )
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "CEikDialogPage::RecordLineL() aLine: [%d]", aLine );
Parent()->Parent()->Parent()->SetCustomGc( iExtension->iRecordingGc );
CEikCaptionedControl* line = (*iLines)[aLine];
@@ -3167,6 +3316,7 @@
}
Parent()->Parent()->Parent()->SetCustomGc( NULL );
+ _AKNTRACE_FUNC_EXIT;
}
@@ -3648,6 +3798,7 @@
TInt CEikDialogPageContainer::ActivateFirstPageL()
{
+ _AKNTRACE_FUNC_ENTER;
// Activate first page that isn't dimmed.
// SetToolTips() ;
const TInt numPages=iPageArray->Count();
@@ -3664,6 +3815,7 @@
thisPage->ReportPageChangedL();
iActivePage=ii;
}
+ _AKNTRACE_FUNC_EXIT;
return thisPage->PageId();
}
}
@@ -3678,6 +3830,7 @@
firstPage->ReportPageChangedL();
iActivePage=0;
}
+ _AKNTRACE_FUNC_EXIT;
return firstPage->PageId();
}
@@ -4016,6 +4169,7 @@
void CEikDialogPageContainer::ActivateL()
{
+ _AKNTRACE_FUNC_ENTER;
// Pass the activate event to child controls always.
CCoeControl::ActivateL();
//
@@ -4043,6 +4197,7 @@
}
}
}
+ _AKNTRACE_FUNC_EXIT;
}
void CEikDialogPageContainer::FocusChanged(TDrawNow aDrawNow)
--- a/uifw/EikStd/dlgsrc/aknformphysics.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/dlgsrc/aknformphysics.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -23,7 +23,7 @@
#include <coecntrl.h>
#include <coemain.h>
#include <eikdpage.h>
-
+#include "akntrace.h"
// ======== MEMBER FUNCTIONS ========
@@ -55,11 +55,13 @@
CAknFormPhysics* CAknFormPhysics::NewL( CEikDialogPage& aParent,
CAknRecordingGc& aRecordingGc )
{
+ _AKNTRACE_FUNC_ENTER;
CAknFormPhysics* self = new ( ELeave ) CAknFormPhysics( aParent,
aRecordingGc );
CleanupStack::PushL( self );
self->ConstructL();
CleanupStack::Pop( self );
+ _AKNTRACE_FUNC_EXIT;
return self;
}
@@ -70,7 +72,9 @@
//
CAknFormPhysics::~CAknFormPhysics()
{
+ _AKNTRACE_FUNC_ENTER;
delete iPhysics;
+ _AKNTRACE_FUNC_EXIT;
}
@@ -81,10 +85,12 @@
void CAknFormPhysics::InitPhysicsL( const TSize& aWorldSize,
const TSize& aViewSize, const TPoint& aViewCenter )
{
+ _AKNTRACE_FUNC_ENTER;
iPhysics->InitPhysicsL( aWorldSize, aViewSize, EFalse );
iViewCenter = aViewCenter;
iWorldSize = aWorldSize;
iViewSize = aViewSize;
+ _AKNTRACE_FUNC_EXIT;
}
@@ -94,8 +100,10 @@
//
void CAknFormPhysics::Stop()
{
+ _AKNTRACE_FUNC_ENTER;
iPhysics->StopPhysics();
iPhysics->ResetFriction();
+ _AKNTRACE_FUNC_EXIT;
}
@@ -106,6 +114,7 @@
TBool CAknFormPhysics::StartFlick( const TPoint& aLength,
const TTime& aStartTime )
{
+ _AKNTRACE_FUNC_ENTER;
if ( PhysicsAllowed() )
{
TPoint drag( aLength );
@@ -119,6 +128,7 @@
}
PhysicEmulationEnded();
+ _AKNTRACE_FUNC_EXIT;
return EFalse;
}
@@ -159,10 +169,12 @@
//
void CAknFormPhysics::SetPanningPosition( const TPoint& aDelta )
{
+ _AKNTRACE_FUNC_ENTER;
if ( PhysicsAllowed() && iPhysics )
{
iPhysics->RegisterPanningPosition( aDelta );
}
+ _AKNTRACE_FUNC_EXIT;
}
@@ -174,6 +186,9 @@
TBool aDrawNow,
TUint /*aFlags*/ )
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "The Position of aNewPosition are: ( %d, %d ) ",
+ aNewPosition.iX, aNewPosition.iY );
if ( !PhysicsAllowed() )
{
return;
@@ -200,6 +215,7 @@
msg.Format( _L( "%dfps" ), fps );
iParent.ScrollCacheByPixels( iViewCenter.iY, msg, aDrawNow );
+ _AKNTRACE_FUNC_EXIT;
}
@@ -209,8 +225,10 @@
//
void CAknFormPhysics::PhysicEmulationEnded()
{
+ _AKNTRACE_FUNC_ENTER;
iParent.Synchronize();
iFrameCount = -1;
+ _AKNTRACE_FUNC_EXIT;
}
--- a/uifw/EikStd/dlgsrc/aknrecordinggc.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/dlgsrc/aknrecordinggc.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -25,6 +25,7 @@
#include <e32err.h>
#include "aknrecordinggc.h"
+#include "akntrace.h"
#ifdef _DEBUG
_LIT( KOverFlow, "Array overflow" );
@@ -64,10 +65,12 @@
//
CAknRecordingGc::~CAknRecordingGc()
{
+ _AKNTRACE_FUNC_ENTER;
iLines.ResetAndDestroy();
delete iOffScreenBmp;
delete iBitGc;
delete iBitmapDevice;
+ _AKNTRACE_FUNC_EXIT;
}
@@ -77,6 +80,11 @@
//
void CAknRecordingGc::FlushBuffer( const TRect& aRect, TInt aLineToSkip )
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "The rect of FlushBuffer are ( %d, %d ) ( %d, %d )",
+ aRect.iTl.iX, aRect.iTl.iY,
+ aRect.iBr.iX, aRect.iBr.iY );
+ _AKNTRACE( "[%s][%s]aLineToSkip: [%d]", "CAknRecordingGc", __FUNCTION__, aLineToSkip );
if ( iLines.Count() == 0 )
{
return;
@@ -167,9 +175,20 @@
case CBufferItem::EDrawRect:
gc->DrawRect( item->iRect );
break;
+
case CBufferItem::EClear:
gc->Clear( item->iRect );
break;
+
+ case CBufferItem::EDrawLine:
+ // EDrawLine is used for separator line only and it
+ // should be skipped for the last visible item.
+ if ( i < iLines.Count() - 1
+ && realRect.iBr.iY < aRect.iBr.iY )
+ {
+ gc->DrawLine( item->iRect.iTl, item->iRect.iBr );
+ }
+ break;
}
}
@@ -192,6 +211,7 @@
{
iRealGc->BitBlt( TPoint( 0, 0 ), iOffScreenBmp, TRect( 0, 0, 360, 500 ) );
}
+ _AKNTRACE_FUNC_EXIT;
}
@@ -212,10 +232,12 @@
//
void CAknRecordingGc::PrepareForNewLineL( const TRect& aRect )
{
+ _AKNTRACE_FUNC_ENTER;
CLineData* newLine = new ( ELeave ) CLineData;
newLine->iRect = aRect;
iLines.AppendL( newLine );
iCurrentLine = iLines.Count() - 1;
+ _AKNTRACE_FUNC_EXIT;
}
@@ -225,6 +247,8 @@
//
void CAknRecordingGc::ReplaceLineL( TInt aLine )
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "[%s][%s]aLine: [%d].", "CAknRecordingGc", __FUNCTION__, aLine );
if ( aLine < iLines.Count() )
{
TRect rect( iLines[aLine]->iRect );
@@ -236,6 +260,7 @@
}
iCurrentLine = aLine;
+ _AKNTRACE_FUNC_EXIT;
}
@@ -255,11 +280,14 @@
//
void CAknRecordingGc::InsertLineL( TInt aLine, const TRect& aRect )
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "[%s][%s]aLine: [%d].", "CAknRecordingGc", __FUNCTION__, aLine );
CLineData* newLine = new ( ELeave ) CLineData;
newLine->iRect = aRect;
iLines.Insert( newLine, aLine );
iCurrentLine = aLine;
+ _AKNTRACE_FUNC_EXIT;
}
@@ -314,11 +342,14 @@
//
void CAknRecordingGc::DeleteLine( TInt aLine )
{
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE( "[%s][%s]aLine: [%d].", "CAknRecordingGc", __FUNCTION__, aLine );
if ( aLine != -1 && aLine < iLines.Count() )
{
delete iLines[aLine];
iLines.Remove( aLine );
}
+ _AKNTRACE_FUNC_EXIT;
}
@@ -636,9 +667,15 @@
// From class CWindowGc
// ---------------------------------------------------------------------------
//
-void CAknRecordingGc::DrawLine( const TPoint& /*aPoint1*/,
- const TPoint& /*aPoint2*/ )
+void CAknRecordingGc::DrawLine( const TPoint& aPoint1,
+ const TPoint& aPoint2 )
{
+ _AKNTRACE_FUNC_ENTER;
+ CBufferItem* buffer = BufferItem();
+ buffer->iType = CBufferItem::EDrawLine;
+ buffer->iRect.iTl = aPoint1;
+ buffer->iRect.iBr = aPoint2;
+ _AKNTRACE_FUNC_EXIT;
}
@@ -895,6 +932,7 @@
const CFbsBitmap* aBitmap, const TRect& aSourceRect,
const CFbsBitmap* aMaskBitmap, TBool aInvertMask )
{
+ _AKNTRACE_FUNC_ENTER;
if ( !iUseBitGc )
{
CBufferItem* buffer = BufferItem();
@@ -919,6 +957,7 @@
{
iBitGc->BitBltMasked( aPoint, aBitmap, aSourceRect, aMaskBitmap, aInvertMask );
}
+ _AKNTRACE_FUNC_EXIT;
}
@@ -1091,6 +1130,7 @@
TInt CAknRecordingGc::APIExtension( TUid aUid, TAny*& /*aOutput*/,
TAny* aInput )
{
+ _AKNTRACE_FUNC_ENTER;
if (aUid == KDrawTextInContextUid)
{
__ASSERT_DEBUG( aInput, User::Panic(KBadArgument, KErrArgument ));
@@ -1101,10 +1141,12 @@
TPtrC textToDraw = contextParam->iText.Mid( params->iStart,
params->iEnd - params->iStart );
DrawText(textToDraw, contextParam->iPosition);
+ _AKNTRACE_FUNC_EXIT;
return KErrNone;
}
else
{
+ _AKNTRACE_FUNC_EXIT;
return KErrNotSupported;
}
}
--- a/uifw/EikStd/srvuisrc/EIKSRVUI.CPP Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/srvuisrc/EIKSRVUI.CPP Fri Feb 19 23:04:46 2010 +0200
@@ -1163,7 +1163,7 @@
void CEikServAppUi::HandleResourceChangeL(TInt aType)
{
CEikServAppUiBase::HandleResourceChangeL(aType);
- if ( aType == KEikDynamicLayoutVariantSwitch )
+ if ( aType == KEikDynamicLayoutVariantSwitch || aType == KAknsMessageSkinChange )
{
UpdateCursorsL();
}
@@ -1433,6 +1433,16 @@
{
spriteMember.iBitmap = AknIconUtils::CreateIconL( *bmpFile, bmpId );
CleanupStack::PushL( spriteMember.iBitmap );
+
+ // set color for the cursor
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+ if ( skin )
+ {
+ TRgb color = KRgbBlack;
+ AknsUtils::GetCachedColor( skin, color, KAknsIIDQsnIconColors, EAknsCIQsnIconColorsCG10 );
+ AknIconUtils::SetIconColor( spriteMember.iBitmap, color );
+ }
+
}
TAknWindowLineLayout l;
--- a/uifw/EikStd/srvuisrc/EIKSRVUI.RSS Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/EikStd/srvuisrc/EIKSRVUI.RSS Fri Feb 19 23:04:46 2010 +0200
@@ -126,33 +126,33 @@
AVKON_CUSTOM_TEXT_CURSOR
{
cursorId = KAknCustomTextCursorIdLeftToRight;
- bmpId = EMbmAvkonQgn_indi_cursor_lr;
+ bmpId = EMbmAvkonQgn_indi_cursor_lr_12;
// Mask is not defined as XOR mode drawing is desired.
- drawMode = EAknCustomTextCursorDrawModeXOR;
+ drawMode = EAknCustomTextCursorDrawModePEN;
offsetX = -2;
},
AVKON_CUSTOM_TEXT_CURSOR
{
cursorId = KAknCustomTextCursorIdRightToLeft;
- bmpId = EMbmAvkonQgn_indi_cursor_rl;
+ bmpId = EMbmAvkonQgn_indi_cursor_rl_12;
// Mask is not defined as XOR mode drawing is desired.
- drawMode = EAknCustomTextCursorDrawModeXOR;
+ drawMode = EAknCustomTextCursorDrawModePEN;
offsetX = -5;
},
AVKON_CUSTOM_TEXT_CURSOR
{
cursorId = KAknCustomTextCursorIdLeftToRightThin;
- bmpId = EMbmAvkonQgn_indi_cursor_lr;
+ bmpId = EMbmAvkonQgn_indi_cursor_lr_12;
// Mask is not defined as XOR mode drawing is desired.
- drawMode = EAknCustomTextCursorDrawModeXOR;
+ drawMode = EAknCustomTextCursorDrawModePEN;
offsetX = -1;
},
AVKON_CUSTOM_TEXT_CURSOR
{
cursorId = KAknCustomTextCursorIdRightToLeftThin;
- bmpId = EMbmAvkonQgn_indi_cursor_rl;
+ bmpId = EMbmAvkonQgn_indi_cursor_rl_12;
// Mask is not defined as XOR mode drawing is desired.
- drawMode = EAknCustomTextCursorDrawModeXOR;
+ drawMode = EAknCustomTextCursorDrawModePEN;
offsetX = -3;
}
};
--- a/uifw/eikctl/src/EIKCLBD.CPP Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/eikctl/src/EIKCLBD.CPP Fri Feb 19 23:04:46 2010 +0200
@@ -2003,6 +2003,12 @@
#endif // RD_UI_TRANSITION_EFFECTS_LIST
}
+ CEikListBox* list = static_cast<CEikListBox*>( iExtension->iControl );
+
+ if ( iExtension->iCurrentRow < list->BottomItemIndex() )
+ {
+ AknListUtils::DrawSeparator( aGc, aRect, aColors.iText );
+ }
DrawHighLight( aGc, aRect, aHighlight, skin );
// The column draw loop
@@ -2462,6 +2468,13 @@
}
#endif // RD_UI_TRANSITION_EFFECTS_LIST
}
+
+ CEikListBox* list = static_cast<CEikListBox*>( iExtension->iControl );
+
+ if ( iExtension->iCurrentRow < list->BottomItemIndex() )
+ {
+ AknListUtils::DrawSeparator( aGc, aRect, aColors.iText );
+ }
// LISTBOX LINES NEED TO BE DRAWN HERE.
DrawHighLight( aGc, aRect, aHighlight, skin );
--- a/uifw/ganes/src/HgList.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/ganes/src/HgList.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -236,6 +236,9 @@
// Move to correct y-position
rect.Move(point);
DrawItem( i, rect );
+
+ if( i!= iItems.Count() - 1)
+ AknListUtils::DrawSeparator( gc, rect, iColor );
}
gc.CancelClippingRect();
}
--- a/uifw/ganes/src/HgScrollBufferManager.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/ganes/src/HgScrollBufferManager.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -166,6 +166,9 @@
//
void CHgScrollBufferManager::SetPosition( TInt aIndex )
{
+ // If all the items fit in the buffer no need to move the buffer
+ if(iTotalCount <= iBufferSize) return;
+
TBool forceUpdate = EFalse;
aIndex -= iBufferSize / 2; // normalize index to Buffer start
--- a/uifw/ganes/src/HgScrollbar.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/ganes/src/HgScrollbar.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -270,12 +270,15 @@
iScrollbarBg->Bitmap()->SizeInPixels(),
iScrollbarBg->Mask(),
EFalse);
-
- aGc.BitBltMasked(iScrollbarRect.iTl + iHandlePosition,
- iScrollbarHandle->Bitmap(),
- iScrollbarHandle->Bitmap()->SizeInPixels(),
- iScrollbarHandle->Mask(),
- EFalse);
+
+ if(!iStatic)
+ {
+ aGc.BitBltMasked(iScrollbarRect.iTl + iHandlePosition,
+ iScrollbarHandle->Bitmap(),
+ iScrollbarHandle->Bitmap()->SizeInPixels(),
+ iScrollbarHandle->Mask(),
+ EFalse);
+ }
}
}
}
--- a/uifw/ganes/src/HgScroller.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/ganes/src/HgScroller.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -72,7 +72,8 @@
iScrollbar = CHgScrollbar::NewL(*this);
iPopupDrawer = new (ELeave) THgPopupDrawer();
-
+ iPhysics = CAknPhysics::NewL(*this, this);
+
TCallBack callback(CHgScroller::MarqueeCallback, this);
iDrawUtils = CHgDrawUtils::NewL( callback );
@@ -403,11 +404,6 @@
//
void CHgScroller::InitPhysicsL()
{
- if(!iPhysics)
- {
- iPhysics = CAknPhysics::NewL(*this, this);
- }
-
// For to be able to pan on a empty area.
// The world is set to be at least the size of the view.
TSize worldSize = TotalSize();
@@ -838,8 +834,6 @@
iPointerDown = EFalse;
iPanning = EFalse;
- iShowHighlight = ETrue;
- iDrawUtils->EnableMarquee(HasHighlight());
}
// -----------------------------------------------------------------------------
@@ -1031,6 +1025,7 @@
{
iPopupText1.Zero();
iPopupText1.Append( iItems[selectedItem]->Title()[0] );
+ iPopupText1.UpperCase();
}
}
}
@@ -1072,6 +1067,22 @@
if(newRow != iCurrentRow)
{
iCurrentRow = newRow;
+
+ TInt action = iPhysics->OngoingPhysicsAction();
+ if( action != CAknPhysics::EAknPhysicsActionNone )
+ {
+ TTouchFeedbackType type( ETouchFeedbackVibra );
+ if ( CAknPhysics::EAknPhysicsActionDragging == action )
+ {
+ type = TTouchFeedbackType(ETouchFeedbackVibra | ETouchFeedbackAudio);
+ }
+
+ MTouchFeedback* feedback = MTouchFeedback::Instance();
+ if(feedback)
+ feedback->InstantFeedback( this, ETouchFeedbackSensitiveList,
+ type,
+ TPointerEvent() );
+ }
if(iManager)
{
@@ -1119,10 +1130,25 @@
possibleKeyScrollingState = EKeyScrollingRight;
break;
case EKeyEnter:
+ case EKeyOK:
{
- if( iSelectedIndex != KErrNotFound && iSelectionObserver )
+ if( iSelectedIndex != KErrNotFound && HasHighlight() )
{
- TRAP_IGNORE( iSelectionObserver->HandleOpenL( iSelectedIndex ); )
+ if( iSelectionObserver )
+ TRAP_IGNORE( iSelectionObserver->HandleOpenL( iSelectedIndex ); )
+ iShowHighlight = EFalse;
+ iDrawUtils->EnableMarquee(HasHighlight());
+ return EKeyWasConsumed;
+ }
+ else if( iItemCount )
+ {
+ iSelectedIndex = iCurrentRow;
+ if( iSelectionObserver )
+ TRAP_IGNORE( iSelectionObserver->HandleSelectL( iSelectedIndex ); )
+ FitSelectionToView();
+ iShowHighlight = ETrue;
+ iDrawUtils->EnableMarquee(HasHighlight());
+ DrawDeferred();
return EKeyWasConsumed;
}
return EKeyWasNotConsumed;
@@ -1144,19 +1170,29 @@
TCallBack( KeyScrollingTimerCallback, this ) );
}
}
-
- TBool handled = DoHandleKeyEvent(aKeyEvent);
-
- if( iSelectedIndex != prevSelected && iSelectionObserver )
+
+ if( !HasHighlight() )
{
- iDrawUtils->ResetMarquee();
- TRAP_IGNORE( iSelectionObserver->HandleSelectL(iSelectedIndex); )
+ // DoHandleKeyEvent will move focus at the first index on screen.
+ iSelectedIndex = KErrNotFound;
}
- if( !handled )
+ if( DoHandleKeyEvent(aKeyEvent) )
+ {
+ iShowHighlight = ETrue;
+ iDrawUtils->EnableMarquee(HasHighlight());
+ if( iSelectedIndex != prevSelected && iSelectionObserver )
+ {
+ iDrawUtils->ResetMarquee();
+ TRAP_IGNORE( iSelectionObserver->HandleSelectL(iSelectedIndex); )
+ }
+ return EKeyWasConsumed;
+ }
+ else
+ {
iKeyRepeats--;
-
- return handled ? EKeyWasConsumed : EKeyWasNotConsumed;
+ return EKeyWasNotConsumed;
+ }
}
// -----------------------------------------------------------------------------
--- a/uifw/ganes/src/HgVgHelper.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/ganes/src/HgVgHelper.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -43,11 +43,12 @@
{
TSize size = aBitmap.SizeInPixels();
VGImage image = vgCreateImage(VG_sRGB_565, size.iWidth, size.iHeight,VG_IMAGE_QUALITY_NONANTIALIASED);
- VGErrorCode error = vgGetError();
- if (image == VG_INVALID_HANDLE || error == VG_OUT_OF_MEMORY_ERROR)
+
+ if ( image == VG_INVALID_HANDLE )
{
User::Leave(KErrNoMemory);
}
+
if (aBitmap.DisplayMode() == EColor64K && !aBitmap.IsCompressedInRAM())
{
aBitmap.BeginDataAccess();
--- a/uifw/ganes/src/HgVgLetterPopup.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/ganes/src/HgVgLetterPopup.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -65,9 +65,7 @@
iRect.Width(), iRect.Height(),
VG_IMAGE_QUALITY_NONANTIALIASED);
- VGErrorCode error = vgGetError();
-
- if (iLetterImage == VG_INVALID_HANDLE || error == VG_OUT_OF_MEMORY_ERROR)
+ if( iLetterImage == VG_INVALID_HANDLE )
{
User::Leave(KErrNoMemory);
}
--- a/uifw/ganes/src/HgVgMediaWall.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/ganes/src/HgVgMediaWall.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -59,7 +59,7 @@
#include <AknUtils.h>
#include <layoutmetadata.cdl.h>
#include <AknLayout2ScalableDef.h>
-#include <AknLayoutScalable_Apps.cdl.h>
+#include <aknlayoutscalable_apps.cdl.h>
@@ -509,14 +509,18 @@
if (iScrollBar && iScrollBar->HandlePointerEventL(aEvent))
{
iScrollBarHit = ETrue;
- }
-
+ }
if (aEvent.iType == TPointerEvent::EButton1Up)
{
iScrollBarHit = EFalse;
+ // need to draw once at this point if animation is not going
+ // on because the state has changed (when finger is lifted popup must disappear)
+ if (!iAnimationTimer->IsActive())
+ {
+ DrawOpenVG();
+ }
}
-
-
+
}
@@ -2023,15 +2027,13 @@
iMediaWallStyle == EHgVgMediaWallStyleGrid)
{
// when scrollbar is being dragged we draw letter popup
- if (iLetterPopup && (iScrollBarHit || (iKeyScrollingState != ENoKeyScrolling && dist >= 2.0f)))
+ if (iLetterPopup && (iScrollBarHit || (iKeyScrollingState != ENoKeyScrolling && dist > KDrawLetterPopupDistance)))
{
iLetterPopup->Draw(iRect, KMaxLetterPopupOpacity);
}
-
- // when close to target item, we draw titles
- if (dist <= KTitleDrawDistance)
- {
- DrawTitles(1.0f - dist / KTitleDrawDistance);
+ else
+ {
+ DrawTitles(1.0f);
}
}
}
@@ -2325,8 +2327,8 @@
// in full screen, enable blurring on flip/zoom
iRenderer->EnableBlurOnFlip(ETrue, KDefaultBlurDeviation,
KDefaultBlurDeviation);
-
- InitLabelsL(1);
+
+ InitLabelsL(Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0);
InitPopupL(0);
--- a/uifw/ganes/src/HgVgSkinRenderer.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/ganes/src/HgVgSkinRenderer.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -115,8 +115,7 @@
VG_IMAGE_QUALITY_NONANTIALIASED);
// handle out of memory
- VGErrorCode error = vgGetError();
- if (iSkinImage == VG_INVALID_HANDLE || error == VG_OUT_OF_MEMORY_ERROR)
+ if( iSkinImage == VG_INVALID_HANDLE )
{
User::Leave(KErrNoMemory);
}
--- a/uifw/uiklaf/inc/LAFEDWIN.H Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/uiklaf/inc/LAFEDWIN.H Fri Feb 19 23:04:46 2010 +0200
@@ -22,7 +22,7 @@
#include <e32std.h>
#include <gulbordr.h>
#include <coecntrl.h>
-#include "lafsbfrm.h"
+#include "LAFSBFRM.H"
class CTextLayout;
class CLafEdwinCustomDrawBase;
--- a/uifw/uiklaf/inc/LAFMENUB.H Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/uiklaf/inc/LAFMENUB.H Fri Feb 19 23:04:46 2010 +0200
@@ -22,7 +22,7 @@
#include <uiklaf/private/lafenv.h>
#include <lafmain.h>
#include <lafpublc.h>
-#include "lafmenup.h"
+#include "LAFMENUP.H"
#include <e32std.h>
#include <gulbordr.h>
#include <coecntrl.h>
--- a/uifw/uiklaf/inc/LAFMENUP.H Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/uiklaf/inc/LAFMENUP.H Fri Feb 19 23:04:46 2010 +0200
@@ -26,7 +26,7 @@
#include <uiklaf/private/lafenv.h>
#include <lafmain.h>
#include <lafpublc.h>
-#include "lafsbfrm.h"
+#include "LAFSBFRM.H"
class CGulIcon;
class TMargins8;
--- a/uifw/uiklaf/inc/laflbx.h Tue Feb 02 01:00:49 2010 +0200
+++ b/uifw/uiklaf/inc/laflbx.h Fri Feb 19 23:04:46 2010 +0200
@@ -25,7 +25,7 @@
#include <gulutil.h>
#include <gulbordr.h>
-#include "lafsbfrm.h"
+#include "LAFSBFRM.H"
//
// Forward declarations
--- a/uiutils/AknJapaneseReading/src/AknJapaneseReading.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uiutils/AknJapaneseReading/src/AknJapaneseReading.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -18,7 +18,7 @@
// INCLUDE FILES
#include "AknJapaneseReading.h"
-#include "AknJapaneseReadingDll.h"
+#include "AknJapaneseReadingDLL.h"
#include <PtiEngine.h>
// EXTERNAL DATA STRUCTURES
--- a/uiutils/AknJapaneseReading/src/AknJapaneseReadingDLL.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uiutils/AknJapaneseReading/src/AknJapaneseReadingDLL.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -18,7 +18,7 @@
// INCLUDE FILES
#include <e32base.h>
-#include "AknJapaneseReadingDll.h"
+#include "AknJapaneseReadingDLL.h"
// -----------------------------------------------------------------------------
// Static DLL functions
--- a/uiutils/Findutil/inc/ChineseFindUtils.h Tue Feb 02 01:00:49 2010 +0200
+++ b/uiutils/Findutil/inc/ChineseFindUtils.h Fri Feb 19 23:04:46 2010 +0200
@@ -29,7 +29,7 @@
// INCLUDES
#include <w32std.h>
#include <e32base.h>
-#include <CenRepNotifyHandler.h>
+#include <cenrepnotifyhandler.h>
// FORWARD DECLARATION
class CRepository;
--- a/uiutils/Findutil/inc/FindUtilBase.h Tue Feb 02 01:00:49 2010 +0200
+++ b/uiutils/Findutil/inc/FindUtilBase.h Fri Feb 19 23:04:46 2010 +0200
@@ -27,7 +27,7 @@
#define __FINDUTILBASE_H__
#include <e32base.h>
-#include "findutil.h"
+#include "FindUtil.h"
class CFindUtilBase : public CBase, public MFindUtil
{
--- a/uiutils/Findutil/inc/FindUtilWestern.h Tue Feb 02 01:00:49 2010 +0200
+++ b/uiutils/Findutil/inc/FindUtilWestern.h Fri Feb 19 23:04:46 2010 +0200
@@ -27,9 +27,9 @@
#define __FINDUTILWESTERN__
#include <e32std.h>
-#include <CentralRepository.h>
+#include <centralrepository.h>
#include <AknFepInternalCRKeys.h>
-#include <CenRepNotifyHandler.h>
+#include <cenrepnotifyhandler.h>
#include "FindUtilBase.h"
class CFindUtilKorean;
--- a/uiutils/Findutil/src/ChineseFindUtils.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uiutils/Findutil/src/ChineseFindUtils.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -22,9 +22,9 @@
-#include <CentralRepository.h>
+#include <centralrepository.h>
-#include "chinesefindutils.h"
+#include "ChineseFindUtils.h"
// ======== MEMBER FUNCTIONS ========
--- a/uiutils/Findutil/src/FindUtil.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uiutils/Findutil/src/FindUtil.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -24,12 +24,12 @@
#include <e32std.h>
-#include <FeatMgr.h>
-#include "findutil.h"
-#include "findutilbase.h"
+#include <featmgr.h>
+#include "FindUtil.h"
+#include "FindUtilBase.h"
#ifdef __WINS__
-#include <FeatMgr.h>
+#include <featmgr.h>
#endif
typedef MFindUtil* (*TFindUtilFactoryFunctionL)();
--- a/uiutils/Findutil/src/FindUtilBase.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uiutils/Findutil/src/FindUtilBase.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -24,7 +24,7 @@
#include <e32base.h>
-#include "findutilbase.h"
+#include "FindUtilBase.h"
// CFindUtilBase implementation
--- a/uiutils/Findutil/src/FindUtilChinese.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uiutils/Findutil/src/FindUtilChinese.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -24,11 +24,11 @@
#include <PtiEngine.h>
-#include <CentralRepository.h>
+#include <centralrepository.h>
#include <AknFepInternalCRKeys.h>
#include <AvkonInternalCRKeys.h>
#include <aknedsts.h>
-#include <COEAUI.H>
+#include <coeaui.h>
#include <aknenv.h> //phonebook
#include <aknappui.h>
#include <aknapp.h>
@@ -38,7 +38,7 @@
#include "FindUtilChinese.h"
-#include "chinesefindutils.h"
+#include "ChineseFindUtils.h"
// CONSTANTS
const TUint16 KStarChar = 0x002a;
--- a/uiutils/Findutil/src/FindUtilJapanese.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uiutils/Findutil/src/FindUtilJapanese.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -26,7 +26,7 @@
// INCLUDE FILES
#include "FindUtilJapanese.h"
-#include <JPLangUtil.h>
+#include <jplangutil.h>
// CONSTANTS
_LIT(KDesWildCard, "*");
--- a/uiutils/Findutil/src/FindUtilWestern.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uiutils/Findutil/src/FindUtilWestern.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -28,7 +28,7 @@
#include <PtiIndicDefs.h>
#include "FindUtilKorean.h"
#include <avkon.rsg>
-#include <stringloader.h>
+#include <StringLoader.h>
const TInt KLitTab('\t');
const TInt KLitSpace(' ');
const TInt KLitHyphen('-');
--- a/uiutils/gamerecognizer/src/GameRecognizer.cpp Tue Feb 02 01:00:49 2010 +0200
+++ b/uiutils/gamerecognizer/src/GameRecognizer.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -18,7 +18,7 @@
#include <f32file.h>
#include <s32mem.h>
-#include <ImplementationProxy.h>
+#include <implementationproxy.h>
#include "GameRecognizer.h"
//
--- a/uiutils/group/bld.inf Tue Feb 02 01:00:49 2010 +0200
+++ b/uiutils/group/bld.inf Fri Feb 19 23:04:46 2010 +0200
@@ -20,3 +20,4 @@
#include "../Findutil/group/bld.inf"
#include "../gamerecognizer/group/bld.inf"
#include "../AknJapaneseReading/group/bld.inf"
+#include "../hlplch/group/bld.inf"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uiutils/hlplch/bwins/HlplchU.def Fri Feb 19 23:04:46 2010 +0200
@@ -0,0 +1,5 @@
+EXPORTS
+ ?LaunchHelpApplicationL@HlpLauncher@@SAXAAVRWsSession@@PAV?$CArrayFix@VTCoeHelpContext@@@@@Z @ 1 NONAME ; public: static void __cdecl HlpLauncher::LaunchHelpApplicationL(class RWsSession &,class CArrayFix<class TCoeHelpContext> *)
+ ?LaunchHelpApplicationL@HlpLauncher@@SAXAAVRWsSession@@@Z @ 2 NONAME ; public: static void __cdecl HlpLauncher::LaunchHelpApplicationL(class RWsSession &)
+ ?LaunchHelpApplicationL@HlpLauncher@@SAXAAVRWsSession@@VTUid@@@Z @ 3 NONAME ; public: static void __cdecl HlpLauncher::LaunchHelpApplicationL(class RWsSession &,class TUid)
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uiutils/hlplch/data/lch.rss Fri Feb 19 23:04:46 2010 +0200
@@ -0,0 +1,25 @@
+// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+NAME LCH1
+
+#include"lch.rh"
+
+RESOURCE RSS_SIGNATURE { }
+
+RESOURCE TXT r_help_path
+ {
+ buf = "z:\\sys\\bin\\cshelp.exe";
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uiutils/hlplch/eabi/HLPLCHU.DEF Fri Feb 19 23:04:46 2010 +0200
@@ -0,0 +1,7 @@
+EXPORTS
+ _ZN11HlpLauncher22LaunchHelpApplicationLER10RWsSession @ 1 NONAME
+ _ZN11HlpLauncher22LaunchHelpApplicationLER10RWsSession4TUid @ 2 NONAME
+ _ZN11HlpLauncher22LaunchHelpApplicationLER10RWsSessionP9CArrayFixI15TCoeHelpContextE @ 3 NONAME
+ _ZTI11CHlpCmdLine @ 4 NONAME ; #<TI>#
+ _ZTV11CHlpCmdLine @ 5 NONAME ; #<VT>#
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uiutils/hlplch/group/bld.inf Fri Feb 19 23:04:46 2010 +0200
@@ -0,0 +1,31 @@
+/*
+* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Bldmake component description file.
+*
+*/
+
+
+
+
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+PRJ_MMPFILES
+#ifndef TOOLS
+hlplch.mmp
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uiutils/hlplch/group/hlplch.mmp Fri Feb 19 23:04:46 2010 +0200
@@ -0,0 +1,38 @@
+// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// hlplch.dll Launches a device's help application
+//
+//
+
+#include <platform_paths.hrh>
+
+TARGET hlplch.dll
+TARGETTYPE DLL
+CAPABILITY All -TCB
+UID 0x1000008D 0x101F423B
+VENDORID 0x70000001
+
+SOURCEPATH ../src
+SOURCE hlplch.cpp
+
+MW_LAYER_SYSTEMINCLUDE
+USERINCLUDE ../inc
+
+START RESOURCE ../data/lch.rss
+TARGETPATH resource/apps
+END
+
+LIBRARY euser.lib apgrfx.lib eikcore.lib apparc.lib bafl.lib efsrv.lib
+
+SMPSAFE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uiutils/hlplch/inc/hlplch_internal.h Fri Feb 19 23:04:46 2010 +0200
@@ -0,0 +1,56 @@
+/*
+* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef __HLPLCH_INTERNAL_H
+#define __HLPLCH_INTERNAL_H
+
+/** Maximum length of command line to launch application.
+@internalComponent
+@released
+*/
+const TInt KMaxCmdLineLength = 512;
+
+/** resource file name
+@internalComponent
+@released
+*/
+_LIT(KHelpLauncherResource, "z:\\resource\\apps\\lch.rsc");
+
+class CHlpCmdLine : public CBase
+/**
+@internalComponent
+@released
+*/
+ {
+public:
+ static CHlpCmdLine* NewL(CArrayFix<TCoeHelpContext>* aContextList);
+ static CHlpCmdLine* NewLC(CArrayFix<TCoeHelpContext>* aContextList);
+ ~CHlpCmdLine();
+public:
+ TPtr8 CmdLineL();
+private:
+ void BuildCmdLineL();
+ void AddContextL(TCoeHelpContext& aContext);
+private:
+ void ConstructL();
+ CHlpCmdLine(CArrayFix<TCoeHelpContext>* aContextList);
+private:
+ CArrayFix<TCoeHelpContext>* iContextList;
+ CBufFlat* iCmdLine;
+ };
+
+#endif //__HLPLCH_INTERNAL_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uiutils/hlplch/inc/lch.rh Fri Feb 19 23:04:46 2010 +0200
@@ -0,0 +1,33 @@
+// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef LCH_RH
+#define LCH_RH
+
+//
+// FROM EIKDEF.RH - avoids HlpModel requiring Eikon
+//
+STRUCT RSS_SIGNATURE
+ {
+ LONG signature=4;
+ SRLINK self;
+ }
+
+STRUCT TXT
+ {
+ LTEXT buf;
+ }
+
+#endif // LCH_RH
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uiutils/hlplch/src/hlplch.cpp Fri Feb 19 23:04:46 2010 +0200
@@ -0,0 +1,170 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Help Launcher module
+//
+//
+
+#include "hlplch.h"
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include "hlplch_internal.h"
+#endif
+#include <apgcli.h>
+#include <barsc.h>
+#include <bautils.h>
+#include <lch.rsg>
+
+EXPORT_C void HlpLauncher::LaunchHelpApplicationL(RWsSession& aWsSession, TUid aUid)
+/** Launches the help application, passing a help file UID.
+
+@param aWsSession Application's window server session
+@param aUid Help file UID */
+ {
+ __UHEAP_MARK;
+ TBuf<32> cmdLine;
+ cmdLine.AppendNum((TInt)aUid.iUid);
+ TPtr8 ptr((TText8*)cmdLine.Ptr(), cmdLine.Length(),cmdLine.Length());
+ DoLaunchHelpApplicationL(aWsSession, ptr);
+ __UHEAP_MARKEND;
+ }
+
+EXPORT_C void HlpLauncher::LaunchHelpApplicationL(RWsSession& aWsSession)
+/** Launches the help application.
+
+@param aWsSession Application's window server session */
+ {
+ __UHEAP_MARK;
+ TBuf8<1> blank = _L8("");
+ DoLaunchHelpApplicationL(aWsSession, blank);
+ __UHEAP_MARKEND;
+ }
+
+EXPORT_C void HlpLauncher::LaunchHelpApplicationL(RWsSession& aWsSession, CArrayFix<TCoeHelpContext>* aContextList)
+/** Launches the help application, passing an array of help contexts.
+
+@param aWsSession Application's window server session
+@param aContextList Array of help contexts */
+ {
+ __UHEAP_MARK;
+
+ CHlpCmdLine* cmdLine=CHlpCmdLine::NewLC(aContextList);
+ DoLaunchHelpApplicationL(aWsSession, cmdLine->CmdLineL());
+ CleanupStack::PopAndDestroy();
+
+ __UHEAP_MARKEND;
+ }
+
+void HlpLauncher::DoLaunchHelpApplicationL(RWsSession& aWsSession, const TDesC8& aCmdLine)
+ {
+ TApaTaskList taskList(aWsSession);
+ TApaTask task = taskList.FindApp(KHlpAppUid);
+ if (task.Exists())
+ {
+ task.SendMessage (KHlpAppWsMsg, aCmdLine);
+ task.BringToForeground();
+ }
+ else
+ {
+ CApaCommandLine* cmdLine=CApaCommandLine::NewLC();
+
+ // INC057477 fix
+ // Get and open the resource file
+ RFs f;
+ CleanupClosePushL(f);
+
+ User::LeaveIfError(f.Connect());
+ RResourceFile r;
+
+ r.OpenL(f, KHelpLauncherResource);
+ CleanupClosePushL(r);
+
+ // Read the path of the help application from the resource file
+ r.ConfirmSignatureL();
+ TResourceReader resReader;
+ resReader.SetBuffer(r.AllocReadLC(R_HELP_PATH));
+ TPtrC16 helpPath = resReader.ReadTPtrC16();
+ cmdLine->SetExecutableNameL(helpPath);
+ CleanupStack::PopAndDestroy(); // AllocReadLC
+ CleanupStack::PopAndDestroy(); // close r
+ CleanupStack::PopAndDestroy(); // close f
+
+ cmdLine->SetCommandL(EApaCommandOpen);
+ cmdLine->SetTailEndL(aCmdLine);
+ //EikDll::StartAppL(*cmdLine);
+ RApaLsSession lsSession;
+ User::LeaveIfError(lsSession.Connect());
+ CleanupClosePushL(lsSession);
+ User::LeaveIfError(lsSession.StartApp(*cmdLine));
+ CleanupStack::PopAndDestroy(&lsSession);
+ CleanupStack::PopAndDestroy(); //cmdLine
+ }
+ }
+
+CHlpCmdLine* CHlpCmdLine::NewL(CArrayFix<TCoeHelpContext>* aContextList)
+ {
+ CHlpCmdLine* self=CHlpCmdLine::NewLC(aContextList);
+ CleanupStack::Pop(); // self
+ return self;
+ }
+
+CHlpCmdLine* CHlpCmdLine::NewLC(CArrayFix<TCoeHelpContext>* aContextList)
+ {
+ CHlpCmdLine* self=new(ELeave)CHlpCmdLine(aContextList);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ }
+
+CHlpCmdLine::CHlpCmdLine(CArrayFix<TCoeHelpContext>* aContextList)
+ :iContextList(aContextList)
+ {
+ }
+
+CHlpCmdLine::~CHlpCmdLine()
+ {
+ delete iContextList;
+ delete iCmdLine;
+ }
+
+void CHlpCmdLine::ConstructL()
+ {
+ iCmdLine=CBufFlat::NewL(KMaxCmdLineLength);
+ }
+
+TPtr8 CHlpCmdLine::CmdLineL()
+ {
+ BuildCmdLineL();
+ TInt len = iCmdLine->Ptr(0).Size()/sizeof(TText8);
+ TPtr8 ptr((TText8*)iCmdLine->Ptr(0).Ptr(),len,len);
+
+ return ptr;
+ }
+
+void CHlpCmdLine::BuildCmdLineL()
+ {
+ TInt count=iContextList->Count();
+ iCmdLine->InsertL(iCmdLine->Size(), &count, sizeof(TInt));
+ for (TInt i=0; i < count; i++)
+ {
+ AddContextL(iContextList->At(i));
+ }
+ }
+
+void CHlpCmdLine::AddContextL(TCoeHelpContext& aContext)
+ {
+ TInt length=aContext.iContext.Size();
+ iCmdLine->InsertL(iCmdLine->Size(), &length, sizeof(TInt));
+ iCmdLine->InsertL(iCmdLine->Size(), aContext.iContext.Ptr(), aContext.iContext.Size());
+ iCmdLine->InsertL(iCmdLine->Size(), &aContext.iMajor, sizeof(TUid));
+ }
+