--- a/CommonAdapter/inc/GlobalNoteImpl.h Tue Apr 27 16:55:05 2010 +0300
+++ b/CommonAdapter/inc/GlobalNoteImpl.h Tue May 11 16:27:42 2010 +0300
@@ -22,7 +22,7 @@
// INCLUDES
#include <e32std.h>
#include <AknGlobalNote.h>
-#include <globalnote.h>
+#include <GlobalNote.h>
// CLASS DECLARATION
--- a/CommonAdapter/src/GlobalNote.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/CommonAdapter/src/GlobalNote.cpp Tue May 11 16:27:42 2010 +0300
@@ -17,7 +17,7 @@
// INCLUDE FILES
-#include <globalnote.h>
+#include <GlobalNote.h>
#include <avkon.rsg> // For softkey resources
#include "GlobalNoteImpl.h"
Binary file akntouchgesturefw/cenrep/2002676F.txt has changed
Binary file akntouchgesturefw/conf/s60/akntouchgesturefw.confml has changed
--- a/akntouchgesturefw/inc/akntouchgesturefwdefs.h Tue Apr 27 16:55:05 2010 +0300
+++ b/akntouchgesturefw/inc/akntouchgesturefwdefs.h Tue May 11 16:27:42 2010 +0300
@@ -47,7 +47,7 @@
const TInt KTapThreshold = 20;
/// Pixel threshold value used for deciding if pointer has been dragged.
-const TInt KDefaultDragThreshold = 20;
+const TInt KDefaultDragThreshold = 40;
/// Initial threshold for pinch. This is used when both pointers are
/// just set down.
--- a/classicui_plat/avkon_localised_texts_api/loc/avkon.loc Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/avkon_localised_texts_api/loc/avkon.loc Tue May 11 16:27:42 2010 +0300
@@ -4304,4 +4304,18 @@
//r: 5.0
#define qtn_activate_korean_mode "Korean mode"
+//d:Command in options menu.
+//d:Mark multiple -operation. Launches list multiple marking mode.
+//l:list_single_pane_t1_cp2/opt3
+//r: TB9.2
+//
+#define qtn_options_list_mark_multiple "Mark multiple"
+
+//d: Text shown in navi pane when phone is in marking mode
+//l: navi_text_pane_t1
+//r: TB9.2
+//
+#define qtn_navi_pane_marking_mode "Marking mode"
+
// End of File
+
--- a/classicui_plat/avkon_secondary_display_api/group/bld.inf Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/avkon_secondary_display_api/group/bld.inf Tue May 11 16:27:42 2010 +0300
@@ -24,4 +24,4 @@
PRJ_EXPORTS
-../inc/SecondaryDisplay/AknSecondaryDisplayDefs.h MW_LAYER_PLATFORM_EXPORT_PATH(SecondaryDisplay/AknSecondaryDisplayDefs.h)
+../inc/SecondaryDisplay/AknSecondaryDisplayDefs.h MW_LAYER_PLATFORM_EXPORT_PATH(secondarydisplay/AknSecondaryDisplayDefs.h)
--- a/classicui_plat/extended_dialogs_api/inc/EikDialogExt.h Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/extended_dialogs_api/inc/EikDialogExt.h Tue May 11 16:27:42 2010 +0300
@@ -109,6 +109,8 @@
public:
TBitFlags iPublicFlags;
TBool iInitialMade;
+ TInt iButtonGroupResourceId;
+ TBool iDeleteEmbeddedCba;
} ;
--- a/classicui_plat/extended_notifiers_api/inc/aknkeylocknotifier.h Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/extended_notifiers_api/inc/aknkeylocknotifier.h Tue May 11 16:27:42 2010 +0300
@@ -98,8 +98,8 @@
CAknKeyLockControl();
~CAknKeyLockControl();
void ConstructL();
- void EnableKeylock(TBool aShowNote = ETrue);
- void DisableKeylock();
+ void EnableKeylock(TBool aShowNote = ETrue, TBool aNotifySysApp = ETrue);
+ void DisableKeylock(TBool aNotifySysApp = ETrue);
void OfferKeylock();
void DisplayLockedNote();
--- a/classicui_plat/extended_options_menu_api/inc/akncollection.h Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/extended_options_menu_api/inc/akncollection.h Tue May 11 16:27:42 2010 +0300
@@ -61,6 +61,17 @@
};
/**
+ * Enum for collection extension types.
+ */
+ enum TExtensionType
+ {
+ /**
+ * Collection supports multiple marking mode
+ */
+ EAknMarkingCollection = 1
+ };
+
+ /**
* Returns the collection state. The state is combination of
* flags defined in @c TStateFlag.
*
@@ -85,4 +96,89 @@
TUint aExtensionId, TAny*& a0, TAny* a1 ) = 0;
};
+
+/**
+ * Collection marking mode handler.
+ *
+ * This interface is intended for those collections that implement
+ * multiple marking mode and wish to use mode directly from options menu.
+ *
+ * @lib eikcoctl
+ * @since S60 v5.2
+ */
+class MAknMarkingCollection
+ {
+public:
+
+ /**
+ * Extension type.
+ */
+ enum { TYPE = MAknCollection::EAknMarkingCollection };
+
+ /**
+ * Enum for collection state flags.
+ */
+ enum TStateFlag
+ {
+ /**
+ * Collection is in multiple marking mode.
+ */
+ EStateMarkingMode = 0x00000001,
+ /**
+ * Collection has marked items.
+ */
+ EStateMarkedItems = 0x00000002,
+ /**
+ * Collection is empty
+ */
+ EStateCollectionEmpty = 0x00000004
+ };
+
+ /**
+ * Sets multiple marking state.
+ *
+ * @param aActive ETrue if multiple marking should be active.
+ */
+ virtual void SetMultipleMarkingState( TBool aActive ) = 0;
+
+ /**
+ * Request to end marking mode
+ *
+ * @return ETrue if marking mode can be ended
+ */
+ virtual TBool ExitMarkingMode() = 0;
+
+ /**
+ * Returns the collection marking state. The state is combination of
+ * flags defined in @c TStateFlag.
+ *
+ * @return Marking state.
+ */
+ virtual TUint MarkingState() const = 0;
+
+ /**
+ * Marks the currently selected item.
+ */
+ virtual void MarkCurrentItemL() = 0;
+
+ /**
+ * Marks all items in the collection.
+ */
+ virtual void MarkAllL() = 0;
+
+ /**
+ * Unmarks all items in the collection.
+ */
+ virtual void UnmarkAll() = 0;
+
+ /*
+ * Can current item be marked
+ *
+ * @return ETrue if item is markable
+ */
+ virtual TBool CurrentItemMarkable() = 0;
+
+ };
+
#endif // M_AKNCOLLECTION_H
+
--- a/classicui_plat/extended_options_menu_api/inc/aknitemactionmenu.h Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/extended_options_menu_api/inc/aknitemactionmenu.h Tue May 11 16:27:42 2010 +0300
@@ -27,6 +27,7 @@
class CAknStylusPopUpMenu;
class CEikMenuBar;
class CAknItemActionMenuData;
+class CAknMarkingMode;
/**
* Item action menu.
@@ -222,6 +223,14 @@
*/
MObjectProvider* Owner() const;
+ /**
+ * Provides marking mode handler.
+ *
+ * @internal
+ * @return Marking mode handler.
+ */
+ CAknMarkingMode& MarkingMode();
+
private:
/**
@@ -328,6 +337,12 @@
* Not own
*/
MObjectProvider* iOwner;
+
+ /**
+ * Multiple marking handler.
+ * Own.
+ */
+ CAknMarkingMode* iMarking;
};
#endif // C_AKNITEMACTIONMENU_H
--- a/classicui_plat/find_item_ui_api/inc/finditemdialog.h Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/find_item_ui_api/inc/finditemdialog.h Tue May 11 16:27:42 2010 +0300
@@ -59,6 +59,7 @@
class CRichTextEditorContainer;
class CSendUi;
class CItemFinderExtension;
+class MTouchFeedback;
// CLASS DECLARATION
@@ -167,6 +168,14 @@
* @return CAknDialog::ExecuteLD()
*/
IMPORT_C TInt ExecuteLD();
+
+ /**
+ * Enable single click
+ * @since S60 5.2
+ * @param aEnable Enables single click.
+ * Disabled by default.
+ */
+ IMPORT_C void EnableSingleClick ( TBool aEnable );
public: // Functions from base classes
/**
@@ -179,6 +188,13 @@
IMPORT_C TKeyResponse OfferKeyEventL(
const TKeyEvent& aKeyEvent,
TEventCode aType );
+
+ /**
+ * From CCoeControl
+ * Handle pointer events.
+ * @param aPointerEvent information about the pointerevent
+ */
+ void HandlePointerEventL ( const TPointerEvent& aPointerEvent );
protected: // Functions from base classes
@@ -424,6 +440,26 @@
*/
void CreateInternetCallL();
+ /**
+ * Handles pointer events in single click mode.
+ *
+ * @param aPointerEvent information about the pointerevent
+ */
+ void DoHandlePointerEventL ( const TPointerEvent& aPointerEvent );
+
+ /**
+ * Returns ETrue if current item has visible highlight
+ *
+ * @return ETrue if current item has visible highlight
+ */
+ TBool CurrentItemHasHighlight();
+
+ /**
+ * Highlights current item.
+ */
+ void HighlightCurrentItem();
+
+
private: //data
// Pointer to controller which controls engine and dialog
CFindItemController* iController;
@@ -507,8 +543,17 @@
// Rows used in viewer.
TInt iRows;
- CItemFinderExtension* iExtension;
+ CItemFinderExtension* iExtension;
+
+ // Last tapped item
+ TPoint iLastTappedItem;
+ // Is single click enabled
+ TBool iSingleClick;
+
+ // Tactile Feedback interface
+ MTouchFeedback* iFeedback;
+
public: // new methods
void DeleteMeL();
static TInt DeleteMe(TAny* aThis);
@@ -516,7 +561,6 @@
private: // new methods
void FormatDialDataL( TInt aCommandId );
TBool IsSendKeyCallVoIP() const;
-
};
#endif // FINDITEMDIALOG_H
--- a/classicui_plat/find_item_ui_api/tsrc/conf/tctestdomfinditemdialog.cfg Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/find_item_ui_api/tsrc/conf/tctestdomfinditemdialog.cfg Tue May 11 16:27:42 2010 +0300
@@ -21,3 +21,9 @@
title TestDialogOfferKeyEventL
run testscripter c:\testframework\ui_testdomfinditemdialog.cfg 5
[Endtest]
+
+
+[Test]
+title TestDialogEnableSingleClick
+run testscripter c:\testframework\ui_testdomfinditemdialog.cfg 6
+[Endtest]
--- a/classicui_plat/find_item_ui_api/tsrc/conf/ui_testdomfinditemdialog.cfg Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/find_item_ui_api/tsrc/conf/ui_testdomfinditemdialog.cfg Tue May 11 16:27:42 2010 +0300
@@ -39,3 +39,9 @@
[Endtest]
+[Test]
+title TestDialogEnableSingleClick
+create testdomfinditem test
+test TestDialogEnableSingleClick
+delete test
+[Endtest]
--- a/classicui_plat/find_item_ui_api/tsrc/group/testdomfinditem.mmp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/find_item_ui_api/tsrc/group/testdomfinditem.mmp Tue May 11 16:27:42 2010 +0300
@@ -37,7 +37,7 @@
MW_LAYER_SYSTEMINCLUDE
SOURCEPATH ../data
- START RESOURCE testdomfineitem.rss
+ START RESOURCE testdomfinditem.rss
HEADER
TARGETPATH RESOURCE_FILES_DIR
LANGUAGE_IDS
--- a/classicui_plat/find_item_ui_api/tsrc/inc/testdomfinditem.h Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/find_item_ui_api/tsrc/inc/testdomfinditem.h Tue May 11 16:27:42 2010 +0300
@@ -128,6 +128,14 @@
*/
virtual TInt TestDialogOfferKeyEventL( CStifItemParser& aItem );
+ /**
+ * test EnableSingleClick method.
+ * @since S60 5.2
+ * @param aItem never used.
+ * @return Symbian OS error code.
+ */
+ virtual TInt TestDialogEnableSingleClick( CStifItemParser& aItem );
+
private: // test functions in finditemmenu.h
/**
--- a/classicui_plat/find_item_ui_api/tsrc/src/testdomfinditem.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/find_item_ui_api/tsrc/src/testdomfinditem.cpp Tue May 11 16:27:42 2010 +0300
@@ -105,7 +105,13 @@
EFalse );
_LIT( KResourceFile, "C:\\resource\\testdomfinditem.rsc" );
- iOffset = CCoeEnv::Static()->AddResourceFileL( KResourceFile );
+ TRAPD ( err, iOffset = CCoeEnv::Static()->AddResourceFileL( KResourceFile ) );
+
+ if ( KErrNone != err )
+ {
+ _LIT( KZResourceFile, "Z:\\resource\\testdomfinditem.rsc" );
+ iOffset = CCoeEnv::Static()->AddResourceFileL( KZResourceFile );
+ }
SendTestClassVersion();
--- a/classicui_plat/find_item_ui_api/tsrc/src/testdomfinditemblocks.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/find_item_ui_api/tsrc/src/testdomfinditemblocks.cpp Tue May 11 16:27:42 2010 +0300
@@ -44,6 +44,7 @@
ENTRY( "TestDialogExecuteLD", Ctestdomfinditem::TestDialogExecuteLDL ),
ENTRY( "TestDialogProcessCommandL", Ctestdomfinditem::TestDialogProcessCommandL ),
ENTRY( "TestDialogOfferKeyEventL", Ctestdomfinditem::TestDialogOfferKeyEventL ),
+ ENTRY( "TestDialogEnableSingleClick", Ctestdomfinditem::TestDialogEnableSingleClick ),
// test functions in finditemmenu.h
ENTRY( "TestMenuNewL", Ctestdomfinditem::TestMenuNewL ),
--- a/classicui_plat/find_item_ui_api/tsrc/src/testdomfinditemblocksdialog.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/find_item_ui_api/tsrc/src/testdomfinditemblocksdialog.cpp Tue May 11 16:27:42 2010 +0300
@@ -131,3 +131,29 @@
}
+
+// -----------------------------------------------------------------------------
+// Ctestdomfinditem::TestDialogEnableSingleClick
+// -----------------------------------------------------------------------------
+//
+TInt Ctestdomfinditem::TestDialogEnableSingleClick( CStifItemParser& /*aItem*/ )
+ {
+ // Print to UI
+ _LIT( Ktestdomfinditem, "testdomfinditem" );
+ _LIT( KTestEnableSingleClick, "In DialogEnableSingleClick" );
+ TestModuleIf().Printf( 0, Ktestdomfinditem, KTestEnableSingleClick );
+ // Print to log file
+ iLog->Log( KTestEnableSingleClick );
+
+ CFindItemDialog* dialog = CFindItemDialog::NewL( KUrlDes,
+ CFindItemEngine::EFindItemSearchURLBin );
+ CleanupStack::PushL( dialog );
+ STIF_ASSERT_NOT_NULL( dialog );
+
+ dialog->EnableSingleClick ( EFalse );
+ dialog->EnableSingleClick ( ETrue );
+
+ CleanupStack::PopAndDestroy( dialog );
+ return KErrNone;
+ }
+
--- a/classicui_plat/ganes_api/inc/ganes/HgVgMediaWall.h Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/ganes_api/inc/ganes/HgVgMediaWall.h Tue May 11 16:27:42 2010 +0300
@@ -793,9 +793,7 @@
CAlfCompositionSource* iCompositionSource;
- CFbsBitmap* iSurfaceBitmap;
CPeriodic* iDelayedInit;
-
TBool iFirstTime;
--- a/classicui_plat/item_finder_api/inc/ItemFinder.h Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/item_finder_api/inc/ItemFinder.h Tue May 11 16:27:42 2010 +0300
@@ -37,6 +37,7 @@
class MAknItemFinderObserver;
class CCoeEnv;
class CCoeControl;
+class MTouchFeedback;
// CLASS DECLARATION
class MItemFinderObserver
@@ -395,6 +396,11 @@
* Drag threshold
*/
TInt iDragThreshold;
+
+ /**
+ * Tactile Feedback interface
+ */
+ MTouchFeedback* iFeedback;
};
--- a/classicui_plat/stylus_activated_popup_api/tsrc/inc/testdomstylusactivepopup.h Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_plat/stylus_activated_popup_api/tsrc/inc/testdomstylusactivepopup.h Tue May 11 16:27:42 2010 +0300
@@ -26,7 +26,7 @@
#include <testclassassert.h>
#include <eikenv.h>
#include <e32std.h>
-#include <aknlayout2scalabledef.h>
+#include <AknLayout2ScalableDef.h>
#include <aknstylusactivatedpopupcontent.h>
#include "testdomstylusactivepopupcontainer.h"
--- a/classicui_pub/animation_api/tsrc/src/testsdkanimationblocks.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/animation_api/tsrc/src/testsdkanimationblocks.cpp Tue May 11 16:27:42 2010 +0300
@@ -27,7 +27,7 @@
#include <barsread.h>
#include <coeaui.h>
#include <avkon.rsg>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
#include <testsdkanimation.rsg>
#include "testsdkacontrol.h"
--- a/classicui_pub/buttons_api/inc/eikcba.h Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/buttons_api/inc/eikcba.h Tue May 11 16:27:42 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -950,6 +950,17 @@
*/
void UpdateItemSpecificSoftkey( TBool aVisibleCollection = ETrue );
+ /**
+ * Updates RSK when multiple marking is activated or deactivated.
+ */
+ void UpdateMultipleMarkingSoftkey();
+
+ /**
+ * Checks wheter softkey command change is allowed.
+ *
+ * @return ETrue if softkey command change is allowed.
+ */
+ TBool CommandChangeAllowed();
private: // new methods
@@ -1007,11 +1018,6 @@
* to CEikCbaButtons.
*/
void BroadcastPostingTransparency( TBool aEnable );
-
- /**
- * Sets the CBA fading according to button content.
- */
- void SetFadeState();
/**
* A better version of AddCommandToStackL
--- a/classicui_pub/buttons_api/tsrc/src/testsdkbuttonsblockseikcba.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/buttons_api/tsrc/src/testsdkbuttonsblockseikcba.cpp Tue May 11 16:27:42 2010 +0300
@@ -22,7 +22,7 @@
#include <stifparser.h>
#include <stiftestinterface.h>
#include <testsdkbuttons.rsg>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
#include <avkon.hrh>
#include <avkon.rsg>
--- a/classicui_pub/document_handler_api/tsrc/inc/testsdkdocumenthandlerobserver.h Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/document_handler_api/tsrc/inc/testsdkdocumenthandlerobserver.h Tue May 11 16:27:42 2010 +0300
@@ -18,7 +18,7 @@
#ifndef C_TESTSDKDOCUMENTHANDLEROBSERVER_H
#define C_TESTSDKDOCUMENTHANDLEROBSERVER_H
-#include <aknserverapp.h>
+#include <AknServerApp.h>
class CTestSDKDocumentHandlerObserver : public CBase,
public MAknServerAppExitObserver
--- a/classicui_pub/editors_api/inc/EIKEDWIN.H Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/editors_api/inc/EIKEDWIN.H Tue May 11 16:27:42 2010 +0300
@@ -3057,6 +3057,13 @@
* context.
*/
void DrawViewBackground( TBool aStart ) const;
+
+ /**
+ * Returns ETrue if editor content fits to view rect.
+ *
+ * @return ETrue if editor content fits to view rect.
+ */
+ TBool ContentFitsToViewRect() const;
protected:
--- a/classicui_pub/editors_api/tsrc/conf/tctestsdkeditorsedwin.cfg Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/editors_api/tsrc/conf/tctestsdkeditorsedwin.cfg Tue May 11 16:27:42 2010 +0300
@@ -987,3 +987,8 @@
title TestEEnableKineticScrollingL
run testscripter c:\testframework\ui_testsdkeditorsedwin.cfg 199
[Endtest]
+
+[Test]
+title TestEEnableKineticScrollingPhysicsL
+run testscripter c:\testframework\ui_testsdkeditorsedwin.cfg 200
+[Endtest]
\ No newline at end of file
--- a/classicui_pub/editors_api/tsrc/conf/ui_testsdkeditorsedwin.cfg Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/editors_api/tsrc/conf/ui_testsdkeditorsedwin.cfg Tue May 11 16:27:42 2010 +0300
@@ -2210,3 +2210,11 @@
sendtobackground
[Endtest]
+[Test]
+title TestEEnableKineticScrollingPhysicsL
+create testsdkeditors test
+bringtoforeground
+test TestEEnableKineticScrollingPhysicsL
+delete test
+sendtobackground
+[Endtest]
\ No newline at end of file
--- a/classicui_pub/editors_api/tsrc/group/testsdkeditors.mmp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/editors_api/tsrc/group/testsdkeditors.mmp Tue May 11 16:27:42 2010 +0300
@@ -120,6 +120,7 @@
LIBRARY fbscli.lib
LIBRARY print.lib
LIBRARY apparc.lib
+LIBRARY aknphysics.lib
LANG SC
--- a/classicui_pub/editors_api/tsrc/inc/testsdkeditors.h Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/editors_api/tsrc/inc/testsdkeditors.h Tue May 11 16:27:42 2010 +0300
@@ -27,6 +27,7 @@
#include <testclassassert.h>
#include <fldbase.h>
#include <flddef.h>
+#include <aknphysicsobserveriface.h>
#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
#include <uikon/eikenvinterface.h>
#endif //SYMBIAN_ENABLE_SPLIT_HEADERS
@@ -3203,6 +3204,30 @@
*/
virtual TInt TestEEnableKineticScrollingL( CStifItemParser& aItem );
+ /**
+ * TPhysicsObserver test class for testing the
+ * kinetic scrolling feature of CEikEdwin.
+ */
+ NONSHARABLE_CLASS (TPhysicsObserver) : public MAknPhysicsObserver
+ {
+ public:
+
+ void ViewPositionChanged( const TPoint& aNewPosition,
+ TBool aDrawNow, TUint aFlags );
+ void PhysicEmulationEnded();
+ TPoint ViewPosition() const;
+ };
+
+ /**
+ * TestEEnableKineticScrollingPhysicsL test function for testing the
+ * kinetic scrolling feature of CEikEdwin.
+ *
+ * @since S60 5.2
+ * @param aItem never used
+ * @return Symbian OS error code.
+ */
+ virtual TInt TestEEnableKineticScrollingPhysicsL( CStifItemParser& aItem );
+
//EikGTED.h
/* class CEikGlobalTextEditor */
/**
--- a/classicui_pub/editors_api/tsrc/src/testsdkeditorsblocks.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/editors_api/tsrc/src/testsdkeditorsblocks.cpp Tue May 11 16:27:42 2010 +0300
@@ -661,6 +661,7 @@
ENTRY( "TestMFNETOEHandlePointerEventL", CTestSDKEditors::TestMFNETOEHandlePointerEventL ),
ENTRY( "TestEikEdwinSmileyInputL", CTestSDKEditors::TestEikEdwinSmileyInputL ),
ENTRY( "TestEEnableKineticScrollingL", CTestSDKEditors::TestEEnableKineticScrollingL ),
+ ENTRY( "TestEEnableKineticScrollingPhysicsL", CTestSDKEditors::TestEEnableKineticScrollingPhysicsL ),
};
const TInt count = sizeof( KFunctions ) / sizeof( TStifFunctionInfo );
--- a/classicui_pub/editors_api/tsrc/src/testsdkeditorsblocksedwin.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/editors_api/tsrc/src/testsdkeditorsblocksedwin.cpp Tue May 11 16:27:42 2010 +0300
@@ -36,6 +36,7 @@
#include <eikrted.h>
#include <aknextendedinputcapabilities.h>
#include <baclipb.h>
+#include <aknphysics.h>
#include <testsdkeditors.rsg>
@@ -6027,3 +6028,127 @@
return err;
}
+
+// -----------------------------------------------------------------------------
+// CTestSDKEditors::TPhysicsObserver::ViewPositionChanged
+// -----------------------------------------------------------------------------
+//
+void CTestSDKEditors::TPhysicsObserver::ViewPositionChanged(
+ const TPoint& /*aNewPosition*/, TBool /*aDrawNow*/, TUint /*aFlags*/ )
+ {
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTestSDKEditors::TPhysicsObserver::PhysicEmulationEnded
+// -----------------------------------------------------------------------------
+//
+void CTestSDKEditors::TPhysicsObserver::PhysicEmulationEnded()
+ {
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTestSDKEditors::TPhysicsObserver::ViewPosition
+// -----------------------------------------------------------------------------
+//
+TPoint CTestSDKEditors::TPhysicsObserver::ViewPosition() const
+ {
+ TPoint point (0,0);
+ return point;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTestSDKEditors::TestEEnableKineticScrollingPhysicsL
+// -----------------------------------------------------------------------------
+//
+TInt CTestSDKEditors::TestEEnableKineticScrollingPhysicsL( CStifItemParser&
+ /*aItem*/ )
+ {
+ CTestEditorsControl* control = CTestEditorsControl::NewL();
+ CleanupStack::PushL( control );
+ STIF_ASSERT_NOT_NULL( control );
+
+ CTestSDKEditorsEdwin* edwin = new ( ELeave ) CTestSDKEditorsEdwin;
+ CleanupStack::PushL( edwin );
+ STIF_ASSERT_NOT_NULL( edwin );
+ // Enable kinetic scrolling
+
+ TPhysicsObserver obs;
+ CAknPhysics* physics ( NULL );
+ STIF_ASSERT_TRUE ( CAknPhysics::FeatureEnabled() );
+
+ physics = CAknPhysics::NewL( obs, control );
+ CleanupStack::PushL( physics );
+
+ edwin->EnableKineticScrollingL( physics );
+ edwin->SetContainerWindowL( *control );
+
+ TResourceReader reader;
+ CCoeEnv::Static()->CreateResourceReaderLC( reader, R_TESTSDK_EDWIN );
+ edwin->ConstructFromResourceL( reader );
+ CleanupStack::PopAndDestroy();
+
+ // CreateLayoutL
+ CParaFormatLayer* paraFormatLayer = CParaFormatLayer::NewL();
+ CleanupStack::PushL( paraFormatLayer );
+ CCharFormatLayer* charFormatLayer = CCharFormatLayer::NewL();
+ CleanupStack::PushL( charFormatLayer );
+ CGlobalText * globalText =
+ CGlobalText::NewL( paraFormatLayer, charFormatLayer );
+ CleanupStack::PushL( globalText );
+ edwin->CreateLayoutL( globalText );
+ CleanupStack::Pop( globalText );
+ CleanupStack::Pop( charFormatLayer );
+ CleanupStack::Pop( paraFormatLayer );
+
+ edwin->CreateTextViewL();
+
+ // SetTextL
+ _LIT( KText, "one text" );
+ TBuf<KLength> text( KText );
+ edwin->SetTextL( &text );
+
+ edwin->ForceScrollBarUpdateL();
+ edwin->HandleSizeChangedL();
+
+ // Set selection
+ const TInt KSelectionPosition( 2 );
+ edwin->SetSelectionL( 0, KSelectionPosition );
+ TCursorSelection cursorSelection( 0, KSelectionPosition );
+ STIF_ASSERT_TRUE(
+ cursorSelection.iCursorPos == edwin->Selection().iCursorPos );
+ STIF_ASSERT_TRUE(
+ cursorSelection.iAnchorPos == edwin->Selection().iAnchorPos );
+ edwin->ClearSelectionL();
+ STIF_ASSERT_TRUE( 0 == edwin->Selection().iCursorPos );
+
+ edwin->MoveCursorL( TCursorPosition::EFRight, ETrue );
+ STIF_ASSERT_FALSE( edwin->IdleL( edwin ) );
+
+ // HandlePointerEventL
+ TPointerEvent event;
+ event.iType = TPointerEvent::EButton1Down;
+ edwin->HandlePointerEventL( event );
+
+ // HandleScrollEventL
+ CEikScrollBar* scrollBar = new ( ELeave ) CEikScrollBar;
+ CleanupStack::PushL( scrollBar );
+ STIF_ASSERT_NOT_NULL( scrollBar );
+ scrollBar->ConstructL( static_cast<MEikScrollBarObserver*>( edwin ),
+ control,
+ CEikScrollBar::EVertical,
+ KLength,
+ CEikScrollBar::EEikScrollBarDefaultBehaviour );
+ TAknDoubleSpanScrollBarModel doubleModel;
+ scrollBar->SetModel( &doubleModel );
+ edwin->HandleScrollEventL( scrollBar, EEikScrollThumbDragHoriz );
+ CleanupStack::PopAndDestroy( scrollBar );
+
+ CleanupStack::PopAndDestroy( physics );
+ CleanupStack::PopAndDestroy( edwin );
+ CleanupStack::PopAndDestroy( control );
+
+ return KErrNone;
+ }
--- a/classicui_pub/editors_api/tsrc/src/testsdkeditorsblocksnumedwin.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/editors_api/tsrc/src/testsdkeditorsblocksnumedwin.cpp Tue May 11 16:27:42 2010 +0300
@@ -19,11 +19,11 @@
// [INCLUDE FILES]
-#include <aknnumedwin.h>
+#include <AknNumEdwin.h>
#include <barsread.h>
#include <coemain.h>
#include <coeaui.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
#include <akndef.h>
#include <testsdkeditors.rsg>
--- a/classicui_pub/editors_api/tsrc/src/testsdkeditorsblockssecrettext.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/editors_api/tsrc/src/testsdkeditorsblockssecrettext.cpp Tue May 11 16:27:42 2010 +0300
@@ -29,7 +29,7 @@
#include <gulftflg.hrh>
#include <prnsetup.h>
#include <eikenv.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
#include <aknutils.h>
#include <gdi.h>
#include <aknsbasicbackgroundcontrolcontext.h>
--- a/classicui_pub/hierarchical_lists_api/inc/akntreelist.h Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/hierarchical_lists_api/inc/akntreelist.h Tue May 11 16:27:42 2010 +0300
@@ -24,6 +24,7 @@
#include <w32std.h>
#include <akntreelistobserver.h>
#include <AknIconUtils.h> // TScaleMode
+#include <aknmarkingmodeobserver.h>
class CAknTree;
class CAknTreeListView;
@@ -920,6 +921,15 @@
*/
IMPORT_C void SetEmptyTextL(const TDesC& aText);
+ /**
+ * Sets the marking mode observer.
+ *
+ * @since S60 5.2
+ *
+ * @param aObserver Marking mode observer, @c NULL removes the existing
+ * observer.
+ */
+ IMPORT_C void SetMarkingModeObserver( MAknMarkingModeObserver* aObserver );
// From base class CCoeControl
@@ -1009,6 +1019,15 @@
*/
CCoeControl* ComponentControl( TInt aIndex ) const;
+ /**
+ * Returns the marking mode observer.
+ *
+ * @since S60 5.2
+ *
+ * @return Pointer to the marking mode observer.
+ */
+ MAknMarkingModeObserver* MarkingModeObserver();
+
protected:
/**
@@ -1133,6 +1152,10 @@
*/
TInt iIndex;
+ /**
+ * Marking mode observer
+ */
+ MAknMarkingModeObserver* iMarkingModeObserver;
};
--- a/classicui_pub/hierarchical_lists_api/tsrc/src/testsdkhierarchicallistsblockstl.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/hierarchical_lists_api/tsrc/src/testsdkhierarchicallistsblockstl.cpp Tue May 11 16:27:42 2010 +0300
@@ -19,7 +19,7 @@
#include <aknsinglestyletreelist.h>
#include <akniconutils.h>
#include <avkon.mbg>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
#include "testsdkhierarchicallists.h"
#include "testsdkhierarchicallistsordering.h"
--- a/classicui_pub/labels_api/tsrc/src/testsdklabelsblockslabel.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/labels_api/tsrc/src/testsdklabelsblockslabel.cpp Tue May 11 16:27:42 2010 +0300
@@ -25,7 +25,7 @@
#include <gdi.h>
#include <barsread.h>
#include <coeaui.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
#include <eikappui.h>
#include <eikenv.h>
#include <aknpictographinterface.h>
--- a/classicui_pub/labels_api/tsrc/src/testsdklabelslblocksfilename.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/labels_api/tsrc/src/testsdklabelslblocksfilename.cpp Tue May 11 16:27:42 2010 +0300
@@ -20,7 +20,7 @@
// [INCLUDE FILES]
#include <eikfnlab.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
#include <akndef.h>
#include <coeaui.h>
--- a/classicui_pub/lists_api/group/bld.inf Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/lists_api/group/bld.inf Tue May 11 16:27:42 2010 +0300
@@ -43,3 +43,4 @@
../inc/EIKLBD.H MW_LAYER_PUBLIC_EXPORT_PATH(eiklbd.h)
../inc/AknSelectionList.h MW_LAYER_PUBLIC_EXPORT_PATH(aknselectionlist.h)
../inc/EIKLBO.H MW_LAYER_PUBLIC_EXPORT_PATH(eiklbo.h)
+../inc/aknmarkingmodeobserver.h MW_LAYER_PUBLIC_EXPORT_PATH(aknmarkingmodeobserver.h)
--- a/classicui_pub/lists_api/inc/EIKCLB.H Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/lists_api/inc/EIKCLB.H Tue May 11 16:27:42 2010 +0300
@@ -199,15 +199,6 @@
protected:
- /**
- * Draw the item background.
- *
- * Internal member, not intended for use.
- *
- * @param aRect Drawing area.
- */
- void DrawCurrentItemRect(const TRect& aRect) const;
-
/**
* Array of properties.
*/
--- a/classicui_pub/lists_api/inc/EIKLBI.H Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/lists_api/inc/EIKLBI.H Tue May 11 16:27:42 2010 +0300
@@ -326,7 +326,31 @@
/**
* This flag indicates that simley icon is enabled.
*/
- EDrawSmileyIcon = 0x0100
+ EDrawSmileyIcon = 0x0100,
+
+ /**
+ * This flag indicates that marking mode is enabled.
+ */
+ EMarkingModeEnabled = 0x0200,
+
+ /**
+ * If set then itemdrawer draws the whole list area's background in one
+ * frame while scrolling. Normally background is drawn separately for
+ * each list item.
+ */
+ EDrawWholeBackground = 0x0400,
+
+ /**
+ * Always set unless client application has implemented a custom item
+ * drawer that overrides background drawing code.
+ */
+ ENativeImplementation = 0x0800,
+
+ /**
+ * This flag is used during scrolling to indicate that background has
+ * been already drawn.
+ */
+ EBackgroundDrawn = 0x1000
};
public:
--- a/classicui_pub/lists_api/inc/EIKLBV.H Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/lists_api/inc/EIKLBV.H Tue May 11 16:27:42 2010 +0300
@@ -846,6 +846,18 @@
* @c EFalse if it's not visible or fully visible.
*/
IMPORT_C TBool ItemIsPartiallyVisible( TInt aItemIndex ) const;
+
+ /**
+ * Resets the selection state so that there is nothing selected.
+ *
+ * @param aDrawItems Whether or not to draw the items which are
+ * deselected.
+ *
+ * @panic EEikPanicListBoxNoSelIndexArray Panics if selection indexes
+ * have not been defined for
+ * this class.
+ */
+ void ClearSelection( TBool aDrawItems );
protected:
--- a/classicui_pub/lists_api/inc/EIKLBX.H Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/lists_api/inc/EIKLBX.H Tue May 11 16:27:42 2010 +0300
@@ -40,6 +40,7 @@
class CMatchBuffer;
class CListBoxExt;
class CEikListBox;
+class MAknMarkingModeObserver;
// CLASS DECLARATION
@@ -1530,6 +1531,26 @@
*/
IMPORT_C TBool IsHighlightEnabled();
+ /**
+ * Turns the marking mode on / off.
+ *
+ * @since S60 5.2
+ *
+ * @param aEnable @c ETrue to turn marking mode on
+ * @c EFalse to turn marking mode off
+ */
+ IMPORT_C void SetMarkingMode( TBool aEnable );
+
+ /**
+ * Sets the marking mode observer.
+ *
+ * @since S60 5.2
+ *
+ * @param aObserver Marking mode observer, @c NULL removes the existing
+ * observer.
+ */
+ IMPORT_C void SetMarkingModeObserver( MAknMarkingModeObserver* aObserver );
+
private:
IMPORT_C virtual void CEikListBox_Reserved(); // listbox use only
void HorizontalScroll(TInt aScrollAmountInPixels);
@@ -1573,6 +1594,24 @@
*/
void UpdateHighlightL( TInt aItemIndex );
+ /**
+ * Checks whether marking mode is on or off.
+ *
+ * @since S60 5.2
+ *
+ * @return @c ETrue if marking mode is on, otherwise @c EFalse
+ */
+ TBool MarkingMode() const;
+
+ /**
+ * Returns the marking mode observer.
+ *
+ * @since S60 5.2
+ *
+ * @return Pointer to the marking mode observer.
+ */
+ MAknMarkingModeObserver* MarkingModeObserver();
+
public:
/**
* Sets this control as visible or invisible.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/classicui_pub/lists_api/inc/aknmarkingmodeobserver.h Tue May 11 16:27:42 2010 +0300
@@ -0,0 +1,51 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Marking mode observer interface.
+*
+*/
+
+#ifndef M_AKNMARKINGMODEOBSERVER_H
+#define M_AKNMARKINGMODEOBSERVER_H
+
+/**
+ * Collection observer.
+ *
+ * This interface is intended for those objects that are interested
+ * of collection state and need to receive collection notifications.
+ *
+ * @lib eikcoctl
+ * @since S60 v5.2
+ */
+class MAknMarkingModeObserver
+ {
+public:
+
+ /**
+ * This method is called when marking mode is activated or deactivated.
+ *
+ * @param aActivated @c ETrue if marking mode was activate, @c EFalse
+ * if marking mode was deactivated.
+ */
+ virtual void MarkingModeStatusChanged( TBool aActivated ) = 0;
+
+ /**
+ * This method is called just before marking mode is closed. Client can
+ * either accept or decline closing.
+ *
+ * @return @c ETrue if marking mode should be closed, otherwise @c EFalse.
+ */
+ virtual TBool ExitMarkingMode() const = 0;
+ };
+
+#endif // M_AKNMARKINGMODEOBSERVER_H
--- a/classicui_pub/lists_api/inc/eikfrlb.h Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/lists_api/inc/eikfrlb.h Tue May 11 16:27:42 2010 +0300
@@ -221,13 +221,6 @@
protected:
/**
- * Draws current item rectangle.
- *
- * @param aRect Current item rectangle.
- */
- void DrawCurrentItemRect(const TRect& aRect) const;
-
- /**
* @c WordWrapListItem is used with @c CAknDouble* style listboxes.
* If listbox does not have 2nd line defined, @c WordWrapListItem
* wraps 1st line to 2nd line, if text does not fit to 1st line.
--- a/classicui_pub/lists_api/inc/eikfrlbd.h Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/lists_api/inc/eikfrlbd.h Tue May 11 16:27:42 2010 +0300
@@ -1061,37 +1061,6 @@
TBool aHighlight) const;
/**
- * Renders a settings animated highlight.
- *
- * @param aGc Graphics context used for drawing.
- * @param aItemRect the area of the screen for drawing.
- * @param aHighlight If @c ETrue highlight is rendered
- * if @c EFalse, nothing is done.
- */
- void DrawSettingHighlight(CWindowGc &aGc,
- const TRect &aItemRect,
- TBool aHighlight) const;
-
- /**
- * Renders a popup animated highlight.
- *
- * @param aGc Graphics context used for drawing.
- * @param aItemRect the area of the screen for drawing.
- * @param aHighlight If @c ETrue highlight is rendered
- * if @c EFalse, nothing is done.
- */
- void DrawPopupHighlight(CWindowGc &aGc,
- const TRect &aItemRect,
- TBool aHighlight) const;
-
- /**
- * Draws a popup frame.
- *
- * @param aGc Graphics context used for drawing.
- */
- void DrawPopupFrame(CWindowGc &aGc) const;
-
- /**
* Disables logical-to-visual conversion in subcells between indexes.
*
* @param aFirstIndex First subcell not to use logical-to-visual conversion.
--- a/classicui_pub/lists_api/tsrc/src/testsdklistsblockseikclbd.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/lists_api/tsrc/src/testsdklistsblockseikclbd.cpp Tue May 11 16:27:42 2010 +0300
@@ -29,8 +29,8 @@
#include <stringloader.h>
#include <avkon.hrh>
#include <aknslistboxbackgroundcontrolcontext.h>
-#include <aknlayout2scalabledef.h>
-#include <aknsconstants.h>
+#include <AknLayout2ScalableDef.h>
+#include <AknsConstants.h>
#include "testsdklists.h"
#include "testsdkcontainer.h"
--- a/classicui_pub/misc_controls_api/inc/EIKCAPC.H Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/misc_controls_api/inc/EIKCAPC.H Tue May 11 16:27:42 2010 +0300
@@ -35,7 +35,7 @@
#include <eikdpage.h>
#include <AknControl.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
class CEikImage ;
class CEikDialogPage;
@@ -367,7 +367,7 @@
* If the dialog instance is not registered, them flags set with SetFormFlags() are used.
*/
void PositionFormComponents();
- void ScrollBackEditor();
+ void ScrollBackEditorL();
public:
void DrawClosingLine() const;
--- a/classicui_pub/notes_api/tsrc/src/testsdknotesblocksand.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/notes_api/tsrc/src/testsdknotesblocksand.cpp Tue May 11 16:27:42 2010 +0300
@@ -22,7 +22,7 @@
#include <coemain.h>
#include <coeaui.h>
#include <akndef.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
#include <testsdknotes.rsg>
#include <aknnotecontrol.h>
--- a/classicui_pub/notes_api/tsrc/src/testsdknotesblockseikprogi.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/notes_api/tsrc/src/testsdknotesblockseikprogi.cpp Tue May 11 16:27:42 2010 +0300
@@ -21,7 +21,7 @@
#include <coemain.h>
#include <coeaui.h>
#include <gulbordr.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
#include <e32base.h>
#include <s32mem.h>
#include <testsdknotes.rsg>
--- a/classicui_pub/notes_api/tsrc/src/testsdknotesblockssdn.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/notes_api/tsrc/src/testsdknotesblockssdn.cpp Tue May 11 16:27:42 2010 +0300
@@ -20,7 +20,7 @@
#include <barsread.h>
#include <coeaui.h>
#include <akncontrol.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
#include <testsdknotes.rsg>
#include "testsdknotesstaticnotedialog.h"
--- a/classicui_pub/options_menu_api/inc/EIKMENUP.H Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/options_menu_api/inc/EIKMENUP.H Tue May 11 16:27:42 2010 +0300
@@ -886,12 +886,14 @@
static CEikMenuPane* NewItemCommandMenuL( MEikMenuObserver* aObserver );
/**
- * Sets item specific commands dimmed.
+ * Sets item specific commands state.
*
* @internal
* @since S60 v5.2
+ * @param aDimmed If ETrue, item specific commands are dimmed. If EFalse,
+ * other than item specific commands are dimmed.
*/
- void SetItemCommandsDimmed();
+ void SetItemCommandsStateL( TBool aDimmed );
/**
* Adds menu items to this menu and item action menu data.
@@ -910,12 +912,18 @@
* @since S60 v5.2
* @param aCascadeId Cascade menu id.
* @param aItemSpecific If ETrue, adds only item specific items.
+ * @param aAddToItemActionMenu If ETrue, adds items to item action menu,
+ * otherwise to iItemArray
* @param aMenuData Item action menu data.
+ * @param aItemIndex specifies to which position to add submenu items,
+ * used only when aAddToItemActionMenu is EFalse
*/
- void AddCascadeMenuItemsToActionMenuL(
+ void AddCascadeMenuItemsToMenuL(
TInt aCascadeId,
TBool aItemSpecific,
- CAknItemActionMenuData& aMenuData );
+ TBool aAddToItemActionMenu,
+ CAknItemActionMenuData* aMenuData = NULL,
+ TInt aItemIndex = 0 );
/**
* Enables the default highlight in menu
@@ -1086,7 +1094,12 @@
CMenuScroller* iScroller;
CEikButtonBase* iLaunchingButton; // for popouts only
TInt iSubPopupWidth; // 0..2
- TInt iSpare;
+
+ /**
+ * Used to track if object has been deleted while calling client callback.
+ */
+ TBool* iIsDeleted;
+
CEikMenuPaneExtension* iExtension;
};
--- a/classicui_pub/queries_api/inc/aknlistquerydialog.h Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/queries_api/inc/aknlistquerydialog.h Tue May 11 16:27:42 2010 +0300
@@ -282,6 +282,13 @@
*/
IMPORT_C CAknSearchField* FindBox() const;
+ private:
+ /**
+ * Returns whether the left softkey is shown
+ * @return ETrue If the left softkey is shown
+ */
+ TBool IsLeftSoftkeyShown();
+
public:
/**
* Sets the tone for the dialog.
--- a/classicui_pub/searchfield_api/inc/aknsfld.h Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/searchfield_api/inc/aknsfld.h Tue May 11 16:27:42 2010 +0300
@@ -282,7 +282,7 @@
IMPORT_C void ShowAdaptiveSearchGrid() const;
/**
- * Set column filter flag for adaptive search grid
+ * Set column filter flag
* @since 5.0
* @param aFlag The bit flag shows which columns take into account
* during filtering.
@@ -290,7 +290,7 @@
IMPORT_C void SetListColumnFilterFlags( const TBitFlags32 aFlag );
/**
- * Send column filter flag for adaptive search grid
+ * Send column filter flag
* @since 5.0
* @return aFlag The bit flag shows which columns take into account
* during filtering.
--- a/classicui_pub/server_application_api/tsrc/inc/testsdkappservice.h Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/server_application_api/tsrc/inc/testsdkappservice.h Tue May 11 16:27:42 2010 +0300
@@ -15,7 +15,7 @@
*
*/
-#include <aknserverapp.h>
+#include <AknServerApp.h>
--- a/classicui_pub/server_application_api/tsrc/inc/testsdkappservicebase.h Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/server_application_api/tsrc/inc/testsdkappservicebase.h Tue May 11 16:27:42 2010 +0300
@@ -15,7 +15,7 @@
*
*/
-#include <aknserverapp.h>
+#include <AknServerApp.h>
#ifndef C_TESTSDKAPPSERVICEBASE_H
#define C_TESTSDKAPPSERVICEBASE_H
--- a/classicui_pub/server_application_api/tsrc/src/testsdkserverapplicationblocks.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/server_application_api/tsrc/src/testsdkserverapplicationblocks.cpp Tue May 11 16:27:42 2010 +0300
@@ -20,7 +20,7 @@
#include <e32svr.h>
#include <stifparser.h>
#include <stiftestinterface.h>
-#include <aknserverapp.h>
+#include <AknServerApp.h>
#include <avkon.hrh>
#include <aknenv.h>
#include <documenthandler.h>
--- a/classicui_pub/setting_pages_api/inc/AknTextSettingPage.h Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/setting_pages_api/inc/AknTextSettingPage.h Tue May 11 16:27:42 2010 +0300
@@ -30,7 +30,7 @@
#include <eikdef.h>
#include <eikedwin.h>
#include "aknsettingpage.h"
-#include "aknnumedwin.h"
+#include "AknNumEdwin.h"
/**
* This class is an intermediate pure virtual class for all setting page classes that host
--- a/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestappfrm/src/bctestaknapplication.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestappfrm/src/bctestaknapplication.cpp Tue May 11 16:27:42 2010 +0300
@@ -21,7 +21,7 @@
-#include <aknserverapp.h>
+#include <AknServerApp.h>
#include <aknapp.h>
#include <eikenv.h>
#include <eikappui.h>
--- a/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestdocandinit/inc/bctestDocAndInitcase.h Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestdocandinit/inc/bctestDocAndInitcase.h Tue May 11 16:27:42 2010 +0300
@@ -29,7 +29,7 @@
#include <documenthandler.h>
#include <eikcolib.h>
#include <eikctlib.h>
-#include <aknserverapp.h>
+#include <AknServerApp.h>
#include "bctestcase.h"
--- a/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctesteditor/inc/bctesteditorcase.h Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctesteditor/inc/bctesteditorcase.h Tue May 11 16:27:42 2010 +0300
@@ -31,7 +31,7 @@
#include <Aknedsts.h>
#include <aknipfed.h>
#include <aknnumed.h>
-#include <aknnumedwin.h>
+#include <AknNumEdwin.h>
#include <eikccpu.h>
#include <eikedwin.h>
#include <eikfpne.h>
--- a/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestlabelinfoindicators/src/bctestlabelinfoindicatorscase.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestlabelinfoindicators/src/bctestlabelinfoindicatorscase.cpp Tue May 11 16:27:42 2010 +0300
@@ -35,7 +35,7 @@
#include <avkon.hrh>
#include <akninfopopupnotecontroller.h> // CAknInfoPopupNoteController
#include <gulalign.h> // TGulAlignmentValue
-#include <aknsconstants.h> // KAknsMessageSkinChange
+#include <AknsConstants.h> // KAknsMessageSkinChange
#include <akndef.h> // KEikDynamicLayoutVariantSwitch
#include <aknpictographinterface.h> // CAknPictographInterface
#include <e32debug.h>
--- a/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestlist/src/bctestlistcolumnbasecase.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestlist/src/bctestlistcolumnbasecase.cpp Tue May 11 16:27:42 2010 +0300
@@ -28,7 +28,7 @@
#include <aknlists.h>
#include <barsread.h>
#include <akndef.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
#include <eiktxlbm.h>
#include <eikclbd.h>
--- a/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestlist/src/bctestlistformatbasecase.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestlist/src/bctestlistformatbasecase.cpp Tue May 11 16:27:42 2010 +0300
@@ -28,7 +28,7 @@
#include <aknlists.h>
#include <barsread.h>
#include <akndef.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
#include <eiktxlbm.h>
#include <eikfrlbd.h>
--- a/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestserverapp/inc/bctestserverappcase.h Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestserverapp/inc/bctestserverappcase.h Tue May 11 16:27:42 2010 +0300
@@ -27,7 +27,7 @@
#define BCTEST_SERVERAPPCASE_H
#include "bctestcase.h"
-#include <aknserverapp.h>
+#include <AknServerApp.h>
#include <aknwseventobserver.h>
//TUid Kmysimpleserver = { 0x06C22C0C };
--- a/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestserverapp/src/bctestserverappcase.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestserverapp/src/bctestserverappcase.cpp Tue May 11 16:27:42 2010 +0300
@@ -25,7 +25,7 @@
#include <w32std.h>
#include <coecntrl.h>
-#include <aknserverapp.h>
+#include <AknServerApp.h>
#include <avkon.hrh>
#include <aknwseventobserver.h>
#include <aknBitmapAnimation.h>
--- a/classicui_pub/tsrc/bc/apps/S60_SDK3.1/bctestmisc/src/bctestmisccase.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/tsrc/bc/apps/S60_SDK3.1/bctestmisc/src/bctestmisccase.cpp Tue May 11 16:27:42 2010 +0300
@@ -28,7 +28,7 @@
#include <aknscreenmode.h>
#include <aknappui.h>
#include <bctestmisc.rsg>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
#include <eikmenub.h>
#include <aknutils.h>
--- a/classicui_pub/tsrc/bc/apps/S60_SDK5.0/bctesttouchpane/src/bctesttouchpanecase.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/tsrc/bc/apps/S60_SDK5.0/bctesttouchpane/src/bctesttouchpanecase.cpp Tue May 11 16:27:42 2010 +0300
@@ -29,7 +29,7 @@
#include <aknappui.h>
#include <akntouchpane.h>
#include <bctesttouchpane.rsg>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
#include <aknutils.h>
#include "bctesttouchpanecase.h"
--- a/classicui_pub/ui_framework_definitions_api/inc/EIKON.HRH Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/ui_framework_definitions_api/inc/EIKON.HRH Tue May 11 16:27:42 2010 +0300
@@ -833,6 +833,7 @@
#define EEikDialogFlagVirtualInput 0x800000
// New flag for postponing the disappear effect after OkToExitL.
#define EEikDialogFlagDelayEffects 0x01000000
+#define EEikDialogFlagNoEmbeddedSoftkeys 0x2000000
#define EEikDlgItemNoSeparator 0
@@ -877,6 +878,7 @@
#define EEikFormShowBitmaps 2
#define EEikFormEditModeOnly 4
#define EEikFormUseDoubleSpacedFormat 8
+#define EEikFormDisableHighlightInViewMode 16
// EIKSPANE.HRH
//
--- a/classicui_pub/ui_framework_definitions_api/inc/avkon.hrh Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/ui_framework_definitions_api/inc/avkon.hrh Tue May 11 16:27:42 2010 +0300
@@ -381,7 +381,15 @@
EChinFepCmdModePinyinPhrase,
EChinFepCmdModeZhuyinPhrase,
- EChinFepCmdModeStrokePhrase,
+ EChinFepCmdModeStrokePhrase,
+
+ /**
+ * Command ids for multiple marking state.
+ */
+ EAknCmdMarkingModeEnter,
+ EAknCmdMarkingModeMarkOne,
+ EAknCmdMarkingModeMarkAll,
+ EAknCmdMarkingModeUnmarkAll,
/**
* @deprecated
--- a/classicui_pub/ui_framework_utilities_api/tsrc/src/testsdkuifwutilblocksaknutils.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/classicui_pub/ui_framework_utilities_api/tsrc/src/testsdkuifwutilblocksaknutils.cpp Tue May 11 16:27:42 2010 +0300
@@ -29,8 +29,8 @@
#include <aknlists.h>
#include <eikclbd.h>
#include <aknsfld.h>
-#include <aknlayout2def.h>
-#include <aknlayout2scalabledef.h>
+#include <AknLayout2Def.h>
+#include <AknLayout2ScalableDef.h>
#include <eikmfne.h>
#include <eikseced.h>
#include <aknfontspecification.h>
--- a/commonuis/CommonDialogs/loc/commondialogs.loc Tue Apr 27 16:55:05 2010 +0300
+++ b/commonuis/CommonDialogs/loc/commondialogs.loc Tue May 11 16:27:42 2010 +0300
@@ -208,3 +208,20 @@
//l:list_set_graphic_pane_t1
#define qtn_mem_memory_card_defaul_setting_list "%U: Memory card"
+//d:Text for USB Memory (no name) in memory selection
+//l:list_single_graphic_pane_t1_cp2
+#define qtn_memc_USB_available_single_list "%U USB memory"
+
+//d:Text for USB Memory in memory selection when USB memory is unavilable
+//l:list_single_graphic_pane_t1_cp2
+#define qtn_memc_usb_unavailable_single_list "%U USB memory unavailable"
+
+//d:Text for USB Memory (no name) in memory selection
+//l:list_double_large_graphic_pane_t1_cp2
+#define qtn_memc_USB_available_double "%U USB memory"
+
+//d:Text for USB Memory in memory selection when USB memory is unavilable
+//l:list_double_large_graphic_pane_t1_cp2
+#define qtn_memc_usb_unavailable_double "%U USB memory unavailable"
+
+
--- a/commonuis/CommonUi/EABI/CommonUIU.DEF Tue Apr 27 16:55:05 2010 +0300
+++ b/commonuis/CommonUi/EABI/CommonUIU.DEF Tue May 11 16:27:42 2010 +0300
@@ -120,4 +120,5 @@
_ZN13CFindItemMenu21SetMenuItemVisibilityENS_9TMenuItemEi @ 119 NONAME
_ZN12MPBAiwNotify13HandleNotifyLEiiR20CAiwGenericParamListRKS0_ @ 120 NONAME
_ZN11CItemFinder22SetItemFinderObserverLEP22MAknItemFinderObserver @ 121 NONAME
+ _ZN15CFindItemDialog17EnableSingleClickEi @ 122 NONAME
--- a/commonuis/CommonUi/bwins/CommonUIU.def Tue Apr 27 16:55:05 2010 +0300
+++ b/commonuis/CommonUi/bwins/CommonUIU.def Tue May 11 16:27:42 2010 +0300
@@ -90,4 +90,5 @@
?SetMenuItemVisibility@CFindItemMenu@@QAEXW4TMenuItem@1@H@Z @ 89 NONAME ; void CFindItemMenu::SetMenuItemVisibility(enum CFindItemMenu::TMenuItem, int)
?HandleNotifyL@MPBAiwNotify@@UAEHHHAAVCAiwGenericParamList@@ABV2@@Z @ 90 NONAME ; int MPBAiwNotify::HandleNotifyL(int, int, class CAiwGenericParamList &, class CAiwGenericParamList const &)
?SetItemFinderObserverL@CItemFinder@@QAEXPAVMAknItemFinderObserver@@@Z @ 91 NONAME ; void CItemFinder::SetItemFinderObserverL(class MAknItemFinderObserver *)
+ ?EnableSingleClick@CFindItemDialog@@QAEXH@Z @ 92 NONAME ; void CFindItemDialog::EnableSingleClick(int)
--- a/commonuis/CommonUi/group/CommonUI.mmp Tue Apr 27 16:55:05 2010 +0300
+++ b/commonuis/CommonUi/group/CommonUI.mmp Tue May 11 16:27:42 2010 +0300
@@ -163,5 +163,6 @@
#endif
LIBRARY AknLayout2Scalable.lib
+LIBRARY touchfeedback.lib
// End of file.
--- a/commonuis/CommonUi/src/FindItemDialog.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/commonuis/CommonUi/src/FindItemDialog.cpp Tue May 11 16:27:42 2010 +0300
@@ -95,6 +95,7 @@
#include <aknnavilabel.h> // for changing the lable of navipane
#include <AknTasHook.h> // for testability hooks
+#include <touchfeedback.h>
_LIT( KResFileName, "z:\\resource\\finditemui.rsc" );
// Panic
@@ -236,51 +237,50 @@
}
NONSHARABLE_CLASS(CItemFinderExtension) : public CBase
- {
+ {
public:
- ~CItemFinderExtension();
- static CItemFinderExtension* NewL();
-
- //new function
+ ~CItemFinderExtension();
+ static CItemFinderExtension* NewL();
+
+ //new function
public:
- PBAiwNotify* CallBack();
-
+ PBAiwNotify* CallBack();
+
private:
- CItemFinderExtension();
- void ConstructL();
-
+ CItemFinderExtension();
+ void ConstructL();
+
public:
- PBAiwNotify iCallBack;
- };
+ PBAiwNotify iCallBack;
+ };
CItemFinderExtension::~CItemFinderExtension()
- {
-
- }
+ {
+ }
CItemFinderExtension* CItemFinderExtension::NewL()
- {
- CItemFinderExtension* self = new ( ELeave )CItemFinderExtension;
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- }
+ {
+ CItemFinderExtension* self = new ( ELeave )CItemFinderExtension;
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
PBAiwNotify* CItemFinderExtension::CallBack()
- {
- return &iCallBack;
- }
+ {
+ return &iCallBack;
+ }
CItemFinderExtension::CItemFinderExtension()
- {
-
- }
+ {
+
+ }
void CItemFinderExtension::ConstructL()
- {
-
- }
+ {
+
+ }
@@ -457,8 +457,126 @@
iFindItemVoIPExtension = CFindItemVoIPExtension::NewL();
iExtension = CItemFinderExtension::NewL();
+ iFeedback = MTouchFeedback::Instance();
+ }
+
+// -----------------------------------------------------------------------------
+// CFindItemDialog::HandlePointerEventL
+// -----------------------------------------------------------------------------
+//
+void CFindItemDialog::HandlePointerEventL( const TPointerEvent& aPointerEvent )
+ {
+ if ( !iSingleClick )
+ {
+ if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
+ {
+ this->PointerEvent( NULL, aPointerEvent );
+ }
+ }
+ else
+ {
+ DoHandlePointerEventL( aPointerEvent );
+ if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
+ {
+ iEdwin->ClearSelectionL();
+ iEdwin->DrawDeferred();
+ }
+ }
}
+// -----------------------------------------------------------------------------
+// CFindItemDialog::DoHandlePointerEventL
+// -----------------------------------------------------------------------------
+//
+void CFindItemDialog::DoHandlePointerEventL ( const TPointerEvent& aPointerEvent )
+ {
+ if ( aPointerEvent.iType == TPointerEvent::EButton1Up ||
+ aPointerEvent.iType == TPointerEvent::EButton1Down )
+ {
+ TPoint tapPoint( aPointerEvent.iPosition - iTappingOffset );
+ TInt pos = 0;
+ TInt len = iEdwin->TextLayout()->PosRangeInBand( pos );
+ CFindItemEngine::SFoundItem item;
+ TRect rect;
+ TInt i = 0;
+ while ( i < iController->ItemCount() ) // Check visible rects
+ {
+ if ( !iController->Item( i, item ) ) // Get item.
+ {
+ break; // Error: invalid item.
+ }
+ TInt end = item.iStartPos + item.iLength - 1;
+ if ( end < pos )
+ {
+ i++;
+ continue; // item not visible.
+ }
+ TInt start = item.iStartPos;
+ if ( start >= ( pos + len ) )
+ {
+ break; // item not visible.
+ }
+ TInt lastLine = iEdwin->TextLayout()->GetLineNumber( end );
+ TInt nextLine = 0;
+ TInt lastPos = start;
+ do // Check all rects of one item.
+ {
+ TInt error = KErrNone;
+ TRAP( error, rect =
+ iEdwin->TextLayout()->GetLineRectL( start, end ) );
+ if ( error == KErrNone )
+ {
+ if ( rect.Contains( tapPoint ) ) // Item rect tapped.
+ {
+ if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
+ {
+ TRAP( error, iController->TappedItemL( i ) );
+ // Change selection
+ if ( error != KErrNone )
+ {
+ return; // Error: no selection made.
+ }
+ if ( iFeedback )
+ {
+ iFeedback->InstantFeedback( ETouchFeedbackBasicButton );
+ }
+ iLastTappedItem = TPoint ( item.iStartPos, item.iLength
+ + item.iStartPos );
+ return; // Hit, no further handling.
+ }
+ else if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
+ {
+ if ( iLastTappedItem == TPoint ( item.iStartPos,
+ item.iLength + item.iStartPos ) )
+ {
+ iIsSensitiveMenu = ETrue;
+ iMenuBar->SetMenuType( CEikMenuBar::EMenuContext );
+ TRAP_IGNORE( CAknDialog::DisplayMenuL() );
+ }
+ return; // Hit, no further handling.
+ }
+ }
+ }
+ else
+ {
+ return; // Error: no rect.
+ }
+ TPoint midPoint( rect.iBr.iX,
+ ( rect.iBr.iY + rect.iTl.iY ) / 2 );
+ TRAP( error, lastPos =
+ iEdwin->TextLayout()->XyPosToDocPosL( midPoint ) );
+ if ( error != KErrNone )
+ {
+ return; // Error: no last pos.
+ }
+ start = lastPos + 1;
+ nextLine = iEdwin->TextLayout()->GetLineNumber( lastPos );
+ } while ( nextLine != lastLine );
+ i++;
+ }
+ }
+ return; // No hit, no further handling.
+ }
// -----------------------------------------------------------------------------
// CFindItemDialog::DoCopyToClipboardL
@@ -826,12 +944,38 @@
}
// -----------------------------------------------------------------------------
+// CFindItemDialog::EnableSingleClick
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CFindItemDialog::EnableSingleClick ( TBool aEnable )
+ {
+ iSingleClick = aEnable;
+ }
+
// CFindItemDialog::ProcessCommandL
// Prosesses menu commands
// -----------------------------------------------------------------------------
//
EXPORT_C void CFindItemDialog::ProcessCommandL( TInt aCommandId )
{
+ TBool selectionVisibility ( ETrue );
+ if ( iSingleClick && iEdwin && iEdwin->TextView() )
+ {
+ selectionVisibility = iEdwin->TextView()->SelectionVisible();
+ iEdwin->TextView()->SetSelectionVisibilityL( EFalse );
+
+ CFindItemEngine::SFoundItem item;
+ TBool founditem = iController->Item( item );
+ if ( founditem )
+ {
+ iEdwin->SetSelectionL( item.iStartPos, item.iStartPos + item.iLength );
+ }
+ else
+ {
+ iEdwin->SetSelectionL( iLastTappedItem.iX, iLastTappedItem.iY );
+ }
+ }
+
CAknDialog::ProcessCommandL( aCommandId );
switch (aCommandId)
{
@@ -890,7 +1034,7 @@
#ifndef RD_UNIFIED_EDITOR
if( !iMMSFeatureSupported )
{
- mtmFilter->AppendL(KSenduiMtmMmsUid);
+ mtmFilter->AppendL(KSenduiMtmMmsUid);
}
#endif
@@ -915,7 +1059,7 @@
item.iItemType == CFindItemEngine::EFindItemSearchPhoneNumberBin &&
iSearchCase == KSearchTelInternetNumber ) ) )
{
- mtmFilter->AppendL(KSenduiMtmSmtpUid);
+ mtmFilter->AppendL(KSenduiMtmSmtpUid);
mtmFilter->AppendL(KSenduiMtmImap4Uid);
mtmFilter->AppendL(KSenduiMtmPop3Uid);
mtmFilter->AppendL(KSenduiMtmSyncMLEmailUid);
@@ -943,6 +1087,12 @@
{
if ( LaunchGenericUriL() )
{
+ if ( iSingleClick && iEdwin && iEdwin->TextView() )
+ {
+ iEdwin->TextView()->SetSelectionVisibilityL( selectionVisibility );
+ iEdwin->ClearSelectionL();
+ iEdwin->DrawDeferred();
+ }
return;
}
break;
@@ -1014,6 +1164,15 @@
break;
}
}
+ if ( iSingleClick && iEdwin && iEdwin->TextView() )
+ {
+ iEdwin->TextView()->SetSelectionVisibilityL( selectionVisibility );
+ if ( aCommandId != EFindItemCmdNextItem && aCommandId != EFindItemCmdPrevItem )
+ {
+ iEdwin->ClearSelectionL();
+ }
+ iEdwin->DrawDeferred();
+ }
}
// -----------------------------------------------------------------------------
@@ -1031,15 +1190,23 @@
}
CFindItemEngine::SFoundItem item;
- TBool founditem = iController->Item( item );
-
+ TBool foundItem = iController->Item( item );
+ if ( iSingleClick )
+ {
+ // foundItem remains as ETrue, if item found by controller is exactly
+ // same as highlighted selection
+ foundItem = foundItem && ( item.iLength == iEdwin->SelectionLength()
+ && item.iStartPos == Min( iEdwin->Selection().iCursorPos,
+ iEdwin->Selection().iAnchorPos ) );
+ }
+
if ( aMenuId == R_FINDITEM_CALLUI_AIW_SUBMENU )
{
if ( iFindItemVoIPExtension->IsVoIPSupported() &&
( iSearchCase ==
CFindItemEngine::EFindItemSearchMailAddressBin ||
( iSearchCase == KSearchTelInternetNumber &&
- founditem && item.iItemType ==
+ foundItem && item.iItemType ==
CFindItemEngine::EFindItemSearchMailAddressBin ) ) )
{
CAiwGenericParamList* inList = CAiwGenericParamList::NewLC();
@@ -1123,11 +1290,49 @@
aMenuPane->AddMenuItemsL( resource, EAknFormMaxDefault - 1, ETrue );
+ if ( iSingleClick && !foundItem )
+ {
+ switch ( resource )
+ {
+ case (R_FINDITEM_MAIL_ADDRESS_MENU):
+ {
+ aMenuPane->SetItemDimmed ( EFindItemCmdCopy, ETrue );
+ aMenuPane->SetItemDimmed ( EFindItemSubMenuSend, ETrue );
+ aMenuPane->SetItemDimmed ( EFindItemCmdCreateContactCard, ETrue );
+ break;
+ }
+
+ case (R_FINDITEM_URL_ADDRESS_MENU):
+ {
+ aMenuPane->SetItemDimmed ( EFindItemCmdGoToUrl, ETrue );
+ aMenuPane->SetItemDimmed ( EFindItemCmdAddToBookmark, ETrue );
+ aMenuPane->SetItemDimmed ( EFindItemCmdCreateContactCard, ETrue );
+ aMenuPane->SetItemDimmed ( EFindItemCmdCopy, ETrue );
+ break;
+ }
+
+ case (R_FINDITEM_PHONENUMBER_MENU): // fall through
+ case (R_FINDITEM_TELINTERNETNUMBER_MENU):
+ {
+ aMenuPane->SetItemDimmed ( EFindItemCmdCall, ETrue );
+ aMenuPane->SetItemDimmed ( EFindItemCmdCopy, ETrue );
+ aMenuPane->SetItemDimmed ( EFindItemSubMenuSend, ETrue );
+ aMenuPane->SetItemDimmed ( EFindItemCmdCreateContactCard, ETrue );
+ break;
+ }
+
+ default:
+ {
+ break;
+ }
+ }
+ }
+
if ( iSearchCase == KSearchTelInternetNumber &&
iFindItemVoIPExtension->VoIPProfilesExistL() ||
iSearchCase == KSearchTelInternetNumber &&
!iFindItemVoIPExtension->VoIPProfilesExistL() &&
- founditem &&
+ foundItem &&
item.iItemType ==
CFindItemEngine::EFindItemSearchPhoneNumberBin ||
iSearchCase & CFindItemEngine::EFindItemSearchMailAddressBin &&
@@ -1149,10 +1354,13 @@
iSearchCase & CFindItemEngine::EFindItemSearchPhoneNumberBin &&
!iHideCallMenu )
{
- aMenuPane->SetItemDimmed( EFindItemCmdCall, ETrue );
- aMenuPane->AddMenuItemsL(
- R_FINDITEM_CALLUI_AIW_ITEM,
- EFindItemCmdCall );
+ if ( !iSingleClick || foundItem )
+ {
+ aMenuPane->SetItemDimmed( EFindItemCmdCall, ETrue );
+ aMenuPane->AddMenuItemsL(
+ R_FINDITEM_CALLUI_AIW_ITEM,
+ EFindItemCmdCall );
+ }
}
aMenuPane->DeleteMenuItem( EAknFormCmdEdit );
@@ -1162,14 +1370,20 @@
aMenuPane->DeleteMenuItem( EAknFormCmdDelete );
#ifndef RD_VIRTUAL_PHONEBOOK
- iPbkDataSave->AddMenuItemsL(
- aMenuPane,
- EFindItemCmdCreateContactCard );
+ if ( !iSingleClick || foundItem )
+ {
+ iPbkDataSave->AddMenuItemsL(
+ aMenuPane,
+ EFindItemCmdCreateContactCard );
+ }
#else
- aMenuPane->SetItemDimmed( EFindItemCmdCreateContactCard, ETrue );
- aMenuPane->AddMenuItemsL(
- R_FINDITEM_CONTACTS_AIW_ITEM,
- EFindItemCmdCreateContactCard );
+ if ( !iSingleClick || foundItem )
+ {
+ aMenuPane->SetItemDimmed( EFindItemCmdCreateContactCard, ETrue );
+ aMenuPane->AddMenuItemsL(
+ R_FINDITEM_CONTACTS_AIW_ITEM,
+ EFindItemCmdCreateContactCard );
+ }
#endif // !RD_VIRTUAL_PHONEBOOK
// Delete next/prev item items from menu if a last/next
@@ -1238,29 +1452,59 @@
switch ( code )
{
case EKeyRightArrow:
+ if ( iSingleClick && !CurrentItemHasHighlight() )
+ {
+ HighlightCurrentItem();
+ break;
+ }
iController->NextItemL();
break;
case EKeyDownArrow:
- iController->MoveDownL();
+ if ( iSingleClick && !CurrentItemHasHighlight() )
+ {
+ HighlightCurrentItem();
+ break;
+ }
+ iController->MoveDownL();
break;
case EKeyLeftArrow:
- iController->PrevItemL();
+ if ( iSingleClick && !CurrentItemHasHighlight() )
+ {
+ HighlightCurrentItem();
+ break;
+ }
+ iController->PrevItemL();
break;
case EKeyUpArrow:
+ if ( iSingleClick && !CurrentItemHasHighlight() )
+ {
+ HighlightCurrentItem();
+ break;
+ }
iController->MoveUpL();
break;
case EKeyOK:
case EKeyEnter:
+ if ( iSingleClick && !CurrentItemHasHighlight() )
+ {
+ HighlightCurrentItem();
+ break;
+ }
iIsSensitiveMenu = ETrue;
iMenuBar->SetMenuType(CEikMenuBar::EMenuContext);
CAknDialog::DisplayMenuL();
break;
case EKeyPhoneSend:
+ if ( iSingleClick && !CurrentItemHasHighlight() )
+ {
+ HighlightCurrentItem();
+ break;
+ }
+
if ( !iDialData )
{
break;
}
-
CFindItemEngine::SFoundItem item;
founditem = iController->Item( item );
@@ -1388,23 +1632,24 @@
TRgb color;
MAknsSkinInstance* skin = AknsUtils::SkinInstance();
TInt error = AknsUtils::GetCachedColor(skin, color, KAknsIIDQsnTextColors,
- EAknsCIQsnTextColorsCG6 );
+ EAknsCIQsnTextColorsCG6 );
if(error==KErrNone)
- {
- TCharFormat charFormat;
- TCharFormatMask charFormatMask;
- charFormatMask.SetAttrib(EAttColor);
- charFormat.iFontPresentation.iTextColor = color;
-
- CRichText * richText = NULL;
- richText = iEdwin->RichText();
- if( NULL!=richText )
- {
- TInt length = richText->DocumentLength();
- length++;
- // apply the color to text
- TRAP_IGNORE(richText->ApplyCharFormatL( charFormat, charFormatMask, 0, length ));
- }
+ {
+ TCharFormat charFormat;
+ TCharFormatMask charFormatMask;
+ charFormatMask.SetAttrib(EAttColor);
+ charFormat.iFontPresentation.iTextColor = color;
+
+ CRichText * richText = NULL;
+ richText = iEdwin->RichText();
+ if( NULL!=richText )
+ {
+ TInt length = richText->DocumentLength();
+ length++;
+ // apply the color to text
+ TRAP_IGNORE(richText->ApplyCharFormatL( charFormat,
+ charFormatMask, 0, length ));
+ }
}
if ( anyFound )
{
@@ -1555,7 +1800,7 @@
{
return EFalse;
}
- TBool pos2 = EFalse;
+ TBool pos2 = EFalse;
TPoint point2;
TRAP( error, pos2 = iEdwin->TextLayout()->DocPosToXyPosL(
aItem2, point2, CLayoutData::EFWholeTBoxesOnly ) );
@@ -1681,7 +1926,10 @@
UpdateScrollIndicatorL();
iEdwin->TextView()->SetSelectionVisibilityL( ETrue );
- iEdwin->SetSelectionL( item.iStartPos, item.iLength + item.iStartPos );
+ if ( !iSingleClick )
+ {
+ iEdwin->SetSelectionL( item.iStartPos, item.iLength + item.iStartPos );
+ }
}
else
{// Let's show a information note if no items were found
@@ -1807,17 +2055,17 @@
KPosIndicator, iController->Position() + 1, iController->ItemCount() );
if(NULL == iNaviDecorator)
- {
- iNaviDecorator = iNaviPane->CreateNavigationLabelL( naviText );
- iNaviDecorator->SetNaviDecoratorObserver( this );
- iNaviDecorator->MakeScrollButtonVisible( ETrue );
- }
+ {
+ iNaviDecorator = iNaviPane->CreateNavigationLabelL( naviText );
+ iNaviDecorator->SetNaviDecoratorObserver( this );
+ iNaviDecorator->MakeScrollButtonVisible( ETrue );
+ }
else
- {
- // Change the label on Nave pane control...
- CAknNaviLabel * label =( CAknNaviLabel* )iNaviDecorator->DecoratedControl();
- label->SetTextL(naviText);
- }
+ {
+ // Change the label on Nave pane control...
+ CAknNaviLabel * label =( CAknNaviLabel* )iNaviDecorator->DecoratedControl();
+ label->SetTextL(naviText);
+ }
// Dimm arrows if needed
if ( iController->LastItem() )
@@ -1936,10 +2184,10 @@
{
//Update Horizantal Scroll bar color if skin changes
if( aType == KAknsMessageSkinChange)
- {
- CAknScrollBar *scrollBar = iSBFrame->VerticalScrollBar();
- scrollBar->HandleResourceChange(aType);
- }
+ {
+ CAknScrollBar *scrollBar = iSBFrame->VerticalScrollBar();
+ scrollBar->HandleResourceChange(aType);
+ }
CAknDialog::HandleResourceChange( aType );
}
@@ -1978,7 +2226,7 @@
{
TRAP_IGNORE( iEdwin->MoveDisplayL( TCursorPosition::EFPageDown ) );
}
- }
+ }
TRAP_IGNORE( UpdateScrollIndicatorL() );
}
@@ -2035,7 +2283,7 @@
if ( AknLayoutUtils::PenEnabled() &&
aPointerEvent.iType == TPointerEvent::EButton1Down )
{
- TPoint tapPoint( aPointerEvent.iPosition - iTappingOffset );
+ TPoint tapPoint( aPointerEvent.iPosition - iTappingOffset );
TInt pos = 0;
TInt len = iEdwin->TextLayout()->PosRangeInBand( pos );
CFindItemEngine::SFoundItem item;
@@ -2047,12 +2295,12 @@
{
break; // Error: invalid item.
};
- TInt end = item.iStartPos + item.iLength - 1;
+ TInt end = item.iStartPos + item.iLength - 1;
if ( end < pos )
{
i++;
- continue; // item not visible.
- };
+ continue; // item not visible.
+ };
TInt start = item.iStartPos;
if ( start >= ( pos + len ) )
{
@@ -2062,13 +2310,13 @@
TInt nextLine = 0;
TInt lastPos = start;
do // Check all rects of one item.
- {
- TInt error = KErrNone;
+ {
+ TInt error = KErrNone;
TRAP( error, rect = iEdwin->TextLayout()->GetLineRectL( start, end ) );
if ( error == KErrNone )
{
if ( rect.Contains( tapPoint ) ) // Item rect tapped.
- {
+ {
TRAP( error, iController->TappedItemL( i ) ); // Change selection
if ( error != KErrNone )
{
@@ -2083,15 +2331,15 @@
else
{
return false; // Error: no rect.
- }
+ }
TPoint midPoint( rect.iBr.iX, ( rect.iBr.iY + rect.iTl.iY) / 2 );
- TRAP( error, lastPos = iEdwin->TextLayout()->XyPosToDocPosL( midPoint ) );
+ TRAP( error, lastPos = iEdwin->TextLayout()->XyPosToDocPosL( midPoint ) );
if ( error != KErrNone )
{
return false; // Error: no last pos.
}
start = lastPos + 1;
- nextLine = iEdwin->TextLayout()->GetLineNumber( lastPos );
+ nextLine = iEdwin->TextLayout()->GetLineNumber( lastPos );
} while ( nextLine != lastLine );
i++;
}
@@ -2156,7 +2404,47 @@
default:
break;
}
- }
+ }
+
+// ----------------------------------------------------------------------------
+// CFindItemDialog::CurrentItemHasHighlight
+// ----------------------------------------------------------------------------
+//
+TBool CFindItemDialog::CurrentItemHasHighlight()
+ {
+ CFindItemEngine::SFoundItem item;
+ TBool foundItem = iController->Item( item );
+
+ // foundItem remains as ETrue, if item found by controller is exactly
+ // same as highlighted selection
+
+ TCursorSelection selection( iEdwin->Selection() );
+ TInt selectionLength = iEdwin->SelectionLength();
+
+ foundItem = foundItem && ( ( item.iLength == selectionLength ) && ( item.iStartPos == Min( selection.iCursorPos, selection.iAnchorPos ) ) );
+
+ foundItem = foundItem && ( iEdwin && iEdwin->TextView()
+ && iEdwin->TextView()->SelectionVisible() );
+
+ return foundItem;
+ }
+
+// ----------------------------------------------------------------------------
+// CFindItemDialog::HighlightCurrentItem
+// ----------------------------------------------------------------------------
+//
+void CFindItemDialog::HighlightCurrentItem()
+ {
+ CFindItemEngine::SFoundItem item;
+ TBool found = iController->Item( item );
+
+ if ( found && iEdwin && iEdwin->TextView() )
+ {
+ iEdwin->TextView()->SetSelectionVisibilityL( ETrue );
+ iEdwin->SetSelectionL( item.iStartPos, item.iStartPos + item.iLength );
+ }
+ }
+
//
// CONTAINER CLASS
@@ -2242,24 +2530,24 @@
TRgb color;
MAknsSkinInstance* skin = AknsUtils::SkinInstance();
TInt error = AknsUtils::GetCachedColor(skin, color, KAknsIIDQsnTextColors,
- EAknsCIQsnTextColorsCG6 );
+ EAknsCIQsnTextColorsCG6 );
if(error==KErrNone)
- {
- TCharFormat charFormat;
- TCharFormatMask charFormatMask;
- charFormatMask.SetAttrib(EAttColor);
- charFormat.iFontPresentation.iTextColor = color;
-
- CRichText * richText = NULL;
- richText = iEditor->RichText();
- if( NULL!=richText )
- {
- TInt length = richText->DocumentLength();
- length++;
- // apply the color to the text
- TRAP_IGNORE(richText->ApplyCharFormatL( charFormat, charFormatMask, 0, length ));
- }
- }
+ {
+ TCharFormat charFormat;
+ TCharFormatMask charFormatMask;
+ charFormatMask.SetAttrib(EAttColor);
+ charFormat.iFontPresentation.iTextColor = color;
+
+ CRichText * richText = NULL;
+ richText = iEditor->RichText();
+ if( NULL!=richText )
+ {
+ TInt length = richText->DocumentLength();
+ length++;
+ // apply the color to the text
+ TRAP_IGNORE(richText->ApplyCharFormatL( charFormat, charFormatMask, 0, length ));
+ }
+ }
}
}
--- a/commonuis/CommonUi/src/ItemFinder.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/commonuis/CommonUi/src/ItemFinder.cpp Tue May 11 16:27:42 2010 +0300
@@ -29,6 +29,7 @@
#include <txtfrmat.h>
#include <AknUtils.h> // for AknUtils
#include <AknsUtils.h>
+#include <touchfeedback.h>
// scheme recog
#include <ecom/ecom.h>
@@ -217,6 +218,7 @@
CRichText::ActivateParserL(this);
iSchemeResolver = CSchemeResolver::NewL();
iMinDigitsToFind = GetMinDigitsToFindL(); // variated.
+ iFeedback = MTouchFeedback::Instance();
}
TInt CItemFinder::GetMinDigitsToFindL()
@@ -1290,6 +1292,10 @@
// if no item was tapped remove selection
if ( tapped )
{
+ if ( iFeedback )
+ {
+ iFeedback->InstantFeedback( ETouchFeedbackBasicButton );
+ }
iTapPoint = tapPoint;
}
else
--- a/commonuisupport/uikon/srvsrc/EIKNFYSV.CPP Tue Apr 27 16:55:05 2010 +0300
+++ b/commonuisupport/uikon/srvsrc/EIKNFYSV.CPP Tue May 11 16:27:42 2010 +0300
@@ -988,6 +988,7 @@
void CEikSrvNotifierManager::LookForNotifierInObservedListL(TUid aNotifierUid, TUid aChannelUid, RArray<TInt>& aNotifierPositions)
{
+ CleanupClosePushL(aNotifierPositions);
const TInt count = iObservedList->Count();
for (TInt ii = 0; ii < count; ii++)
{
@@ -996,6 +997,7 @@
if (info.iUid == aNotifierUid && (aChannelUid == KNonExistentUid || info.iChannel == aChannelUid))
User::LeaveIfError(aNotifierPositions.Append(ii));
}
+ CleanupStack::Pop(&aNotifierPositions);
}
void CEikSrvNotifierManager::NotifierStartAndGetResponseL(TUid aNotifierUid, const TDesC8& aBuffer, TInt aReplySlot,
--- a/lafagnosticuifoundation/cone/src/COECNTSS.CPP Tue Apr 27 16:55:05 2010 +0300
+++ b/lafagnosticuifoundation/cone/src/COECNTSS.CPP Tue May 11 16:27:42 2010 +0300
@@ -208,6 +208,7 @@
@param aLogicalToPixelSizes TInt array to be poulated with font sizes */
EXPORT_C void CCoeControlStaticSettings::GetLogicalToPixelFontSizesL(RArray<TInt>& aLogicalToPixelSizes)
{
+ CleanupClosePushL(aLogicalToPixelSizes);
CCoeControlStaticSettings* self = Self();
aLogicalToPixelSizes.Reset();
@@ -224,6 +225,7 @@
User::LeaveIfError(aLogicalToPixelSizes.Append(22));
User::LeaveIfError(aLogicalToPixelSizes.Append(26));
}
+ CleanupStack::Pop(&aLogicalToPixelSizes);
}
/**
--- a/lafagnosticuifoundation/cone/src/COEMAINSECUREFEP.CPP Tue Apr 27 16:55:05 2010 +0300
+++ b/lafagnosticuifoundation/cone/src/COEMAINSECUREFEP.CPP Tue May 11 16:27:42 2010 +0300
@@ -74,6 +74,7 @@
@param aDisplayNames The array of FEP display names to be filled. May be passed as NULL if display names are not required.
*/
{
+ CleanupClosePushL(aUids);
aUids.Reset();
if(aDisplayNames)
{
@@ -93,6 +94,7 @@
}
}
CleanupStack::PopAndDestroy(&implementationArray);
+ CleanupStack::Pop(&aUids);
}
EXPORT_C void CCoeEnv::InstallFepL(TUid aFepUid)
--- a/lafagnosticuifoundation/cone/src/CoeEnvExtra.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/lafagnosticuifoundation/cone/src/CoeEnvExtra.cpp Tue May 11 16:27:42 2010 +0300
@@ -169,11 +169,13 @@
void CCoeEnvExtra::AddObserverL(RArray<TAny*>& aArrayOfObservers, TAny* aObserver)
{
__ASSERT_ALWAYS(aObserver!=NULL, Panic(ECoePanicIllegalNullParameter3));
+ CleanupClosePushL(aArrayOfObservers);
for (TInt i=aArrayOfObservers.Count()-1; i>=0; --i)
{
__ASSERT_ALWAYS(aArrayOfObservers[i]!=aObserver, Panic(ECoePanicFocusObserverHasAlreadyBeenAdded));
}
User::LeaveIfError(aArrayOfObservers.Append(aObserver));
+ CleanupStack::Pop(&aArrayOfObservers);
}
void CCoeEnvExtra::RemoveObserver(RArray<TAny*>& aArrayOfObservers, const TAny* aObserver)
--- a/lafagnosticuifoundation/uigraphicsutils/tulsrc/tulphonenumberutils.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/lafagnosticuifoundation/uigraphicsutils/tulsrc/tulphonenumberutils.cpp Tue May 11 16:27:42 2010 +0300
@@ -28,7 +28,7 @@
_LIT(KContactCardCharsToParse, " ./");
_LIT(KPhoneClientValidChars, "+1234567890()-pw#* ./");
_LIT(KPhoneClientCharsToParse, "()- ./");
-_LIT(KSMSNumberValidChars, "+1234567890()- ./*");
+_LIT(KSMSNumberValidChars, "+1234567890()- ./*#");
// DEFINES
const TInt KPhoneNoUtilsMinNumbers = 1;
--- a/ode/src/collision_kernel.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/ode/src/collision_kernel.cpp Tue May 11 16:27:42 2010 +0300
@@ -978,6 +978,8 @@
EXPORT_C void dInitODE()
{
#ifndef __WINSCW__
+ // clean up cached object if there is any.
+ dClearPosrCache();
Mem::FillZ( GetGlobalData(), sizeof( TOdeStaticData ) );
GetGlobalData()->autoEnableDepth = 2;
#endif // !__WINSCW__
--- a/psln/PslnFramework/src/PslnFWBaseView.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/psln/PslnFramework/src/PslnFWBaseView.cpp Tue May 11 16:27:42 2010 +0300
@@ -187,20 +187,27 @@
if ( appUi )
{
CEikStatusPane* sp = appUi->StatusPane();
- iNaviControlContainer = static_cast<CAknNavigationControlContainer*>
- ( sp->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) );
+ if ( sp )
+ {
+ iNaviControlContainer = static_cast<CAknNavigationControlContainer*>
+ ( sp->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) );
+ }
}
}
- if ( iNaviPaneContext && ( aTabLocation > 0 ) )
+
+ if ( iNaviControlContainer )
{
- CAknTabGroup* tabGrp = static_cast <CAknTabGroup*>
- ( iNaviPaneContext->DecoratedControl() );
- tabGrp->SetActiveTabByIndex( aTabLocation );
- iNaviControlContainer->PushL( *iNaviPaneContext );
- }
- else
- {
- iNaviControlContainer->PushDefaultL();
+ if ( iNaviPaneContext && ( aTabLocation > 0 ) )
+ {
+ CAknTabGroup* tabGrp = static_cast <CAknTabGroup*>
+ ( iNaviPaneContext->DecoratedControl() );
+ tabGrp->SetActiveTabByIndex( aTabLocation );
+ iNaviControlContainer->PushL( *iNaviPaneContext );
+ }
+ else
+ {
+ iNaviControlContainer->PushDefaultL();
+ }
}
PSLN_TRACE_DEBUG("CPslnFWBaseView::SetNaviPaneL w/ param END");
}
--- a/psln/Rss/Psln.rss Tue Apr 27 16:55:05 2010 +0300
+++ b/psln/Rss/Psln.rss Tue May 11 16:27:42 2010 +0300
@@ -539,7 +539,7 @@
{
command = EPslnCmdAppChangeScreenSaver;
txt = qtn_options_change;
- flags = EEikMenuItemSpecific;
+ flags = EEikMenuItemAction;
},
MENU_ITEM
{
@@ -798,7 +798,7 @@
{
command = EPslnCmdAppChangeWallpaper;
txt = qtn_options_change;
- flags = EEikMenuItemSpecific;
+ flags = EEikMenuItemAction;
}
#ifdef RD_SLIDESHOW_WALLPAPER
,
--- a/psln/Src/PslnScreenSaverView.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/psln/Src/PslnScreenSaverView.cpp Tue May 11 16:27:42 2010 +0300
@@ -48,7 +48,7 @@
// CONSTANTS
// Number of default system screensavers.
-const TInt KPslnSystemScreenSavers = 2;
+const TInt KPslnSystemScreenSavers = 3;
// Value in PubSub when screensaver preview is off.
const TInt KPslnScreenSaverPreviewOff = 0;
@@ -426,6 +426,8 @@
{
// Remove Set screensaver, if current selection is already active.
aMenuPane->SetItemDimmed( EPslnCmdAppSetScreenSaver, ETrue );
+ // Remove Settings which works exactly the same as Change
+ aMenuPane->SetItemDimmed( EPslnCmdAppSettings, ETrue );
}
else if ( IsApplyCommandVisibleL() )
{
--- a/psln/pslnslidesetdialog/src/pslnslidesetdialog.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/psln/pslnslidesetdialog/src/pslnslidesetdialog.cpp Tue May 11 16:27:42 2010 +0300
@@ -539,6 +539,7 @@
// If images is selected, start MGFetch.
if ( current != KPslnSlideSetRandomIndex )
{
+ aSettingPage->MakeVisible( EFalse );
HandleLaunchMGFetchL();
}
else
--- a/uifw/AknGlobalUI/AknCapServer/src/AknMemoryCardDialogImpl.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AknGlobalUI/AknCapServer/src/AknMemoryCardDialogImpl.cpp Tue May 11 16:27:42 2010 +0300
@@ -19,7 +19,7 @@
#include <aknmemorycardui.rsg>
#include <StringLoader.h>
#include <aknsoundsystem.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
#include "AknCapServerEntry.h"
#include "AknCapServerDefs.h"
#include "AknMemoryCardDialogImpl.h"
--- a/uifw/AknGlobalUI/NotifierWrapper/src/AknNotiferAppServerApplication.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AknGlobalUI/NotifierWrapper/src/AknNotiferAppServerApplication.cpp Tue May 11 16:27:42 2010 +0300
@@ -36,7 +36,7 @@
#include "AknNotiferAppServerApplicationInterface.h"
#include <AknMediatorFacade.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
#include <aknglobalpopupprioritycontroller.h>
//---- Awkward, but declaring base classes otherwise in Akncapserver entry would break app fw.
--- a/uifw/AknGlobalUI/OldStyleNotif/Inc/AknNotifyPlugin.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Inc/AknNotifyPlugin.h Tue May 11 16:27:42 2010 +0300
@@ -28,7 +28,7 @@
#include <AknPanic.h>
#include <MediatorEventProvider.h>
#include <MediatorDomainUIDs.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
class CAknIndicatorData;
--- a/uifw/AknGlobalUI/OldStyleNotif/Inc/AknSoftNotificationPlugin.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Inc/AknSoftNotificationPlugin.h Tue May 11 16:27:42 2010 +0300
@@ -27,7 +27,7 @@
#include <aknstaticnotedialog.h>
#include <AknNotifyStd.h>
#include <AknMediatorFacade.h> // Not the best for the purpose but will do just fine.
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
#include <AknNotify.h>
#include "AknSystemPopup.h"
#include "AknGroupedNotifierNote.h"
--- a/uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemListMsgPopup.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemListMsgPopup.cpp Tue May 11 16:27:42 2010 +0300
@@ -35,7 +35,7 @@
#include <AknMediatorFacade.h>
#include <aknSDData.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
#include "AknAppsKeyCleanup.inl"
--- a/uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemListPopup.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemListPopup.cpp Tue May 11 16:27:42 2010 +0300
@@ -32,7 +32,7 @@
#include <AknMediatorFacade.h>
#include <aknSDData.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
#include "AknAppsKeyCleanup.inl"
--- a/uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemPopup.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/AknSystemPopup.cpp Tue May 11 16:27:42 2010 +0300
@@ -49,7 +49,7 @@
#include <AknMediatorFacade.h>
#include <aknSDData.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
#include <AknsUtils.h>
#include <aknglobalpopupprioritycontroller.h>
#include "GlobalWindowPriorities.h"
--- a/uifw/AknGlobalUI/OldStyleNotif/Src/aknkeylocknotifier.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/aknkeylocknotifier.cpp Tue May 11 16:27:42 2010 +0300
@@ -33,7 +33,7 @@
#include <aknnotecontrol.h>
#include <aknlayoutscalable_avkon.cdl.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
#include <avkondomainpskeys.h> // KPSUidAvkonDomain, KAknKeyguardStatus, TAknKeyguardStatus
#include <startupdomainpskeys.h> // KStartupSecurityCodeQueryStatus
#include <coreapplicationuisdomainpskeys.h> // KCoreAppUIsAutolockStatus
@@ -1131,7 +1131,7 @@
// Enable key lock.
// ---------------------------------------------------------------------------
//
-void CAknKeyLockControl::EnableKeylock( TBool aShowNote )
+void CAknKeyLockControl::EnableKeylock( TBool aShowNote, TBool aNotifySysApp )
{
TRACES( RDebug::Print(_L("(KeyGuard)CAknKeyLockControl::EnableKeylock %d"), aShowNote); )
@@ -1153,7 +1153,7 @@
EKeyguardLocked );
iKeyLockEnabled = ETrue;
- if ( !iAutolockEnabled )
+ if ( !iAutolockEnabled && aNotifySysApp )
{
SendMessageToSysAp( EEikKeyLockEnabled );
}
@@ -1208,23 +1208,23 @@
}
}
- // in case Telephone-app is topmost, then the user is confused because he sees but can't use it.
- // therefore it's required to hide it, by sending to background. ETMA-7M8A2Y 20090105
- if ( AknLayoutUtils::PenEnabled() )
- {
- TApaTaskList apaTaskList(CCoeEnv::Static()->WsSession());
- #define KPhoneAppUid TUid::Uid(0x100058B3)
+ // in case Telephone-app is topmost, then the user is confused because he sees but can't use it.
+ // therefore it's required to hide it, by sending to background. ETMA-7M8A2Y 20090105
+ if ( AknLayoutUtils::PenEnabled() )
+ {
+ TApaTaskList apaTaskList(CCoeEnv::Static()->WsSession());
+ #define KPhoneAppUid TUid::Uid(0x100058B3)
- TApaTask apaTask = apaTaskList.FindApp(KPhoneAppUid);
- if (apaTask.Exists())
- {
- #if defined(_DEBUG)
- RDebug::Print(_L("(KeyGuard)CAknKeyLockControl::EnableKeylock() Bring phone to background"));
- #endif
- // Bring phone to background
- apaTask.SendToBackground();
- }
- }
+ TApaTask apaTask = apaTaskList.FindApp(KPhoneAppUid);
+ if (apaTask.Exists())
+ {
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(KeyGuard)CAknKeyLockControl::EnableKeylock() Bring phone to background"));
+ #endif
+ // Bring phone to background
+ apaTask.SendToBackground();
+ }
+ }
// Start capturing system keys.
CaptureSystemKeys();
@@ -1266,7 +1266,7 @@
// Disable key lock.
// ---------------------------------------------------------------------------
//
-void CAknKeyLockControl::DisableKeylock()
+void CAknKeyLockControl::DisableKeylock(TBool aNotifySysApp)
{
TRACES( RDebug::Print(_L("(KeyGuard)CAknKeyLockControl::DisableKeylock")); )
@@ -1301,38 +1301,39 @@
iStatusProperty.Set( EKeyguardNotActive );
iKeyLockEnabled = EFalse;
- if ( !iAutolockEnabled ) // only when Autolock was user-activated
+ if ( !iAutolockEnabled ) // only when Autolock was user-activated
{
- // in case Telephone-app was topmost and sent to background, then the user is confused because he expects to see it again.
- // therefore it's required to show it, by sending to foreground.
- if ( AknLayoutUtils::PenEnabled() )
- {
- TInt callState;
- RProperty::Get( KPSUidCtsyCallInformation, KCTsyCallState, callState );
- #if defined(_DEBUG)
- RDebug::Printf( "%s %s (%u) callState=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, callState );
- RDebug::Printf( "%s %s (%u) EPSCTsyCallStateNone=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, EPSCTsyCallStateNone );
- #endif
- if (callState != EPSCTsyCallStateNone )
- {
-
- TApaTaskList apaTaskList(CCoeEnv::Static()->WsSession());
- #define KPhoneAppUid TUid::Uid(0x100058B3)
-
- TApaTask apaTask = apaTaskList.FindApp(KPhoneAppUid);
- if (apaTask.Exists())
- {
- RDebug::Printf( "%s %s (%u) foreground=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 1 );
- #if defined(_DEBUG)
- RDebug::Print(_L("(AUTOLOCK)CAknKeyLockControl::EnableKeylock() Send phone to foreground"));
- #endif
- // Bring phone to foreground
- apaTask.BringToForeground();
- }
- }
- } // PenEnabled()
+ // in case Telephone-app was topmost and sent to background, then the user is confused because he expects to see it again.
+ // therefore it's required to show it, by sending to foreground.
+ if ( AknLayoutUtils::PenEnabled() )
+ {
+ TInt callState;
+ RProperty::Get( KPSUidCtsyCallInformation, KCTsyCallState, callState );
+ #if defined(_DEBUG)
+ RDebug::Printf( "%s %s (%u) callState=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, callState );
+ RDebug::Printf( "%s %s (%u) EPSCTsyCallStateNone=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, EPSCTsyCallStateNone );
+ #endif
+ if (callState != EPSCTsyCallStateNone )
+ {
+ TApaTaskList apaTaskList(CCoeEnv::Static()->WsSession());
+ #define KPhoneAppUid TUid::Uid(0x100058B3)
+ TApaTask apaTask = apaTaskList.FindApp(KPhoneAppUid);
+ if (apaTask.Exists())
+ {
+ RDebug::Printf( "%s %s (%u) foreground=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 1 );
+ #if defined(_DEBUG)
+ RDebug::Print(_L("(AUTOLOCK)CAknKeyLockControl::EnableKeylock() Send phone to foreground"));
+ #endif
+ // Bring phone to foreground
+ apaTask.BringToForeground();
+ }
+ }
+ } // PenEnabled()
- SendMessageToSysAp( EEikKeyLockDisabled );
+ if (aNotifySysApp)
+ {
+ SendMessageToSysAp( EEikKeyLockDisabled );
+ }
}
if ( iNotif )
{
@@ -2393,13 +2394,13 @@
// We'll have to disable keylock if we are changing autolock status.
if ( IsKeyLockEnabled() && aAutoLockOn != iKeyLockControl->iAutolockEnabled )
{
- iKeyLockControl->DisableKeylock();
+ iKeyLockControl->DisableKeylock(EFalse);
}
if ( !IsKeyLockEnabled() )
{
iKeyLockControl->AutolockEnabled( aAutoLockOn );
- iKeyLockControl->EnableKeylock();
+ iKeyLockControl->EnableKeylock(ETrue, EFalse);
}
}
--- a/uifw/AknGlobalUI/OldStyleNotif/Src/aknmessagereaderlongpressdetector.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/aknmessagereaderlongpressdetector.cpp Tue May 11 16:27:42 2010 +0300
@@ -461,22 +461,17 @@
if (Layout_Meta_Data::IsLandscapeOrientation())
{
- TAknWindowComponentLayout rightAreaLayout(
- AknLayoutScalable_Avkon::area_side_right_pane(0));
-
- layoutRect.LayoutRect(
- containerRect,
- TAknWindowComponentLayout::Compose(
- rightAreaLayout,
- AknLayoutScalable_Avkon::sctrl_sk_bottom_pane()).LayoutLine());
-
- TRect bottomSKRect(layoutRect.Rect());
+ layoutRect.LayoutRect(containerRect,
+ AknLayoutScalable_Avkon::popup_sk_window_g1(0));
- layoutRect.LayoutRect(
- bottomSKRect,
- AknLayoutScalable_Avkon::aid_touch_sctrl_bottom().LayoutLine());
-
- button1Rect = layoutRect.Rect();
+ // Button widths are calculated based on cba area width
+ // margin width is taken from layout
+ TInt margin = layoutRect.Rect().iTl.iX - containerRect.iTl.iX;
+ TInt buttonWidth = (containerRect.Width() - margin * 2) / 2;
+ TSize buttonSize(buttonWidth, layoutRect.Rect().Height());
+
+ button1Rect = TRect(TPoint(containerRect.iTl.iX + margin,
+ layoutRect.Rect().iTl.iY), buttonSize);
}
else
{
--- a/uifw/AknGlobalUI/OldStyleNotif/Src/aknsystemconfirmationpopup.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/aknsystemconfirmationpopup.cpp Tue May 11 16:27:42 2010 +0300
@@ -35,7 +35,7 @@
#include <AknMediatorFacade.h>
#include <aknSDData.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
const TInt KCharsInTInt = 4; // TInt32 takes 4 chars.
--- a/uifw/AknGlobalUI/OldStyleNotif/Src/aknsystemmsgpopup.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/aknsystemmsgpopup.cpp Tue May 11 16:27:42 2010 +0300
@@ -34,7 +34,7 @@
#include <aknSDData.h>
#include <AknMediatorFacade.h>
#include <aknnoteattributes.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
#include "AknAppsKeyCleanup.inl"
const TInt KCharsInTInt = 4; // TInt32 takes 4 chars.
--- a/uifw/AknGlobalUI/OldStyleNotif/Src/aknsystemprogresspopup.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AknGlobalUI/OldStyleNotif/Src/aknsystemprogresspopup.cpp Tue May 11 16:27:42 2010 +0300
@@ -38,7 +38,7 @@
#include <aknlayoutscalable_avkon.cdl.h>
#include <AknMediatorFacade.h>
#include <aknSDData.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
#include "AknAppsKeyCleanup.inl"
const TInt KCharsInTInt = 4; // TInt32 takes 4 chars.
--- a/uifw/AknGlobalUI/cdma/notpisrc/aknkeylocknotifierCdma.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AknGlobalUI/cdma/notpisrc/aknkeylocknotifierCdma.cpp Tue May 11 16:27:42 2010 +0300
@@ -41,7 +41,7 @@
#include <aknlayout.lag>
#include <aknutils.h>
#include <eikcba.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
#include <aknnotecontrol.h>
#include <AknLayoutScalable_Avkon.cdl.h>
--- a/uifw/AvKon/aknhlist/BWINS/aknhlistU.def Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/aknhlist/BWINS/aknhlistU.def Tue May 11 16:27:42 2010 +0300
@@ -73,4 +73,5 @@
?Sort@CAknTreeList@@QAEXPAVMAknCustomTreeOrdering@@W4TFocusBehaviour@1@H@Z @ 72 NONAME ; void CAknTreeList::Sort(class MAknCustomTreeOrdering *, enum CAknTreeList::TFocusBehaviour, int)
?SetEmptyTextL@CAknTreeList@@QAEXABVTDesC16@@@Z @ 73 NONAME ; void CAknTreeList::SetEmptyTextL(class TDesC16 const &)
?VisibleItemIndex@CAknTreeList@@QBEHH@Z @ 74 NONAME ; int CAknTreeList::VisibleItemIndex(int) const
+ ?SetMarkingModeObserver@CAknTreeList@@QAEXPAVMAknMarkingModeObserver@@@Z @ 75 NONAME ; void CAknTreeList::SetMarkingModeObserver(class MAknMarkingModeObserver *)
--- a/uifw/AvKon/aknhlist/EABI/aknhlistU.def Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/aknhlist/EABI/aknhlistU.def Tue May 11 16:27:42 2010 +0300
@@ -73,4 +73,5 @@
_ZNK12CAknTreeList16FocusedItemIndexEv @ 72 NONAME
_ZN12CAknTreeList13SetEmptyTextLERK7TDesC16 @ 73 NONAME
_ZNK12CAknTreeList16VisibleItemIndexEi @ 74 NONAME
+ _ZN12CAknTreeList22SetMarkingModeObserverEP23MAknMarkingModeObserver @ 75 NONAME
--- a/uifw/AvKon/aknhlist/group/aknhlist.mmp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/aknhlist/group/aknhlist.mmp Tue May 11 16:27:42 2010 +0300
@@ -88,3 +88,4 @@
LIBRARY aknlistloadertfx.lib
#endif //RD_UI_TRANSITION_EFFECTS_LIST
DEFFILE aknhlist.def
+LIBRARY fbscli.lib
--- a/uifw/AvKon/aknhlist/inc/akntreelistview.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/aknhlist/inc/akntreelistview.h Tue May 11 16:27:42 2010 +0300
@@ -29,6 +29,7 @@
#include <akntreelistobserver.h>
#include <akncollection.h>
#include <aknlongtapdetector.h>
+#include <aknmarkingmodeobserver.h>
#include "akntreeobserver.h"
#include "akntreelistviewitem.h"
@@ -40,6 +41,7 @@
class CEikScrollBarFrame;
class CAknTreeListPhysicsHandler;
class CAknItemActionMenu;
+class CAknIconArray;
/**
* Hierarchical list view.
@@ -58,8 +60,8 @@
public MAknsEffectAnimObserver,
public MEikCommandObserver,
public MAknCollection,
- public MAknLongTapDetectorCallBack
-
+ public MAknLongTapDetectorCallBack,
+ public MAknMarkingCollection
{
public:
@@ -813,23 +815,23 @@
void DoHandleLongPressL();
/**
- * Enters marking mode. When in marking mode, the list controls the MSK
+ * Enters normal marking. When in marking state, the list controls the MSK
* commands depending on whether the currently focused item is marked or
- * unmarked. Marking mode is entered after specified timeout, when user
+ * unmarked. Marking state is entered after specified timeout, when user
* keeps one of the marking modifier keys pressed.
*
* Notifications of the beginning and ending of marking mode is sent to
* list observers, so that they would not update the MSK commands, when
* they are handled by the list.
*/
- void EnterMarkingMode();
+ void EnterMarking();
/**
- * Exits marking mode. Marking mode is exited when user releases
+ * Exits marking state. Marking state is exited when user releases
* all the marking modifier keys. After that, the list no longer
* handles the MSK commands.
*/
- void ExitMarkingMode();
+ void ExitMarking();
/**
* Updates correct mark/unmark command to MSK depending on the marking
@@ -870,6 +872,10 @@
*/
void UpdateIndexes();
+ /**
+ * Loads marking mode icons.
+ */
+ void LoadMarkingIconsL();
// from base class CCoeControl
@@ -894,8 +900,9 @@
* Enables or disables highlight
*
* @param ETrue to enable highlight, EFalse to disable
- */
- void EnableHighlight( TBool aEnabled );
+ * @param aPointerEnabled ETrue if highlight was enabled by pointer event.
+ */
+ void EnableHighlight( TBool aEnabled, TBool aPointerEnabled = EFalse );
/**
* Is highlight enabled
@@ -922,7 +929,7 @@
*
* @return ETrue if list has marked items
*/
- TBool HasMarkedItemsL();
+ TBool HasMarkedItemsL() const;
// From MAknCollection
/**
@@ -948,6 +955,55 @@
*/
TInt CollectionExtension( TUint aExtensionId, TAny*& a0, TAny* a1 );
+// From MAknMarkingCollection
+ /**
+ * Sets multiple marking state.
+ *
+ * @param aActive ETrue if multiple marking should be active.
+ */
+ void SetMultipleMarkingState( TBool aActive );
+
+ /**
+ * Returns the collection marking state. The state is combination of
+ * flags defined in @c TStateFlag.
+ *
+ * @return Collection state.
+ */
+ TUint MarkingState() const;
+
+ /**
+ * Marks the currently selected item.
+ */
+ void MarkCurrentItemL();
+
+ /**
+ * Marks all items in the collection.
+ */
+ void MarkAllL();
+
+ /**
+ * Unmarks all items in the collection.
+ */
+ void UnmarkAll();
+
+ /*
+ * Can current item be marked.
+ */
+ TBool CurrentItemMarkable();
+
+ /**
+ * Returns whether the observer accepts ending of marking mode
+ *
+ * @return ETrue if observer accepts exiting marking mode
+ */
+ TBool ExitMarkingMode();
+
+ /**
+ * Reports collection change event.
+ */
+ void ReportCollectionChangedEvent();
+
+
// From MAknLongTapDetectorCallBack
/**
* Long tap detector callback
@@ -1099,14 +1155,23 @@
*/
TBool iMirroredLayoutInUse;
-
/**
* Remember pointer to bottom item. Use for drawing line seperator only.
* iBottomIndex is not valid in some case becaue of iItems already changed.
* Not own.
*/
CAknTreeItem* iBottomItem;
+
+ /**
+ * Whether marking mode is activated or not.
+ */
+ TBool iMarkingMode;
+
+ /**
+ * Array for marking mode icons.
+ * Own.
+ */
+ CAknIconArray* iMarkingIconArray;
};
-
#endif // C_AKNTREELISTVIEW_H
--- a/uifw/AvKon/aknhlist/src/akntreelist.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/aknhlist/src/akntreelist.cpp Tue May 11 16:27:42 2010 +0300
@@ -664,6 +664,17 @@
// ---------------------------------------------------------------------------
+// CAknTreeList::SetMarkingModeObserver
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CAknTreeList::SetMarkingModeObserver(
+ MAknMarkingModeObserver* aObserver )
+ {
+ iMarkingModeObserver = aObserver;
+ }
+
+
+// ---------------------------------------------------------------------------
// Handles key events by mediating them to the view.
// ---------------------------------------------------------------------------
//
@@ -924,6 +935,16 @@
// ---------------------------------------------------------------------------
+// Marking mode observer
+// ---------------------------------------------------------------------------
+//
+MAknMarkingModeObserver* CAknTreeList::MarkingModeObserver()
+ {
+ return iMarkingModeObserver;
+ }
+
+
+// ---------------------------------------------------------------------------
// Does nothing, the draw request is mediated to the view through component
// control structure.
// ---------------------------------------------------------------------------
--- a/uifw/AvKon/aknhlist/src/akntreelistphysicshandler.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/aknhlist/src/akntreelistphysicshandler.cpp Tue May 11 16:27:42 2010 +0300
@@ -163,7 +163,7 @@
// flicking was ongoing when content stopped
if ( iFeedback )
{
- iFeedback->InstantFeedback( ETouchFeedbackBasic );
+ iFeedback->InstantFeedback( ETouchFeedbackList );
}
wasFlicking = ETrue;
}
@@ -326,23 +326,10 @@
// also on up event -> play basic list feedback
if ( iFeedback )
{
- TTouchLogicalFeedback fbType = ETouchFeedbackList;
if ( iItemToBeSelected != NULL )
{
- if ( iItemToBeSelected->IsLeaf() && iItemToBeSelected->IsMarkable() )
- {
- fbType = ETouchFeedbackCheckbox;
- }
- else if ( iItemToBeSelected->Node() != NULL )
- {
- if ( iItemToBeSelected->Node()->ChildCount() == 0 &&
- iItemToBeSelected->Node()->IsMarkable() )
- {
- fbType = ETouchFeedbackCheckbox;
- }
- }
iFeedback->InstantFeedback( iTreeListView,
- fbType,
+ ETouchFeedbackList,
ETouchFeedbackVibra,
aPointerEvent );
}
--- a/uifw/AvKon/aknhlist/src/akntreelistview.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/aknhlist/src/akntreelistview.cpp Tue May 11 16:27:42 2010 +0300
@@ -26,6 +26,9 @@
#include <aknitemactionmenu.h>
#include <AknTasHook.h> // for testability hooks
#include <AknPriv.hrh>
+#include <AknIconArray.h>
+#include <avkon.mbg>
+#include <gulicon.h>
#include "akntreelistview.h"
#include "akntree.h"
#include "akntreelist.h"
@@ -49,6 +52,8 @@
// Number of additional items to draw
const TInt KAdditionalItems = 2;
+// Space for check box in marking mode
+const TInt KCheckBoxOffset = 30;
// Tree list view flag definitions.
enum TAknTreeListViewFlags
@@ -58,7 +63,7 @@
EFlagLooping,
EFlagUpdateBackground,
EFlagMarkingEnabled, // Marking of list items is enabled.
- EFlagMarkingMode, // List in marking mode (MSK controlled by list).
+ EFlagMarkingState, // List in marking state (MSK controlled by list).
EFlagMark, // List items are being marked.
EFlagUnmark, // List items are being unmarked.
EFlagSimultaneousMarking, // Simultaneous marking ongoing.
@@ -112,6 +117,13 @@
}
delete iLongTapDetector;
+ if ( iMarkingIconArray )
+ {
+ iMarkingIconArray->ResetAndDestroy();
+ }
+
+ delete iMarkingIconArray;
+
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
if ( CAknListLoader::TfxApiInternal( iGc ) )
{
@@ -470,7 +482,21 @@
//
void CAknTreeListView::SelectItem( CAknTreeItem* aSelectedItem )
{
- SelectItem( aSelectedItem, EFalse );
+ if ( iMarkingMode )
+ {
+ if ( aSelectedItem->IsMarkable() )
+ {
+ MarkItem( aSelectedItem, !aSelectedItem->IsMarked(), ETrue );
+ }
+ else if ( aSelectedItem->IsNode() )
+ {
+ SelectItem( aSelectedItem, EFalse );
+ }
+ }
+ else
+ {
+ SelectItem( aSelectedItem, EFalse );
+ }
}
@@ -787,6 +813,11 @@
switch ( aType )
{
+ case KEikMessageWindowsFadeChange:
+ {
+ ReportCollectionChangedEvent();
+ }
+
case KAknsMessageSkinChange:
{
TRAPD( error, CreateAnimationL() )
@@ -795,6 +826,8 @@
delete iAnimation;
iAnimation = NULL;
}
+
+ TRAP_IGNORE( LoadMarkingIconsL() );
break;
}
@@ -1308,6 +1341,7 @@
}
iMirroredLayoutInUse = AknLayoutUtils::LayoutMirrored();
+ LoadMarkingIconsL();
}
@@ -1639,13 +1673,16 @@
CAknTreeItem* item = FocusedItem();
if ( item )
{
- if ( MarkingOngoing() )
+ if ( iMarkingMode )
{
- MarkItem( item, !item->IsMarked(), ETrue );
+ if ( item->IsMarkable() )
+ {
+ MarkItem( item, !item->IsMarked(), ETrue );
+ }
}
else
{
- SelectItem( item, true );
+ SelectItem( item, EFalse );
}
}
}
@@ -1989,6 +2026,11 @@
iterator.Previous();
}
+ if ( iMarkingMode )
+ {
+ itemRect.iBr.iX -= KCheckBoxOffset;
+ }
+
// Update items and their rectangles.
for ( TInt ii = 0; ii < iItems.Count(); ++ii )
{
@@ -2581,9 +2623,9 @@
}
// Exits marking mode.
- if ( iFlags.IsSet( EFlagMarkingMode ) )
+ if ( iFlags.IsSet( EFlagMarkingState ) )
{
- ExitMarkingMode();
+ ExitMarking();
}
// Remove MSK observer.
@@ -2644,18 +2686,18 @@
//
void CAknTreeListView::DoHandleLongPressL()
{
- if ( iFlags.IsClear( EFlagMarkingMode ) )
+ if ( iFlags.IsClear( EFlagMarkingState ) )
{
- EnterMarkingMode();
+ EnterMarking();
}
}
// ---------------------------------------------------------------------------
-// Enters marking mode.
+// Enters marking state.
// ---------------------------------------------------------------------------
//
-void CAknTreeListView::EnterMarkingMode()
+void CAknTreeListView::EnterMarking()
{
CEikButtonGroupContainer* bgc;
CCoeControl* MSK = NULL;
@@ -2689,7 +2731,7 @@
{
ReportTreeListEvent( MAknTreeListObserver::EMarkingModeEnabled,
iTree.Id( FocusedItem() ) );
- iFlags.Set( EFlagMarkingMode );
+ iFlags.Set( EFlagMarkingState );
bgc->DrawNow();
}
}
@@ -2697,12 +2739,12 @@
// ---------------------------------------------------------------------------
-// Exits marking mode.
+// Exits marking state.
// ---------------------------------------------------------------------------
//
-void CAknTreeListView::ExitMarkingMode()
+void CAknTreeListView::ExitMarking()
{
- if ( iFlags.IsSet( EFlagMarkingMode ) )
+ if ( iFlags.IsSet( EFlagMarkingState ) )
{
CEikButtonGroupContainer* bgc = NULL;
CCoeControl* MSK = NULL;
@@ -2722,7 +2764,7 @@
}
ReportTreeListEvent( MAknTreeListObserver::EMarkingModeDisabled,
iTree.Id( FocusedItem() ) );
- iFlags.Clear( EFlagMarkingMode );
+ iFlags.Clear( EFlagMarkingState );
}
}
@@ -2768,8 +2810,7 @@
void CAknTreeListView::DrawItemsWithPhysics( const TRect& aRect ) const
{
TBool empty = IsEmpty();
- TInt offset = Offset();
-
+ TInt offset = Offset();
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
CWindowGc& gc = iGc && !empty ? *iGc : SystemGc();
#else
@@ -2827,11 +2868,53 @@
KAknsIIDQsnTextColors,
EAknsCIQsnTextColorsCG6 );
+ if ( iMarkingMode && iMarkingIconArray && iMarkingIconArray->Count()== 2 )
+ {
+ // Set sizes for marking icon bitmaps
+ TRect drawRect;
+ if ( iItems.Count() > 0 )
+ {
+ drawRect = iItems[0].Rect();
+ drawRect.iBr.iX += KCheckBoxOffset;
+ }
+
+ // Rect for the marking icon
+ TRect iconRect = RectFromLayout( drawRect,
+ AknLayoutScalable_Avkon::list_single_graphic_pane_g1( 0 ) );
+ iconRect.Move( 0, -offset );
+
+ gc.SetPenColor( textColor );
+ gc.SetPenStyle( CGraphicsContext::ESolidPen );
+
+ for ( TInt ii = 0; ii < iMarkingIconArray->Count(); ++ii )
+ {
+ CGulIcon* icon = (*iMarkingIconArray)[ii];
+ CFbsBitmap* bitmap = icon->Bitmap();
+
+ if ( bitmap )
+ {
+ TSize size( bitmap->SizeInPixels() ); // set size if not already
+ TSize targetSize( iconRect.Size() );
+
+ if ( size.iWidth != targetSize.iWidth && size.iHeight
+ != targetSize.iHeight )
+ {
+ AknIconUtils::SetSize( bitmap, targetSize,
+ EAspectRatioPreservedAndUnusedSpaceRemoved );
+ }
+ }
+ }
+ }
const TInt itemCount = iItems.Count();
for ( TInt ii = 0; ii < itemCount; ++ii )
{
TRect drawRect( iItems[ii].Rect() );
+ if ( iMarkingMode )
+ {
+ drawRect.iBr.iX += KCheckBoxOffset;
+ }
+
if ( iItems[ii].Item() )
{
@@ -2875,6 +2958,30 @@
}
#endif
+ if ( iMarkingMode && iMarkingIconArray && iMarkingIconArray->Count()== 2 )
+ {
+ // Rect for the marking icon
+ TRect iconRect = RectFromLayout( drawRect,
+ AknLayoutScalable_Avkon::list_single_graphic_pane_g1( 0 ) );
+
+ iconRect.Move( 0, -offset );
+ CGulIcon* icon = (*iMarkingIconArray)[1]; // unchecked
+
+ TBool marked = ( iItems[ii].Item()->IsMarked() );
+ if ( marked )
+ {
+ icon = (*iMarkingIconArray)[0];
+ }
+
+ CFbsBitmap* bitmap = icon->Bitmap();
+
+ if ( bitmap )
+ {
+ gc.BitBltMasked( iconRect.iTl, bitmap,
+ iconRect.Size(), icon->Mask(), EFalse );
+ }
+ }
+
if ( iItems[ii].Item() != iBottomItem )
{
TRect offsetRect( drawRect );
@@ -2882,6 +2989,12 @@
AknListUtils::DrawSeparator( gc, offsetRect, textColor, skin );
}
+ if ( iMarkingMode )
+ {
+ gc.SetOrigin( TPoint( KCheckBoxOffset, 0 ) );
+ drawRect.iBr.iX -= KCheckBoxOffset;
+ }
+
TBool focused = ( FocusedItem() &&
iItems[ii].Item() == FocusedItem() );
@@ -2944,9 +3057,26 @@
}
#endif //RD_UI_TRANSITION_EFFECTS_LIST
- // Draw item.
- iItems[ii].Draw( gc, iTree, drawRect, focused, iViewLevel,
- StructureLines(), Indention(), IndentionWidth() );
+ if ( iMarkingMode )
+ {
+ TBool marked = iItems[ii].Item()->IsMarked();
+ if ( marked )
+ {
+ iItems[ii].Item()->SetMarked( EFalse );
+ }
+ iItems[ii].Draw( gc, iTree, drawRect, focused, iViewLevel,
+ StructureLines(), Indention(), IndentionWidth() );
+
+ if ( marked )
+ {
+ iItems[ii].Item()->SetMarked( ETrue );
+ }
+ }
+ else
+ {
+ iItems[ii].Draw( gc, iTree, drawRect, focused, iViewLevel,
+ StructureLines(), Indention(), IndentionWidth() );
+ }
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
if ( transApi )
@@ -2959,6 +3089,10 @@
}
#endif //RD_UI_TRANSITION_EFFECTS_LIST
+ if ( iMarkingMode )
+ {
+ gc.SetOrigin( TPoint( 0, 0 ) );
+ }
}
}
}
@@ -3070,8 +3204,11 @@
// Enables or disables the highlight drawing
// ---------------------------------------------------------------------------
//
-void CAknTreeListView::EnableHighlight( TBool aEnabled )
+void CAknTreeListView::EnableHighlight( TBool aEnabled,
+ TBool aPointerEnabled )
{
+ TBool wasEnabled = iFlags.IsSet( EFlagHighlightEnabled );
+
if ( aEnabled )
{
iFlags.Set( EFlagHighlightEnabled );
@@ -3080,6 +3217,13 @@
{
iFlags.Clear( EFlagHighlightEnabled );
}
+
+ if ( !aPointerEnabled
+ && ( ( wasEnabled && !aEnabled )
+ || ( !wasEnabled && aEnabled ) ) )
+ {
+ ReportCollectionChangedEvent();
+ }
}
// ---------------------------------------------------------------------------
@@ -3111,7 +3255,7 @@
TUint CAknTreeListView::CollectionState() const
{
TUint state( 0 );
- if ( IsVisible() )
+ if ( IsVisible() && ( !DrawableWindow() || !DrawableWindow()->IsFaded() ) )
{
state |= MAknCollection::EStateCollectionVisible;
}
@@ -3119,6 +3263,12 @@
{
state |= MAknCollection::EStateHighlightVisible;
}
+
+ if ( iList.Flags() & KAknTreeListMarkable )
+ {
+ state |= MAknCollection::EStateMultipleSelection;
+ }
+
return state;
}
@@ -3137,12 +3287,174 @@
// CAknTreeListView::CollectionExtension
// -----------------------------------------------------------------------------
//
-TInt CAknTreeListView::CollectionExtension( TUint /*aExtensionId*/,
- TAny*& /*a0*/, TAny* /*a1*/ )
+TInt CAknTreeListView::CollectionExtension(
+ TUint aExtensionId, TAny*& a0, TAny* /*a1*/ )
{
+ if ( aExtensionId == MAknMarkingCollection::TYPE )
+ {
+ a0 = static_cast<MAknMarkingCollection*>( this );
+ }
+
return KErrNone;
}
+
+// -----------------------------------------------------------------------------
+// CAknTreeListView::SetMultipleMarkingState
+// -----------------------------------------------------------------------------
+//
+void CAknTreeListView::SetMultipleMarkingState( TBool aActive )
+ {
+ if ( iMarkingMode != aActive )
+ {
+ if ( !aActive )
+ {
+ TBool markedItems( EFalse );
+ TRAP_IGNORE( markedItems = HasMarkedItemsL() );
+ if ( markedItems )
+ {
+ UnmarkAll();
+ }
+ }
+
+ EnableMarking( aActive );
+ iMarkingMode = aActive;
+ LayoutView();
+ DrawDeferred();
+
+ if ( iList.MarkingModeObserver() )
+ {
+ iList.MarkingModeObserver()->MarkingModeStatusChanged( aActive );
+ }
+ }
+ }
+
+
+// -----------------------------------------------------------------------------
+// CAknTreeListView::MarkingState
+// -----------------------------------------------------------------------------
+//
+TUint CAknTreeListView::MarkingState() const
+ {
+ TUint state( 0 );
+
+ if ( iMarkingMode )
+ {
+ state |= MAknMarkingCollection::EStateMarkingMode;
+
+ TBool markedItems ( EFalse );
+ TRAP_IGNORE( markedItems = HasMarkedItemsL() );
+ if ( markedItems )
+ {
+ state |= MAknMarkingCollection::EStateMarkedItems;
+ }
+ if ( iItems.Count() == 0 )
+ {
+ state |= MAknMarkingCollection::EStateCollectionEmpty;
+ }
+ }
+ return state;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CAknTreeListView::MarkCurrentItemL
+// -----------------------------------------------------------------------------
+//
+void CAknTreeListView::MarkCurrentItemL()
+ {
+ if ( iMarkingMode && FocusedItem() && FocusedItem()->IsMarkable() )
+ {
+ MarkItem( FocusedItem(), ETrue, ETrue );
+ }
+ }
+
+
+// -----------------------------------------------------------------------------
+// CAknTreeListView::MarkAllL
+// -----------------------------------------------------------------------------
+//
+void CAknTreeListView::MarkAllL()
+ {
+ if ( iMarkingMode )
+ {
+ TAknTreeIterator iterator = iTree.Iterator();
+ CAknTreeItem* item = NULL;
+ item = iterator.First();
+ while ( item && iterator.HasNext() )
+ {
+ if ( item->IsMarkable() )
+ {
+ MarkItem( item, ETrue, EFalse );
+ }
+ item = iterator.Next();
+ }
+ DrawDeferred();
+ }
+ }
+
+
+// -----------------------------------------------------------------------------
+// CAknTreeListView::UnmarkAll
+// -----------------------------------------------------------------------------
+//
+void CAknTreeListView::UnmarkAll()
+ {
+ if ( iMarkingMode )
+ {
+ TAknTreeIterator iterator = iTree.Iterator();
+ CAknTreeItem* item = NULL;
+ item = iterator.First();
+ while ( item && iterator.HasNext() )
+ {
+ MarkItem( item, EFalse, EFalse );
+ item = iterator.Next();
+ }
+ DrawDeferred();
+ }
+ }
+
+
+ // -----------------------------------------------------------------------------
+// CAknTreeListView::CurrentItemMarkable
+// -----------------------------------------------------------------------------
+//
+TBool CAknTreeListView::CurrentItemMarkable()
+ {
+ if ( FocusedItem() && !FocusedItem()->IsMarkable() )
+ {
+ return EFalse;
+ }
+ return ETrue;
+ }
+
+// -----------------------------------------------------------------------------
+// CAknTreeListView::ExitMarkingMode
+// -----------------------------------------------------------------------------
+//
+TBool CAknTreeListView::ExitMarkingMode()
+ {
+ if ( iList.MarkingModeObserver() )
+ {
+ return iList.MarkingModeObserver()->ExitMarkingMode();
+ }
+ return ETrue;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CAknTreeListView::ReportCollectionChangedEvent
+// -----------------------------------------------------------------------------
+//
+void CAknTreeListView::ReportCollectionChangedEvent()
+ {
+ if ( iItemActionMenu )
+ {
+ iItemActionMenu->CollectionChanged( *this );
+ }
+ }
+
+
// ---------------------------------------------------------------------------
// CAknTreeListView::HandleLongTapEventL
// ---------------------------------------------------------------------------
@@ -3186,7 +3498,7 @@
// CAknTreeListView::HasMarkedItemsL
// ---------------------------------------------------------------------------
//
-TBool CAknTreeListView::HasMarkedItemsL()
+TBool CAknTreeListView::HasMarkedItemsL() const
{
RArray<TInt> selection;
CleanupClosePushL( selection );
@@ -3265,3 +3577,43 @@
}
}
+
+// -----------------------------------------------------------------------------
+// CAknTreeListView::LoadMarkingIconsL
+// -----------------------------------------------------------------------------
+//
+void CAknTreeListView::LoadMarkingIconsL()
+ {
+ if ( !iMarkingIconArray )
+ {
+ iMarkingIconArray = new ( ELeave ) CAknIconArray( 2 );
+ }
+ else
+ {
+ iMarkingIconArray->ResetAndDestroy();
+ }
+
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+ const TDesC& avkonIconFile = AknIconUtils::AvkonIconFileName();
+
+ CGulIcon* icon = AknsUtils::CreateGulIconL( skin,
+ KAknsIIDQgnPropCheckboxOn,
+ avkonIconFile,
+ EMbmAvkonQgn_prop_checkbox_on,
+ EMbmAvkonQgn_prop_checkbox_on_mask );
+
+ CleanupStack::PushL( icon );
+ iMarkingIconArray->AppendL( icon );
+ CleanupStack::Pop( icon );
+
+ icon = AknsUtils::CreateGulIconL( skin,
+ KAknsIIDQgnPropCheckboxOff,
+ avkonIconFile,
+ EMbmAvkonQgn_prop_checkbox_off,
+ EMbmAvkonQgn_prop_checkbox_off_mask );
+
+ CleanupStack::PushL( icon );
+ iMarkingIconArray->AppendL( icon );
+ CleanupStack::Pop( icon );
+ }
+
--- a/uifw/AvKon/aknphysics/src/aknphysics.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/aknphysics/src/aknphysics.cpp Tue May 11 16:27:42 2010 +0300
@@ -426,7 +426,15 @@
const TTime& aStartTime )
{
// Check that world really exists
- if ( !iEngine || !iEngine->WorldExists() )
+ if ( iEngine )
+ {
+ if ( ( !iLandscape && iWorldSize.iHeight <= iViewSize.iHeight ) ||
+ ( iLandscape && iWorldSize.iWidth <= iViewSize.iWidth ) )
+ {
+ return EFalse;
+ }
+ }
+ else
{
return EFalse;
}
@@ -544,6 +552,14 @@
//
EXPORT_C void CAknPhysics::RegisterPanningPosition( const TPoint& aDelta )
{
+ TInt viewSize = !iLandscape ? iViewSize.iHeight : iViewSize.iWidth;
+ TInt worldSize = !iLandscape ? iWorldSize.iHeight : iWorldSize.iWidth;
+
+ if ( worldSize <= viewSize )
+ {
+ return;
+ }
+
TTimeIntervalMicroSeconds time;
TInt err( KErrNone );
if ( iNullThread.Handle() )
@@ -589,7 +605,8 @@
iPanningDrawOmitted = !drawNow;
TPoint position( iObserver.ViewPosition() );
- position += aDelta;
+
+ TPoint movement( aDelta );
if ( iRestrictor && iRestrictor->AllowedViewPosition( position ) )
{
@@ -602,6 +619,23 @@
iEngine->StartFpsLogging();
}
}
+
+ // reduce movement if content is dragged over boundaries
+ if ( OngoingPhysicsAction() == EAknPhysicsActionDragging )
+ {
+ TInt currentPosition = !iLandscape ? position.iY : position.iX;
+ TInt* movementPtr = !iLandscape ? &movement.iY : &movement.iX;
+
+ TInt top = viewSize / 2;
+ TInt bottom = worldSize - top;
+
+ if ( currentPosition < top || currentPosition > bottom )
+ {
+ *movementPtr /= 2;
+ }
+ }
+
+ position += movement;
NotifyViewPositionChanged( position, drawNow );
--- a/uifw/AvKon/aknphysics/src/aknphysicsconeobserver.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/aknphysics/src/aknphysicsconeobserver.cpp Tue May 11 16:27:42 2010 +0300
@@ -319,7 +319,8 @@
}
if ( aEvent->iType == TPointerEvent::EButton1Up &&
- iPhysics->IsPanningDrawOmitted() )
+ iPhysics->IsPanningDrawOmitted() &&
+ eventTarget == ETargetViewControl )
{
// Ensure that the last panning position gets drawn if the last
// view redraw was omitted due to too high CPU use.
--- a/uifw/AvKon/group/avkon_icons_dc.mk Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/group/avkon_icons_dc.mk Tue May 11 16:27:42 2010 +0300
@@ -136,7 +136,7 @@
$(OLDURELZDIR)\resource\apps\aknmemorycardui.mif \
$(OLDUDEBZDIR)\resource\apps\aknmemorycardui.mbm \
$(OLDURELZDIR)\resource\apps\aknmemorycardui.mbm \
- ..\avkon2mifheader\avkon2mifheader_inst.cpp
+ ..\Avkon2Mifheader\avkon2mifheader_inst.cpp
FREEZE : ;
--- a/uifw/AvKon/group/bld.inf Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/group/bld.inf Tue May 11 16:27:42 2010 +0300
@@ -18,6 +18,7 @@
#include <platform_paths.hrh>
+
PRJ_EXPORTS
// OEM headers - not in SDK!
@@ -46,29 +47,39 @@
../conf/s60/avkon_102858F2.crml APP_LAYER_CRML(avkon_102858F2.crml)
../conf/s60/testability_2001844B.crml APP_LAYER_CRML(testability_2001844B.crml)
-mif2cdlindex.xml /epoc32/tools/makefile_templates/s60/mif2cdindex.xml
-mif2cdlindex.flm /epoc32/tools/makefile_templates/s60/mif2cdlindex.flm
-mif2cdlindex.meta /epoc32/tools/makefile_templates/s60/mif2cdlindex.meta
+mif2cdlindex.xml /epoc32/tools/makefile_templates/s60/mif2cdindex.xml
+mif2cdlindex.flm /epoc32/tools/makefile_templates/s60/mif2cdlindex.flm
+mif2cdlindex.meta /epoc32/tools/makefile_templates/s60/mif2cdlindex.meta
+
+smiley.mbg /epoc32/include/smiley.mbg
-../srcdata/avkonsystemsounds/volume_min.wav /epoc32/data/z/resource/avkonsystemsounds/volume_min.wav
-../srcdata/avkonsystemsounds/volume_max.wav /epoc32/data/z/resource/avkonsystemsounds/volume_max.wav
-../srcdata/avkonsystemsounds/battery_low.wav /epoc32/data/z/resource/avkonsystemsounds/battery_low.wav
-../srcdata/avkonsystemsounds/default_beep.wav /epoc32/data/z/resource/avkonsystemsounds/default_beep.wav
-../srcdata/avkonsystemsounds/battery_dead.wav /epoc32/data/z/resource/avkonsystemsounds/battery_dead.wav
+smiley.mif /epoc32/data/z/resource/apps/smiley.mif
+smiley.mif /epoc32/release/winscw/udeb/z/resource/apps/smiley.mif
+smiley.mif /epoc32/release/winscw/urel/z/resource/apps/smiley.mif
+smiley.mif /epoc32/release/armv5/udeb/Z/resource/apps/smiley.mif
+smiley.mif /epoc32/release/armv5/urel/z/resource/apps/smiley.mif
-../srcdata/avkonsystemsounds/volume_min.wav /epoc32/release/winscw/udeb/z/resource/avkonsystemsounds/volume_min.wav
-../srcdata/avkonsystemsounds/volume_max.wav /epoc32/release/winscw/udeb/z/resource/avkonsystemsounds/volume_max.wav
-../srcdata/avkonsystemsounds/battery_low.wav /epoc32/release/winscw/udeb/z/resource/avkonsystemsounds/battery_low.wav
-../srcdata/avkonsystemsounds/default_beep.wav /epoc32/release/winscw/udeb/z/resource/avkonsystemsounds/default_beep.wav
-../srcdata/avkonsystemsounds/battery_dead.wav /epoc32/release/winscw/udeb/z/resource/avkonsystemsounds/battery_dead.wav
+../srcdata/AvkonSystemSounds/volume_min.wav /epoc32/data/z/resource/avkonsystemsounds/volume_min.wav
+../srcdata/AvkonSystemSounds/volume_max.wav /epoc32/data/z/resource/avkonsystemsounds/volume_max.wav
+../srcdata/AvkonSystemSounds/battery_low.wav /epoc32/data/z/resource/avkonsystemsounds/battery_low.wav
+../srcdata/AvkonSystemSounds/default_beep.wav /epoc32/data/z/resource/avkonsystemsounds/default_beep.wav
+../srcdata/AvkonSystemSounds/battery_dead.wav /epoc32/data/z/resource/avkonsystemsounds/battery_dead.wav
-../srcdata/avkonsystemsounds/volume_min.wav /epoc32/release/winscw/urel/z/resource/avkonsystemsounds/volume_min.wav
-../srcdata/avkonsystemsounds/volume_max.wav /epoc32/release/winscw/urel/z/resource/avkonsystemsounds/volume_max.wav
-../srcdata/avkonsystemsounds/battery_low.wav /epoc32/release/winscw/urel/z/resource/avkonsystemsounds/battery_low.wav
-../srcdata/avkonsystemsounds/default_beep.wav /epoc32/release/winscw/urel/z/resource/avkonsystemsounds/default_beep.wav
-../srcdata/avkonsystemsounds/battery_dead.wav /epoc32/release/winscw/urel/z/resource/avkonsystemsounds/battery_dead.wav
+../srcdata/AvkonSystemSounds/volume_min.wav /epoc32/release/winscw/udeb/z/resource/avkonsystemsounds/volume_min.wav
+../srcdata/AvkonSystemSounds/volume_max.wav /epoc32/release/winscw/udeb/z/resource/avkonsystemsounds/volume_max.wav
+../srcdata/AvkonSystemSounds/battery_low.wav /epoc32/release/winscw/udeb/z/resource/avkonsystemsounds/battery_low.wav
+../srcdata/AvkonSystemSounds/default_beep.wav /epoc32/release/winscw/udeb/z/resource/avkonsystemsounds/default_beep.wav
+../srcdata/AvkonSystemSounds/battery_dead.wav /epoc32/release/winscw/udeb/z/resource/avkonsystemsounds/battery_dead.wav
+
+../srcdata/AvkonSystemSounds/volume_min.wav /epoc32/release/winscw/urel/z/resource/avkonsystemsounds/volume_min.wav
+../srcdata/AvkonSystemSounds/volume_max.wav /epoc32/release/winscw/urel/z/resource/avkonsystemsounds/volume_max.wav
+../srcdata/AvkonSystemSounds/battery_low.wav /epoc32/release/winscw/urel/z/resource/avkonsystemsounds/battery_low.wav
+../srcdata/AvkonSystemSounds/default_beep.wav /epoc32/release/winscw/urel/z/resource/avkonsystemsounds/default_beep.wav
+../srcdata/AvkonSystemSounds/battery_dead.wav /epoc32/release/winscw/urel/z/resource/avkonsystemsounds/battery_dead.wav
+
PRJ_MMPFILES
+
// Specify the .mmp files required for building the important component releasables.
// Note that you should specify any .mmp files for test programs further down the file.
//
@@ -117,7 +128,7 @@
END
START EXTENSION s60/mif2cdlindex
-OPTION TARGETFILE Avkon2mifheader_inst.cpp
+OPTION TARGETFILE avkon2mifheader_inst.cpp
OPTION GENPATH ../Avkon2MifHeader
OPTION MIFFILE avkon2.mif
// OPTION MIFDIR armv5 uses $(EPOCROOT)epoc32/data/Z/resource/apps and for winscw uses $(EPOCROOT)epoc32/release/winscw/$(CFG)/z/resource/apps
@@ -137,11 +148,11 @@
OPTION SOURCEFILE Iconlist3.txt
END
-START EXTENSION s60/mifconv
-OPTION TARGETFILE smiley.mif
-OPTION HEADERFILE smiley.mbg
-OPTION SOURCEFILE smileyiconlist2.txt
-END
+//START EXTENSION s60/mifconv
+//OPTION TARGETFILE smiley.mif
+//OPTION HEADERFILE smiley.mbg
+//OPTION SOURCEFILE smileyiconlist2.txt
+//END
#endif
#endif
--- a/uifw/AvKon/group/mif2cdlindex.flm Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/group/mif2cdlindex.flm Tue May 11 16:27:42 2010 +0300
@@ -6,7 +6,7 @@
# The file destinations relative to EPOCROOT
## Parameters that are expected:
-# TARGETFILE Avkon2mifheader_inst.cpp
+# TARGETFILE avkon2mifheader_inst.cpp
# GENPATH
# MIFFILE avkon2.mif
# DLLNAME Avkon2MifHeader
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uifw/AvKon/group/smiley.mbg Tue May 11 16:27:42 2010 +0300
@@ -0,0 +1,58 @@
+
+/* This file has been generated, DO NOT MODIFY. */
+enum TMifSmiley
+ {
+ EMbmSmileyQgn_indi_switch_smiley2 = 16384,
+ EMbmSmileyQgn_indi_switch_sct2 = 16386,
+ EMbmSmileyQgn_indi_smiley_angry = 16388,
+ EMbmSmileyQgn_indi_smiley_bigsmile = 16390,
+ EMbmSmileyQgn_indi_smiley_cry = 16392,
+ EMbmSmileyQgn_indi_smiley_evil = 16394,
+ EMbmSmileyQgn_indi_smiley_eyebrows = 16396,
+ EMbmSmileyQgn_indi_smiley_heart = 16398,
+ EMbmSmileyQgn_indi_smiley_irritated = 16400,
+ EMbmSmileyQgn_indi_smiley_kissing = 16402,
+ EMbmSmileyQgn_indi_smiley_nerd = 16404,
+ EMbmSmileyQgn_indi_smiley_neutral = 16406,
+ EMbmSmileyQgn_indi_smiley_pirate = 16408,
+ EMbmSmileyQgn_indi_smiley_sarcastic = 16410,
+ EMbmSmileyQgn_indi_smiley_sarcastic_mad = 16412,
+ EMbmSmileyQgn_indi_smiley_smile = 16414,
+ EMbmSmileyQgn_indi_smiley_spring = 16416,
+ EMbmSmileyQgn_indi_smiley_suprised = 16418,
+ EMbmSmileyQgn_indi_smiley_tongue = 16420,
+ EMbmSmileyQgn_indi_smiley_unhappy = 16422,
+ EMbmSmileyQgn_indi_smiley_verycool = 16424,
+ EMbmSmileyQgn_indi_smiley_wink = 16426,
+ EMbmSmileyQgn_indi_smiley_wink_grin = 16428,
+ EMbmSmileyQgn_indi_smiley_wondering = 16430,
+ EMbmSmileyQgn_indi_smiley_coffee = 16432,
+ EMbmSmileyQgn_indi_smiley_connive = 16434,
+ EMbmSmileyQgn_indi_smiley_denial = 16436,
+ EMbmSmileyQgn_indi_smiley_flirt = 16438,
+ EMbmSmileyQgn_indi_smiley_frustrated = 16440,
+ EMbmSmileyQgn_indi_smiley_gum = 16442,
+ EMbmSmileyQgn_indi_smiley_idea = 16444,
+ EMbmSmileyQgn_indi_smiley_innocent = 16446,
+ EMbmSmileyQgn_indi_smiley_laugh = 16448,
+ EMbmSmileyQgn_indi_smiley_party = 16450,
+ EMbmSmileyQgn_indi_smiley_run = 16452,
+ EMbmSmileyQgn_indi_smiley_silly = 16454,
+ EMbmSmileyQgn_indi_smiley_sleep = 16456,
+ EMbmSmileyQgn_indi_smiley_surprised = 16458,
+ EMbmSmileyQgn_indi_smiley_anim_coffee = 16460,
+ EMbmSmileyQgn_indi_smiley_anim_connive = 16462,
+ EMbmSmileyQgn_indi_smiley_anim_denial = 16464,
+ EMbmSmileyQgn_indi_smiley_anim_flirt = 16466,
+ EMbmSmileyQgn_indi_smiley_anim_frustrated = 16468,
+ EMbmSmileyQgn_indi_smiley_anim_gum = 16470,
+ EMbmSmileyQgn_indi_smiley_anim_idea = 16472,
+ EMbmSmileyQgn_indi_smiley_anim_innocent = 16474,
+ EMbmSmileyQgn_indi_smiley_anim_laugh = 16476,
+ EMbmSmileyQgn_indi_smiley_anim_party = 16478,
+ EMbmSmileyQgn_indi_smiley_anim_run = 16480,
+ EMbmSmileyQgn_indi_smiley_anim_silly = 16482,
+ EMbmSmileyQgn_indi_smiley_anim_sleep = 16484,
+ EMbmSmileyQgn_indi_smiley_anim_surprised = 16486,
+ EMbmSmileyLastElement
+ };
Binary file uifw/AvKon/group/smiley.mif has changed
--- a/uifw/AvKon/notifsrc/AknSDData.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/notifsrc/AknSDData.cpp Tue May 11 16:27:42 2010 +0300
@@ -15,7 +15,7 @@
*
*/
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
#include <s32mem.h>
#include "aknSDData.h"
--- a/uifw/AvKon/src/AknAdaptiveSearchGrid.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/AknAdaptiveSearchGrid.cpp Tue May 11 16:27:42 2010 +0300
@@ -499,22 +499,6 @@
AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EControlPane,
controlPaneRect );
currentWindowRect.iBr.iY = controlPaneRect.iTl.iY;
-
- TRect mainPaneRect;
- AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane,
- mainPaneRect );
-
- if ( 0 != iFindpaneRect.Size().iWidth
- && iFindpaneRect.Size().iWidth <= mainPaneRect.Size().iWidth )
- {
- currentWindowRect.iBr.iX = currentWindowRect.iTl.iX
- + iFindpaneRect.Size().iWidth;
- }
- else
- {
- currentWindowRect.iBr.iX = currentWindowRect.iTl.iX
- + mainPaneRect.Size().iWidth;
- }
}
TRect grid_pane = RectFromLayout( currentWindowRect, AknLayoutScalable_Apps::grid_afind_pane( iLayoutOption ) );
@@ -1163,24 +1147,15 @@
TPointerEvent& pointerEvent = *aEvent.Pointer();
if( pointerEvent.iType == TPointerEvent::EButton1Down )
- {
- if ( !iFindpaneRect.Contains( pointerEvent.iPosition ) &&
- aDestination != this )
- {
- MTouchFeedback* feedback = MTouchFeedback::Instance();
-
- // according to Touch UI spec tapping on input frame should cause feedback,
- // even if action is to cancel dialog..
- if ( feedback )
+ {
+ if ( !iFindpaneRect.Contains( pointerEvent.iPosition ) &&
+ aDestination != this )
{
- feedback->InstantFeedback( this, ETouchFeedbackBasic );
+ HideL();
+ return;
}
-
- HideL();
- return;
- }
- }
- }
+ }
+ }
}
--- a/uifw/AvKon/src/AknAppUi.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/AknAppUi.cpp Tue May 11 16:27:42 2010 +0300
@@ -69,7 +69,7 @@
#include <gfxtranseffect/gfxtranseffect.h>
#include <aknSDData.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
#include <startupdomainpskeys.h>
#include "transitionmanager.h"
@@ -1809,6 +1809,12 @@
EXPORT_C void CAknAppUi::PrepareToExit()
{
+ // Hide application toolbar to prevent it from showing
+ // after views are deleted
+ if ( CurrentFixedToolbar() )
+ {
+ CurrentFixedToolbar()->SetToolbarVisibility( EFalse );
+ }
if( IsForeground() && Document() )
{
//only if focused, otherwise next app HandleForeground may never come.
--- a/uifw/AvKon/src/AknCharMap.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/AknCharMap.cpp Tue May 11 16:27:42 2010 +0300
@@ -584,7 +584,7 @@
void CAknSctNaviButton::SetFocused(TBool aState)
{
iButtonControl->SetFocus(aState);
- iButtonControl->DrawNow();
+ iButtonControl->DrawDeferred();
}
void CAknSctNaviButton::SetEnabled(TBool aState)
@@ -1753,7 +1753,7 @@
void CAknSctCategoryButton::SetFocused(TBool aState)
{
iButtonControl->SetFocus(aState);
- iButtonControl->DrawNow();
+ iButtonControl->DrawDeferred();
}
@@ -2962,7 +2962,10 @@
iPictographCases.Close();
iPictographPages.Close();
MTouchFeedback* feedback = MTouchFeedback::Instance();
- feedback->RemoveFeedbackForControl( this );
+ if ( feedback != NULL )
+ {
+ feedback->RemoveFeedbackForControl( this );
+ }
}
void CAknCharMap::DoLayout()
--- a/uifw/AvKon/src/AknCheckBoxSettingPage.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/AknCheckBoxSettingPage.cpp Tue May 11 16:27:42 2010 +0300
@@ -146,15 +146,21 @@
CreateCheckBoxBitmapsL();
+ // Only a reference to the CBase object; not owned
+ CAknSetStyleListBox* listBox = ListBoxControl();
+
+ //
+ // SelectItemL make the view item drawn by default, SetDisableRedraw can remove flick
+ //
+ TBool bRedrawDisabled = listBox->View()->RedrawDisabled();
+ listBox->View()->SetDisableRedraw( ETrue );
GenerateInternalArrayAndGiveToListBoxL();
+ listBox->View()->SetDisableRedraw( bRedrawDisabled );
// This updates the CBA
CheckAndSetDataValidity();
UpdateCbaL();
- // Only a reference to the CBase object; not owned
- CAknSetStyleListBox* listBox = ListBoxControl();
-
listBox->SetListBoxObserver(this);
// Set the scroller indication to appear when needed
--- a/uifw/AvKon/src/AknIndicatorContainer.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/AknIndicatorContainer.cpp Tue May 11 16:27:42 2010 +0300
@@ -1158,6 +1158,16 @@
CAknSmallIndicator* indicatorNotifier = CAknSmallIndicator::NewLC( TUid::Uid( 0 ) );
indicatorNotifier->HandleIndicatorTapL();
+ //for indicator popup event
+ MTouchFeedback* feedback = MTouchFeedback::Instance();
+ if ( feedback )
+ {
+ feedback->InstantFeedback(
+ this,
+ ETouchFeedbackPopUp,
+ ETouchFeedbackVibra,
+ aPointerEvent );
+ }
CleanupStack::PopAndDestroy( indicatorNotifier );
}
@@ -4058,9 +4068,8 @@
}
}
- if ( indicator &&
- indicator->IndicatorState() ||
- indicator->Priority() != KIndicatorNotShown )
+ if (indicator && (indicator->IndicatorState() ||
+ indicator->Priority()!= KIndicatorNotShown))
{
SizeChanged();
DrawDeferred();
--- a/uifw/AvKon/src/AknInfoPopupNote.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/AknInfoPopupNote.cpp Tue May 11 16:27:42 2010 +0300
@@ -472,7 +472,8 @@
|| aPointerEvent.iType == TPointerEvent::EButton1Up
|| aPointerEvent.iType == TPointerEvent::EDrag )
{
- if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
+ Hide();
+ if ( aPointerEvent.iType == TPointerEvent::EButton1Down && !IsVisible() )
{
MTouchFeedback* feedback = MTouchFeedback::Instance();
if ( feedback )
@@ -481,7 +482,6 @@
}
}
- Hide();
SetPointerCapture( EFalse );
}
}
--- a/uifw/AvKon/src/AknNoteDialog.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/AknNoteDialog.cpp Tue May 11 16:27:42 2010 +0300
@@ -77,7 +77,7 @@
if ( nodeWindowGroupId == focusedWindowGroupId )
{
- return ETrue;
+ return aThis->IsFocused();
}
TInt count = wsSession.NumWindowGroups( 0 );
@@ -860,18 +860,21 @@
// Add tactile feedbacup when tap can close note.
if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
{
- if ( DialogFlags()&EEikDialogFlagCloseDialogWhenTapped )
- {
- MTouchFeedback* feedback = MTouchFeedback::Instance();
- if ( feedback )
+ if ( DialogFlags() & EEikDialogFlagCloseDialogWhenTapped )
+ {
+ if( Rect().Contains( aPointerEvent.iPosition ) )
{
- feedback->InstantFeedback( ETouchFeedbackPopUp );
+ MTouchFeedback* feedback = MTouchFeedback::Instance();
+ if ( feedback )
+ {
+ feedback->InstantFeedback( ETouchFeedbackPopUp );
+ }
}
- }
+ }
}
else if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
{
- if ( DialogFlags()&EEikDialogFlagCloseDialogWhenTapped )
+ if ( DialogFlags() & EEikDialogFlagCloseDialogWhenTapped )
{
if ( ctrl )
{
--- a/uifw/AvKon/src/AknPopupSettingPage.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/AknPopupSettingPage.cpp Tue May 11 16:27:42 2010 +0300
@@ -677,7 +677,14 @@
SetEditedItemFrameIID( KAknsIIDQsnFrSetOpt, KAknsIIDQsnFrSetOptCenter );
iQueryValue.SetQueryMode( MAknQueryValue::ESettingPageMode );
+ //
+ // SetQueryValue make the view item drawn by default, SetDisableRedraw can remove flick
+ //
+ TBool bRedrawDisabled = PopupSettingListBox()->View()->RedrawDisabled();
+ PopupSettingListBox()->View()->SetDisableRedraw( ETrue );
PopupSettingListBox()->SetQueryValueL( &iQueryValue );
+ PopupSettingListBox()->View()->SetDisableRedraw( bRedrawDisabled);
+
CheckAndSetDataValidity();
UpdateCbaL();
--- a/uifw/AvKon/src/AknPreviewPopUp.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/AknPreviewPopUp.cpp Tue May 11 16:27:42 2010 +0300
@@ -218,8 +218,12 @@
return;
}
+ // Skip disappear transition if the popup is either permanent, fixed or
+ // faded. Fading status is checked because there can't be two parallel
+ // effects applied to the same window.
TBool useTfx = !( iFlags & CAknPreviewPopUpController::EPermanentMode
- || iFlags & CAknPreviewPopUpController::EFixedMode );
+ || iFlags & CAknPreviewPopUpController::EFixedMode )
+ && !Window().IsFaded();
if ( useTfx && GfxTransEffect::IsRegistered( this ) )
{
--- a/uifw/AvKon/src/AknQueryControl.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/AknQueryControl.cpp Tue May 11 16:27:42 2010 +0300
@@ -237,8 +237,11 @@
if ( iParent->QueryType() == EPinLayout )
{
_AKNTRACE( "[%s][%s] ", "RevealSecretText( EFalse )", __FUNCTION__);
- static_cast<CAknNumericSecretEditor*>
- ( iParent->ControlByLayoutOrNull( EPinLayout ) )->RevealSecretText( EFalse );
+ if( iParent->ControlByLayoutOrNull( EPinLayout ) )
+ {
+ static_cast<CAknNumericSecretEditor*>
+ ( iParent->ControlByLayoutOrNull( EPinLayout ) )->RevealSecretText( EFalse );
+ }
}
}
--- a/uifw/AvKon/src/AknSettingPage.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/AknSettingPage.cpp Tue May 11 16:27:42 2010 +0300
@@ -1694,6 +1694,11 @@
}
}
+ //
+ // Set editor control to be invisible
+ //
+ iEditorControl->MakeVisible( EFalse );
+
DynamicInitL();
ActivateL();
@@ -1711,11 +1716,13 @@
demarcation );
GfxTransEffect::SetDemarcation( this, demarcation );
+ iEditorControl->MakeVisible( ETrue );
MakeVisible( ETrue );
GfxTransEffect::End( this );
}
else
{
+ iEditorControl->MakeVisible( ETrue );
MakeVisible( ETrue );
}
@@ -1777,7 +1784,9 @@
StartActiveScheduler();
}
else
- AttemptExitL(EFalse);
+ {
+ AttemptExitL(EFalse);
+ }
iEikonEnv->EikAppUi()->RemoveFromStack(this);
CleanupStack::Pop(); // this
--- a/uifw/AvKon/src/AknTransparentCameraSettingPage.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/AknTransparentCameraSettingPage.cpp Tue May 11 16:27:42 2010 +0300
@@ -225,7 +225,16 @@
// Set the current "pushed in" indication
if ( iCurrentSelectionIndex != -1 )
- listBox->View()->SelectItemL( iCurrentSelectionIndex );
+ {
+ //
+ // SelectItemL make the view item drawn by default, SetDisableRedraw can remove flick
+ //
+ TBool bRedrawDisabled = listBox->View()->RedrawDisabled();
+ listBox->View()->SetDisableRedraw( ETrue );
+
+ listBox->View()->SelectItemL( iCurrentSelectionIndex );
+ listBox->View()->SetDisableRedraw( bRedrawDisabled );
+ }
// Set the scroller indication off
listBox->CreateScrollBarFrameL(ETrue);
@@ -235,7 +244,9 @@
listBox->UpdateScrollBarsL();
if(!IsBackgroundDrawingEnabled())
- listBox->ScrollBarFrame()->DrawBackground(EFalse, EFalse);
+ {
+ listBox->ScrollBarFrame()->DrawBackground(EFalse, EFalse);
+ }
// Force a size changed
--- a/uifw/AvKon/src/AknViewAppUi.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/AknViewAppUi.cpp Tue May 11 16:27:42 2010 +0300
@@ -270,13 +270,6 @@
RemoveFromStack( iExtension->iNavigator );
#endif // RD_SPLIT_VIEW
- // Hide application toolbar to prevent it from showing
- // after views are deleted
- if ( CAknAppUi::CurrentFixedToolbar() )
- {
- CAknAppUi::CurrentFixedToolbar()->SetToolbarVisibility( EFalse );
- }
-
delete iClearer;
delete iShutter;
delete iActivationTick;
--- a/uifw/AvKon/src/Aknslider.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/Aknslider.cpp Tue May 11 16:27:42 2010 +0300
@@ -65,8 +65,6 @@
const TInt KScrollRepeatTimeout = 250000; // 0.25 seconds
const TInt KStableFeedbackIntesity = 100;
const TInt KFeedbackTimeout = 100000;
-const TInt KNoFeedbackTimeout = 0;
-const TInt KStepThreshold = 15;
// ============================================================================
// Internal class to hold slider control data, primarily coming from resource.
NONSHARABLE_CLASS( CAknSliderData ): public CBase
@@ -4255,7 +4253,7 @@
{
intensity = FeedbackIntensity();
}
- feedback->StartFeedback( this, ETouchContinuousSlider, aPointerEvent, intensity, aTimeout );
+ feedback->StartFeedback( this, ETouchDynamicSlider, aPointerEvent, intensity, aTimeout );
iExt->SetFlag( CAknSliderExtension::EFlagPlayingContinuousFb );
}
}
--- a/uifw/AvKon/src/aknApp.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/aknApp.cpp Tue May 11 16:27:42 2010 +0300
@@ -31,6 +31,7 @@
#include <UikonInternalPSKeys.h>
#include <e32property.h>
#include <AknSgcc.h>
+#include <w32std.h>
LOCAL_C TBool IsInHiddenList(const TUid& aUid)
{
@@ -64,15 +65,40 @@
CApaWindowGroupName* wgName = CApaWindowGroupName::NewLC(ws, myWg);
wgName->SetAppUid(uid);
wgName->SetWindowGroupName(env->RootWin());
-
- // Use a CAknTaskList to check for root instances of apps
- CAknTaskList* taskList = CAknTaskList::NewLC(ws);
- TBool foundInstance = EFalse;
-
+
+ // Use a CAknTaskList to check for root instances of apps
+ CAknTaskList* taskList = CAknTaskList::NewLC(ws);
+ TBool foundInstance = EFalse;
+
// Look for another instance of this app
while (wgId>=0)
{
- if (wgId && wgId != myWg && taskList->IsRootWindowGroup(wgId))
+ TBool rootTask = taskList->IsRootWindowGroup(wgId);
+ TBool rootWg = EFalse;
+ TInt wndPriority = -1;
+ if ( wgId != myWg && wgId > 0 && !rootTask )
+ {
+ wndPriority = ws.GetWindowGroupOrdinalPriority( wgId );
+ RArray<RWsSession::TWindowGroupChainInfo> wgs;
+ // it seems effecient to call WindowGroupList here, this codes will seldom executed.
+ ws.WindowGroupList( wndPriority, &wgs );
+
+ TInt count = wgs.Count();
+ for ( TInt ii=0; ii<count; ii++ )
+ {
+ const RWsSession::TWindowGroupChainInfo& info = wgs[ii];
+ // find the window group id and check that it has no parent
+ if ( info.iId == wgId )
+ {
+ rootWg = (info.iParentId <= 0);
+ break;
+ }
+ }
+
+ wgs.Close();
+ }
+
+ if (wgId && wgId != myWg && ( rootWg || rootTask ) )
{ // found another app, switch to it & die
/*
TApaTask other(ws);
--- a/uifw/AvKon/src/aknbattery.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/aknbattery.cpp Tue May 11 16:27:42 2010 +0300
@@ -578,10 +578,13 @@
{
// set flag that pointerdown was inside battery pane
iPrivateFlags |= EAknBatteryPaneButton1DownInBatteryRect;
- MTouchFeedback* feedback = MTouchFeedback::Instance();
- if ( feedback )
+ if ( !AknStatuspaneUtils::ExtendedFlatLayoutActive() )
{
- feedback->InstantFeedback( ETouchFeedbackSensitiveButton );
+ MTouchFeedback* feedback = MTouchFeedback::Instance();
+ if ( feedback )
+ {
+ feedback->InstantFeedback( ETouchFeedbackSensitiveButton );
+ }
}
}
}
@@ -647,6 +650,15 @@
CAknSmallIndicator* indicatorNotifier =
CAknSmallIndicator::NewLC( TUid::Uid( 0 ) );
indicatorNotifier->HandleIndicatorTapL();
+ //for indicator popup event
+ if ( feedback )
+ {
+ feedback->InstantFeedback(
+ this,
+ ETouchFeedbackPopUp,
+ ETouchFeedbackVibra,
+ aPointerEvent );
+ }
CleanupStack::PopAndDestroy( indicatorNotifier );
}
}
--- a/uifw/AvKon/src/aknchoicelist.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/aknchoicelist.cpp Tue May 11 16:27:42 2010 +0300
@@ -474,7 +474,8 @@
if ( aKeyEvent.iScanCode == EStdKeyUpArrow ||
aKeyEvent.iScanCode == EStdKeyDownArrow ||
aKeyEvent.iScanCode == EStdKeyEnter ||
- aKeyEvent.iScanCode == EStdKeyDevice3 )
+ aKeyEvent.iScanCode == EStdKeyDevice3 ||
+ aKeyEvent.iScanCode == EStdKeyNkpEnter )
{
return iList->OfferKeyEventL(aKeyEvent, aType);
}
--- a/uifw/AvKon/src/akncombinedpane.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/akncombinedpane.cpp Tue May 11 16:27:42 2010 +0300
@@ -25,6 +25,7 @@
#include <AknSmallIndicator.h>
#include <aknappui.h>
#include <uikon/eikdefmacros.h>
+#include <touchfeedback.h>
#include "akncombinedpane.h"
#include "aknstatuspanedatasubscriber.h"
@@ -192,6 +193,16 @@
CAknSmallIndicator* indicatorNotifier =
CAknSmallIndicator::NewLC( TUid::Uid( 0 ) );
indicatorNotifier->HandleIndicatorTapL();
+ //for indicator popup event
+ MTouchFeedback* feedback = MTouchFeedback::Instance();
+ if ( feedback )
+ {
+ feedback->InstantFeedback(
+ this,
+ ETouchFeedbackPopUp,
+ ETouchFeedbackVibra,
+ aPointerEvent );
+ }
CleanupStack::PopAndDestroy( indicatorNotifier );
}
--- a/uifw/AvKon/src/akndigitalclock.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/akndigitalclock.cpp Tue May 11 16:27:42 2010 +0300
@@ -445,6 +445,16 @@
CAknSmallIndicator* indicatorNotifier =
CAknSmallIndicator::NewLC( TUid::Uid( 0 ) );
indicatorNotifier->HandleIndicatorTapL();
+ //for indicator popup event
+ MTouchFeedback* feedback = MTouchFeedback::Instance();
+ if ( feedback )
+ {
+ feedback->InstantFeedback(
+ this,
+ ETouchFeedbackPopUp,
+ ETouchFeedbackVibra,
+ aPointerEvent );
+ }
CleanupStack::PopAndDestroy( indicatorNotifier );
// Up event received, reset button down flag.
--- a/uifw/AvKon/src/akndiscreetpopupcontrol.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/akndiscreetpopupcontrol.cpp Tue May 11 16:27:42 2010 +0300
@@ -49,7 +49,8 @@
EPressedDown, // Pointer down is received in popup area
EDismissed, // Popup is dismissed (pointer up is received in popup area)
EGlobal, // Popup is global
- EDragged // Pointer is dragged while popup open
+ EDragged, // Pointer is dragged while popup open
+ EStartTimerAgain // Start timer again when timer is out and keep pressing
};
@@ -412,13 +413,19 @@
void CAknDiscreetPopupControl::DoTimeOut()
{
_AKNTRACE_FUNC_ENTER;
- if ( !iInternalFlags.IsSet( EPressedDown ) )
+ if ( !iInternalFlags.IsSet( EPressedDown ) ||
+ iInternalFlags.IsSet( EStartTimerAgain ) )
{
TRAP_IGNORE( RequestExitL() );
}
else
{
iTimer->Cancel();
+ // if time is out and keep pressing, start short timer again.
+ iInternalFlags.Set( EStartTimerAgain );
+ iTimer->Start( KShortTimeout,
+ 0,
+ TCallBack( TimeOut, this ) );
}
_AKNTRACE_FUNC_EXIT;
}
@@ -438,6 +445,7 @@
}
HidePopup();
ReportEventL( MCoeControlObserver::EEventRequestExit );
+ iInternalFlags.Clear( EStartTimerAgain );
iInternalFlags.Clear( EPressedDown );
_AKNTRACE_FUNC_EXIT;
}
@@ -763,52 +771,46 @@
{
TBool eventInRect( Rect().Contains( aPointerEvent.iPosition ) );
- // The discreet popup which is global won't handle pointer event if there is notifier be popping up.
- if( !iInternalFlags.IsSet( EGlobal ) || iCoeEnv->RootWin().OrdinalPriority() < ECoeWinPriorityAlwaysAtFront )
+ // Pointer down - set pressed-down state (popup completely visible while
+ // pressed-down)
+ if ( aPointerEvent.iType == TPointerEvent::EButton1Down
+ && eventInRect
+ && iInternalFlags.IsClear( EDismissed ) )
{
- // Pointer down - set pressed-down state (popup completely visible while
- // pressed-down)
- if ( aPointerEvent.iType == TPointerEvent::EButton1Down
- && eventInRect
- && iInternalFlags.IsClear( EDismissed ) )
- {
- _AKNTRACE( "CAknDiscreetPopupControl::HandlePointerEventL, TPointerEvent::EButton1Down" );
- SetPressedDownState( ETrue );
- ImmediateFeedback( ETouchFeedbackSensitive );
- }
-
- // Pointer drag - reset pressed-down state if pointer out of popup area
- else if ( aPointerEvent.iType == TPointerEvent::EDrag )
+ _AKNTRACE( "CAknDiscreetPopupControl::HandlePointerEventL, TPointerEvent::EButton1Down" );
+ SetPressedDownState( ETrue );
+ ImmediateFeedback( ETouchFeedbackSensitive );
+ }
+
+ // Pointer drag - reset pressed-down state if pointer out of popup area
+ else if ( aPointerEvent.iType == TPointerEvent::EDrag )
+ {
+ _AKNTRACE( "CAknDiscreetPopupControl::HandlePointerEventL, TPointerEvent::EDrag" );
+ iInternalFlags.Set( EDragged );
+ if ( !eventInRect && iInternalFlags.IsSet( EPressedDown ) )
{
- _AKNTRACE( "CAknDiscreetPopupControl::HandlePointerEventL, TPointerEvent::EDrag" );
- iInternalFlags.Set( EDragged );
- if ( !eventInRect && iInternalFlags.IsSet( EPressedDown ) )
- {
- iInternalFlags.Clear( EPressedDown );
- }
- else if ( eventInRect && !iInternalFlags.IsSet( EPressedDown ) )
- {
- iInternalFlags.Set( EPressedDown );
- }
+ iInternalFlags.Clear( EPressedDown );
}
-
- // Pointer up - reset pressed-down state
- else if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
- {
- _AKNTRACE( "CAknDiscreetPopupControl::HandlePointerEventL, TPointerEvent::EButton1Up" );
- if ( eventInRect )
- {
- NotifyObserverL();
- }
- // Start fading away
- if ( iInternalFlags.IsClear( EDismissed ) )
- {
- iInternalFlags.Set( EDismissed );
- RequestExitL();
- }
- SetPressedDownState( EFalse );
+ else if ( eventInRect && !iInternalFlags.IsSet( EPressedDown ) )
+ {
+ iInternalFlags.Set( EPressedDown );
}
}
+ // Pointer up - reset pressed-down state
+ else if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
+ {
+ _AKNTRACE( "CAknDiscreetPopupControl::HandlePointerEventL, TPointerEvent::EButton1Up" );
+ if ( eventInRect )
+ {
+ NotifyObserverL();
+ }
+ // Start fading away
+ if ( iInternalFlags.IsClear( EDismissed ) )
+ {
+ iInternalFlags.Set( EDismissed );
+ RequestExitL();
+ }
+ SetPressedDownState( EFalse );
+ }
}
-
--- a/uifw/AvKon/src/aknindicator.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/aknindicator.cpp Tue May 11 16:27:42 2010 +0300
@@ -286,6 +286,11 @@
this->MakeVisible(EFalse);
DeleteBitmaps();
}
+ else if (iState == EAknIndicatorStateAnimate )
+ {
+ MakeVisible( ETrue );
+ }
+
SizeChanged();
}
--- a/uifw/AvKon/src/aknlistquerydialog.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/aknlistquerydialog.cpp Tue May 11 16:27:42 2010 +0300
@@ -19,7 +19,7 @@
#include <AknMediatorFacade.h>
#include <MediatorEventProvider.h>
#include <MediatorDomainUIDs.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
#include "aknPopupHeadingPane.h"
#include "aknlistquerycontrol.h"
@@ -262,9 +262,17 @@
listbox->SetListBoxObserver(this);
CAknListQueryControl* listControl = ListControl();
- if (listControl)
- listControl->SetLayout(&iLayout);
- }
+ if ( listControl )
+ {
+ listControl->SetLayout( &iLayout );
+ }
+
+ if ( iAvkonAppUi->IsSingleClickCompatible() &&
+ !IsLeftSoftkeyShown() )
+ {
+ MakeLeftSoftkeyVisible( EFalse );
+ }
+ }
if (FindBox())
{
@@ -461,6 +469,16 @@
iIdle->Start(TCallBack(ClosePopupAcceptingChanges, this));
}
}
+
+ if( iAvkonAppUi->IsSingleClickCompatible() &&
+ aListBox->IsMultiselection() )
+ {
+ CEikListBox* listbox = ListBox();
+ if( listbox )
+ {
+ MakeLeftSoftkeyVisible( IsLeftSoftkeyShown() );
+ }
+ }
}
break;
default:
@@ -565,16 +583,22 @@
}
TInt currentSelection = listbox->CurrentItemIndex();
- if( currentSelection == KErrNotFound )
+ TBool isSingleClick = iAvkonAppUi->IsSingleClickCompatible();
+ if ( currentSelection == KErrNotFound )
{
- MakeLeftSoftkeyVisible(EFalse);
+ MakeLeftSoftkeyVisible( EFalse );
}
- else
+ else if ( isSingleClick )
{
- MakeLeftSoftkeyVisible(ETrue);
+ MakeLeftSoftkeyVisible( IsLeftSoftkeyShown() );
}
TKeyResponse response = listbox->OfferKeyEventL( aKeyEvent, aType);
+
+ if ( isSingleClick && IsLeftSoftkeyShown() )
+ {
+ MakeLeftSoftkeyVisible( ETrue );
+ }
if (currentSelection != listbox->CurrentItemIndex() && iMediatorObs)
{
iMediatorObs->UpdateL(listbox->CurrentItemIndex());
@@ -770,6 +794,18 @@
return NULL;
}
+TBool CAknListQueryDialog::IsLeftSoftkeyShown()
+ {
+ CEikListBox* listbox = ListBox();
+ __ASSERT_DEBUG( listbox, Panic(EAknPanicNullPointer));
+ // This flag indicators that listbox is a viewer listbox.
+ TBool isViewMode = listbox->View()->ItemDrawer()->Flags() &
+ CListItemDrawer::EDisableHighlight;
+
+ return listbox->IsHighlightEnabled() ||
+ listbox->SelectionIndexes()->Count() > 0 || isViewMode;
+ }
+
EXPORT_C void CAknListQueryDialog::SetTone(TInt aTone)
{
iTone = (TTone)aTone;
--- a/uifw/AvKon/src/aknlists.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/aknlists.cpp Tue May 11 16:27:42 2010 +0300
@@ -1612,6 +1612,12 @@
TInt pos = -1;
TBool removeicon = (!aItemIsSelected && !ItemMarkReverse()) || (aItemIsSelected && ItemMarkReverse());
+
+ if ( Flags() & CListItemDrawer::EMarkingModeEnabled )
+ {
+ removeicon = EFalse;
+ }
+
if ( Flags() & EDrawMarkSelection && ItemMarkPosition() != -1 && removeicon)
{
repl.Set( ItemMarkReplacement() );
@@ -3097,8 +3103,23 @@
transApi->StartDrawing( MAknListBoxTfxInternal::EListView );
}
#endif //RD_UI_TRANSITION_EFFECTS_LIST
- gc->SetBrushColor(this->BackColor());
- AknsDrawUtils::BackgroundBetweenRects( AknsUtils::SkinInstance(), cc, this, *gc, clientRect, this->iView->ViewRect() );
+
+ if ( this->iItemDrawer->Flags()
+ & CListItemDrawer::EDrawWholeBackground )
+ {
+ AknsDrawUtils::Background(
+ AknsUtils::SkinInstance(), cc, this, *gc, clientRect );
+
+ this->iItemDrawer->SetFlags( CListItemDrawer::EBackgroundDrawn );
+ }
+ else
+ {
+ gc->SetBrushColor(this->BackColor());
+ AknsDrawUtils::BackgroundBetweenRects(
+ AknsUtils::SkinInstance(), cc, this, *gc, clientRect,
+ this->iView->ViewRect() );
+ }
+
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
if ( transApi )
{
--- a/uifw/AvKon/src/aknlongtapanimation.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/aknlongtapanimation.cpp Tue May 11 16:27:42 2010 +0300
@@ -24,8 +24,6 @@
#include <AknTasHook.h> // for testability hooks
#include <touchfeedback.h>
-const TInt KStartIntensity = 1;
-const TInt KEndIntensity = 100;
#include "aknlongtapanimation.h"
enum TInternalFlags
@@ -195,15 +193,9 @@
MTouchFeedback* feedback = MTouchFeedback::Instance();
if ( feedback )
{
- CBitmapAnimClientData* animData = iAnim->BitmapAnimData();
- TInt interval = animData->FrameIntervalInMilliSeconds()
- * KConversionFromMillisecondsToMicroseconds;
- TInt frameCount = animData->FrameArray().Count();
-
- // timeout should be greater than normal animation time
- // so that timeout does not interfere into normal operation
- TInt timeout = interval * (frameCount+1);
- feedback->StartFeedback( this, ETouchContinuousSmooth, NULL, KStartIntensity, timeout );
+ feedback->InstantFeedback(
+ this, ETouchFeedbackLongTap,
+ ETouchFeedbackVibra, TPointerEvent() );
}
StartAnimation();
}
@@ -375,11 +367,6 @@
{
iExtension->iTimer->Cancel();
iExtension->iFlags &= ~EAnimationStarted;
- MTouchFeedback* feedback = MTouchFeedback::Instance();
- if ( feedback )
- {
- feedback->StopFeedback( this );
- }
}
}
@@ -398,14 +385,6 @@
{
iExtension->iIndex = frameCount - 1;
}
- MTouchFeedback* feedback = MTouchFeedback::Instance();
- if ( feedback )
- {
- // intensity should go from 0 to 100
- TInt intensity = KEndIntensity
- * (iExtension->iIndex+1) / frameCount;
- feedback->ModifyFeedback( this, intensity );
- }
DrawNow();
}
--- a/uifw/AvKon/src/aknmessagequerydialog.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/aknmessagequerydialog.cpp Tue May 11 16:27:42 2010 +0300
@@ -1061,7 +1061,7 @@
return EFalse;
}
TInt curLink = control->CurrentLink();
- TRAPD( err, iMsgQueryExtension->ExecuteLinkCallbackL( curLink ) );
+ TRAP_IGNORE( iMsgQueryExtension->ExecuteLinkCallbackL( curLink ) );
control->DehighlightLink();
_AKNTRACE_FUNC_EXIT;
return ETrue;
--- a/uifw/AvKon/src/aknsfld.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/aknsfld.cpp Tue May 11 16:27:42 2010 +0300
@@ -246,7 +246,7 @@
{
aFieldStyle = EPopupWindow;
}
-
+ iColumnFlag = 0xFFFFFFFF;
switch ( aFieldStyle )
{
case EFixed:
@@ -304,8 +304,7 @@
case EAdaptiveSearch:
bitmapId = EMbmAvkonQgn_indi_find_glass;
bitmapMaskId = EMbmAvkonQgn_indi_find_glass_mask;
- SetContainerWindowL( aParent );
- iColumnFlag = 0xFFFFFFFF;
+ SetContainerWindowL( aParent );
if( AknLayoutUtils::PenEnabled() )
{
iAdaptiveSearch = CAknAdaptiveSearch::NewL( aTextLimit, aFieldStyle );
@@ -323,7 +322,6 @@
bitmapId = EMbmAvkonQgn_indi_find_glass;
bitmapMaskId = EMbmAvkonQgn_indi_find_glass_mask;
CreateWindowL( &aParent );
- iColumnFlag = 0xFFFFFFFF;
if( AknLayoutUtils::PenEnabled() )
{
iAdaptiveSearch = CAknAdaptiveSearch::NewL( aTextLimit, aFieldStyle );
@@ -342,7 +340,6 @@
bitmapMaskId = EMbmAvkonQgn_indi_find_glass_mask;
flags |= CAknInputFrame::EPopupLayout;
CreateWindowL();
- iColumnFlag = 0xFFFFFFFF;
iIsPopup = ETrue;
if( AknLayoutUtils::PenEnabled() )
{
@@ -376,7 +373,6 @@
flags |= CAknInputFrame::EPopupWindowLayout;
flags |= CAknInputFrame::EFixedFindWithoutLine;
SetContainerWindowL( aParent );
- iColumnFlag = 0xFFFFFFFF;
if( AknLayoutUtils::PenEnabled() )
{
iAdaptiveSearch = CAknAdaptiveSearch::NewL( aTextLimit, aFieldStyle );
@@ -1180,7 +1176,7 @@
// -----------------------------------------------------------------------------
// CAknSearchField::SetListColumnFilterFlags
-// Set flag of columns for adaptive search grid.
+// Set flag of columns.
// -----------------------------------------------------------------------------
//
EXPORT_C void CAknSearchField::SetListColumnFilterFlags( const TBitFlags32 aFlag )
--- a/uifw/AvKon/src/aknutils.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/aknutils.cpp Tue May 11 16:27:42 2010 +0300
@@ -1885,14 +1885,17 @@
// an index to end of array
TInt indexEnd = iShownIndexes->Count();
+
+ TBitFlags32 columnFlag = iSearchField->ListColumnFilterFlags();
+ HBufC16* temptext = HBufC16::NewL( KMatchingBufferLength );
+ CleanupStack::PushL( temptext );
+ TPtr ptr_temptext( temptext->Des() );
+
// If adaptive search manage with next characters
if( iSearchField && IsAdaptiveSearch() )
{
ClearNextChars();
- TBitFlags32 columnFlag = iSearchField->ListColumnFilterFlags();
- HBufC16* temptext = HBufC16::NewL( KMatchingBufferLength );
- CleanupStack::PushL( temptext );
- TPtr ptr_temptext( temptext->Des() );
+
for ( TInt i = iShownIndexes->Count()-1; i>=0; i-- )
{
TInt realindex = iShownIndexes->At( i );
@@ -1945,15 +1948,17 @@
CleanupStack::PopAndDestroy(array);
iSearchField->SetAdaptiveGridChars( *(iExtension->iNextChars) );
- CleanupStack::PopAndDestroy( temptext );
}
else
{
for (TInt i = iShownIndexes->Count()-1; i>=0 ; i--)
{
- TInt realindex = iShownIndexes->At(i);
- TPtrC itemtext = array->MdcaPoint(realindex);
- TBool isItemVisible = IsItemVisible(itemtext, aCriteria);
+
+ TInt realindex = iShownIndexes->At( i );
+ TPtrC itemtext = arr->ItemTextArray()->MdcaPoint( realindex );
+ AknFind::UpdateItemTextAccordingToFlag( itemtext, columnFlag, ptr_temptext );
+ TBool isItemVisible = IsItemVisible( ptr_temptext, aCriteria );
+
TBool isItemSelected = IsItemSelected(realindex);
// EAJA-7SK9UC set indexToSet as current index when found item
if ( isItemVisible )
@@ -1964,8 +1969,10 @@
{
iShownIndexes->Delete(i);
}
+ ptr_temptext.Zero();
}
- }
+ }
+ CleanupStack::PopAndDestroy( temptext );
InstallEmptyTextL();
// Set highlight to the first match item in markable list
@@ -1985,17 +1992,19 @@
// An index to set highlight after find pane updating
TInt indexToSet = KInvalidIndex;
iShownIndexes->Reset();
+
+ const MDesCArray *array = iModel->MatchableTextArray();
+ const CAknFilteredTextListBoxModel* arr = (CAknFilteredTextListBoxModel*)( iModel->MatchableTextArray() );
+ TInt count = array->MdcaCount();
+ TBitFlags32 columnFlag = iSearchField->ListColumnFilterFlags();
+ HBufC16* temptext = HBufC16::NewL( KMatchingBufferLength );
+ CleanupStack::PushL( temptext );
+ TPtr ptr_temptext( temptext->Des() );
+
// If adaptive search field
if( iSearchField && IsAdaptiveSearch() )
{
ClearNextChars();
- TBitFlags32 columnFlag = iSearchField->ListColumnFilterFlags();
- HBufC16* temptext = HBufC16::NewL( KMatchingBufferLength );
- CleanupStack::PushL( temptext );
- TPtr ptr_temptext( temptext->Des() );
- const MDesCArray *array = iModel->MatchableTextArray();
- const CAknFilteredTextListBoxModel* arr = (CAknFilteredTextListBoxModel*)(iModel->MatchableTextArray());
- TInt count = array->MdcaCount();
for (TInt i = 0; i < count; i++)
{
@@ -2015,12 +2024,10 @@
}
iSearchField->SetAdaptiveGridChars( *(iExtension->iNextChars) );
InstallEmptyTextL();
- CleanupStack::PopAndDestroy( temptext );
}
else
{
- const MDesCArray *array = iModel->MatchableTextArray();
- TInt count = array->MdcaCount();
+
TInt i;
if ( aCriteria.Length() == 0)
@@ -2040,8 +2047,10 @@
{
for( i = 0; i < count ; i++ )
{
- TPtrC itemtext = array->MdcaPoint(i);
- TBool isItemVisible = IsItemVisible(itemtext, aCriteria);
+
+ TPtrC itemtext = arr->ItemTextArray()->MdcaPoint( i );
+ AknFind::UpdateItemTextAccordingToFlag( itemtext, columnFlag, ptr_temptext );
+ TBool isItemVisible = IsItemVisible( temptext->Des(), aCriteria );
// Find first match item to set highlight
if ((indexToSet == KInvalidIndex) && isItemVisible)
@@ -2052,10 +2061,12 @@
{
iShownIndexes->AppendL(i);
}
+ ptr_temptext.Zero();
}
InstallEmptyTextL();
}
}
+ CleanupStack::PopAndDestroy( temptext );
// Set highlight to the first match item in markable list
if ( iListBox && indexToSet != KInvalidIndex )
--- a/uifw/AvKon/src/eikfrlb.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/eikfrlb.cpp Tue May 11 16:27:42 2010 +0300
@@ -162,17 +162,11 @@
{
backgroundDrawer->Draw( *iGc, *control, r );
}
- else if ( CAknEnv::Static()->TransparencyEnabled() )
+ else
{
AknsDrawUtils::Background( AknsUtils::SkinInstance(), cc, control, *iGc, r,
KAknsDrawParamNoClearUnderImage );
}
- else
- {
- AknsDrawUtils::Background( AknsUtils::SkinInstance(), cc, control, *iGc, r,
- KAknsDrawParamNoClearUnderImage |
- KAknsDrawParamBottomLevelRGBOnly );
- }
}
else
{
@@ -219,6 +213,11 @@
#endif //RD_UI_TRANSITION_EFFECTS_LIST
TBool removeicon = (!aItemIsSelected && !ItemMarkReverse()) || (aItemIsSelected && ItemMarkReverse());
+
+ if ( Flags() & CListItemDrawer::EMarkingModeEnabled )
+ {
+ removeicon = EFalse;
+ }
CFormattedCellListBoxData::TColors colors;
colors.iText=iTextColor;
@@ -404,18 +403,6 @@
iTopItemIndex = aTop;
}
-void
-CFormattedCellListBoxItemDrawer::DrawCurrentItemRect(const TRect& aRect) const
- {
- _AKNTRACE_FUNC_ENTER;
- iGc->SetClippingRect(iViewRect);
- iGc->SetBrushStyle(CGraphicsContext::ENullBrush);
- iGc->SetPenColor(iHighlightedBackColor);
- iGc->DrawRect(aRect);
- iGc->CancelClippingRect();
- _AKNTRACE_FUNC_EXIT;
- }
-
//
// CEikFormattedCellListBox
@@ -812,7 +799,6 @@
itemDrawer->SetTopItemIndex( iTopItemIndex );
- TBool transparencyEnabled = CAknEnv::Static()->TransparencyEnabled();
TInt numberOfItems = iModel->NumberOfItems();
if ( numberOfItems > 0 )
@@ -824,149 +810,121 @@
CAknListLoader::TfxApiInternal( gc );
#endif // RD_UI_TRANSITION_EFFECTS_LIST
- if ( transparencyEnabled )
- {
- if ( iWin && iWin->GetDrawRect() == TRect::EUninitialized )
- {
+ if ( iWin && iWin->GetDrawRect() == TRect::EUninitialized )
+ {
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- drawingInitiated = transApi && !transApi->EffectsDisabled();
+ drawingInitiated = transApi && !transApi->EffectsDisabled();
#else
- drawingInitiated = EFalse;
+ drawingInitiated = EFalse;
#endif
- }
+ }
- if ( !drawingInitiated )
- {
- iWin->Invalidate( *aClipRect );
- iWin->BeginRedraw( *aClipRect );
- }
- }
+ if ( !drawingInitiated )
+ {
+ iWin->Invalidate( *aClipRect );
+ iWin->BeginRedraw( *aClipRect );
+ }
TInt lastPotentialItemIndex =
Min( numberOfItems,
iTopItemIndex + NumberOfItemsThatFitInRect( iViewRect ) );
+ gc->SetClippingRect( iViewRect );
+
while ( i < lastPotentialItemIndex )
{
+ DrawItem( i++ );
+ }
+
+ gc->CancelClippingRect();
+
+ if ( control && !static_cast<CEikListBox*>( control )->
+ BackgroundDrawingSuppressed() )
+ {
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
if ( transApi )
{
- transApi->StartDrawing( MAknListBoxTfxInternal::EListNotSpecified );
- }
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
-
- gc->SetClippingRect( iViewRect );
-
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( transApi )
- {
- transApi->StopDrawing();
+ transApi->StartDrawing( MAknListBoxTfxInternal::EListView );
}
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
-
- DrawItem( i++ );
-
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( transApi )
- {
- transApi->StartDrawing( MAknListBoxTfxInternal::EListNotSpecified );
- }
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
- gc->CancelClippingRect();
-
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( transApi )
+ if ( i > iBottomItemIndex + 1 )
{
- transApi->StopDrawing();
+ i = iBottomItemIndex + 1;
}
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
- }
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( transApi )
- {
- transApi->StartDrawing( MAknListBoxTfxInternal::EListView );
- }
-
- if ( i > iBottomItemIndex + 1 )
- {
- i = iBottomItemIndex + 1;
- }
-
- TRect usedPortionOfViewRect(
- iViewRect.iTl + TSize( 0, iVerticalOffset ),
- TSize( iViewRect.Width(), ( i - iTopItemIndex ) * iItemHeight ) );
+ TRect usedPortionOfViewRect(
+ iViewRect.iTl + TSize( 0, iVerticalOffset ),
+ TSize( iViewRect.Width(), ( i - iTopItemIndex ) * iItemHeight ) );
#else
- // clear the unused portion of the viewing area
- TRect usedPortionOfViewRect( iViewRect.iTl.iX,
+ // clear the unused portion of the viewing area
+ TRect usedPortionOfViewRect( iViewRect.iTl.iX,
iViewRect.iTl.iY + iVerticalOffset,
iViewRect.Width(),
ItemPos( lastPotentialItemIndex ).iY );
- if ( aClipRect )
- {
- usedPortionOfViewRect.iBr.iX = aClipRect->iBr.iX;
- }
-
+ if ( aClipRect )
+ {
+ usedPortionOfViewRect.iBr.iX = aClipRect->iBr.iX;
+ }
#endif
- // Also draw the area behind scroll bar.
- TRect sbbg( iViewRect ); // whole area behind scroll bar
-
- if ( AknLayoutUtils::LayoutMirrored() )
- {
- _AKNTRACE("CFormattedCellListBoxView::Draw Layout mirrored");
- sbbg.iBr.iX = iViewRect.iBr.iX - itemDrawer->LafItemSize().iWidth;
- }
- else
- {
- sbbg.iTl.iX = iViewRect.iTl.iX + itemDrawer->LafItemSize().iWidth;
- }
-
- // Unused portion will be cleared only if listbox background is drawn.
- if ( itemDrawer->ColumnData()->IsBackgroundDrawingEnabled() )
- {
- if ( control )
+ // Also draw the area behind scroll bar.
+ TRect sbbg( iViewRect ); // whole area behind scroll bar
+
+ if ( AknLayoutUtils::LayoutMirrored() )
{
- if ( !control->FindBackground() )
- {
- AknsDrawUtils::BackgroundBetweenRects( skin,
- cc,
- control,
- *gc,
- iViewRect,
- usedPortionOfViewRect );
-
- if ( !sbbg.IsEmpty() )
- {
- AknsDrawUtils::Background( skin,
- cc,
- control,
- *gc,
- sbbg );
- }
- }
+ _AKNTRACE("CFormattedCellListBoxView::Draw Layout mirrored");
+ sbbg.iBr.iX = iViewRect.iBr.iX - itemDrawer->LafItemSize().iWidth;
}
else
{
- gc->SetBrushColor( BackColor() );
- DrawUtils::ClearBetweenRects( *gc,
- iViewRect,
- usedPortionOfViewRect );
- gc->Clear( sbbg );
+ sbbg.iTl.iX = iViewRect.iTl.iX + itemDrawer->LafItemSize().iWidth;
}
- }
+
+ // Unused portion will be cleared only if listbox background is drawn.
+ if ( itemDrawer->ColumnData()->IsBackgroundDrawingEnabled() )
+ {
+ if ( control )
+ {
+ if ( !control->FindBackground() )
+ {
+ AknsDrawUtils::BackgroundBetweenRects( skin,
+ cc,
+ control,
+ *gc,
+ iViewRect,
+ usedPortionOfViewRect );
+
+ if ( !sbbg.IsEmpty() )
+ {
+ AknsDrawUtils::Background( skin,
+ cc,
+ control,
+ *gc,
+ sbbg );
+ }
+ }
+ }
+ else
+ {
+ gc->SetBrushColor( BackColor() );
+ DrawUtils::ClearBetweenRects( *gc,
+ iViewRect,
+ usedPortionOfViewRect );
+ gc->Clear( sbbg );
+ }
+ }
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( transApi )
- {
- transApi->StopDrawing();
- }
+ if ( transApi )
+ {
+ transApi->StopDrawing();
+ }
#endif //RD_UI_TRANSITION_EFFECTS_LIST
+ }
- if ( transparencyEnabled && !drawingInitiated )
+ if ( !drawingInitiated )
{
iWin->EndRedraw();
}
@@ -1343,9 +1301,14 @@
void CFormattedCellListBoxItemDrawer::DrawBackgroundAndSeparatorLines(
const TRect& aItemTextRect, TBool aDrawSeparator ) const
{
+ // If we get here background is drawn via avkon implementation -> raise the
+ // corresponding flag in item drawer.
+ const_cast<CFormattedCellListBoxItemDrawer*>( this )->SetFlags( ENativeImplementation );
+
MAknsSkinInstance *skin = AknsUtils::SkinInstance();
CCoeControl* control = FormattedCellData()->Control();
MAknsControlContext *cc = AknsDrawUtils::ControlContext( control );
+ CEikListBox* listbox = static_cast<CEikListBox*>( control );
if ( !cc )
{
@@ -1367,7 +1330,8 @@
#endif // RD_UI_TRANSITION_EFFECTS_LIST
// background
- if ( FormattedCellData()->IsBackgroundDrawingEnabled() )
+ if ( FormattedCellData()->IsBackgroundDrawingEnabled() && listbox
+ && !listbox->BackgroundDrawingSuppressed() )
{
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
MAknListBoxTfxInternal* transApi = CAknListLoader::TfxApiInternal( iGc );
@@ -1387,19 +1351,12 @@
backgroundDrawer->Draw( *iGc, *control, aItemTextRect );
bgDrawn = ETrue;
}
- else if ( CAknEnv::Static()->TransparencyEnabled() )
+ else
{
bgDrawn = AknsDrawUtils::Background(
skin, cc, control, *iGc, aItemTextRect,
KAknsDrawParamNoClearUnderImage );
}
- else
- {
- bgDrawn = AknsDrawUtils::Background(
- skin, cc, control, *iGc, aItemTextRect,
- KAknsDrawParamNoClearUnderImage |
- KAknsDrawParamBottomLevelRGBOnly );
- }
}
if ( !bgDrawn )
{
@@ -1411,12 +1368,12 @@
transApi->StopDrawing();
}
#endif // RD_UI_TRANSITION_EFFECTS_LIST
+ }
- if ( aDrawSeparator && control &&
- static_cast<CEikListBox*>( control )->ItemsInSingleLine() == 1 )
- {
- AknListUtils::DrawSeparator( *iGc, aItemTextRect, iTextColor, skin );
- }
+ if ( aDrawSeparator && listbox &&
+ listbox->ItemsInSingleLine() == 1 )
+ {
+ AknListUtils::DrawSeparator( *iGc, aItemTextRect, iTextColor, skin );
}
}
--- a/uifw/AvKon/src/eikfrlbd.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/eikfrlbd.cpp Tue May 11 16:27:42 2010 +0300
@@ -40,6 +40,8 @@
#include <aknlayoutscalable_avkon.cdl.h>
#include <layoutmetadata.cdl.h>
#include <aknphysics.h>
+#include <AknIconArray.h>
+#include <avkon.mbg>
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
@@ -183,6 +185,8 @@
TBool aUseLogicalToVisualConversion,
const TRgb &aColor);
TInt ConvertTextToSmiley( TDes& aText );
+ void LoadMarkingIconsL();
+
private: // New internal methods
TBool DrawHighlightBackground( CFbsBitGc& aGc );
void PostDeleteAnimation();
@@ -277,6 +281,7 @@
TBool iKineticScrolling;
CAknSmileyManager* iSmileyMan;
TSize iSmileySize; // last set simley size
+ CAknIconArray* iMarkingIconArray;
};
@@ -325,6 +330,7 @@
#endif
iKineticScrolling = CAknPhysics::FeatureEnabled();
+ LoadMarkingIconsL();
_AKNTRACE_FUNC_EXIT;
}
@@ -353,6 +359,13 @@
delete iAnimation;
delete iColorBmp;
delete iHiliBmp;
+
+ if ( iMarkingIconArray )
+ {
+ iMarkingIconArray->ResetAndDestroy();
+ }
+
+ delete iMarkingIconArray;
_AKNTRACE_FUNC_EXIT;
}
@@ -697,6 +710,7 @@
DeleteAnim();
TryCreateAnimation();
TRAP_IGNORE(CreateColorBitmapsL());
+ TRAP_IGNORE( LoadMarkingIconsL() );
_AKNTRACE_FUNC_EXIT;
}
@@ -1306,6 +1320,47 @@
return err == KErrNone ? count : err;
}
+
+// -----------------------------------------------------------------------------
+// CFormattedCellListBoxDataExtension::LoadMarkingIconsL
+// -----------------------------------------------------------------------------
+//
+void CFormattedCellListBoxDataExtension::LoadMarkingIconsL()
+ {
+ if ( !iMarkingIconArray )
+ {
+ iMarkingIconArray = new ( ELeave ) CAknIconArray( 2 );
+ }
+ else
+ {
+ iMarkingIconArray->ResetAndDestroy();
+ }
+
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+ const TDesC& avkonIconFile = AknIconUtils::AvkonIconFileName();
+
+ CGulIcon* icon = AknsUtils::CreateGulIconL( skin,
+ KAknsIIDQgnPropCheckboxOn,
+ avkonIconFile,
+ EMbmAvkonQgn_prop_checkbox_on,
+ EMbmAvkonQgn_prop_checkbox_on_mask );
+
+ CleanupStack::PushL( icon );
+ iMarkingIconArray->AppendL( icon );
+ CleanupStack::Pop( icon );
+
+ icon = AknsUtils::CreateGulIconL( skin,
+ KAknsIIDQgnPropCheckboxOff,
+ avkonIconFile,
+ EMbmAvkonQgn_prop_checkbox_off,
+ EMbmAvkonQgn_prop_checkbox_off_mask );
+
+ CleanupStack::PushL( icon );
+ iMarkingIconArray->AppendL( icon );
+ CleanupStack::Pop( icon );
+ }
+
+
EXPORT_C CCoeControl *CFormattedCellListBoxData::Control() const
{
__ASSERT_DEBUG( iExtension, Panic( EAknPanicNullPointer ));
@@ -2274,7 +2329,11 @@
aItemRect.iBr.iY);
__ASSERT_DEBUG( iExtension, Panic( EAknPanicNullPointer ));
- CListBoxView* view = static_cast<CEikListBox*>( iExtension->iControl )->View();
+ __ASSERT_DEBUG( iExtension->iControl, Panic( EAknPanicNullPointer ));
+
+ CEikListBox* listbox = static_cast<CEikListBox*>( iExtension->iControl );
+ CListBoxView* view = listbox->View();
+
if (!view->ViewRect().Intersects(aItemRect))
{
// outside of the clipping rect -> don't process this item
@@ -2285,10 +2344,12 @@
{
iExtension->iClippedSubcells = 0;
}
+
+ TBool backgroundDrawingSuppressed = listbox->BackgroundDrawingSuppressed();
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
MAknListBoxTfxInternal *transApi = CAknListLoader::TfxApiInternal( &aGc );
- if ( transApi )
+ if ( transApi && !backgroundDrawingSuppressed )
{
transApi->StartDrawing( MAknListBoxTfxInternal::EListItem );
if(transApi->EffectsDisabled())
@@ -2297,7 +2358,10 @@
}
}
#else
- aGc.SetClippingRect( view->ViewRect() );
+ if ( !backgroundDrawingSuppressed )
+ {
+ aGc.SetClippingRect( view->ViewRect() );
+ }
#endif //RD_UI_TRANSITION_EFFECTS_LIST
TRect vr(view->ViewRect());
_AKNTRACE("Clipping: Width %d, (%d,%d)", vr.Width(), vr.iTl.iX, vr.iBr.iX );
@@ -2318,7 +2382,7 @@
}
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( transApi )
+ if ( transApi && !backgroundDrawingSuppressed )
{
if(transApi->EffectsDisabled())
{
@@ -2328,7 +2392,10 @@
transApi->StopDrawing();
}
#else
- aGc.CancelClippingRect();
+ if ( !backgroundDrawingSuppressed )
+ {
+ aGc.CancelClippingRect();
+ }
#endif //RD_UI_TRANSITION_EFFECTS_LIST
_AKNTRACE_FUNC_EXIT;
}
@@ -2410,6 +2477,46 @@
__ASSERT_DEBUG( iExtension, Panic( EAknPanicNullPointer ));
TRect textRect(aItemRect);
+
+ CEikListBox* listbox = static_cast<CEikListBox*>( Control() );
+
+ if ( listbox->View()->ItemDrawer()->Flags()
+ & CListItemDrawer::EMarkingModeEnabled
+ && iExtension->iMarkingIconArray
+ && iExtension->iMarkingIconArray->Count() == 2 )
+ {
+ textRect.iTl.iX +=
+ AknLayoutScalable_Avkon::list_double_graphic_pane_t1( 0 ).LayoutLine().il;
+
+ TAknLayoutRect layoutRect;
+ layoutRect.LayoutRect( aItemRect,
+ AknLayoutScalable_Avkon::list_double_graphic_pane_g1( 0 ) );
+
+ CGulIcon* icon = (*iExtension->iMarkingIconArray)[1]; // unchecked
+
+ if ( listbox->View()->ItemIsSelected(
+ iExtension->iCurrentlyDrawnItemIndex ) )
+ {
+ icon = (*iExtension->iMarkingIconArray)[0];
+ }
+
+ CFbsBitmap* bitmap = icon->Bitmap();
+
+ if ( bitmap )
+ {
+ TSize size( bitmap->SizeInPixels() ); // set size if not already
+ TSize targetSize( layoutRect.Rect().Size() );
+
+ if ( size.iWidth != targetSize.iWidth && size.iHeight != targetSize.iHeight )
+ {
+ AknIconUtils::SetSize( bitmap, targetSize,
+ EAspectRatioPreservedAndUnusedSpaceRemoved );
+ }
+
+ aGc.BitBltMasked( layoutRect.Rect().iTl, bitmap, TRect( layoutRect.Rect().Size() ), icon->Mask(), EFalse );
+ }
+ }
+
const TColors *subcellColors = &aColors;
TInt lastSubCell = Min( LastSubCell(), KMaxSubCellIndex );
@@ -2433,7 +2540,7 @@
if ( iExtension->iSubCellsMightIntersect )
{
- CheckIfSubCellsIntersect( &textLines[0], &rectClipped[0], *aText, aItemRect );
+ CheckIfSubCellsIntersect( &textLines[0], &rectClipped[0], *aText, textRect );
}
TInt SCindex=0;
@@ -2936,9 +3043,9 @@
{
_AKNTRACE_FUNC_ENTER;
const TRect &aItemRect = aRect;
-
- DrawPopupHighlight(aGc, aItemRect, aHighlight);
-
+
+ DrawDefaultHighlight( aGc, aItemRect, aHighlight );
+
// Draw the actual items.
DrawFormatted(aProperties,aGc,aText,aItemRect,aHighlight,aColors);
_AKNTRACE_FUNC_EXIT;
@@ -3041,43 +3148,6 @@
_AKNTRACE_FUNC_EXIT;
}
-void CFormattedCellListBoxData::DrawSettingHighlight(CWindowGc &aGc, const TRect &aItemRect, TBool aHighlight) const
- {
- _AKNTRACE_FUNC_ENTER;
- DrawDefaultHighlight( aGc, aItemRect, aHighlight );
- _AKNTRACE_FUNC_EXIT;
- }
-
-void CFormattedCellListBoxData::DrawPopupHighlight(CWindowGc &aGc, const TRect &aItemRect, TBool aHighlight) const
- {
- _AKNTRACE_FUNC_ENTER;
- DrawDefaultHighlight( aGc, aItemRect, aHighlight );
- _AKNTRACE_FUNC_EXIT;
- }
-
-void CFormattedCellListBoxData::DrawPopupFrame(CWindowGc &aGc) const
- {
- _AKNTRACE_FUNC_ENTER;
- __ASSERT_DEBUG( iExtension, Panic( EAknPanicNullPointer ));
- CCoeControl* control = Control();
-
- if ( control )
- {
- aGc.SetPenStyle( CGraphicsContext::ENullPen );
-
- TBool done = AknsDrawUtils::Background( AknsUtils::SkinInstance(),
- iExtension->iPopupFrame,
- control,
- aGc,
- control->Rect() );
-
- if ( !done )
- {
- aGc.Clear( control->Rect() );
- }
- }
- _AKNTRACE_FUNC_EXIT;
- }
void CFormattedCellListBoxData::SetWordWrappedSubcellIndices(
TInt aFirstIndex,
@@ -4107,27 +4177,81 @@
{
_AKNTRACE_FUNC_ENTER;
__ASSERT_DEBUG( iExtension, Panic( EAknPanicNullPointer ));
-
- TRect aRect(aItemRect);
- const TColors *subcellColors = &aColors;
+ _AKNTRACE( "DrawFormattedOld: aText=%S, aItemRect=(%d,%d,%d,%d)",
+ aText, aItemRect.iTl.iX,
+ aItemRect.iTl.iY,
+ aItemRect.iBr.iX,
+ aItemRect.iBr.iY );
+
+ TRect itemRect( aItemRect );
- TInt lastSubCell=LastSubCell();
- if (lastSubCell==KErrNotFound)
+ TInt lastSubCell = LastSubCell();
+ if ( lastSubCell == KErrNotFound )
{
- aGc.UseFont(CEikonEnv::Static()->NormalFont());
- aGc.DrawText(TPtrC(),aRect,0); // use draw text so that don't need to change pen color/style
+ aGc.UseFont( CEikonEnv::Static()->NormalFont() );
+ // Use draw text so that there's no need to change pen color/style.
+ aGc.DrawText( TPtrC(), itemRect, 0 );
aGc.DiscardFont(); // Release the font cache
_AKNTRACE_FUNC_EXIT;
return;
}
+
+ CEikListBox* listbox = static_cast<CEikListBox*>( Control() );
+
+ if ( listbox->View()->ItemDrawer()->Flags()
+ & CListItemDrawer::EMarkingModeEnabled &&
+ iExtension->iMarkingIconArray &&
+ iExtension->iMarkingIconArray->Count() == 2 )
+ {
+ itemRect.iTl.iX +=
+ AknLayoutScalable_Avkon::list_double_graphic_pane_t1( 0 ).LayoutLine().il;
+
+ TAknLayoutRect layoutRect;
+ layoutRect.LayoutRect(
+ aItemRect,
+ AknLayoutScalable_Avkon::list_double_graphic_pane_g1( 0 ) );
+ TRect iconRect( layoutRect.Rect() );
+
+ CGulIcon* icon = (*iExtension->iMarkingIconArray)[1]; // unchecked
+
+ if ( listbox->View()->ItemIsSelected(
+ iExtension->iCurrentlyDrawnItemIndex ) )
+ {
+ icon = (*iExtension->iMarkingIconArray)[0];
+ }
+
+ CFbsBitmap* bitmap = icon->Bitmap();
+
+ if ( bitmap )
+ {
+ TSize size( bitmap->SizeInPixels() ); // set size if not already
+ TSize targetSize( layoutRect.Rect().Size() );
+
+ if ( size.iWidth != targetSize.iWidth &&
+ size.iHeight != targetSize.iHeight )
+ {
+ AknIconUtils::SetSize( bitmap, targetSize,
+ EAspectRatioPreservedAndUnusedSpaceRemoved );
+ }
+
+ aGc.BitBltMasked( iconRect.iTl,
+ bitmap,
+ TRect( iconRect.Size() ),
+ icon->Mask(),
+ EFalse );
+ }
+ }
+
+ const TColors* subcellColors = &aColors;
+
const CFont* font=SubCellFont(0);
if (font==NULL)
{
font=CEikonEnv::Static()->NormalFont();
}
- TRect textRect=aRect;
- textRect.iBr.iX=aRect.iTl.iX;
+ TRect textRect( itemRect );
+ textRect.iBr.iX = itemRect.iTl.iX;
TInt subcell=0;
TInt subcell2=0;
@@ -4237,7 +4361,7 @@
}
// This is called O(N^2) times - Do not put anything extra to it, it'll slow down drawing!
- TRect bRect2 = TRect(SubCellPosition(subcell2),SubCellSize(subcell2));
+ TRect bRect2( SubCellPosition( subcell2 ), SubCellSize( subcell2 ) );
if (cRect.Intersects(bRect2) && bRect.Intersects(bRect2) && !istrans && !SubCellIsTransparent(subcell2))
{
cRect.iBr.iX = bRect2.iTl.iX;
@@ -4255,7 +4379,7 @@
}
// This is called O(N^2) times - Do not put anything extra to it, it'll slow down drawing!
- TRect bRect2 = TRect(SubCellPosition(subcell2),SubCellSize(subcell2));
+ TRect bRect2( SubCellPosition( subcell2 ), SubCellSize( subcell2 ) );
if (cRect.Intersects(bRect2) && bRect.Intersects(bRect2) && !istrans && !SubCellIsTransparent(subcell2))
{
cRect.iTl.iX = bRect2.iBr.iX;
@@ -4313,15 +4437,17 @@
if ( layoutMirrored )
{
- TRect bRect = TRect(sc->iPosition,sc->iSize);
- TRect cRect2 = TRect(bRect.iTl+TSize(m.iLeft,m.iTop),bRect.Size()-TSize(m.iRight+m.iLeft,m.iBottom+m.iTop));
+ TRect bRect( sc->iPosition, sc->iSize );
+ TRect cRect2( bRect.iTl + TSize( m.iLeft, m.iTop ),
+ bRect.Size() - TSize( m.iRight + m.iLeft,
+ m.iBottom + m.iTop ) );
TInt shift = (cRect2.Size() - sc->iRealTextSize).iWidth;
cRect.iTl.iX += shift;
cRect.iBr.iX += shift;
}
- textRect=TRect(aItemRect.iTl+cRect.iTl,cRect.Size());
+ textRect = TRect( itemRect.iTl + cRect.iTl, cRect.Size() );
if (sc->iUseSubCellColors)
{
@@ -4451,8 +4577,7 @@
iExtension->i2ndLineMarquee;
TBool marqueeDisabled =
- static_cast<CEikListBox*>(
- Control() )->View()->ItemDrawer()->Flags() & CListItemDrawer::EDisableMarquee;
+ listbox->View()->ItemDrawer()->Flags() & CListItemDrawer::EDisableMarquee;
if ( aHighlight && iExtension->IsMarqueeOn() && clipped && !marqueeDisabled )
{
--- a/uifw/AvKon/src/eikslb.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/src/eikslb.cpp Tue May 11 16:27:42 2010 +0300
@@ -87,9 +87,7 @@
}
FormattedCellData()->SetCurrentlyDrawnItemIndex( aItemIndex );
-
- FormattedCellData()->DrawSettingHighlight( *iGc, aItemTextRect, aItemIsCurrent );
-
+ FormattedCellData()->DrawDefaultHighlight( *iGc, aItemTextRect, aItemIsCurrent );
TBool drawBackground = ETrue;
TPtrC temp = iModel->ItemText( aItemIndex );
TPtrC columnText;
--- a/uifw/AvKon/srcdata/avkon.rss Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/srcdata/avkon.rss Tue May 11 16:27:42 2010 +0300
@@ -10187,6 +10187,54 @@
};
}
+
+// ---------------------------------------------------------------------------
+// r_avkon_menupane_mark_multiple
+// Multiple marking mode menu pane.
+// ---------------------------------------------------------------------------
+//
+RESOURCE MENU_PANE r_avkon_menupane_mark_multiple
+ {
+ items =
+ {
+ MENU_ITEM
+ {
+ command = EAknCmdMarkingModeMarkOne;
+ txt = qtn_options_list_mark_one;
+ flags = EEikMenuItemSpecific;
+ },
+ MENU_ITEM
+ {
+ command = EAknCmdMarkingModeMarkAll;
+ txt = qtn_options_list_mark_all;
+ flags = EEikMenuItemDimmed;
+ },
+ MENU_ITEM
+ {
+ command = EAknCmdMarkingModeUnmarkAll;
+ txt = qtn_options_list_unmark_all;
+ flags = EEikMenuItemDimmed;
+ },
+ MENU_ITEM
+ {
+ command = EAknCmdMarkingModeEnter;
+ txt = qtn_options_list_mark_multiple;
+ }
+ };
+ }
+
+
+// ----------------------------------------------------------------------------
+// r_marking_mode_navi_pane
+// Multiple marking mode navi pane
+// ----------------------------------------------------------------------------
+//
+RESOURCE NAVI_LABEL r_marking_mode_navi_pane
+ {
+ txt = qtn_navi_pane_marking_mode;
+ }
+
+
RESOURCE COMBINED_PANE r_avkon_status_pane_combined_default
{
panes =
@@ -10238,3 +10286,4 @@
}
// End of File
+
--- a/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestappfrm/src/bctestaknapplication.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestappfrm/src/bctestaknapplication.cpp Tue May 11 16:27:42 2010 +0300
@@ -14,7 +14,7 @@
* Description:
*
*/
-#include <aknserverapp.h>
+#include <AknServerApp.h>
#include <aknapp.h>
#include <eikenv.h>
#include <eikappui.h>
--- a/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestdocandinit/inc/bctestDocAndInitcase.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestdocandinit/inc/bctestDocAndInitcase.h Tue May 11 16:27:42 2010 +0300
@@ -22,7 +22,7 @@
#include <documenthandler.h>
#include <eikcolib.h>
#include <eikctlib.h>
-#include <aknserverapp.h>
+#include <AknServerApp.h>
#include "bctestcase.h"
--- a/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctesteditor/inc/bctesteditorcase.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctesteditor/inc/bctesteditorcase.h Tue May 11 16:27:42 2010 +0300
@@ -24,7 +24,7 @@
#include <Aknedsts.h>
#include <aknipfed.h>
#include <aknnumed.h>
-#include <aknnumedwin.h>
+#include <AknNumEdwin.h>
#include <eikccpu.h>
#include <eikedwin.h>
#include <eikfpne.h>
--- a/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestlabelinfoindicators/src/bctestlabelinfoindicatorscase.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestlabelinfoindicators/src/bctestlabelinfoindicatorscase.cpp Tue May 11 16:27:42 2010 +0300
@@ -28,7 +28,7 @@
#include <avkon.hrh>
#include <akninfopopupnotecontroller.h> // CAknInfoPopupNoteController
#include <gulalign.h> // TGulAlignmentValue
-#include <aknsconstants.h> // KAknsMessageSkinChange
+#include <AknsConstants.h> // KAknsMessageSkinChange
#include <akndef.h> // KEikDynamicLayoutVariantSwitch
#include <aknpictographinterface.h> // CAknPictographInterface
#include <e32debug.h>
--- a/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestlist/src/bctestlistcolumnbasecase.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestlist/src/bctestlistcolumnbasecase.cpp Tue May 11 16:27:42 2010 +0300
@@ -21,7 +21,7 @@
#include <aknlists.h>
#include <barsread.h>
#include <akndef.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
#include <eiktxlbm.h>
#include <eikclbd.h>
--- a/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestlist/src/bctestlistformatbasecase.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestlist/src/bctestlistformatbasecase.cpp Tue May 11 16:27:42 2010 +0300
@@ -21,7 +21,7 @@
#include <aknlists.h>
#include <barsread.h>
#include <akndef.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
#include <eiktxlbm.h>
#include <eikfrlbd.h>
--- a/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestserverapp/inc/bctestserverappcase.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestserverapp/inc/bctestserverappcase.h Tue May 11 16:27:42 2010 +0300
@@ -20,7 +20,7 @@
#define BCTEST_SERVERAPPCASE_H
#include "bctestcase.h"
-#include <aknserverapp.h>
+#include <AknServerApp.h>
#include <aknwseventobserver.h>
//TUid Kmysimpleserver = { 0x06C22C0C };
--- a/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestserverapp/src/bctestserverappcase.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestserverapp/src/bctestserverappcase.cpp Tue May 11 16:27:42 2010 +0300
@@ -18,7 +18,7 @@
#include <w32std.h>
#include <coecntrl.h>
-#include <aknserverapp.h>
+#include <AknServerApp.h>
#include <avkon.hrh>
#include <aknwseventobserver.h>
#include <aknBitmapAnimation.h>
--- a/uifw/AvKon/tsrc/bc/S60_SDK3.1/bctestmisc/src/bctestmisccase.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.1/bctestmisc/src/bctestmisccase.cpp Tue May 11 16:27:42 2010 +0300
@@ -21,7 +21,7 @@
#include <aknscreenmode.h>
#include <aknappui.h>
#include <bctestmisc.rsg>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
#include <eikmenub.h>
#include <aknutils.h>
--- a/uifw/AvKon/tsrc/bc/S60_SDK3.2/bctesttouchpane/src/bctesttouchpanecase.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.2/bctesttouchpane/src/bctesttouchpanecase.cpp Tue May 11 16:27:42 2010 +0300
@@ -22,7 +22,7 @@
#include <aknappui.h>
#include <akntouchpane.h>
#include <bctesttouchpane.rsg>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
#include <aknutils.h>
#include "bctesttouchpanecase.h"
--- a/uifw/AvKon/tsrc/bc/S60_SDK5.0/bctestappfrm/src/bctestaknapplication.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK5.0/bctestappfrm/src/bctestaknapplication.cpp Tue May 11 16:27:42 2010 +0300
@@ -14,7 +14,7 @@
* Description:
*
*/
-#include <aknserverapp.h>
+#include <AknServerApp.h>
#include <aknapp.h>
#include <eikenv.h>
#include <eikappui.h>
--- a/uifw/AvKon/tsrc/bc/S60_SDK5.0/bctestdocandinit/inc/bctestDocAndInitcase.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK5.0/bctestdocandinit/inc/bctestDocAndInitcase.h Tue May 11 16:27:42 2010 +0300
@@ -22,7 +22,7 @@
#include <documenthandler.h>
#include <eikcolib.h>
#include <eikctlib.h>
-#include <aknserverapp.h>
+#include <AknServerApp.h>
#include "bctestcase.h"
--- a/uifw/AvKon/tsrc/bc/S60_SDK5.0/bctestmix50/inc/bctestmix50patchmisc.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK5.0/bctestmix50/inc/bctestmix50patchmisc.h Tue May 11 16:27:42 2010 +0300
@@ -38,7 +38,7 @@
#include <COECOBS.H>
#include <eikfnlab.h>
#include <maknfilefilter.h>
-#include <aknserverapp.h>
+#include <AknServerApp.h>
#include <AknsItemData.h>
#include <AknNoteDialog.h>
--- a/uifw/AvKon/tsrc/bc/S60_SDK5.0/bctestmix50/src/bctestmix50patchcontrolcase.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDK5.0/bctestmix50/src/bctestmix50patchcontrolcase.cpp Tue May 11 16:27:42 2010 +0300
@@ -43,7 +43,7 @@
#include <aknsinglecolumnstyletreelist.h>
#include <aknsinglestyletreelist.h>
#include <avkon.mbg>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
#include <eikhkeyt.h>
#include <aknindicatorcontainer.h>
#include <akninfrm.h>
--- a/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestmixmcl/inc/bctestmixmclgeneralcase.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestmixmcl/inc/bctestmixmclgeneralcase.h Tue May 11 16:27:42 2010 +0300
@@ -133,6 +133,11 @@
*/
void TestEditorKineticScrollingL();
+ /*
+ * Tests editor's kinetic scrolling related functions.
+ */
+ void TestEnableKineticScrollingPhysicsL();
+
/**
* Tests the SuspendPhysics() method in CAknPhysics.
*/
@@ -158,6 +163,12 @@
*/
void TestItemFinder();
+ /**
+ * Tests FindItemDialog.
+ */
+ void TestFindItemDialog();
+
+
protected: // From base class MAknPhysicsObserver
/**
--- a/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestmixmcl/src/bctestmixmclgeneralcase.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/S60_SDKMCL/bctestmixmcl/src/bctestmixmclgeneralcase.cpp Tue May 11 16:27:42 2010 +0300
@@ -34,6 +34,8 @@
#include <aknradiobuttonsettingpage.h>
#include <aknpopupsettingpage.h>
#include <ItemFinder.h>
+#include <finditemdialog.h>
+#include <aknphysics.h>
#include "bctestmixmclgeneralcase.h"
#include "bctestmixmclcontainer.h"
@@ -130,7 +132,9 @@
TestRadioButtonSettingPageL();
TestPopupSettingPageL();
TestItemFinder();
+ TestFindItemDialog();
TestEditorKineticScrollingL();
+ TestEnableKineticScrollingPhysicsL();
TestAknPhysicsSuspendPhysicsL();
TestAknPhysicsResumePhysicsL();
TestCbaL();
@@ -521,6 +525,36 @@
AssertTrueL( ETrue, KEdwinEnableScrolling );
}
+
+// ---------------------------------------------------------------------------
+// CBCTestMixMCLGeneralCase::TestEnableKineticScrollingPhysicsL
+// ---------------------------------------------------------------------------
+//
+void CBCTestMixMCLGeneralCase::TestEnableKineticScrollingPhysicsL()
+ {
+ CEikEdwin* editor = new ( ELeave ) CEikEdwin;
+ CleanupStack::PushL( editor );
+
+ CAknPhysics* physics ( NULL );
+ AssertTrueL ( CAknPhysics::FeatureEnabled() );
+ CCoeControl* control ( NULL );
+ control = new (ELeave) CCoeControl;
+ CleanupStack::PushL( control );
+
+ physics = CAknPhysics::NewL( *this, control );
+ CleanupStack::PushL( physics );
+
+ editor->EnableKineticScrollingL( physics );
+
+ CleanupStack::PopAndDestroy( physics );
+ CleanupStack::PopAndDestroy( control );
+ CleanupStack::PopAndDestroy( editor );
+
+ _LIT( KEdwinEnableScrollingPhysics,
+ "CEikEdwin::TestEnableKineticScrollingPhysicsL tested" );
+ AssertTrueL( ETrue, KEdwinEnableScrollingPhysics );
+ }
+
// ---------------------------------------------------------------------------
// CBCTestMixMCLGeneralCase::TestAknPhysicsSuspendPhysicsL
// ---------------------------------------------------------------------------
@@ -649,6 +683,28 @@
}
+// -----------------------------------------------------------------------------
+// CBCTestMixMCLGeneralCase::TestFindItemDialog
+// -----------------------------------------------------------------------------
+//
+void CBCTestMixMCLGeneralCase::TestFindItemDialog()
+ {
+ _LIT( KEnableSingleClick,
+ "CFindItemDialog::EnableSingleClick() tested" );
+ _LIT( KUrlDes, "http://www.symbian.com" );
+
+ CFindItemDialog* dialog = CFindItemDialog::NewL( KUrlDes,
+ CFindItemEngine::EFindItemSearchURLBin );
+ CleanupStack::PushL( dialog );
+
+ dialog->EnableSingleClick ( EFalse );
+ dialog->EnableSingleClick ( ETrue );
+ AssertTrueL( ETrue, KEnableSingleClick );
+
+ CleanupStack::PopAndDestroy( dialog );
+ }
+
+
// ---------------------------------------------------------------------------
// CBCTestMixMCLGeneralCase::HandleFindItemEventL
// ---------------------------------------------------------------------------
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwaknapp.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwaknapp.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaiwaknapp.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : declaration of app.
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_CBCTESTDOMAIWAKNAPP_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwaknappui.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwaknappui.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaiwaknappui.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : declaration of appui.
-* Version : %version: 2 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_CBCTESTDOMAIWAKNAPPUI_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwakncontainer.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwakncontainer.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaiwakncontainer.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : declaration of container.
-* Version : %version: 2 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_CBCTESTDOMAIWAKNCONTAINER_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwakndocument.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwakndocument.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaiwakndocument.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : declaration of document
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_CBCTESTDOMAIWAKNDOCUMENT_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwaknview.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwaknview.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaiwaknview.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : declaration of view
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_CBCTESTDOMAIWAKNVIEW_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwcase.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwcase.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaiwcase.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : declaration of test case
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_CBCTESTDOMAIWCASE_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwserviceifmenu.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaiwserviceifmenu.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaiwserviceifmenu.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : for testing CAiwServiceIfMenu and CAiwServiceIfBase
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_CBCTESTDOMAIWSERVICEIFMENU_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknanimdata.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknanimdata.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaknanimdata.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : for testing APIs in aknAnimData.h
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_BCTESTDOMAKNANIMATIONDATA_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknanimview.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknanimview.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaknanimview.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : for testing APIs of CAknAnimatedView
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_BCTESTDOMAKNANIMATEDVIEW_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknbatterypane.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknbatterypane.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestaknbattery.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : for testing the protected methods of aknbattery.h
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomakncharmap.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomakncharmap.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomakncharmap.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : for indirectly testing APIs in akncharmap.h
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_CBCTESTDOMCAKNCHARMAP_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknctrlcase.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknctrlcase.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaknctrlcase.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : declaration of test case
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknecsdetector.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknecsdetector.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaknecsdetector.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : for testing the protected methods of CAknEcsDetector
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknindicatorcontainer.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknindicatorcontainer.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaknindicatorcontainer.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : for indirectly testing APIs in aknindicator.h
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_CBCTESTDOMAKNINDICATORCONTAINER_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknnoctrlcase.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknnoctrlcase.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaknnoctrlcase.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : declaration of test case
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_CBCTESTDOMAKNNOCTRLCASE_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknrclasscase.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomaknrclasscase.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaknrclasscase.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : declaration of test case
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomuiservershutdownapps.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomuiservershutdownapps.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomuiservershutdownapps.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : test the asynchronous method RAknUiServer::ShutdownApps().
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_CBCTESTDOMUISERVERSHUTDOWNAPPS_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomuiserverunlockmedia.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomaiwakn/inc/bctestdomuiserverunlockmedia.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomuiserverunlockmedia.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : test the asynchronous methods of RAknUiServer.
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_CBCTESTDOMUISERVERUNLOCKMEDIA_H
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomfntlay/inc/bctestdomadapter.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomfntlay/inc/bctestdomadapter.h Tue May 11 16:27:42 2010 +0300
@@ -19,7 +19,7 @@
#ifndef C_CBCTESTDOMADAPTER_H
#define C_CBCTESTDOMADAPTER_H
-#include <aknlayout2def.h>
+#include <AknLayout2Def.h>
#include <aknlayout2datadef.h>
class CBCTestDomAdapter: public CBase
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomfntlay/src/bctestdomlayoudatacase.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomfntlay/src/bctestdomlayoudatacase.cpp Tue May 11 16:27:42 2010 +0300
@@ -20,8 +20,8 @@
#include <coecntrl.h>
#include <eikenv.h>
-#include <aknlayout2def.h>
-#include <aknlayout2scalabledef.h>
+#include <AknLayout2Def.h>
+#include <AknLayout2ScalableDef.h>
#include "bctestdomlayoutdatacase.h"
--- a/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomfntlay/src/bctestdomskincase.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom3.2/bctestdomfntlay/src/bctestdomskincase.cpp Tue May 11 16:27:42 2010 +0300
@@ -19,7 +19,7 @@
#include <w32std.h>
#include <coecntrl.h>
#include <eikenv.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
#include <aknsdrawutils.h>
#include <aknsimageattributedata.h>
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwaknapp.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwaknapp.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaiwaknapp.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : declaration of app.
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_CBCTESTDOMAIWAKNAPP_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwaknappui.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwaknappui.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaiwaknappui.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : declaration of appui.
-* Version : %version: 3 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_CBCTESTDOMAIWAKNAPPUI_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwakncontainer.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwakncontainer.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaiwakncontainer.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : declaration of container.
-* Version : %version: 2 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_CBCTESTDOMAIWAKNCONTAINER_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwakndocument.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwakndocument.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaiwakndocument.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : declaration of document
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_CBCTESTDOMAIWAKNDOCUMENT_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwaknview.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwaknview.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaiwaknview.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : declaration of view
-* Version : %version: 2 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_CBCTESTDOMAIWAKNVIEW_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwcase.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwcase.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaiwcase.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : declaration of test case
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_CBCTESTDOMAIWCASE_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwserviceifmenu.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaiwserviceifmenu.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaiwserviceifmenu.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : for testing CAiwServiceIfMenu and CAiwServiceIfBase
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_CBCTESTDOMAIWSERVICEIFMENU_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknanimdata.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknanimdata.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaknanimdata.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : for testing APIs in aknAnimData.h
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_BCTESTDOMAKNANIMATIONDATA_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknanimview.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknanimview.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaknanimview.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : for testing APIs of CAknAnimatedView
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_BCTESTDOMAKNANIMATEDVIEW_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknbatterypane.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknbatterypane.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestaknbattery.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : for testing the protected methods of aknbattery.h
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomakncharmap.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomakncharmap.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomakncharmap.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : for indirectly testing APIs in akncharmap.h
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_CBCTESTDOMCAKNCHARMAP_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknctrlcase.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknctrlcase.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaknctrlcase.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : declaration of test case
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknecsdetector.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknecsdetector.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaknecsdetector.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : for testing the protected methods of CAknEcsDetector
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknindicatorcontainer.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknindicatorcontainer.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaknindicatorcontainer.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : for indirectly testing APIs in aknindicator.h
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_CBCTESTDOMAKNINDICATORCONTAINER_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknnoctrlcase.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknnoctrlcase.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaknnoctrlcase.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : declaration of test case
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_CBCTESTDOMAKNNOCTRLCASE_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknrclasscase.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomaknrclasscase.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomaknrclasscase.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : declaration of test case
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomuiservershutdownapps.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomuiservershutdownapps.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomuiservershutdownapps.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : test the asynchronous method RAknUiServer::ShutdownApps().
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_CBCTESTDOMUISERVERSHUTDOWNAPPS_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomuiserverunlockmedia.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomaiwakn/inc/bctestdomuiserverunlockmedia.h Tue May 11 16:27:42 2010 +0300
@@ -1,20 +1,18 @@
/*
-* ============================================================================
-* Name : bctestdomuiserverunlockmedia.h
-* Part of : BCTest / bctestdomaiwakn
-* Description : test the asynchronous methods of RAknUiServer.
-* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out.
+* Copyright (c) 2007 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".
*
-* Copyright © 2007. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.2
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
*/
#ifndef C_CBCTESTDOMUISERVERUNLOCKMEDIA_H
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomfntlay/inc/bctestdomadapter.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomfntlay/inc/bctestdomadapter.h Tue May 11 16:27:42 2010 +0300
@@ -19,7 +19,7 @@
#ifndef C_CBCTESTDOMADAPTER_H
#define C_CBCTESTDOMADAPTER_H
-#include <aknlayout2def.h>
+#include <AknLayout2Def.h>
#include <aknlayout2datadef.h>
class CBCTestDomAdapter: public CBase
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomfntlay/src/bctestdomlayoudatacase.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomfntlay/src/bctestdomlayoudatacase.cpp Tue May 11 16:27:42 2010 +0300
@@ -20,8 +20,8 @@
#include <coecntrl.h>
#include <eikenv.h>
-#include <aknlayout2def.h>
-#include <aknlayout2scalabledef.h>
+#include <AknLayout2Def.h>
+#include <AknLayout2ScalableDef.h>
#include "bctestdomlayoutdatacase.h"
--- a/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomfntlay/src/bctestdomskincase.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomfntlay/src/bctestdomskincase.cpp Tue May 11 16:27:42 2010 +0300
@@ -19,7 +19,7 @@
#include <w32std.h>
#include <coecntrl.h>
#include <eikenv.h>
-#include <aknsconstants.h>
+#include <AknsConstants.h>
#include <aknsdrawutils.h>
#include <aknsimageattributedata.h>
--- a/uifw/AvKon/tsrc/bc/script/codetest_script/output/api_table.bak.xml Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/AvKon/tsrc/bc/script/codetest_script/output/api_table.bak.xml Tue May 11 16:27:42 2010 +0300
@@ -56637,7 +56637,7 @@
<O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
<P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
<FUNCTION><![CDATA[CAknIntegerEdwin::NewL]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
<K_BLOCK><![CDATA[0]]></K_BLOCK>
</APIITEM>
<APIITEM>
@@ -56649,7 +56649,7 @@
<O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
<P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
<FUNCTION><![CDATA[CAknIntegerEdwin::ConstructFromResourceL]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
<K_BLOCK><![CDATA[0]]></K_BLOCK>
</APIITEM>
<APIITEM>
@@ -56661,7 +56661,7 @@
<O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
<P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
<FUNCTION><![CDATA[CAknIntegerEdwin::ConstructL]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
<K_BLOCK><![CDATA[0]]></K_BLOCK>
</APIITEM>
<APIITEM>
@@ -56673,7 +56673,7 @@
<O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
<P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
<FUNCTION><![CDATA[CAknIntegerEdwin::SetValueL]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
<K_BLOCK><![CDATA[0]]></K_BLOCK>
</APIITEM>
<APIITEM>
@@ -56685,7 +56685,7 @@
<O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
<P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
<FUNCTION><![CDATA[CAknIntegerEdwin::SetUnsetValue]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
<K_BLOCK><![CDATA[0]]></K_BLOCK>
</APIITEM>
<APIITEM>
@@ -56697,7 +56697,7 @@
<O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
<P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
<FUNCTION><![CDATA[CAknIntegerEdwin::GetTextAsInteger]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
<K_BLOCK><![CDATA[0]]></K_BLOCK>
</APIITEM>
<APIITEM>
@@ -56709,7 +56709,7 @@
<O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
<P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
<FUNCTION><![CDATA[CAknIntegerEdwin::SetMinimumIntegerValue]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
<K_BLOCK><![CDATA[0]]></K_BLOCK>
</APIITEM>
<APIITEM>
@@ -56721,7 +56721,7 @@
<O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
<P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
<FUNCTION><![CDATA[CAknIntegerEdwin::SetMaximumIntegerValue]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
<K_BLOCK><![CDATA[0]]></K_BLOCK>
</APIITEM>
<APIITEM>
@@ -56733,7 +56733,7 @@
<O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
<P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
<FUNCTION><![CDATA[CAknIntegerEdwin::PrepareForFocusLossL]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
<K_BLOCK><![CDATA[0]]></K_BLOCK>
</APIITEM>
<APIITEM>
@@ -56745,7 +56745,7 @@
<O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
<P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
<FUNCTION><![CDATA[CAknIntegerEdwin::HandleResourceChange]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
<K_BLOCK><![CDATA[0]]></K_BLOCK>
</APIITEM>
<APIITEM>
@@ -56757,7 +56757,7 @@
<O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
<P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
<FUNCTION><![CDATA[CAknIntegerEdwin::OfferKeyEventL]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
<K_BLOCK><![CDATA[0]]></K_BLOCK>
</APIITEM>
<APIITEM>
@@ -56769,7 +56769,7 @@
<O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
<P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
<FUNCTION><![CDATA[CAknIntegerEdwin::HandlePointerEventL]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
<K_BLOCK><![CDATA[0]]></K_BLOCK>
</APIITEM>
<APIITEM>
@@ -56781,7 +56781,7 @@
<O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
<P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
<FUNCTION><![CDATA[CAknIntegerEdwin::CheckNumber]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
<K_BLOCK><![CDATA[0]]></K_BLOCK>
</APIITEM>
<APIITEM>
@@ -56793,7 +56793,7 @@
<O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
<P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
<FUNCTION><![CDATA[CAknIntegerEdwin::ExtensionInterface]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
<K_BLOCK><![CDATA[0]]></K_BLOCK>
</APIITEM>
<APIITEM>
@@ -56805,7 +56805,7 @@
<O_COVER_F_CUR><![CDATA[0]]></O_COVER_F_CUR>
<P_COVER_F_MAX><![CDATA[0]]></P_COVER_F_MAX>
<FUNCTION><![CDATA[CAknIntegerEdwin::Reserved_3]]></FUNCTION>
-<FILENAME><![CDATA[aknnumedwin.h]]></FILENAME>
+<FILENAME><![CDATA[AknNumEdwin.h]]></FILENAME>
<K_BLOCK><![CDATA[0]]></K_BLOCK>
</APIITEM>
<APIITEM>
--- a/uifw/EikStd/EABI/EIKCOCTLU.DEF Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/EABI/EIKCOCTLU.DEF Tue May 11 16:27:42 2010 +0300
@@ -2012,4 +2012,6 @@
_ZN18CAknItemActionMenu19RegisterCollectionLER14MAknCollectionP15MObjectProvider @ 2011 NONAME
_ZN25AknItemActionMenuRegister30RemoveConstructingMenuBarOwnerEP15MObjectProvider @ 2012 NONAME
_ZN11CEikListBox18IsHighlightEnabledEv @ 2013 NONAME
+ _ZN11CEikListBox14SetMarkingModeEi @ 2014 NONAME
+ _ZN11CEikListBox22SetMarkingModeObserverEP23MAknMarkingModeObserver @ 2015 NONAME
--- a/uifw/EikStd/bwins/EIKCOCTLU.DEF Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/bwins/EIKCOCTLU.DEF Tue May 11 16:27:42 2010 +0300
@@ -1623,3 +1623,6 @@
?RemoveConstructingMenuBarOwner@AknItemActionMenuRegister@@SAXPAVMObjectProvider@@@Z @ 1622 NONAME ; void AknItemActionMenuRegister::RemoveConstructingMenuBarOwner(class MObjectProvider *)
?RegisterCollectionL@CAknItemActionMenu@@SAPAV1@AAVMAknCollection@@PAVMObjectProvider@@@Z @ 1623 NONAME ; class CAknItemActionMenu * CAknItemActionMenu::RegisterCollectionL(class MAknCollection &, class MObjectProvider *)
?IsHighlightEnabled@CEikListBox@@QAEHXZ @ 1624 NONAME ; int CEikListBox::IsHighlightEnabled(void)
+ ?SetMarkingModeObserver@CEikListBox@@QAEXPAVMAknMarkingModeObserver@@@Z @ 1625 NONAME ; void CEikListBox::SetMarkingModeObserver(class MAknMarkingModeObserver *)
+ ?SetMarkingMode@CEikListBox@@QAEXH@Z @ 1626 NONAME ; void CEikListBox::SetMarkingMode(int)
+
--- a/uifw/EikStd/coctlinc/AknDoubleSpanScrollIndicator.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlinc/AknDoubleSpanScrollIndicator.h Tue May 11 16:27:42 2010 +0300
@@ -255,8 +255,7 @@
*/
void CreateScrollBarItemsL();
- TInt ScrollHandleMaxVisibleSizeInPixels();
- TInt HandleBackgroundMinSizeInPixels();
+ TInt HandleMaxSizeInPixels();
TInt HandleMinSizeInPixels();
/**
@@ -267,14 +266,6 @@
*/
void DrawBackground() const;
- /**
- * Layout scrollbar handle
- *
- * @since 3.1
- *
- */
- void LayoutHandleGraphics();
-
CAknDoubleSpanScrollIndicatorItem* LoadScrollIndicatorItemL(
const TAknsItemID &aTopId,
const TAknsItemID &aMidId,
@@ -293,7 +284,6 @@
TInt iFieldPosition; // Size of the current field. (Optional double span)
TInt iFieldSize; // Position inside the current field. (Optional double span)
TBool iOwnsWindow; // Is window owning
- TInt iSpare;
TRect iBackgroundRect; // Rect for scrollbar background.
TRect iHandleBackgroundRect; // Rect for scrollbar handle background.
@@ -317,8 +307,17 @@
CAknDoubleSpanScrollIndicatorItem* iHighlightHandleBar;
TInt iHeadItemSize;
- TInt iMidItemSize;
TInt iTailItemSize;
+
+ /**
+ * Minimum handle size.
+ */
+ TInt iHandleMinSize;
+
+ /**
+ * Maximum handle size.
+ */
+ TInt iHandleMaxSize;
};
#endif
--- a/uifw/EikStd/coctlinc/AknDoubleSpanScrollIndicatorItem.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlinc/AknDoubleSpanScrollIndicatorItem.h Tue May 11 16:27:42 2010 +0300
@@ -94,40 +94,11 @@
);
- /**
- * 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.
- *
- * @since 2.6
- * @param aID Skin item id for the bitmap and mask.
- * @param aBitmap When this method returns this will contain a poiter
- * to a new bitmap.
- * @param aMask When this method returns this will contain a poiter
- * to a new mask bitmap.
- * @param aRotated If ETrue the skin source bitmap data is rotated
- * 90 degrees.
- *
- */
- void CreateSkinnedBitmapAndMaskL(MAknsSkinInstance* aInstance,
- const TAknsItemID& aID,
- CFbsBitmap*& aBitmap,
- CFbsBitmap*& aMask,
- TBool aRotated);
-
-
public: // data
TAknsItemID iTopId;
TAknsItemID iMidId;
TAknsItemID iBottomId;
-
- CFbsBitmap* iTop;
- CFbsBitmap* iTopMask;
- CFbsBitmap* iMiddle;
- CFbsBitmap* iMiddleMask;
- CFbsBitmap* iBottom;
- CFbsBitmap* iBottomMask;
TSize iItemSize;
-
};
#endif
--- a/uifw/EikStd/coctlinc/aknitemactionmenuregister.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlinc/aknitemactionmenuregister.h Tue May 11 16:27:42 2010 +0300
@@ -326,14 +326,6 @@
static AknItemActionMenuRegister* CreateInstanceL();
/**
- * Sets constructing menu bar owner and checks if the current is a dialog.
- * And when setting the correct menu bar owner from a dialog to NULL
- * checking if a correct menubar can be found for the unregistered
- * item action menu.
- */
- void DoSetConstructingMenuBarOwnerL( MObjectProvider* aMenuBarOwner );
-
- /**
* Sets the current constructing menubar owner to NULL if it matches to
* aMenuBarOwner. Otherwise constructing menubar owner is not modified.
*
@@ -404,11 +396,6 @@
MObjectProvider* iMenuBarOwner;
/**
- * Indicates if current menubar owner is a dialog
- */
- TBool iIsConstructingDialog;
-
- /**
* Unregistered menu data.
*/
RArray<TAknUnregisteredMenuData> iUnregisteredMenus;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uifw/EikStd/coctlinc/aknmarkingmode.h Tue May 11 16:27:42 2010 +0300
@@ -0,0 +1,175 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Marking mode handler.
+*
+*/
+
+#ifndef C_AKNMARKINGMODE_H
+#define C_AKNMARKINGMODE_H
+
+#include <e32base.h>
+
+class CAknNavigationDecorator;
+class CAknItemActionMenu;
+class MAknCollection;
+class MAknMarkingCollection;
+
+typedef RPointerArray<MAknCollection> CollectionArray;
+
+/**
+ * Marking mode handler.
+ *
+ * @lib eikcoctl
+ * @since S60 v5.2
+ */
+NONSHARABLE_CLASS( CAknMarkingMode ) : public CBase
+ {
+
+public:
+
+ /**
+ * Two-phased constructor.
+ */
+ static CAknMarkingMode* NewL(
+ CAknItemActionMenu& aItemActionMenu,
+ CollectionArray& aArray );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CAknMarkingMode();
+
+ /**
+ * Sets visible collection multiple marking state.
+ *
+ * @internal
+ * @param aActive ETrue if multiple marking should be active.
+ */
+ void SetCollectionMultipleMarkingState( TBool aActive );
+
+ /**
+ * Ends marking mode if collection allows it
+ */
+ void TryExitMarkingMode();
+
+ /**
+ * Returns ETrue if multiple marking state is active.
+ *
+ * @internal
+ * @return ETrue if multiple marking is active.
+ */
+ TBool MultipleMarkingActive() const;
+
+ /**
+ * Returns ETrue if there are marked items in visible list that is
+ * in multiple marking state.
+ *
+ * @internal
+ * @return ETrue if items are currently marked.
+ */
+ TBool MarkedItems() const;
+
+ /**
+ * Returns ETrue if the collection has no items
+ *
+ * @internal
+ * @return ETrue if there are no items
+ */
+ TBool CollectionEmpty() const;
+
+ /**
+ * Marks all items in the collection.
+ */
+ void MarkAllL();
+
+ /**
+ * Unmarks all items in the collection.
+ */
+ void UnmarkAll();
+
+ /**
+ * Marks the currently selected item in the collection.
+ */
+ void MarkCurrentItemL();
+
+ /**
+ * Returns ETrue if current item can be marked
+ *
+ * @internal
+ * @return ETrue if current item can be marked
+ */
+ TBool CurrentItemMarkable();
+
+private:
+
+ /**
+ * C++ constructor.
+ */
+ CAknMarkingMode(
+ CAknItemActionMenu& aItemActionMenu,
+ CollectionArray& aArray );
+
+ /**
+ * Returns marking collection received from aCollection.
+ *
+ * @param aCollection Collection.
+ * @return Marking collection object.
+ */
+ static MAknMarkingCollection* MarkingCollection(
+ MAknCollection& aCollection );
+
+ /**
+ * Returns marking collection.
+ *
+ * @return Marking collection object.
+ */
+ MAknMarkingCollection* MarkingCollection();
+
+ /**
+ * Returns the activated marking collection i.e the one with marking mode
+ * turned on.
+ *
+ * @return Active marking collection.
+ */
+ MAknMarkingCollection* ActiveMarkingCollection();
+
+ /**
+ * Updates navi pane when entering and exiting marking mode
+ *
+ * @param aEnable @c ETrue to set marking mode related text
+ * @c EFalse to remove marking mode related text
+ */
+ void UpdateMarkingModeNaviPaneL( TBool aEnable );
+
+private: // data
+
+ /**
+ * Collection array owned by CAknItemActionMenu.
+ * Not own.
+ */
+ CollectionArray& iCollections;
+
+ /**
+ * Item action menu that owns this marking mode handler.
+ * Not own.
+ */
+ CAknItemActionMenu& iItemActionMenu;
+
+ /**
+ * Marking mode navi pane decorator
+ */
+ CAknNavigationDecorator* iMarkingDecorator;
+ };
+
+#endif // C_AKNMARKINGMODE_H
--- a/uifw/EikStd/coctlsrc/AknButton.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/AknButton.cpp Tue May 11 16:27:42 2010 +0300
@@ -1979,10 +1979,8 @@
{
// show press changes
iButtonPressed = ETrue;
- if ( iExtension )
- {
- iExtension->iPrePointerPos.SetXY( -1, -1 );
- }
+ iExtension->iPrePointerPos.SetXY( -1, -1 );
+
if ( NeedsRedrawWhenPressed() )
{
DrawNow();
@@ -2146,7 +2144,7 @@
EXPORT_C void CAknButton::SizeChanged()
{
//Reset state if observer modified the rectangel.
- if ( iButtonPressed && iExtension && !Rect().Contains( iExtension->iPrePointerPos ) )
+ if ( iButtonPressed && !Rect().Contains( iExtension->iPrePointerPos ) )
{
ResetState();
}
--- a/uifw/EikStd/coctlsrc/AknClearer.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/AknClearer.cpp Tue May 11 16:27:42 2010 +0300
@@ -309,11 +309,6 @@
( usualSpLayout == R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL ) ||
( idleSpLayout == R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE );
- // Check that if in landscape mode statuspane is changed to stacon pane
- TBool staconPaneUsedInLandscape =
- ( usualSpLayout != R_AVKON_STATUS_PANE_LAYOUT_USUAL ) &&
- ( usualSpLayout != R_AVKON_STATUS_PANE_LAYOUT_USUAL_MIRRORED );
-
TBool flatStatuspaneusedInLandscape =
( usualSpLayout == R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT ) ||
( usualSpLayout == R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT );
--- a/uifw/EikStd/coctlsrc/AknDoubleSpanScrollIndicator.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/AknDoubleSpanScrollIndicator.cpp Tue May 11 16:27:42 2010 +0300
@@ -93,13 +93,13 @@
DrawTiled(gc, iHandleRect, handleBar);
}
+
void CAknDoubleSpanScrollIndicator::UpdateScrollBarLayout()
{
iHeadItemSize = 12;
- iMidItemSize = 12 * 5;
iTailItemSize = 12;
- TRect rect = Rect();
+ TRect rect( Rect() );
if(rect.IsEmpty())
{
return;
@@ -114,18 +114,13 @@
TAknLayoutRect layRect;
TAknWindowComponentLayout layout = AknLayoutScalable_Avkon::scroll_bg_pane_g1( varietyIndex ); //top
layRect.LayoutRect( rect, layout.LayoutLine() );
- TSize newSize = layRect.Rect().Size();
+ TSize newSize( layRect.Rect().Size() );
iHeadItemSize = (iOrientation == CEikScrollBar::EVertical?newSize.iHeight:newSize.iWidth);
layout = AknLayoutScalable_Avkon::scroll_bg_pane_g3(varietyIndex); // bottom
layRect.LayoutRect(rect, layout.LayoutLine());
newSize = layRect.Rect().Size();
iTailItemSize = (iOrientation == CEikScrollBar::EVertical?newSize.iHeight:newSize.iWidth);
-
- layout = AknLayoutScalable_Avkon::scroll_bg_pane_g2(varietyIndex); //middle
- layRect.LayoutRect(rect, layout.LayoutLine());
- newSize = layRect.Rect().Size();
- // iMidItemSize = (iOrientation == CEikScrollBar::EVertical?newSize.iHeight:newSize.iWidth) * 5;
}
void CAknDoubleSpanScrollIndicator::DrawTiled(
@@ -155,7 +150,7 @@
midRect.iTl.iY += headRect.Height();
midRect.iBr.iY -= tailRect.Height();
midDrawLength = midRect.Height();
- midSize.SetSize(midRect.Width(), iMidItemSize);
+ midSize.SetSize(midRect.Width(), midDrawLength);
}
else
{
@@ -165,7 +160,7 @@
midRect.iTl.iX += iHeadItemSize;
midRect.iBr.iX -= iTailItemSize;
midDrawLength = midRect.Width();
- midSize.SetSize(iMidItemSize, midRect.Height());
+ midSize.SetSize(midDrawLength, midRect.Height());
}
MAknsSkinInstance* skin = AknsUtils::SkinInstance();
@@ -175,28 +170,20 @@
AknsUtils::GetCachedMaskedBitmap(skin, aIndicatorItem->iTopId, bmp, mask);
AknIconUtils::SetSize(bmp, headRect.Size(), EAspectRatioNotPreserved);
AknIconUtils::SetSize(mask, headRect.Size(), EAspectRatioNotPreserved);
- aGc.BitBltMasked(headRect.iTl, bmp, TRect(TPoint(0, 0), headRect.Size()), mask, ETrue);
+ aGc.BitBltMasked(headRect.iTl, bmp, TRect(headRect.Size()), mask, ETrue);
AknsUtils::GetCachedMaskedBitmap(skin, aIndicatorItem->iMidId, bmp, mask);
AknIconUtils::SetSize(bmp, midSize, EAspectRatioNotPreserved);
AknIconUtils::SetSize(mask, midSize, EAspectRatioNotPreserved);
- TInt count = midDrawLength / iMidItemSize;
TPoint destPos(midRect.iTl.iX, midRect.iTl.iY);
- TRect sourRect(TPoint(0, 0), bmp->SizeInPixels());
- for(TInt i = 0; i < count; i++)
- {
- aGc.BitBltMasked(destPos, bmp, sourRect, mask, ETrue);
- iOrientation == CEikScrollBar::EVertical?destPos.iY += iMidItemSize : destPos.iX += iMidItemSize;
- }
- iOrientation == CEikScrollBar::EVertical?sourRect.iBr.iY = midRect.Height() % iMidItemSize
- :sourRect.iBr.iX = midRect.Width() % iMidItemSize;
+ TRect sourRect(bmp->SizeInPixels());
aGc.BitBltMasked(destPos, bmp, sourRect, mask, ETrue);
AknsUtils::GetCachedMaskedBitmap(skin, aIndicatorItem->iBottomId, bmp, mask);
AknIconUtils::SetSize(bmp, tailRect.Size(), EAspectRatioNotPreserved);
AknIconUtils::SetSize(mask, tailRect.Size(), EAspectRatioNotPreserved);
- aGc.BitBltMasked(tailRect.iTl, bmp, TRect(TPoint(0, 0), tailRect.Size()), mask, ETrue);
+ aGc.BitBltMasked(tailRect.iTl, bmp, TRect(tailRect.Size()), mask, ETrue);
}
void CAknDoubleSpanScrollIndicator::CalculateRects()
@@ -258,21 +245,9 @@
scrollBarHeightInPixels = iBackgroundRect.Height();
}
- // The code block below was probably used to prevent
- // a truncation-vs-rounding error from happening
- /*
- if ((checkedWindowSize > 0) && (checkedScrollSpan > 0))
- {
- if((checkedFocusPosition + checkedWindowSize) == checkedScrollSpan)
- windowSizeInPixels = scrollBarHeightInPixels - focusPositionInPixels;
- else
- windowSizeInPixels = scrollBarHeightInPixels*checkedWindowSize/checkedScrollSpan;
- }
- */
-
TInt windowSizeInPixels =
Max( checkedWindowSize * scrollBarHeightInPixels / checkedScrollSpan,
- HandleBackgroundMinSizeInPixels() );
+ iHandleMinSize );
TInt roomForMovementInSpan = checkedScrollSpan - checkedWindowSize;
TInt roomForMovementInPixels =
@@ -289,28 +264,25 @@
// If window would cover whole scrollbar, then modify
// it to leave the thumb little short from bottom
- TInt scrollBarHandleMaxSizeInPixels = ScrollHandleMaxVisibleSizeInPixels();
+ TInt scrollBarHandleMaxSizeInPixels = iHandleMaxSize;
+
if (windowSizeInPixels >= scrollBarHeightInPixels)
{
windowSizeInPixels = scrollBarHandleMaxSizeInPixels;
}
TBool doubleSpanInUse = (checkedFieldPosition >= 0) && (checkedFieldSize > 0);
- TInt minHandleBackgroundSize = 0;
+ TInt minHandleBackgroundSize = iHandleMinSize;
TInt fieldSizeInPixels = 0; // sub field size
TInt fieldPositionInPixels = 0;
+ TInt handleMinSize = iHandleMinSize;
+
if (doubleSpanInUse)
{
fieldSizeInPixels = windowSizeInPixels/checkedFieldSize;
fieldPositionInPixels = windowSizeInPixels*checkedFieldPosition/checkedFieldSize;
- minHandleBackgroundSize = HandleBackgroundMinSizeInPixels();
}
- else
- {
- minHandleBackgroundSize = HandleMinSizeInPixels();
- }
-
- TInt handleMinSize = HandleMinSizeInPixels();
+
// Similar compensation for handle if double span is in use
if (doubleSpanInUse && (fieldSizeInPixels < handleMinSize))
{
@@ -496,10 +468,11 @@
{
iOldRect = rect;
AknsUtils::RegisterControlPosition( this );
+ iHandleMinSize = HandleMinSizeInPixels();
+ iHandleMaxSize = HandleMaxSizeInPixels();
CalculateRects();
+ UpdateScrollBarLayout();
- UpdateScrollBarLayout();
-
if (IsVisible() & iOwnsWindow)
DrawDeferred();
}
@@ -520,14 +493,9 @@
iWindowSize = aWindowSize;
iFieldPosition = aFieldPosition;
iFieldSize = aFieldSize;
-
+
// Calculate the sizes for graphics
CalculateRects();
- if( iWindowSize > 0 )
- {
- // layout handle graphics
- LayoutHandleGraphics();
- }
}
TInt CAknDoubleSpanScrollIndicator::ScrollSpan()
@@ -682,9 +650,10 @@
return layRect.Rect().Width();
}
-TInt CAknDoubleSpanScrollIndicator::ScrollHandleMaxVisibleSizeInPixels()
+
+TInt CAknDoubleSpanScrollIndicator::HandleMaxSizeInPixels()
{
- TRect scbRect = Rect();
+ TRect scbRect( Rect() );
if ( iOrientation == CEikScrollBar::EHorizontal )
scbRect.SetRect(scbRect.iTl, TSize(scbRect.Height(), scbRect.Width()));
@@ -694,10 +663,6 @@
return layRect.Rect().Height();
}
-TInt CAknDoubleSpanScrollIndicator::HandleBackgroundMinSizeInPixels()
- {
- return HandleMinSizeInPixels();
- }
TInt CAknDoubleSpanScrollIndicator::HandleMinSizeInPixels()
{
@@ -734,8 +699,8 @@
void CAknDoubleSpanScrollIndicator::DrawBackground() const
{
CWindowGc& gc=SystemGc();
- TPoint pos = Position();
- TRect rect = Rect();
+ TPoint pos( Position() );
+ TRect rect( Rect() );
MAknsSkinInstance* skin = AknsUtils::SkinInstance();
MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
@@ -761,56 +726,6 @@
}
}
-void CAknDoubleSpanScrollIndicator::LayoutHandleGraphics()
- {
-
- // We layout the handle middle graphics here according to the given inidcator values
- TRect rect = Rect();
-
- if (!iHandleBar || rect.IsEmpty())
- return;
-
- TInt varietyIndex = 0;
- TInt varietyIndexForHandle = 0;
- if (iOrientation == CEikScrollBar::EHorizontal)
- {
- varietyIndex = 1;
- varietyIndexForHandle = 2;
- }
-
- TAknLayoutRect layRect;
- TAknWindowComponentLayout // layout handle bottom & top as they do not scale according to handle size
- layout = AknLayoutScalable_Avkon::scroll_handle_pane(varietyIndexForHandle); // handle (the shadow if two handles)
- layRect.LayoutRect(rect, layout.LayoutLine());
- layout = AknLayoutScalable_Avkon::scroll_handle_focus_pane(varietyIndex); // focus handle
- // The horizontal data for focus handle is missing so switch the values from the vertical data
- TAknWindowLineLayout layoutLine = layout.LayoutLine();
- if (iOrientation == CEikScrollBar::EHorizontal)
- {
- TInt height = layoutLine.iH;
- TInt width = layoutLine.iW;
- layoutLine.iW = height;
- layoutLine.iH = width;
- }
- layRect.LayoutRect(layRect.Rect(), layoutLine);
- rect = layRect.Rect(); // parent rect is now the focus handle
-
- // the retangle includes the variated length of the middle,
- // the top and bottom graphics must subtracted from the value
-
- // do not change the handle retangle, the full size is needed in drawing
- // set the width or height to be correct
- if (iOrientation == CEikScrollBar::EVertical)
- {
- iHandleRect.iTl.iX = rect.iTl.iX;
- iHandleRect.iBr.iX = rect.iBr.iX;
- }
- else
- {
- iHandleRect.iTl.iY = rect.iTl.iY;
- iHandleRect.iBr.iY = rect.iBr.iY;
- }
- }
TInt CAknDoubleSpanScrollIndicator::GetCurrentThumbSpanInPixels()
{
--- a/uifw/EikStd/coctlsrc/EIKCOCTL.MMP Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKCOCTL.MMP Tue May 11 16:27:42 2010 +0300
@@ -135,6 +135,7 @@
SOURCE aknitemactionmenudata.cpp
SOURCE aknitemactionmenuregisterarray.cpp
SOURCE aknedwinphysicshandler.cpp
+SOURCE aknmarkingmode.cpp
LIBRARY euser.lib
LIBRARY efsrv.lib
--- a/uifw/EikStd/coctlsrc/EIKEDWIN.CPP Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKEDWIN.CPP Tue May 11 16:27:42 2010 +0300
@@ -147,6 +147,8 @@
const TInt KFullFormatLengthForSmiley = 5000;
+const TInt KContentThreshold = 8;
+
//
// class CEikEdwin::CUndoBuffer
//
@@ -2872,16 +2874,20 @@
// on down event feedback is given if cursor/selection changes
if ( paintingPossible && !readOnly || editorWillGetFocus )
{
- iEdwinFepSupport->iFeedback->InstantFeedback( this, ETouchFeedbackBasic );
+ iEdwinFepSupport->iFeedback->InstantFeedback( this, ETouchFeedbackEdit );
}
}
else if ( selectionChanged &&
- ( ( aPointerEvent.iType == TPointerEvent::EDrag ) ||
+ ( selectionAfter.iAnchorPos != selectionAfter.iCursorPos ) &&
+ ( ( aPointerEvent.iType == TPointerEvent::EDrag ) ||
( aPointerEvent.iType == TPointerEvent::EButtonRepeat ) ) )
{
- TInt readPos = ( selectionAfter.iCursorPos >= selectionBefore.iCursorPos ) ?
- selectionBefore.iCursorPos : selectionAfter.iCursorPos ;
- TChar currentSelectedChar = Text()->Read( readPos, 1 )[0];
+ TInt readPos = selectionAfter.iCursorPos;
+ if ( selectionAfter.iCursorPos > selectionAfter.iAnchorPos )
+ {
+ readPos -= 1;//drag backword
+ }
+ TChar currentSelectedChar = Text()->Read( readPos, 1 )[0];
TBool isSpace = currentSelectedChar.IsSpace();
TBool isSmiley = CSmileyManager::IsSmileyCode(currentSelectedChar);
TBool isText = currentSelectedChar.IsGraph();
@@ -2889,10 +2895,10 @@
// case line
TInt prevLineNr = TextLayout()->GetLineNumber(selectionBefore.iCursorPos);
TInt lineNr = TextLayout()->GetLineNumber(selectionAfter.iCursorPos);
- if ( prevLineNr != lineNr && ( selection.Length() != 0 ) )
+ if ( prevLineNr != lineNr )
{
- TInt group = ( currentSelectedChar.GetCategory() & 0xF0 );
- TBool isEmptyLine = ( group == TChar::ESeparatorGroup );
+ TInt group = currentSelectedChar.GetCategory();
+ TBool isEmptyLine = ( group == TChar::EZpCategory );
TTouchLogicalFeedback fType = ( isEmptyLine ?
ETouchFeedbackEmptyLineSelection : ETouchFeedbackLineSelection );
iEdwinFepSupport->iFeedback->InstantFeedback( this, fType );
@@ -8926,6 +8932,7 @@
}
}
+
// ---------------------------------------------------------------------------
// CEikEdwin::SkipBackgroundDrawer
// ---------------------------------------------------------------------------
@@ -8936,6 +8943,24 @@
}
+// ---------------------------------------------------------------------------
+// CEikEdwin::ContentFitsToViewRect
+// ---------------------------------------------------------------------------
+//
+TBool CEikEdwin::ContentFitsToViewRect() const
+ {
+ if ( iLayout && !iLayout->IsFormattingBand() )
+ {
+ if ( iLayout->FormattedHeightInPixels()
+ <= AdjustedViewRect().Height() + KContentThreshold )
+ {
+ return ETrue;
+ }
+ }
+
+ return EFalse;
+ }
+
// End of File
--- a/uifw/EikStd/coctlsrc/EIKLBI.CPP Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKLBI.CPP Tue May 11 16:27:42 2010 +0300
@@ -38,7 +38,7 @@
#include "laflbx.h"
#include "akntrace.h"
-const TUint KListItemDrawerAllowedFlags = 0x0fff;
+const TUint KListItemDrawerAllowedFlags = 0x1fff;
const TInt KDefaultMarkColumnWidth = 10;
const TInt KDefaultMarkGutter = 2;
@@ -85,6 +85,13 @@
aFlags &= ~EPressedDownState;
}
+ // do not raise EDrawWholeBackground unless ENativeImplementation is set
+ if ( ( aFlags & EDrawWholeBackground )
+ && !( iFlags & ENativeImplementation ) )
+ {
+ aFlags &= ~EDrawWholeBackground;
+ }
+
iFlags |= aFlags;
iFlags &= KListItemDrawerAllowedFlags;
}
--- a/uifw/EikStd/coctlsrc/EIKLBV.CPP Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKLBV.CPP Tue May 11 16:27:42 2010 +0300
@@ -956,33 +956,28 @@
return;
}
- TBool transparencyEnabled( CAknEnv::Static()->TransparencyEnabled() );
-
if ((ITEM_EXISTS_ONCE(aItemIndex)) && ItemIsVisible(aItemIndex))
{
TBool drawingInitiated = ETrue;
- if ( transparencyEnabled )
- {
- if ( iWin && iWin->GetDrawRect() == TRect::EUninitialized )
- {
+ if ( iWin && iWin->GetDrawRect() == TRect::EUninitialized )
+ {
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- MAknListBoxTfxInternal* transApi =
- CAknListLoader::TfxApiInternal( iGc );
- drawingInitiated = transApi && !transApi->EffectsDisabled();
+ MAknListBoxTfxInternal* transApi =
+ CAknListLoader::TfxApiInternal( iGc );
+ drawingInitiated = transApi && !transApi->EffectsDisabled();
#else
- drawingInitiated = EFalse;
+ drawingInitiated = EFalse;
#endif
- }
+ }
- if ( !drawingInitiated )
- {
- TRect rect( ItemPos(aItemIndex), iItemDrawer->ItemCellSize() );
- rect.Intersection( iViewRect );
- iWin->Invalidate( rect );
- iWin->BeginRedraw( rect );
- }
- }
+ if ( !drawingInitiated )
+ {
+ TRect rect( ItemPos(aItemIndex), iItemDrawer->ItemCellSize() );
+ rect.Intersection( iViewRect );
+ iWin->Invalidate( rect );
+ iWin->BeginRedraw( rect );
+ }
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
MAknListBoxTfxInternal *transApi = CAknListLoader::TfxApiInternal( iGc );
@@ -994,8 +989,16 @@
transApi->StartDrawing( MAknListBoxTfxInternal::EListItem );
}
#endif // RD_UI_TRANSITION_EFFECTS_LIST
+
+ TBool backgroundDrawingSuppressed = ( iItemDrawer
+ && ( iItemDrawer->Flags()
+ & ( CListItemDrawer::EDrawWholeBackground
+ | CListItemDrawer::EBackgroundDrawn ) ) );
- iGc->SetClippingRect( iViewRect );
+ if ( !backgroundDrawingSuppressed )
+ {
+ iGc->SetClippingRect( iViewRect );
+ }
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
if ( transApi )
@@ -1016,7 +1019,10 @@
}
#endif // RD_UI_TRANSITION_EFFECTS_LIST
- iGc->CancelClippingRect();
+ if ( !backgroundDrawingSuppressed )
+ {
+ iGc->CancelClippingRect();
+ }
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
if ( transApi )
@@ -1032,7 +1038,7 @@
}
#endif // RD_UI_TRANSITION_EFFECTS_LIST
- if ( transparencyEnabled && !drawingInitiated )
+ if ( !drawingInitiated )
{
iWin->EndRedraw();
}
@@ -1419,6 +1425,54 @@
}
+// ---------------------------------------------------------------------------
+// Resets the selection state so that there is nothing selected.
+// ---------------------------------------------------------------------------
+//
+void CListBoxView::ClearSelection( TBool aDrawItems )
+ {
+ _AKNTRACE_FUNC_ENTER;
+
+ __ASSERT_DEBUG( iSelectionIndexes,
+ Panic( EEikPanicListBoxNoSelIndexArray ) );
+
+ TInt numSelectedItems = iSelectionIndexes->Count();
+ TKeyArrayFix key( 0, ECmpTInt );
+ TInt selectedItemIndex;
+ TInt pos;
+
+#ifdef RD_UI_TRANSITION_EFFECTS_LIST
+ MAknListBoxTfxInternal* transApi = CAknListLoader::TfxApiInternal( iGc );
+#endif // RD_UI_TRANSITION_EFFECTS_LIST
+
+ for ( TInt i = 0; i < numSelectedItems; i++ )
+ {
+ selectedItemIndex = ( *( iSelectionIndexes ) )[0];
+
+ if ( !( iSelectionIndexes->Find( selectedItemIndex, key, pos ) ) )
+ {
+#ifdef RD_UI_TRANSITION_EFFECTS_LIST
+ if ( transApi )
+ {
+ transApi->Invalidate( MAknListBoxTfxInternal::EListItem,
+ selectedItemIndex );
+ }
+#endif // RD_UI_TRANSITION_EFFECTS_LIST
+
+ iSelectionIndexes->Delete( pos );
+
+ if ( aDrawItems )
+ {
+ DrawItem( selectedItemIndex );
+ }
+ }
+ }
+
+ ClearSelectionAnchorAndActiveIndex();
+
+ _AKNTRACE_FUNC_EXIT;
+ }
+
// class CSnakingListBoxView
--- a/uifw/EikStd/coctlsrc/EIKLBX.CPP Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKLBX.CPP Tue May 11 16:27:42 2010 +0300
@@ -1,5 +1,5 @@
/*
-* 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"
@@ -74,6 +74,7 @@
#include <aknitemactionmenu.h>
#include <aknlongtapdetector.h>
#include <AknPriv.hrh>
+#include <aknmarkingmodeobserver.h>
#include "akntrace.h"
// timeout for long keypress used in markable lists
@@ -85,7 +86,8 @@
const TInt KDefaultStepSpeed = 5;
const TInt KEikListBoxInvalidIndex=-1;
//interval time for disable second point event
-const TInt KTwoPointerUpEventInterval = 120; // 120 millisecond ( = 0.12 second )
+const TInt KTwoPointerUpEventInterval = 120; // 120 millisecond ( = 0.12 second )
+const TInt KPointerDownAndUpThreshold = 5;
// -----------------------------------------------------------------------------
// If a parent to the supplied control has its Gc set, this function will find
// it and return it.
@@ -377,6 +379,7 @@
public MCenRepNotifyHandlerCallback,
public MAknPhysicsObserver,
public MAknCollection,
+ public MAknMarkingCollection,
public MAknLongTapDetectorCallBack
{
public:
@@ -448,6 +451,51 @@
*/
TInt CollectionExtension( TUint aExtensionId, TAny*& a0, TAny* a1 );
+// From MAknMarkingCollection
+ /**
+ * Sets multiple marking state.
+ *
+ * @param aActive ETrue if multiple marking should be active.
+ */
+ void SetMultipleMarkingState( TBool aActive );
+
+ /**
+ * Returns whether the observer accepts ending of marking mode
+ *
+ * @return ETrue if observer accepts exiting marking mode
+ */
+ TBool ExitMarkingMode();
+
+ /**
+ * Returns the collection marking state. The state is combination of
+ * flags defined in @c TStateFlag.
+ *
+ * @return Collection state.
+ */
+ TUint MarkingState() const;
+
+ /**
+ * Marks the currently selected item.
+ */
+ void MarkCurrentItemL();
+
+ /**
+ * Marks all items in the collection.
+ */
+ void MarkAllL();
+
+ /**
+ * Unmarks all items in the collection.
+ */
+ void UnmarkAll();
+
+ /*
+ * Can current item be marked
+ *
+ * @return ETrue if item can be marked
+ */
+ TBool CurrentItemMarkable();
+
// From MAknLongTapDetectorCallBack
/**
* Long tap detector callback
@@ -512,6 +560,13 @@
* @return ETrue if list has marked items.
*/
TBool MarkedItems() const;
+
+ /**
+ * Ignores pointer events until next up event.
+ *
+ * @return ETrue if the pointer event ignore was enabled.
+ */
+ TBool IgnorePointerEventsUntilUp();
public:
void InitPhysicsL();
@@ -618,7 +673,6 @@
CAknPhysics *iPhysics;
TPoint iDragStartPosition;
TPoint iLastPointerPos;
- TBool iBackgroundDrawingSuppressed;
TBool iClickEventsAllowed;
TBool iScrolling;
TSize iViewSize;
@@ -682,12 +736,28 @@
* Item that opened the item action menu
*/
TInt iLongTappedItem;
+
+ /**
+ * Marking mode on / off.
+ */
+ TBool iMarkingModeInUse;
+
+ /**
+ * Marking mode observer.
+ */
+ MAknMarkingModeObserver* iMarkingModeObserver;
+
/**
* Pointer event to be forwarded to the long tap detector upon
* highlight timer completion.
*/
TPointerEvent iDelayedPointerDownEvent;
+ /**
+ * Ordinal position of listbox window, before stylus menu is opened.
+ */
+ TInt iOldWinPos;
+
private:
CMatchBuffer* iBuffer;
CEikListBox& iListBox;
@@ -751,7 +821,8 @@
iLongTapDetector( NULL ),
iSingleClickEnabled( iAvkonAppUi->IsSingleClickCompatible() ),
iLongTappedItem( KErrNotFound ),
- iListBox(aListBox)
+ iOldWinPos( KErrNotFound ),
+ iListBox(aListBox)
{
}
@@ -945,6 +1016,7 @@
EnableHighlight( EFalse );
iListBox.iView->DrawItem( iLongTappedItem );
iLongTappedItem = KErrNotFound;
+ iOldWinPos = KErrNotFound;
}
}
@@ -954,12 +1026,144 @@
// -----------------------------------------------------------------------------
//
TInt CListBoxExt::CollectionExtension(
- TUint /*aExtensionId*/, TAny*& /*a0*/, TAny* /*a1*/ )
- {
+ TUint aExtensionId, TAny*& a0, TAny* /*a1*/ )
+ {
+ if ( aExtensionId == MAknMarkingCollection::TYPE )
+ {
+ a0 = static_cast<MAknMarkingCollection*>( this );
+ }
+
return KErrNone;
}
+// -----------------------------------------------------------------------------
+// CListBoxExt::SetMultipleMarkingState
+// -----------------------------------------------------------------------------
+//
+void CListBoxExt::SetMultipleMarkingState( TBool aActive )
+ {
+ _AKNTRACE_FUNC_ENTER;
+ iListBox.SetMarkingMode( aActive );
+ _AKNTRACE_FUNC_EXIT;
+ }
+
+// -----------------------------------------------------------------------------
+// CListBoxExt::ExitMarkingMode
+// -----------------------------------------------------------------------------
+//
+TBool CListBoxExt::ExitMarkingMode()
+ {
+ if ( iListBox.MarkingModeObserver() )
+ {
+ return iListBox.MarkingModeObserver()->ExitMarkingMode();
+ }
+ return ETrue;
+ }
+
+// -----------------------------------------------------------------------------
+// CListBoxExt::MarkingState
+// -----------------------------------------------------------------------------
+//
+TUint CListBoxExt::MarkingState() const
+ {
+ _AKNTRACE_FUNC_ENTER;
+ TUint state( 0 );
+ if ( iListBox.MarkingMode() )
+ {
+ state |= MAknMarkingCollection::EStateMarkingMode;
+ if ( MarkedItems() )
+ {
+ state |= MAknMarkingCollection::EStateMarkedItems;
+ }
+ if ( iListBox.Model()->NumberOfItems() == 0 )
+ {
+ state |= MAknMarkingCollection::EStateCollectionEmpty;
+ }
+ }
+ _AKNTRACE_FUNC_EXIT;
+ return state;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CListBoxExt::MarkCurrentItemL
+// -----------------------------------------------------------------------------
+//
+void CListBoxExt::MarkCurrentItemL()
+ {
+ _AKNTRACE_FUNC_ENTER;
+
+ if ( iListBox.MarkingMode() )
+ {
+ TInt index = iListBox.CurrentItemIndex();
+ if ( index >= 0 &&
+ !iListBox.iItemDrawer->Properties( index ).IsSelectionHidden() )
+ {
+ iListBox.View()->SelectItemL( iListBox.CurrentItemIndex() );
+ }
+ }
+ _AKNTRACE_FUNC_EXIT;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CListBoxExt::MarkAllL
+// -----------------------------------------------------------------------------
+//
+void CListBoxExt::MarkAllL()
+ {
+ _AKNTRACE_FUNC_ENTER;
+
+ if ( iListBox.MarkingMode() )
+ {
+ for ( TInt i = 0; i < iListBox.Model()->NumberOfItems(); ++i )
+ {
+ if ( !iListBox.iItemDrawer->Properties( i ).IsSelectionHidden() )
+ {
+ iListBox.View()->SelectItemL( i );
+ }
+ }
+ }
+ _AKNTRACE_FUNC_EXIT;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CListBoxExt::UnmarkAll
+// -----------------------------------------------------------------------------
+//
+void CListBoxExt::UnmarkAll()
+ {
+ _AKNTRACE_FUNC_ENTER;
+
+ if ( iListBox.MarkingMode() )
+ {
+ iListBox.View()->ClearSelection();
+ }
+
+ _AKNTRACE_FUNC_EXIT;
+ }
+
+// -----------------------------------------------------------------------------
+// CListBoxExt::CurrentItemMarkable
+// -----------------------------------------------------------------------------
+//
+TBool CListBoxExt::CurrentItemMarkable()
+ {
+ _AKNTRACE_FUNC_ENTER;
+ TBool itemCanBeMarked = ETrue;
+ TInt index = iListBox.CurrentItemIndex();
+ if ( index >= 0 &&
+ iListBox.iItemDrawer->Properties( index ).IsSelectionHidden() )
+ {
+ itemCanBeMarked = EFalse;
+ }
+ _AKNTRACE_FUNC_EXIT;
+ return itemCanBeMarked;
+ }
+
+
// ---------------------------------------------------------------------------
// CListBoxExt::HandleLongTapEventL
// ---------------------------------------------------------------------------
@@ -971,6 +1175,8 @@
iLongTappedItem = iLastDownTappedItem;
iLastDownTappedItem = KErrNotFound;
iItemActionMenu->ShowMenuL( aPenEventScreenLocation, 0 );
+ IgnorePointerEventsUntilUp();
+ iOldWinPos = iListBox.DrawableWindow()->OrdinalPosition();
_AKNTRACE_FUNC_EXIT;
}
@@ -1035,12 +1241,18 @@
if ( iListBox.iView->ViewRect() != TRect() )
{
- TInt topItemIndex = iListBox.iView->TopItemIndex();
- if ( iListBox.iView->ItemIsPartiallyVisible( topItemIndex) )
- {
- topItemIndex++;
- }
- TRAP_IGNORE( iListBox.UpdateHighlightL( topItemIndex ) );
+ // Set current item index highlighted if it is visible, otherwise
+ // the first visible index
+ TInt index = iListBox.iView->CurrentItemIndex();
+ if ( !iListBox.iView->ItemIsVisible( index ) )
+ {
+ index = iListBox.iView->TopItemIndex();
+ if ( iListBox.iView->ItemIsPartiallyVisible( index ) )
+ {
+ index++;
+ }
+ }
+ TRAP_IGNORE( iListBox.UpdateHighlightL( index ) );
}
DisableItemSpecificMenu();
@@ -1071,6 +1283,7 @@
_AKNTRACE_FUNC_EXIT;
}
+
// -----------------------------------------------------------------------------
// CListBoxExt::LongTapPointerEventL
// -----------------------------------------------------------------------------
@@ -1079,12 +1292,13 @@
{
if ( iSingleClickEnabled && iLongTapDetector && iItemActionMenu )
{
- // Send event on down only if item specific items were found and current
- // item is marked if there are marked items
- if ( !( MarkedItems() &&
- !iListBox.View()->ItemIsSelected( iListBox.CurrentItemIndex() ) )
- && ( aPointerEvent.iType != TPointerEvent::EButton1Down
- || iItemActionMenu->InitMenuL() ) )
+ // Send event on down only if item specific items were found.
+ // Long tap is also disabled if current item is not marked while
+ // there are some marked items or marking mode is active.
+ if ( !( ( iListBox.MarkingMode() || MarkedItems() )
+ && !iListBox.View()->ItemIsSelected( iListBox.CurrentItemIndex() ) )
+ && ( aPointerEvent.iType != TPointerEvent::EButton1Down
+ || iItemActionMenu->InitMenuL() ) )
{
iLongTapDetector->PointerEventL ( aPointerEvent );
}
@@ -1190,6 +1404,34 @@
// -----------------------------------------------------------------------------
+// CListBoxExt::IgnorePointerEventsUntilUp
+// -----------------------------------------------------------------------------
+//
+TBool CListBoxExt::IgnorePointerEventsUntilUp()
+ {
+ _AKNTRACE_FUNC_ENTER;
+
+ // Pointer event ignore must be done for the window-owning
+ // control or it doesn't have any effect!
+ CCoeControl* windowOwningControl = &iListBox;
+
+ while ( windowOwningControl && !windowOwningControl->OwnsWindow() )
+ {
+ windowOwningControl = windowOwningControl->Parent();
+ }
+
+ if ( windowOwningControl )
+ {
+ windowOwningControl->IgnoreEventsUntilNextPointerUp();
+ _AKNTRACE_FUNC_EXIT;
+ return ETrue;
+ }
+ _AKNTRACE_FUNC_EXIT;
+ return EFalse;
+ }
+
+
+// -----------------------------------------------------------------------------
// CListBoxExt::StartLongPressTimerL
// -----------------------------------------------------------------------------
//
@@ -1717,7 +1959,8 @@
}
// ---------------------------------------------------------------------------
-// CListBoxExt::FeedbackEnabledOnUpEvent
+// Checks whether or not tactile feedback should be given on a pointer
+// up event.
// ---------------------------------------------------------------------------
//
TBool CListBoxExt::FeedbackEnabledOnUpEvent()
@@ -1725,11 +1968,20 @@
_AKNTRACE_FUNC_ENTER;
TBool enabled( EFalse );
+ // As there's no pressed down highlight in single click enabled lists,
+ // the iLastDownTappedItem is used to track whether or not the pointer
+ // up event happened inside the same list item as the pointer down event.
+ // Feedback should not be given if the pointer up is received outside of
+ // the item that received the pointer down event, or in cases when the
+ // list has been dragged or flicked between the pointer down and pointer
+ // up events.
if ( ( iListBox.iItemDrawer->Flags() & CListItemDrawer::EPressedDownState
- || iSingleClickEnabled ) && !iFlickStopped )
+ || ( iSingleClickEnabled && iLastDownTappedItem != KErrNotFound ) ) &&
+ !iFlickStopped )
{
enabled = ETrue;
}
+
_AKNTRACE_FUNC_EXIT;
return enabled;
}
@@ -2104,12 +2356,24 @@
{
if ( iListBoxExt && iListBoxExt->iSingleClickEnabled )
{
- // If single click is enabled, highlight must also be visible
- if ( iListBoxExt->CollectionState()
+ TInt offset = (iListBoxExt->iWorldSize.iHeight / 2)
+ - iListBoxExt->iViewPosition.iY;
+ TInt totalItems = iModel->NumberOfItems();
+ TInt itemsInRect =
+ iView->NumberOfItemsThatFitInRect( iView->ViewRect() );
+
+ if ( ( iListBoxExt->CollectionState()
& MAknCollection::EStateHighlightVisible )
+ || ( ItemsInSingleLine()
+ && ( totalItems <= itemsInRect )
+ && ( offset != 0 ) ) )
{
newTopItemIndex = iView->CalcNewTopItemIndexSoItemIsVisible( currentItemIndex );
}
+ else
+ {
+ newTopItemIndex = iView->CalcNewTopItemIndexSoItemIsVisible( topItemIndex );
+ }
}
else
{
@@ -2129,10 +2393,10 @@
if ( newTopItemIndex != KEikListBoxInvalidIndex )
{
iView->SetTopItemIndex( newTopItemIndex );
- if ( iListBoxExt && iListBoxExt->iPhysics )
- {
- iListBoxExt->InitPhysicsL();
- }
+ }
+ if ( iListBoxExt && iListBoxExt->iPhysics )
+ {
+ iListBoxExt->InitPhysicsL();
}
}
UpdateScrollBarsL();
@@ -2404,7 +2668,8 @@
UpdateCurrentItem(aItemIndex);
iView->SetDisableRedraw(redrawDisabled);
- if ( iListBoxExt && iListBoxExt->iPhysics && aItemIndex == 0 )
+ if ( iListBoxExt && iListBoxExt->iPhysics && aItemIndex == 0
+ && !iListBoxExt->iScrolling )
{
iView->SetItemOffsetInPixels( 0 );
}
@@ -3715,7 +3980,7 @@
if (!shiftKeyPressed && iListBoxFlags & EShiftEnterMarks)
{
// enter key pressed on markable list without shift
- if (SelectionIndexes()->Count() > 0)
+ if ( SelectionIndexes()->Count() > 0 && !MarkingMode() )
{
// when there's marked items, should open options menu.
__KeyDebug(ETrue, "ok without shift => ok options menu");
@@ -3961,6 +4226,29 @@
{
allowed = iListBoxExt->iClickEventsAllowed;
}
+
+ if ( MarkingMode() && allowed )
+ {
+ switch ( aEvent )
+ {
+ case MEikListBoxObserver::EEventItemSingleClicked:
+ case MEikListBoxObserver::EEventEnterKeyPressed:
+ {
+ TInt index = CurrentItemIndex();
+ if ( index >= 0 &&
+ !iItemDrawer->Properties(index).IsSelectionHidden() )
+ {
+ iView->ToggleItemL( iView->CurrentItemIndex() );
+ }
+
+ allowed = EFalse;
+ }
+ break;
+
+ default:
+ break;
+ }
+ }
if ( allowed )
{
@@ -4692,11 +4980,6 @@
return;
}
-
- // When in marking mode, pointer events should not be forwarded to
- // long tap detector, this boolean indicates if marking mode is active
- TBool markingMode( iListBoxExt->MarkedItems() );
-
if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
{
if ( iListBoxExt->iSingleClickEnabled &&
@@ -4708,9 +4991,8 @@
iListBoxExt->iFeedbackType = ETouchFeedbackList;
- if ( iListBoxFlags & ES60StyleMultiselection ||
- ( !iListBoxExt->iSingleClickEnabled &&
- itemIndex != iView->CurrentItemIndex() ) )
+ if ( !iListBoxExt->iSingleClickEnabled &&
+ itemIndex != iView->CurrentItemIndex() )
{
iListBoxExt->iFeedbackType = ETouchFeedbackSensitiveList;
}
@@ -4855,11 +5137,15 @@
CCoeEnv::Static()->WsSession().Finish();
}
- iListBoxExt->ImmediateFeedback(
- iListBoxExt->iFeedbackType,
- TTouchFeedbackType( ETouchFeedbackVibra |
- ETouchFeedbackAudio ),
- aPointerEvent );
+ if ( !( ( iListBoxFlags & EViewerFlag ) &&
+ ( iListBoxFlags & EDisableItemSpecificMenu ) ) )
+ {
+ iListBoxExt->ImmediateFeedback(
+ iListBoxExt->iFeedbackType,
+ TTouchFeedbackType( ETouchFeedbackVibra |
+ ETouchFeedbackAudio ),
+ aPointerEvent );
+ }
if ( !wasFlicking )
{
@@ -4891,7 +5177,8 @@
}
}
#endif
- if (!(iListBoxFlags & EMultipleSelection)) // i.e. this is a single selection listbox
+ if ( !( iListBoxFlags & EMultipleSelection )
+ || MarkingMode() )
{
if (itemIndex == oldCurrentItemIndex)
{
@@ -5037,10 +5324,13 @@
case TPointerEvent::EButton1Up:
_AKNTRACE("TPointerEvent::EButton1Up");
- if ( iListBoxExt->FeedbackEnabledOnUpEvent() && iListBoxExt->iClickEventsAllowed )
+ if ( iListBoxExt->FeedbackEnabledOnUpEvent() && iListBoxExt->iClickEventsAllowed
+ && ( !( ( iListBoxFlags & EViewerFlag ) &&
+ ( iListBoxFlags & EDisableItemSpecificMenu ) ) ) )
{
TTouchLogicalFeedback fbType = ETouchFeedbackList;
- if ( iListBoxFlags & ES60StyleMultiselection )
+ if ( iListBoxFlags & ES60StyleMultiselection
+ || iListBoxFlags & EMultipleSelection )
{
fbType = ETouchFeedbackCheckbox;
}
@@ -5111,9 +5401,16 @@
return;
}
}
- else if ( s60StyleMultiselection &&
- iListBoxExt->iLastDownTappedItem == itemIndex &&
- !Buffer()->iDragToAnotherItem )
+ // Due to the feature of capactior panel, the pointer position
+ // may change between pointer down and up during user click
+ // action. When the click position is between two items, the
+ // item index may change unwanted, so we make a threshold
+ // for this situation.
+ else if ( s60StyleMultiselection
+ && ( iListBoxExt->iLastDownTappedItem == itemIndex
+ || Abs( iListBoxExt->iLastPointerPos.iY
+ - aPointerEvent.iPosition.iY ) < KPointerDownAndUpThreshold )
+ && !Buffer()->iDragToAnotherItem )
{
iListBoxFlags |= EStateChanged;
Buffer()->iPressedIndex = itemIndex;
@@ -5471,9 +5768,12 @@
EXPORT_C TBool CEikListBox::BackgroundDrawingSuppressed() const
{
- if ( iListBoxExt )
- {
- return iListBoxExt->iBackgroundDrawingSuppressed;
+ if ( iItemDrawer )
+ {
+ TInt flags = iItemDrawer->Flags();
+
+ return ( flags & CListItemDrawer::EDrawWholeBackground )
+ && ( flags & CListItemDrawer::EBackgroundDrawn );
}
return EFalse;
@@ -5793,8 +6093,22 @@
EColorControlDimmedBackground : EColorControlBackground,*this);
UpdateViewColors();
UpdateItemDrawerColors();
-
+
+ // store the value of virtical offset as it will be 0 in SizeChange,
+ // that will affect view position in skin changed, which is a bug.
+ TInt oldOffset = 0;
+ if ( iView )
+ {
+ oldOffset = iView->ItemOffsetInPixels();
+ }
+ // TODO: check if this call is real need here.
SizeChanged();
+ if ( oldOffset !=0 && iView )
+ {
+ iView->SetItemOffsetInPixels( oldOffset );
+ UpdateScrollBarThumbs();
+ }
+ // this methord is empty.
UpdateScrollBarsColors();
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
@@ -5839,7 +6153,13 @@
case KAknMessageFocusLost:
{
- if ( iListBoxExt && iListBoxExt->iSingleClickEnabled )
+ TInt oldWinPos = iListBoxExt->iOldWinPos;
+ TInt winPos = DrawableWindow()->OrdinalPosition();
+
+ // Do not remove higlight if window ordinal position has changed
+ // during the time when stylus menu is open
+ if ( iListBoxExt && iListBoxExt->iSingleClickEnabled
+ && ( oldWinPos == KErrNotFound || oldWinPos == winPos ) )
{
TBool enabled( iItemDrawer && !( iItemDrawer->Flags()
& CListItemDrawer::ESingleClickDisabledHighlight ) );
@@ -6289,6 +6609,60 @@
return enabled;
}
+
+// ---------------------------------------------------------------------------
+// CEikListBox::SetMarkingMode
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CEikListBox::SetMarkingMode( TBool aEnable )
+ {
+ if ( iListBoxExt && iListBoxExt->iSingleClickEnabled &&
+ ( iListBoxFlags & CEikListBox::ES60StyleMarkable ) )
+ {
+ if ( iListBoxExt->iMarkingModeInUse != aEnable )
+ {
+ if ( aEnable )
+ {
+ iView->ItemDrawer()->SetFlags(
+ CListItemDrawer::EMarkingModeEnabled );
+ }
+ else
+ {
+ iView->ItemDrawer()->ClearFlags(
+ CListItemDrawer::EMarkingModeEnabled );
+
+ if ( iView->SelectionIndexes()->Count() > 0 )
+ {
+ iView->ClearSelection( EFalse );
+ }
+ }
+
+ iListBoxExt->iMarkingModeInUse = aEnable;
+ DrawDeferred();
+ }
+
+ if ( MarkingModeObserver() )
+ {
+ MarkingModeObserver()->MarkingModeStatusChanged( aEnable );
+ }
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CEikListBox::SetMarkingModeObserver
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CEikListBox::SetMarkingModeObserver(
+ MAknMarkingModeObserver* aObserver )
+ {
+ if ( iListBoxExt )
+ {
+ iListBoxExt->iMarkingModeObserver = aObserver;
+ }
+ }
+
+
void CEikListBox::ScrollView( const TInt aOffset, TBool aDrawNow )
{
_AKNTRACE_FUNC_ENTER;
@@ -6336,7 +6710,7 @@
}
else if ( CAknPhysics::EAknPhysicsActionDragging == iListBoxExt->iPhysics->OngoingPhysicsAction() )
{
- iListBoxExt->ImmediateFeedback( iListBoxExt->iFeedbackType,
+ iListBoxExt->ImmediateFeedback( ETouchFeedbackSensitiveList,
TTouchFeedbackType( ETouchFeedbackVibra | ETouchFeedbackAudio ),
TPointerEvent() );
}
@@ -6365,17 +6739,20 @@
#endif // _DEBUG
iView->SetTopItemIndex( newTopItemIndex );
}
+
if ( aDrawNow )
{
TRect rect(Rect());
// list position changed
- if ( iListBoxExt )
- {
- iListBoxExt->iBackgroundDrawingSuppressed = ETrue;
- }
+ if ( iListBoxExt && iListBoxExt->FlickOrPanningOngoing() )
+ {
+ iItemDrawer->SetFlags( CListItemDrawer::EDrawWholeBackground );
+ }
+
UpdateScrollBarThumbs();
DrawNow();
+
if (iSBFrame && iSBFrame->VerticalScrollBar() && !iSBFrame->VerticalScrollBar()->OwnsWindow())
{
TRect srect( iSBFrame->VerticalScrollBar()->Rect() );
@@ -6384,9 +6761,11 @@
iSBFrame->DrawScrollBarsNow();
}
}
+
if ( iListBoxExt )
{
- iListBoxExt->iBackgroundDrawingSuppressed = EFalse;
+ iItemDrawer->ClearFlags( CListItemDrawer::EDrawWholeBackground
+ | CListItemDrawer::EBackgroundDrawn );
}
}
_AKNTRACE_FUNC_EXIT;
@@ -6402,20 +6781,10 @@
_AKNTRACE_FUNC_ENTER;
_AKNTRACE( "aPointerEvent.iType = %d", aPointerEvent.iType );
if ( iListBoxExt->iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionBouncing )
- {
- // Block scrolling events outside listbox area. Note that pointer
- // event ignore must be done for the window-owning control or it
- // doesn't have any effect!
- CCoeControl* windowOwningControl = this;
-
- while ( windowOwningControl && !windowOwningControl->OwnsWindow() )
- {
- windowOwningControl = windowOwningControl->Parent();
- }
-
- if ( windowOwningControl )
- {
- windowOwningControl->IgnoreEventsUntilNextPointerUp();
+ {
+ // Block scrolling events outside listbox area.
+ if ( iListBoxExt->IgnorePointerEventsUntilUp() )
+ {
_AKNTRACE_FUNC_EXIT;
return ETrue;
}
@@ -6456,6 +6825,11 @@
iListBoxExt->iMarkingDisabled = ETrue;
iListBoxFlags|=ELeftDownInViewRect;
blockEvent = ETrue;
+ iListBoxExt->ImmediateFeedback(
+ ETouchFeedbackList,
+ TTouchFeedbackType( ETouchFeedbackVibra |
+ ETouchFeedbackAudio ),
+ aPointerEvent );
}
}
}
@@ -6732,6 +7106,40 @@
// ---------------------------------------------------------------------------
+// CEikListBox::MarkingMode
+// ---------------------------------------------------------------------------
+//
+TBool CEikListBox::MarkingMode() const
+ {
+ TBool markingModeInUse = EFalse;
+
+ if ( iListBoxExt )
+ {
+ markingModeInUse = iListBoxExt->iMarkingModeInUse;
+ }
+
+ return markingModeInUse;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CEikListBox::MarkingModeObserver
+// ---------------------------------------------------------------------------
+//
+MAknMarkingModeObserver* CEikListBox::MarkingModeObserver()
+ {
+ MAknMarkingModeObserver* observer = NULL;
+
+ if ( iListBoxExt )
+ {
+ observer = iListBoxExt->iMarkingModeObserver;
+ }
+
+ return observer;
+ }
+
+
+// ---------------------------------------------------------------------------
// Sets this control as visible or invisible.
// ---------------------------------------------------------------------------
//
--- a/uifw/EikStd/coctlsrc/EIKMENUB.CPP Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKMENUB.CPP Tue May 11 16:27:42 2010 +0300
@@ -60,6 +60,7 @@
#include "aknitemactionmenuregister.h"
#include <AknPriv.hrh>
#include "akntrace.h"
+#include "aknmarkingmode.h"
enum { EEikMenuBarTitleArrayGranularity=10 };
enum { EEikMenuBarPosArrayGranularity=2 };
@@ -74,9 +75,18 @@
void FadeBehindPopup(TBool aFade);
/**
- * Sets item specific commands dimmed if highlight is not visible.
+ * Dims item specific commands if no highlight in list or dims
+ * other than item specific commands if list is in multiple marking
+ * state.
*/
- void SetItemCommandsDimmedL();
+ void SetItemCommandsStateL();
+
+ /**
+ * Returns active marking mode object. Otherwise NULL.
+ *
+ * @return Active marking mode object.
+ */
+ CAknMarkingMode* MarkingModeActive();
/**
* Saves current value of iItemActionMenu->CollectionHighlightVisible() to
@@ -112,6 +122,11 @@
CAknItemActionMenu* iItemActionMenu;
/**
+ * ETrue if single click has been enabled in application.
+ */
+ TBool iSingleClickEnabled;
+
+ /**
* When menu pane is opened this value is updated to store the value about
* collection highlight visibility
*/
@@ -146,22 +161,58 @@
}
-void CEikMenuBarExtension::SetItemCommandsDimmedL()
+void CEikMenuBarExtension::SetItemCommandsStateL()
{
- if ( !iItemActionMenu )
+ if ( iSingleClickEnabled && !iItemActionMenu )
{
AknItemActionMenuRegister::RegisterMenuBarL( *iBar );
}
- // hide item-specific commands if highlight not visible
- if ( iBar->GetMenuType() != CEikMenuBar::EMenuContext
- && ( ( iItemActionMenu
- && !iItemActionMenu->CollectionHighlightVisible() )
- || !iItemActionMenu ) )
- {
- iBar->iMenuPane->SetItemCommandsDimmed();
+
+ // Hide item-specific commands if highlight not visible
+ // or show only item specific commands if list is in multiple marking
+ // state
+ if ( iBar->GetMenuType() != CEikMenuBar::EMenuContext )
+ {
+ if ( iItemActionMenu )
+ {
+ TBool dimCommands( EFalse );
+ TBool changeState( EFalse );
+ if ( iItemActionMenu->MarkingMode().MultipleMarkingActive() )
+ {
+ changeState = ETrue;
+ dimCommands = EFalse;
+ }
+ else if ( !iItemActionMenu->CollectionHighlightVisible() )
+ {
+ changeState = ETrue;
+ dimCommands = ETrue;
+ }
+ if ( changeState )
+ {
+ iBar->iMenuPane->SetItemCommandsStateL( dimCommands );
+ }
+ }
+ else if ( iSingleClickEnabled )
+ {
+ // Dim tagged item action and item specific commands
+ // anyway, fixes case where listbox creation is not
+ // finished yet when options menu is opened
+ iBar->iMenuPane->SetItemCommandsStateL( ETrue );
+ }
}
}
+CAknMarkingMode* CEikMenuBarExtension::MarkingModeActive()
+ {
+ CAknMarkingMode* markingMode( NULL );
+ if ( iItemActionMenu
+ && iItemActionMenu->MarkingMode().MultipleMarkingActive() )
+ {
+ markingMode = &iItemActionMenu->MarkingMode();
+ }
+ return markingMode;
+ }
+
void CEikMenuBarExtension::StoreCollectionHighlightValue()
{
@@ -171,10 +222,14 @@
= iItemActionMenu->CollectionHighlightVisible();
}
}
+
CEikMenuBarExtension::CEikMenuBarExtension(CEikMenuBar* aBar)
:iBar(aBar),
iDoingMenuCloseTransition(EFalse),
- iItemActionMenu( NULL )
+ iItemActionMenu( NULL ),
+ iSingleClickEnabled(
+ static_cast<CAknAppUi*>(
+ aBar->ControlEnv()->AppUi() )->IsSingleClickCompatible() )
{
}
@@ -885,6 +940,12 @@
TInt titles = iTitleArray->Count() - 1;
+ CAknMarkingMode* marking( NULL );
+ if ( iExt )
+ {
+ marking = iExt->MarkingModeActive();
+ }
+
if ( titles < 0 )
{
delete iMenuCba;
@@ -893,31 +954,77 @@
iMenuPane->Close();
return;
}
-
- // Create the menu pane using the last pane in the menu bar
- iMenuObserver->RestoreMenuL(iMenuPane,(*iTitleArray)[titles]->iData.iMenuPaneResourceId,MEikMenuObserver::EMenuPane);
- if (fepMenuObserver)
- fepMenuObserver->DynInitMenuPaneL((*iTitleArray)[titles]->iData.iMenuPaneResourceId,iMenuPane);
- if (iActiveEditMenuObserver)
- iActiveEditMenuObserver->DynInitMenuPaneL((*iTitleArray)[titles]->iData.iMenuPaneResourceId,iMenuPane);
- titles = iTitleArray->Count() - 2;
- iMenuPane->FilterDimmedItems();
+ TBool markedItems( EFalse );
+ if ( marking )
+ {
+ markedItems = marking->MarkedItems();
+ }
+ // In marking mode do not add commands if no marked items in list
+ if ( !marking || markedItems )
+ {
+ // Create the menu pane using the last pane in the menu bar
+ iMenuObserver->RestoreMenuL(
+ iMenuPane,
+ ( *iTitleArray )[ titles ]->iData.iMenuPaneResourceId,
+ MEikMenuObserver::EMenuPane );
+ if ( fepMenuObserver )
+ fepMenuObserver->DynInitMenuPaneL(
+ ( *iTitleArray )[ titles ]->iData.iMenuPaneResourceId,
+ iMenuPane );
+ if ( iActiveEditMenuObserver )
+ iActiveEditMenuObserver->DynInitMenuPaneL(
+ ( *iTitleArray )[ titles ]->iData.iMenuPaneResourceId,
+ iMenuPane );
+
+ titles = iTitleArray->Count() - 2;
+ iMenuPane->FilterDimmedItems();
- // Add the remaining menu panes from right to left at the end of the current pane
- while (titles >= 0)
+ // Add the remaining menu panes from right to left
+ // at the end of the current pane
+ while ( titles >= 0 )
+ {
+ TInt resource =
+ ( *iTitleArray )[ titles ]->iData.iMenuPaneResourceId;
+ iMenuPane->AddMenuItemsL( resource, 0, ETrue );
+ iMenuObserver->DynInitMenuPaneL( resource, iMenuPane );
+ if ( fepMenuObserver )
+ fepMenuObserver->DynInitMenuPaneL( resource, iMenuPane );
+ if ( iActiveEditMenuObserver )
+ iActiveEditMenuObserver->DynInitMenuPaneL(
+ resource,iMenuPane );
+
+ if ( resource == R_AVKON_MENUPANE_MARK_MULTIPLE )
+ {
+ iMenuPane->SetItemDimmed( EAknCmdMarkingModeMarkOne, ETrue );
+ }
+
+ titles--;
+ }
+ iExt->SetItemCommandsStateL();
+ iMenuPane->FilterDimmedItems();
+ }
+
+ // Multiple marking mode active
+ if ( marking )
{
- TInt resource = (*iTitleArray)[titles]->iData.iMenuPaneResourceId;
- iMenuPane->AddMenuItemsL(resource, 0, ETrue);
- iMenuObserver->DynInitMenuPaneL(resource,iMenuPane);
- if (fepMenuObserver)
- fepMenuObserver->DynInitMenuPaneL(resource,iMenuPane);
- if (iActiveEditMenuObserver)
- iActiveEditMenuObserver->DynInitMenuPaneL(resource,iMenuPane);
- iExt->SetItemCommandsDimmedL();
+ iMenuPane->AddMenuItemsL( R_AVKON_MENUPANE_MARK_MULTIPLE, 0, ETrue );
+
+ if ( !marking->CollectionEmpty() )
+ {
+ iMenuPane->SetItemDimmed( EAknCmdMarkingModeMarkAll, EFalse );
+ }
+
+ if ( markedItems )
+ {
+ iMenuPane->SetItemDimmed( EAknCmdMarkingModeUnmarkAll, EFalse );
+ }
+
+ iMenuPane->SetItemDimmed( EAknCmdMarkingModeMarkOne, ETrue );
+ iMenuPane->SetItemDimmed( EAknCmdMarkingModeEnter, ETrue );
iMenuPane->FilterDimmedItems();
- titles--;
}
+
iMenuObserver->SetEmphasis(this,ETrue);
iMenuCba = CEikButtonGroupContainer::NewL(CEikButtonGroupContainer::ECba,
CEikButtonGroupContainer::EHorizontal,
@@ -930,8 +1037,11 @@
{
iMenuPane->SetEmbeddedCba( cba );
}
-
- MTouchFeedback* feedback = MTouchFeedback::Instance();
+ MTouchFeedback* feedback = NULL;
+ if( AknLayoutUtils::PenEnabled() )
+ {
+ feedback = MTouchFeedback::Instance();
+ }
if ( feedback )
{
feedback->FlushRegistryUpdates();
@@ -942,7 +1052,11 @@
KPSUidAvkonInternal,
KAknMenuOptionNoTaskSwapper,
taskSwapper);
- if ( iMenuPane->NumberOfItemsInPane() != 0 && iExt->iMenuType == EMenuOptions && taskSwapper == ETaskSwapper )
+
+ if ( iMenuPane->NumberOfItemsInPane() != 0
+ && iExt->iMenuType == EMenuOptions
+ && taskSwapper == ETaskSwapper
+ && !marking )
{
// 'Active Applications' menu item is added at the first item of the
// options menu after other menu items are added.
@@ -999,20 +1113,6 @@
// menu pane captures all pointer events, and forwards them to CBA if neccessary
iMenuPane->SetGloballyCapturing(ETrue);
iMenuPane->SetPointerCapture(ETrue);
- MTouchFeedback* feedback = MTouchFeedback::Instance();
- if ( feedback )
- {
- TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
- if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
- {
- fbLogicalType = ETouchFeedbackOptionsMenuOpened;
- }
- feedback->InstantFeedback(
- this,
- fbLogicalType,
- ETouchFeedbackVibra,
- TPointerEvent() );
- }
}
iMenuPane->MakeVisible( EFalse );
@@ -1023,6 +1123,16 @@
if( optMenuFg )
{
GfxTransEffect::Begin( iMenuPane, KGfxControlAppearAction );
+ if( feedback && CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ))
+ {
+ TTouchLogicalFeedback fbLogicalType = ETouchFeedbackOptionsMenuOpened;
+ if( iExt->iMenuType == EMenuContext || iExt->iMenuType == EMenuEdit )
+ {
+ fbLogicalType = ETouchFeedbackIncreasingPopUp;
+ }
+ feedback->InstantFeedback( this, fbLogicalType,
+ ETouchFeedbackVibra, TPointerEvent() );
+ }
}
iMenuPane->StartDisplayingMenuPane(NULL, menuPosition, NULL, screenSize.iWidth, EPopupTargetBottomLeft);
@@ -1040,6 +1150,11 @@
GfxTransEffect::SetDemarcation( iMenuPane, demarcation );
GfxTransEffect::End( iMenuPane );
}
+ if( feedback )
+ {
+ feedback->InstantFeedback( this, ETouchFeedbackPopUp,
+ ETouchFeedbackVibra, TPointerEvent() );
+ }
_AKNTRACE_FUNC_EXIT;
}
@@ -1193,9 +1308,18 @@
if ( feedback )
{
TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
- if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
+ if ( CAknTransitionUtils::TransitionsEnabled(
+ AknTransEffect::EComponentTransitionsOff ) )
{
- fbLogicalType = ETouchFeedbackOptionsMenuClosed;
+ if ( iExt->iMenuType == EMenuContext ||
+ iExt->iMenuType == EMenuEdit )
+ {
+ fbLogicalType = ETouchFeedbackDecreasingPopUp;
+ }
+ else
+ {
+ fbLogicalType = ETouchFeedbackOptionsMenuClosed;
+ }
}
feedback->InstantFeedback(
this,
@@ -1206,7 +1330,49 @@
}
break;
// AKNLAF end
+
+ case EAknCmdMarkingModeEnter:
+ {
+ if ( iExt->iItemActionMenu )
+ {
+ iExt->iItemActionMenu->MarkingMode(
+ ).SetCollectionMultipleMarkingState( ETrue );
+ }
+ break;
+
+ case EAknCmdMarkingModeMarkOne:
+ {
+ if ( iExt->iItemActionMenu )
+ {
+ iExt->iItemActionMenu->MarkingMode().MarkCurrentItemL();
+ }
+ }
+ break;
+
+ case EAknCmdMarkingModeMarkAll:
+ {
+ if ( iExt->iItemActionMenu )
+ {
+ iExt->iItemActionMenu->MarkingMode().MarkAllL();
+ }
+ }
+ break;
+
+ case EAknCmdMarkingModeUnmarkAll:
+ {
+ if ( iExt->iItemActionMenu )
+ {
+ iExt->iItemActionMenu->MarkingMode().UnmarkAll();
+ }
+ }
+ break;
+ }
+
default:
+ if ( iExt->iItemActionMenu )
+ {
+ iExt->iItemActionMenu->MarkingMode().TryExitMarkingMode();
+ }
break;
}
}
@@ -1438,6 +1604,15 @@
{
menuPane->AddMenuItemsL( resource, 0 );
iMenuObserver->DynInitMenuPaneL( resource, menuPane );
+
+ if ( resource == R_AVKON_MENUPANE_MARK_MULTIPLE )
+ {
+ if ( iExt->iItemActionMenu->MarkingMode().MultipleMarkingActive() ||
+ !iExt->iItemActionMenu->MarkingMode().CurrentItemMarkable() )
+ {
+ menuPane->SetItemDimmed( EAknCmdMarkingModeMarkOne, ETrue );
+ }
+ }
}
titles--;
}
--- a/uifw/EikStd/coctlsrc/EIKMENUP.CPP Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKMENUP.CPP Tue May 11 16:27:42 2010 +0300
@@ -143,7 +143,7 @@
/**
* Prepares cascade menu for item specific commands.
*/
- void PrepareCascadeForItemCommands();
+ void PrepareCascadeForItemCommandsL();
/**
* Returns ETrue if this menu pane belongs to a CS menu.
@@ -237,7 +237,8 @@
EHideItemSpecificCommands,
EContextSensitive,
ESkipScrollbarUpdate,
- EHighlightEnabled
+ EHighlightEnabled,
+ EHideViewSpecificCommands
};
/**
@@ -839,6 +840,11 @@
{
cascadeMenuPane->SetParent( iControl );
GfxTransEffect::Begin( cascadeMenuPane, KGfxControlAppearAction );
+ if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
+ {
+ ImmediateFeedback( ETouchFeedbackSubMenuOpened,
+ ETouchFeedbackVibra );
+ }
cascadeMenuPane->StartDisplayingMenuPane( iControl->iHotKeyTable,
iControl->Position(),
NULL,
@@ -1248,6 +1254,7 @@
iFlags.Clear( EHideItemSpecificCommands );
iFlags.Clear( EContextSensitive );
iFlags.Clear( EHighlightEnabled );
+ iFlags.Clear( EHideViewSpecificCommands );
_AKNTRACE_FUNC_EXIT;
}
@@ -1329,8 +1336,8 @@
TTouchLogicalFeedback aType,
TTouchFeedbackType aFbType = TTouchFeedbackType( ETouchFeedbackAudio |
ETouchFeedbackVibra ))
- {
- if ( iFeedback )
+ {
+ if( iFeedback && AknLayoutUtils::PenEnabled() )
{
iFeedback->InstantFeedback( iControl, aType, aFbType, TPointerEvent() );
}
@@ -1338,10 +1345,10 @@
// -----------------------------------------------------------------------------
-// CEikMenuPaneExtension::PrepareCascadeForItemCommands
-// -----------------------------------------------------------------------------
-//
-void CEikMenuPaneExtension::PrepareCascadeForItemCommands()
+// CEikMenuPaneExtension::PrepareCascadeForItemCommandsL
+// -----------------------------------------------------------------------------
+//
+void CEikMenuPaneExtension::PrepareCascadeForItemCommandsL()
{
if ( iFlags.IsSet( ESingleClickEnabled )
&& iControl->iOwner
@@ -1354,7 +1361,7 @@
}
else if ( ownerFlags.IsSet( EHideItemSpecificCommands ) )
{
- iControl->SetItemCommandsDimmed();
+ iControl->SetItemCommandsStateL( ETrue );
}
}
}
@@ -1795,6 +1802,13 @@
{
_AKNTRACE_FUNC_ENTER;
AKNTASHOOK_REMOVE();
+
+ if ( iIsDeleted )
+ {
+ *iIsDeleted = ETrue;
+ iIsDeleted = NULL;
+ }
+
CloseCascadeMenu();
if ( !ItemArrayOwnedExternally() )
{
@@ -2246,7 +2260,7 @@
iEditMenuObserver->DynInitMenuPaneL( aCascadeMenuId, iCascadeMenuPane );
}
- iCascadeMenuPane->iExtension->PrepareCascadeForItemCommands();
+ iCascadeMenuPane->iExtension->PrepareCascadeForItemCommandsL();
iCascadeMenuPane->iExtension->EnableHighlight( EFalse );
iCascadeMenuPane->FilterDimmedItems();
@@ -2259,13 +2273,7 @@
{
iExtension->StartCascadeMenuAppearTransition();
}
-
- TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
- if ( CAknTransitionUtils::TransitionsEnabled( AknTransEffect::EComponentTransitionsOff ) )
- {
- fbLogicalType = ETouchFeedbackSubMenuOpened;
- }
- iExtension->ImmediateFeedback( fbLogicalType,
+ iExtension->ImmediateFeedback( ETouchFeedbackPopUp,
ETouchFeedbackVibra );
_AKNTRACE_FUNC_EXIT;
}
@@ -3099,10 +3107,35 @@
CEikMenuPane* menu = iOwner ? iOwner : this;
MCoeControlObserver* observer = menu->Observer();
- if ( commandId != EAknCmdTaskSwapper )
+ if ( commandId >= EAknCmdMarkingModeEnter
+ && commandId <= EAknCmdMarkingModeUnmarkAll )
+ {
+ CEikMenuBar* menuBar = static_cast<CEikMenuBar*>( Parent() );
+ if ( menuBar && menuBar->MenuPane() == this )
+ {
+ static_cast<MEikCommandObserver*>(
+ menuBar)->ProcessCommandL( commandId );
+ }
+ ReportCanceled();
+ }
+ else if ( commandId != EAknCmdTaskSwapper )
{
_AKNTRACE( "commandId = %d", commandId );
+ TBool isDeleted = EFalse;
+ iIsDeleted = &isDeleted;
iMenuObserver->ProcessCommandL( commandId );
+
+ if ( !isDeleted )
+ {
+ CEikMenuBar* menuBar = static_cast<CEikMenuBar*>( Parent() );
+ if ( menuBar && menuBar->MenuPane() == this )
+ {
+ static_cast<MEikCommandObserver*>(
+ menuBar)->ProcessCommandL( commandId );
+ }
+ }
+
+ iIsDeleted = NULL;
}
else
{
@@ -4014,10 +4047,10 @@
_AKNTRACE_FUNC_EXIT;
return iOwner->HandlePointerEventL( parentEvent );
}
- iExtension->iDownOnMenuArea = EFalse;
iExtension->iPanningActive = EFalse;
- if ( !(iExtension->iSct && iExtension->iSct->Rect().Contains( iExtension->iStartPoint ) ) )
+ if ( !(iExtension->iSct && iExtension->iSct->Rect().Contains( iExtension->iStartPoint ) )
+ && iExtension->iDownOnMenuArea )
{
TPoint drag = iExtension->iStartPoint - aPointerEvent.iPosition;
if ( iExtension->iPhysics->StartPhysics(
@@ -4027,6 +4060,7 @@
iExtension->ResetPressedHighlight();
}
}
+ iExtension->iDownOnMenuArea = EFalse;
if ( iExtension->HighlightTimerActive() &&
!iExtension->iPressedDown )
{
@@ -4375,11 +4409,11 @@
if( Abs( threshold ) > iExtension->iPhysics->DragThreshold()
&& iExtension->iDownOnMenuArea )
{
+ iExtension->EnableHighlight( EFalse );
iExtension->iButtonDownItem = KErrNotFound;
iExtension->ResetPressedHighlight();
iExtension->iNextHighlightItem = KErrNotFound;
iExtension->iPanningActive = ETrue;
- iExtension->EnableHighlight( EFalse );
}
if ( iExtension->iPanningActive && iExtension->iDownOnMenuArea )
@@ -6514,25 +6548,51 @@
// -----------------------------------------------------------------------------
-// CEikMenuPane::SetItemCommandsDimmed
-// -----------------------------------------------------------------------------
-//
-void CEikMenuPane::SetItemCommandsDimmed()
+// CEikMenuPane::SetItemCommandsStateL
+// -----------------------------------------------------------------------------
+//
+void CEikMenuPane::SetItemCommandsStateL( TBool aDimmed )
{
if ( iExtension && iExtension->iFlags.IsSet(
CEikMenuPaneExtension::ESingleClickEnabled ) )
{
- iExtension->iFlags.Set(
- CEikMenuPaneExtension::EHideItemSpecificCommands );
+ if ( aDimmed )
+ {
+ iExtension->iFlags.Set(
+ CEikMenuPaneExtension::EHideItemSpecificCommands );
+ }
+ else
+ {
+ iExtension->iFlags.Set(
+ CEikMenuPaneExtension::EHideViewSpecificCommands );
+ }
for ( TInt i = 0; i < iItemArray->Count(); ++i )
{
CEikMenuPaneItem* item = iItemArray->At( i );
- if ( item->iData.iFlags & EEikMenuItemAction
+ TBool itemSpecificItem(
+ item->iData.iFlags & EEikMenuItemAction
|| item->iData.iFlags & EEikMenuItemSpecific
- || item->iData.iFlags & EEikMenuItemSpecificListQuery )
+ || item->iData.iFlags & EEikMenuItemSpecificListQuery );
+ // Dim item specific items
+ if ( aDimmed && itemSpecificItem )
{
item->iData.iFlags |= EEikMenuItemDimmed;
}
+ // Dim items not item specific
+ else if ( !aDimmed
+ && ( !itemSpecificItem
+ || item->iData.iFlags & EEikMenuItemAction ) )
+ {
+ item->iData.iFlags |= EEikMenuItemDimmed;
+ if ( item->iData.iCascadeId )
+ {
+ // i is not updated in AddCascadeMenuItemsToMenuL so going
+ // through added items again here. Then it goes through
+ // also submenus of submenus.
+ AddCascadeMenuItemsToMenuL(
+ item->iData.iCascadeId, ETrue, EFalse, NULL, i );
+ }
+ }
}
}
}
@@ -6560,8 +6620,8 @@
if ( !( item->iData.iFlags & EEikMenuItemSpecificListQuery )
&& item->iData.iCascadeId )
{
- AddCascadeMenuItemsToActionMenuL(
- item->iData.iCascadeId, EFalse, aMenuData );
+ AddCascadeMenuItemsToMenuL(
+ item->iData.iCascadeId, EFalse, ETrue, &aMenuData );
}
// If menu item is list query or it does not have cascade menu
else
@@ -6577,21 +6637,23 @@
else if ( item->iData.iCascadeId &&
!( item->iData.iFlags & EEikMenuItemDimmed ) )
{
- AddCascadeMenuItemsToActionMenuL(
- item->iData.iCascadeId, ETrue, aMenuData );
+ AddCascadeMenuItemsToMenuL(
+ item->iData.iCascadeId, ETrue, ETrue, &aMenuData );
}
}
}
// -----------------------------------------------------------------------------
-// CEikMenuPane::AddCascadeMenuItemsToActionMenuL
-// -----------------------------------------------------------------------------
-//
-void CEikMenuPane::AddCascadeMenuItemsToActionMenuL(
+// CEikMenuPane::AddCascadeMenuItemsToMenuL
+// -----------------------------------------------------------------------------
+//
+void CEikMenuPane::AddCascadeMenuItemsToMenuL(
TInt aCascadeId,
TBool aItemSpecific,
- CAknItemActionMenuData& aMenuData )
+ TBool aAddToItemActionMenu,
+ CAknItemActionMenuData* aMenuData,
+ TInt aItemIndex )
{
if ( aCascadeId && iCoeEnv->IsResourceAvailableL( aCascadeId ) )
{
@@ -6610,10 +6672,17 @@
|| ( !aItemSpecific
&& !( item->iData.iFlags & EEikMenuItemDimmed ) ) )
{
- aMenuData.AddMenuItemToDataArrayL(
- item->iData.iCommandId,
- item->iData.iCascadeId,
- item->iData.iText );
+ if ( aAddToItemActionMenu )
+ {
+ aMenuData->AddMenuItemToDataArrayL(
+ item->iData.iCommandId,
+ item->iData.iCascadeId,
+ item->iData.iText );
+ }
+ else
+ {
+ InsertMenuItemL( item->iData, ++aItemIndex );
+ }
}
}
CleanupStack::PopAndDestroy( cascadeMenu );
--- a/uifw/EikStd/coctlsrc/EIKSCRLB.CPP Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKSCRLB.CPP Tue May 11 16:27:42 2010 +0300
@@ -2382,25 +2382,35 @@
scrollBarRect.Move( Position().iX -
windowOwningParent->Position().iX, 0 );
}
-
- // left to right layout in use
- if ( !AknLayoutUtils::LayoutMirrored() )
- {
- xGap = parentRect.iBr.iX - scrollBarRect.iBr.iX;
- if ( Abs( xGap ) < scrollBarRect.Width() )
- {
- extension.iBr.iX += xGap;
- }
- }
- // right to left layout in use
+ if ( iOrientation == CEikScrollBar::EVertical )
+ {
+ // left to right layout in use
+ if ( !AknLayoutUtils::LayoutMirrored() )
+ {
+ xGap = parentRect.iBr.iX - scrollBarRect.iBr.iX;
+ if ( Abs( xGap ) < scrollBarRect.Width() )
+ {
+ extension.iBr.iX += xGap;
+ }
+ }
+ // right to left layout in use
+ else
+ {
+ xGap = parentRect.iTl.iX - scrollBarRect.iTl.iX;
+ if ( Abs( xGap ) < scrollBarRect.Width() )
+ {
+ extension.iTl.iX += xGap;
+ }
+ }
+ }
else
- {
- xGap = parentRect.iTl.iX - scrollBarRect.iTl.iX;
- if ( Abs( xGap ) < scrollBarRect.Width() )
- {
- extension.iTl.iX += xGap;
- }
- }
+ {
+ xGap = parentRect.iBr.iY - scrollBarRect.iBr.iY;
+ if ( Abs( xGap ) < scrollBarRect.Height() )
+ {
+ extension.iBr.iY += xGap;
+ }
+ }
}
}
@@ -2416,7 +2426,7 @@
area.iTl.iX = scrollbar.iTl.iY - extension.iTl.iY;
area.iTl.iY = scrollbar.Width() - extension.Width();
area.iBr.iX = iSize.iWidth + ( extension.Height() - scrollbar.Height() );
- area.iBr.iY = area.iTl.iY + extension.Width();
+ area.iBr.iY = area.iTl.iY + extension.Height();
}
return area;
--- a/uifw/EikStd/coctlsrc/akndoublespanscrollindicatoritem.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/akndoublespanscrollindicatoritem.cpp Tue May 11 16:27:42 2010 +0300
@@ -78,31 +78,8 @@
TInt /*aBottomItemBitmapId*/,
TInt /*aBottomItemMaskId*/)
{
- MAknsSkinInstance* skin = AknsUtils::SkinInstance();
iTopId = aTopItem;
iMidId = aMiddleItem;
iBottomId = aBottomItem;
}
-void CAknDoubleSpanScrollIndicatorItem::CreateSkinnedBitmapAndMaskL(MAknsSkinInstance* aInstance,
- const TAknsItemID& aID,
- CFbsBitmap*& aBitmap,
- CFbsBitmap*& aMask,
- TBool /*aRotated*/)
- {
- CFbsBitmap* skinnedBitmap = NULL;
- CFbsBitmap* skinnedMask = NULL;
-
- // note, real fallback icons are not (yet) available in avkon icon file.
- TRAP_IGNORE(AknsUtils::CreateIconL( aInstance, aID, skinnedBitmap, skinnedMask, KNullDesC, -1, -1 ));
-
- if(!skinnedBitmap)
- {
- AknsUtils::CreateIconL( aInstance, aID, skinnedBitmap, KNullDesC, -1 );
- }
-
- aBitmap = skinnedBitmap;
- aMask = skinnedMask;
-
- }
-
--- a/uifw/EikStd/coctlsrc/aknedwinphysicshandler.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/aknedwinphysicshandler.cpp Tue May 11 16:27:42 2010 +0300
@@ -142,10 +142,12 @@
}
else
{
- TInt deltaY( iPrevPosition.iY - aPointerEvent.iPosition.iY );
-
- TPoint deltaPoint( 0, deltaY );
- iPhysics->RegisterPanningPosition( deltaPoint );
+ if ( !iEdwin.ContentFitsToViewRect() )
+ {
+ TInt deltaY( iPrevPosition.iY - aPointerEvent.iPosition.iY );
+ TPoint deltaPoint( 0, deltaY );
+ iPhysics->RegisterPanningPosition( deltaPoint );
+ }
}
iPrevPosition = aPointerEvent.iPosition;
}
@@ -157,8 +159,12 @@
}
iFlags.Clear( EFlagDraggingAllowed );
- TPoint drag( 0, iStartPosition.iY - aPointerEvent.iPosition.iY );
- iPhysics->StartPhysics( drag, iStartTime );
+
+ if ( !iEdwin.ContentFitsToViewRect() )
+ {
+ TPoint drag( 0, iStartPosition.iY - aPointerEvent.iPosition.iY );
+ iPhysics->StartPhysics( drag, iStartTime );
+ }
}
}
}
--- a/uifw/EikStd/coctlsrc/aknitemactionmenu.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/aknitemactionmenu.cpp Tue May 11 16:27:42 2010 +0300
@@ -29,6 +29,7 @@
#include "aknitemactionmenudata.h"
#include "aknitemactionmenuregister.h"
#include "akntrace.h"
+#include "aknmarkingmode.h"
/**
* Index for invalid list index.
@@ -78,6 +79,7 @@
delete iPopupMenu;
delete iMenuPane;
delete iMenuData;
+ delete iMarking;
iStates.Close();
for ( TInt i = 0; i < iObservers.Count(); ++i )
@@ -378,6 +380,18 @@
// ---------------------------------------------------------------------------
+// CAknItemActionMenu::MarkingMode
+// ---------------------------------------------------------------------------
+//
+CAknMarkingMode& CAknItemActionMenu::MarkingMode()
+ {
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE_FUNC_EXIT;
+ return *iMarking;
+ }
+
+
+// ---------------------------------------------------------------------------
// CAknItemActionMenu::CAknItemActionMenu
// ---------------------------------------------------------------------------
//
@@ -387,7 +401,8 @@
iMenuBar( NULL ),
iMenuPane( NULL ),
iMenuData( NULL ),
- iOwner( aOwner )
+ iOwner( aOwner ),
+ iMarking( NULL )
{
_AKNTRACE_FUNC_ENTER;
AKNTASHOOK_ADD( this, "CAknItemActionMenu" );
@@ -404,6 +419,7 @@
_AKNTRACE_FUNC_ENTER;
AddCollectionStateL( aCollection );
iMenuData = CAknItemActionMenuData::NewL();
+ iMarking = CAknMarkingMode::NewL( *this, iStates );
_AKNTRACE_FUNC_EXIT;
}
@@ -496,17 +512,24 @@
{
TMenuItemTextBuf text = iMenuData->MenuItemText( aCommandId );
iMenuData->Reset();
- iMenuPane->AddCascadeMenuItemsToActionMenuL(
- cascadeId, EFalse, *iMenuData );
+ iMenuPane->AddCascadeMenuItemsToMenuL(
+ cascadeId, EFalse, ETrue, iMenuData );
aCommandId = LaunchSubMenuQueryL( text );
}
- if ( aCommandId > 0 && iMenuBarObserver )
+ if ( aCommandId > 0 && iMenuData->MenuItemCommandId( aCommandId )
+ == EAknCmdMarkingModeMarkOne && iMenuBar )
+ {
+ MarkingMode().MarkCurrentItemL();
+ }
+ else if ( aCommandId > 0 && iMenuBarObserver )
{
iProcessingCommand = ETrue;
iMenuBarObserver->ProcessCommandL(
iMenuData->MenuItemCommandId( aCommandId ) );
iProcessingCommand = EFalse;
+ // Try exit marking mode
+ MarkingMode().TryExitMarkingMode();
}
}
// Inform collection that submenu was closed
@@ -538,3 +561,4 @@
}
// End of File
+
--- a/uifw/EikStd/coctlsrc/aknitemactionmenuregister.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/aknitemactionmenuregister.cpp Tue May 11 16:27:42 2010 +0300
@@ -41,7 +41,7 @@
if ( instance )
{
- instance->DoSetConstructingMenuBarOwnerL( aMenuBarOwner );
+ instance->iMenuBarOwner = aMenuBarOwner;
}
_AKNTRACE_FUNC_EXIT;
@@ -905,28 +905,6 @@
return instance;
}
-// ---------------------------------------------------------------------------
-// AknItemActionMenuRegister::DoSetConstructingMenuBarOwnerL
-// ---------------------------------------------------------------------------
-//
-void AknItemActionMenuRegister::DoSetConstructingMenuBarOwnerL(
- MObjectProvider* aMenuBarOwner )
- {
- if ( aMenuBarOwner )
- {
- CEikDialog* dialog( NULL );
- aMenuBarOwner->MopGetObjectNoChaining( dialog );
- // Get information if the constructing menu bar owner is a dialog
- // and store it to iIsConstructingDialog
- if ( dialog )
- {
- iIsConstructingDialog = ETrue;
- }
- }
-
- iMenuBarOwner = aMenuBarOwner;
- }
-
// ---------------------------------------------------------------------------
// AknItemActionMenuRegister::DoRemoveConstructingMenuBarOwner
@@ -945,21 +923,6 @@
if ( data.iOwner == iMenuBarOwner )
{
data.iOwner = iMenuBarOwner = NULL;
-
- // When setting constructing menubar owner to NULL from a dialog
- // check if there is item with the same menubar owner in
- // iUnregisteredMenus and try to find correct menubar for it.
- if ( iIsConstructingDialog )
- {
- CEikMenuBar* menuBar = FindCurrentMenuBar();
-
- if ( menuBar )
- {
- TRAP_IGNORE( AddRegisterEntryL( *menuBar, *data.iMenu ) );
- iUnregisteredMenus.Remove( i );
- continue;
- }
- }
}
++i;
@@ -978,7 +941,6 @@
if ( iMenuBarOwner == aMenuBarOwner )
{
- iIsConstructingDialog = EFalse;
iMenuBarOwner = NULL;
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uifw/EikStd/coctlsrc/aknmarkingmode.cpp Tue May 11 16:27:42 2010 +0300
@@ -0,0 +1,369 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Marking mode handler.
+*
+*/
+
+#include <akncollection.h>
+#include <aknitemactionmenu.h>
+#include <eikspane.h>
+#include <aknnavide.h>
+#include <barsread.h>
+#include <AknUtils.h>
+
+#include "aknmarkingmode.h"
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::NewL
+// ---------------------------------------------------------------------------
+//
+CAknMarkingMode* CAknMarkingMode::NewL(
+ CAknItemActionMenu& aItemActionMenu,
+ CollectionArray& aArray )
+ {
+ CAknMarkingMode* self =
+ new ( ELeave ) CAknMarkingMode( aItemActionMenu, aArray );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::~CAknMarkingMode
+// ---------------------------------------------------------------------------
+//
+CAknMarkingMode::~CAknMarkingMode()
+ {
+ delete iMarkingDecorator;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::SetCollectionMultipleMarkingState
+// ---------------------------------------------------------------------------
+//
+void CAknMarkingMode::SetCollectionMultipleMarkingState( TBool aActive )
+ {
+ for ( TInt i = 0; i < iCollections.Count(); i++ )
+ {
+ MAknCollection* collection( iCollections[ i ] );
+ // Assume the command applies to first list with multiple selection
+ if ( collection->CollectionState() &
+ MAknCollection::EStateMultipleSelection )
+ {
+ MAknMarkingCollection* markingCollection
+ = MarkingCollection( *collection );
+ if ( markingCollection )
+ {
+ markingCollection->SetMultipleMarkingState( aActive );
+ TRAP_IGNORE( UpdateMarkingModeNaviPaneL( aActive ) );
+ }
+ iItemActionMenu.CollectionChanged( *collection );
+ break;
+ }
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::TryExitMarkingMode
+// ---------------------------------------------------------------------------
+//
+void CAknMarkingMode::TryExitMarkingMode()
+ {
+ for ( TInt i = 0; i < iCollections.Count(); i++ )
+ {
+ MAknCollection* collection( iCollections[ i ] );
+ MAknMarkingCollection* markingCollection
+ = MarkingCollection( *collection );
+ if ( markingCollection && markingCollection->MarkingState(
+ ) & MAknMarkingCollection::EStateMarkingMode )
+ {
+ if ( markingCollection->ExitMarkingMode() )
+ {
+ SetCollectionMultipleMarkingState( EFalse );
+ }
+ }
+ break;
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::MultipleMarkingActive
+// ---------------------------------------------------------------------------
+//
+TBool CAknMarkingMode::MultipleMarkingActive() const
+ {
+ TBool markingActive( EFalse );
+ for ( TInt i = 0; i < iCollections.Count(); i++ )
+ {
+ MAknCollection* collection( iCollections[ i ] );
+ if ( collection->CollectionState() &
+ MAknCollection::EStateCollectionVisible )
+ {
+ MAknMarkingCollection* markingCollection
+ = MarkingCollection( *collection );
+ if ( markingCollection )
+ {
+ markingActive = markingCollection->MarkingState()
+ & MAknMarkingCollection::EStateMarkingMode;
+ }
+ break;
+ }
+ }
+ return markingActive;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::MarkedItems
+// ---------------------------------------------------------------------------
+//
+TBool CAknMarkingMode::MarkedItems() const
+ {
+ TBool markedItems( EFalse );
+ for ( TInt i = 0; i < iCollections.Count(); i++ )
+ {
+ MAknCollection* collection( iCollections[ i ] );
+ if ( collection->CollectionState() &
+ MAknCollection::EStateCollectionVisible )
+ {
+ MAknMarkingCollection* markingCollection
+ = MarkingCollection( *collection );
+ if ( markingCollection )
+ {
+ TInt markingState = markingCollection->MarkingState();
+ if ( markingState &
+ MAknMarkingCollection::EStateMarkingMode )
+ {
+ markedItems = markingState
+ & MAknMarkingCollection::EStateMarkedItems;
+ }
+ }
+ break;
+ }
+ }
+ return markedItems;
+ }
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::CollectionEmpty
+// ---------------------------------------------------------------------------
+//
+TBool CAknMarkingMode::CollectionEmpty() const
+ {
+ TBool empty( EFalse );
+ for ( TInt i = 0; i < iCollections.Count(); i++ )
+ {
+ MAknCollection* collection( iCollections[ i ] );
+ if ( collection->CollectionState() &
+ MAknCollection::EStateCollectionVisible )
+ {
+ MAknMarkingCollection* markingCollection
+ = MarkingCollection( *collection );
+ if ( markingCollection )
+ {
+ TInt markingState = markingCollection->MarkingState();
+ if ( markingState &
+ MAknMarkingCollection::EStateMarkingMode )
+ {
+ empty = markingState
+ & MAknMarkingCollection::EStateCollectionEmpty;
+ }
+ }
+ break;
+ }
+ }
+ return empty;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::MarkAllL
+// ---------------------------------------------------------------------------
+//
+void CAknMarkingMode::MarkAllL()
+ {
+ MAknMarkingCollection* collection = ActiveMarkingCollection();
+
+ if ( collection )
+ {
+ collection->MarkAllL();
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::UnmarkAll
+// ---------------------------------------------------------------------------
+//
+void CAknMarkingMode::UnmarkAll()
+ {
+ MAknMarkingCollection* collection = ActiveMarkingCollection();
+
+ if ( collection )
+ {
+ collection->UnmarkAll();
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::MarkCurrentItemL
+// ---------------------------------------------------------------------------
+//
+void CAknMarkingMode::MarkCurrentItemL()
+ {
+ MAknMarkingCollection* collection = ActiveMarkingCollection();
+
+ // first activate marking mode if needed
+ if ( !collection )
+ {
+ SetCollectionMultipleMarkingState( ETrue );
+ collection = ActiveMarkingCollection();
+ }
+
+ // then mark the current item
+ if ( collection )
+ {
+ collection->MarkCurrentItemL();
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::CurrentItemMarkable
+// ---------------------------------------------------------------------------
+//
+TBool CAknMarkingMode::CurrentItemMarkable()
+ {
+ return MarkingCollection()->CurrentItemMarkable();
+ }
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::CAknMarkingMode
+// ---------------------------------------------------------------------------
+//
+CAknMarkingMode::CAknMarkingMode(
+ CAknItemActionMenu& aItemActionMenu,
+ CollectionArray& aArray )
+ : iCollections( aArray ),
+ iItemActionMenu( aItemActionMenu ),
+ iMarkingDecorator( NULL )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::MarkingCollection
+// ---------------------------------------------------------------------------
+//
+MAknMarkingCollection* CAknMarkingMode::MarkingCollection(
+ MAknCollection& aCollection )
+ {
+ TAny* extension( NULL );
+ aCollection.CollectionExtension(
+ MAknMarkingCollection::TYPE, extension, NULL );
+ return static_cast<MAknMarkingCollection*>( extension );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::MarkingCollection
+// ---------------------------------------------------------------------------
+//
+MAknMarkingCollection* CAknMarkingMode::MarkingCollection()
+ {
+ for ( TInt i = 0; i < iCollections.Count(); i++ )
+ {
+ MAknCollection* collection( iCollections[ i ] );
+ if ( collection->CollectionState() &
+ MAknCollection::EStateCollectionVisible )
+ {
+ return MarkingCollection( *collection );
+ }
+ }
+
+ return NULL;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::ActiveMarkingCollection
+// ---------------------------------------------------------------------------
+//
+MAknMarkingCollection* CAknMarkingMode::ActiveMarkingCollection()
+ {
+ for ( TInt i = 0; i < iCollections.Count(); i++ )
+ {
+ MAknCollection* collection( iCollections[ i ] );
+
+ MAknMarkingCollection* markingCollection =
+ MarkingCollection( *collection );
+
+ if ( markingCollection && markingCollection->MarkingState() &
+ MAknMarkingCollection::EStateMarkingMode )
+ {
+ return markingCollection;
+ }
+ }
+
+ return NULL;
+ }
+
+// ---------------------------------------------------------------------------
+// CAknMarkingMode::UpdateMarkingModeNaviPaneL
+// ---------------------------------------------------------------------------
+//
+void CAknMarkingMode::UpdateMarkingModeNaviPaneL( TBool aEnable )
+ {
+ CEikonEnv* eikonEnv = CEikonEnv::Static();
+
+ if ( eikonEnv && eikonEnv->AppUiFactory() )
+ {
+ CEikStatusPane* statusPane = eikonEnv->AppUiFactory()->StatusPane();
+
+ if ( statusPane )
+ {
+ // get navi pane
+ CAknNavigationControlContainer* naviPane =
+ (CAknNavigationControlContainer *)statusPane->ControlL(
+ TUid::Uid(EEikStatusPaneUidNavi));
+ if ( naviPane )
+ {
+ if ( !iMarkingDecorator )
+ {
+ TResourceReader reader;
+ eikonEnv->CreateResourceReaderLC(
+ reader, R_MARKING_MODE_NAVI_PANE );
+
+ iMarkingDecorator = naviPane->CreateNavigationLabelL(
+ reader );
+ CleanupStack::PopAndDestroy(); // reader
+ }
+
+ if ( aEnable )
+ {
+ naviPane->PushL( *iMarkingDecorator );
+ }
+ else
+ {
+ naviPane->Pop( iMarkingDecorator );
+ }
+ naviPane->DrawDeferred();
+ }
+ }
+ }
+ }
+
+// End of File
--- a/uifw/EikStd/coctlsrc/aknstyluspopupmenu.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/aknstyluspopupmenu.cpp Tue May 11 16:27:42 2010 +0300
@@ -191,7 +191,6 @@
iController->SetPopUpShowDelay( KDefaultPopUpShowDelay );
iController->SetPopUpHideDelay( KDefaultPopUpHideDelay );
- iContent->Parent()->DrawableWindow()->SetNonFading(ETrue);
}
TSize size(iController->Size());
@@ -414,6 +413,7 @@
{
iPreviewPopup->HidePopUp();
}
+
if ( iController )
{
iController->HidePopUp();
--- a/uifw/EikStd/coctlsrc/aknstyluspopupmenuphysicshandler.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/aknstyluspopupmenuphysicshandler.cpp Tue May 11 16:27:42 2010 +0300
@@ -146,17 +146,6 @@
iPressedDown = EFalse;
TPoint adjustedPosition( aPointerEvent.iPosition + TPoint(0, Offset() ) );
TInt item = iPopUpMenuContent->ContainingItem( adjustedPosition );
- if ( item != KNoItemSelected )
- {
- MTouchFeedback* feedback = MTouchFeedback::Instance();
- if ( feedback )
- {
- feedback->InstantFeedback( NULL,
- ETouchFeedbackList,
- ETouchFeedbackVibra,
- aPointerEvent );
- }
- }
TPoint distance( 0, iStartPosition.iY - aPointerEvent.iPosition.iY );
if ( iPhysics->StartPhysics( distance, iStartTime ) )
@@ -170,6 +159,15 @@
{
if ( iViewRect.Contains( aPointerEvent.iPosition ) )
{
+ if( AknLayoutUtils::PenEnabled() )
+ {
+ MTouchFeedback* feedback = MTouchFeedback::Instance();
+ if( feedback )
+ {
+ feedback->InstantFeedback( NULL, ETouchFeedbackList,
+ ETouchFeedbackVibra, aPointerEvent );
+ }
+ }
iPopUpMenuContent->SelectItemL(
iPopUpMenuContent->CurrentItem() );
}
--- a/uifw/EikStd/coctlsrc/akntoolbarextensionview.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/akntoolbarextensionview.cpp Tue May 11 16:27:42 2010 +0300
@@ -621,7 +621,7 @@
// focus has moved from one button to another due to dragging,
// give sensitive feedback
MTouchFeedback* feedback = MTouchFeedback::Instance();
- if ( feedback &&
+ if ( feedback && !button->IsDimmed() &&
( aPointerEvent.iType == TPointerEvent::EDrag ||
aPointerEvent.iType == TPointerEvent::EButtonRepeat ) )
{
@@ -645,12 +645,14 @@
{
// Up and down events are in different items, give basic
// feedback to the released item.
- if ( ii != iDownItem )
+ if ( ii != iDownItem && !button->IsDimmed() )
{
MTouchFeedback* feedback = MTouchFeedback::Instance();
if ( feedback )
{
- feedback->InstantFeedback( ETouchFeedbackBasicButton );
+ feedback->InstantFeedback(
+ this, ETouchFeedbackBasicButton,
+ ETouchFeedbackVibra, aPointerEvent );
}
}
--- a/uifw/EikStd/coctlsrc/eikcba.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/coctlsrc/eikcba.cpp Tue May 11 16:27:42 2010 +0300
@@ -56,6 +56,7 @@
#include <aknitemactionmenu.h>
#include "akncollectionobserver.h"
#include "aknitemactionmenuregister.h"
+#include "aknmarkingmode.h"
#include "akntrace.h"
/**
* Color value for transparent pixel (ARGB format).
@@ -213,7 +214,8 @@
ECbaSingleClickEnabled, // single click enabled in appUi
ECbaItemSoftkeyDisabled, // item specific softkey disabled
ECbaItemSpecificSoftkeyInUse, // item specific softkey is in use
- ECbaItemSoftkeyDisabledByClient // client has disabled item specific softkey
+ ECbaItemSoftkeyDisabledByClient, // client disabled item specific softkey
+ ECbaMultipleMarkingActive // multiple marking has changed RSK
};
enum TCbaLayers
@@ -717,6 +719,28 @@
}
/**
+ * Returns ETrue if the command cancels multiple marking and should not
+ * be forwarded to actual command observer.
+ *
+ * @return ETrue if multiple marking was cancelled.
+ */
+ TBool CancelMultipleMarking( TInt aCommandId )
+ {
+ _AKNTRACE_FUNC_ENTER;
+ TBool cancelled( EFalse );
+ if ( aCommandId == EAknSoftkeyCancel
+ && iItemActionMenu
+ && iOwner.Flags().IsSet( ECbaMultipleMarkingActive ) )
+ {
+ iItemActionMenu->MarkingMode().SetCollectionMultipleMarkingState(
+ EFalse );
+ cancelled = ETrue;
+ }
+ _AKNTRACE_FUNC_EXIT;
+ return cancelled;
+ }
+
+ /**
* From MAknCollectionObserver.
* This method is used to set the item action menu to observer.
*
@@ -745,6 +769,8 @@
{
iOwner.UpdateItemSpecificSoftkey();
}
+
+ iOwner.UpdateMultipleMarkingSoftkey();
_AKNTRACE_FUNC_EXIT;
}
@@ -764,19 +790,15 @@
/*
* Using the special theme Id draw background
*/
- void DrawSemiTransparency( CWindowGc& aGc,
- const TRect& aRect )
+ void DrawSemiTransparency( CWindowGc& aGc )
{
_AKNTRACE_FUNC_ENTER;
- 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;
-
+
+ TAknsItemID SemiButtonID = KAknsIIDQgnFrSctrlSkButton;
+ TAknsItemID SemiButtonCenterID = KAknsIIDQgnFrSctrlSkButtonCenter;
+ TAknsItemID SemiButtonPressedID = KAknsIIDQgnFrSctrlSkButtonPressed;
+ TAknsItemID SemiButtonPressedCenterID = KAknsIIDQgnFrSctrlSkButtonCenterPressed;
+
CEikCbaButton* button1 = static_cast<CEikCbaButton*>
(iOwner.Control(KControlArrayCBAButton1Posn));
CEikCbaButton* button2 = static_cast<CEikCbaButton*>
@@ -784,9 +806,6 @@
if (IsMskEnabledLayoutActive())
{
- TRect innerRect = iMiddleFrameOuterRect;
- innerRect.Shrink(4, 4);
-
CEikCbaButton* buttonMSK = static_cast<CEikCbaButton*>
(iOwner.Control(KControlArrayCBAButtonMSKPosn));
@@ -794,7 +813,7 @@
{
AknsDrawUtils::DrawFrame(AknsUtils::SkinInstance(), aGc,
iMiddleFrameOuterRect,
- innerRect,//iMiddleFrameInnerRect,
+ iMiddleFrameInnerRect,
SemiButtonPressedID,
SemiButtonPressedCenterID);
}
@@ -802,20 +821,17 @@
{
AknsDrawUtils::DrawFrame(AknsUtils::SkinInstance(), aGc,
iMiddleFrameOuterRect,
- innerRect,//iMiddleFrameInnerRect,
+ iMiddleFrameInnerRect,
SemiButtonID,
SemiButtonCenterID);
}
}
- TRect innerRect = iLeftFrameOuterRect;
- innerRect.Shrink(4, 4);
-
if (button1 && button1->PressedDown())
{
AknsDrawUtils::DrawFrame(AknsUtils::SkinInstance(), aGc,
iLeftFrameOuterRect,
- innerRect,//iLeftFrameInnerRect,
+ iLeftFrameInnerRect,
SemiButtonPressedID,
SemiButtonPressedCenterID);
}
@@ -823,18 +839,16 @@
{
AknsDrawUtils::DrawFrame(AknsUtils::SkinInstance(), aGc,
iLeftFrameOuterRect,
- innerRect,//iLeftFrameInnerRect,
+ iLeftFrameInnerRect,
SemiButtonID,
SemiButtonCenterID);
}
- innerRect = iRightFrameOuterRect;
- innerRect.Shrink(4, 4);
if (button2 && button2->PressedDown())
{
AknsDrawUtils::DrawFrame(AknsUtils::SkinInstance(), aGc,
iRightFrameOuterRect,
- innerRect,//iRightFrameInnerRect,
+ iRightFrameInnerRect,
SemiButtonPressedID,
SemiButtonPressedCenterID);
}
@@ -842,7 +856,7 @@
{
AknsDrawUtils::DrawFrame(AknsUtils::SkinInstance(), aGc,
iRightFrameOuterRect,
- innerRect,//iRightFrameInnerRect,
+ iRightFrameInnerRect,
SemiButtonID,
SemiButtonCenterID);
}
@@ -1606,8 +1620,6 @@
}
}
- // Set CBA faded in case the softkeys are empty.
- SetFadeState();
_AKNTRACE_FUNC_EXIT;
}
@@ -1703,8 +1715,6 @@
}
}
- // Set CBA faded in case the softkeys are empty.
- SetFadeState();
_AKNTRACE_FUNC_EXIT;
}
@@ -2052,11 +2062,7 @@
const CFbsBitmap* /*aMask*/ )
{
_AKNTRACE_FUNC_ENTER;
- // We need to check if this call changes the softkeys from being
- // empty to having a command or vice versa to be able to maintain
- // correct fade state.
- TBool isEmptyBefore( IsEmpty() );
-
+
TEikGroupControl& groupCtrl = (*iControlArray)[aPosition];
groupCtrl.iId = aCommandId;
groupCtrl.iLongId = 0;
@@ -2085,13 +2091,6 @@
buttonState->SetTextL( *aText );
buttonState->SetCommand( aCommandId );
}
-
- TBool isEmptyAfter( IsEmpty() );
-
- if ( !COMPARE_BOOLS( isEmptyBefore, isEmptyAfter ) )
- {
- SetFadeState();
- }
ReportContentChangedEvent();
_AKNTRACE_FUNC_EXIT;
@@ -2278,10 +2277,12 @@
const TDesC* aText)
{
_AKNTRACE_FUNC_ENTER;
- // We need to check if this call changes the softkeys from being
- // empty to having a command or vice versa to be able to maintain
- // correct fade state.
- TBool isEmptyBefore( IsEmpty() );
+
+ if ( !CommandChangeAllowed() )
+ {
+ _AKNTRACE_FUNC_EXIT;
+ return;
+ }
TEikGroupControl& groupCtrl = (*iControlArray)[aPosition];
@@ -2317,13 +2318,6 @@
}
SetMSKIconL(); // If MSK id was changed, this sets MSK icon accordingly.
- TBool isEmptyAfter( IsEmpty() );
-
- if ( !COMPARE_BOOLS( isEmptyBefore, isEmptyAfter ) )
- {
- SetFadeState();
- }
-
ReportContentChangedEvent();
_AKNTRACE_FUNC_EXIT;
}
@@ -2503,11 +2497,6 @@
SizeChanged();
TBool isEmptyAfter( IsEmpty() );
-
- if ( !COMPARE_BOOLS( isEmptyBefore, isEmptyAfter ) )
- {
- SetFadeState();
- }
DrawDeferred();
ReportContentChangedEvent();
@@ -3414,7 +3403,9 @@
//has not supported semi-transparent, ignore the flag at this moment.
//TODO: if the tranparent style CBA is approved and the new icon was delivered, open it again.
- iCbaFlags &= ~EEikCbaFlagSemiTransparent;
+
+ //steven yao
+ //iCbaFlags &= ~EEikCbaFlagSemiTransparent;
if (( iCbaFlags & EEikCbaFlagTransparent || iCbaFlags & EEikCbaFlagSemiTransparent ) &&
CAknEnv::Static()->TransparencyEnabled() )
@@ -3632,7 +3623,13 @@
if (aKeyEvent.iRepeats == 0 && shortCommand)
{
- iCommandObserver->ProcessCommandL((TInt)shortCommand);
+ // Notify command observer only if multiple marking
+ // was not cancelled
+ if ( !iExtension || !iExtension->CancelMultipleMarking(
+ shortCommand ) )
+ {
+ iCommandObserver->ProcessCommandL( ( TInt ) shortCommand );
+ }
}
else if (longCommand)
{
@@ -4176,7 +4173,13 @@
if( shortCommand )
{
- iCommandObserver->ProcessCommandL( shortCommand );
+ // Notify command observer only if multiple marking
+ // was not cancelled
+ if ( !iExtension || !iExtension->CancelMultipleMarking(
+ shortCommand ) )
+ {
+ iCommandObserver->ProcessCommandL( shortCommand );
+ }
}
break;
@@ -4362,7 +4365,6 @@
case KEikMessageUnfadeWindows:
{
DoLayoutChange();
- SetFadeState();
if ( iFlags.IsSet( ECbaInsideDialog ) )
{
@@ -4390,8 +4392,7 @@
AknStatuspaneUtils::IdleLayoutActive() )
{
SetMSKVisibility( MskAllowed() );
- }
- SetFadeState();
+ }
break;
}
@@ -4539,13 +4540,13 @@
return;
}
-// if ( iCbaFlags & EEikCbaFlagSemiTransparent )
-// {
-// CWindowGc &gc = SystemGc();
-//
-// iExtension->DrawSemiTransparency( gc, Rect() );
-// return;
-// }
+ if ( iCbaFlags & EEikCbaFlagSemiTransparent )
+ {
+ CWindowGc &gc = SystemGc();
+
+ iExtension->DrawSemiTransparency( gc );
+ return;
+ }
MAknsSkinInstance* skin = AknsUtils::SkinInstance();
@@ -4604,7 +4605,7 @@
gc.BitBlt( leftSKRect.iTl, iExtension->iLskPostingOverlayBitmap,
TRect( leftSKSize ) );
}
- else if ( !( ( iCbaFlags & EEikCbaFlagTransparent) || ( iCbaFlags & EEikCbaFlagSemiTransparent)) )
+ else if ( !( iCbaFlags & EEikCbaFlagTransparent ) )
{// Old way to render
if( !AknsDrawUtils::Background( skin, cc, this, gc, rect ) )
{
@@ -4728,7 +4729,7 @@
gc.BitBlt( bottomSKRect.iTl, iExtension->iLskPostingOverlayBitmap,
TRect( bottomSKRect.Size() ) );
}
- else if ( !( ( iCbaFlags & EEikCbaFlagTransparent) || ( iCbaFlags & EEikCbaFlagSemiTransparent)) )
+ else if ( !( iCbaFlags & EEikCbaFlagTransparent) )
{
// Old way to render
if( !AknsDrawUtils::Background( skin, cc, this, gc, rect ) )
@@ -5224,18 +5225,29 @@
AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EScreen, screen );
TBool isLandscape( Layout_Meta_Data::IsLandscapeOrientation() );
- TBool flatLscLayout( isLandscape &&
- AknStatuspaneUtils::FlatLayoutActive() );
+ TInt spLayout( AknStatuspaneUtils::CurrentStatusPaneLayoutResId() );
+
+ // Treat the empty status pane layout the same way as the flat layout
+ // in landscape orientation, as the CBA layout is the same in both.
+ TBool flatLscLayout(
+ isLandscape &&
+ ( spLayout == R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT ||
+ spLayout == R_AVKON_STATUS_PANE_LAYOUT_IDLE_FLAT ||
+ spLayout == R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT ||
+ spLayout == R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT ||
+ spLayout == R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT_NO_SOFTKEYS ||
+ spLayout == R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT_NO_SOFTKEYS ||
+ spLayout == R_AVKON_STATUS_PANE_LAYOUT_EMPTY ) );
// We must check for landscape mode bottom softkeys.
TInt bottomPaneVariety = isLandscape ? ( flatLscLayout ? 2 : 6 ) : 1;
-
+
+ // Skip application_window between screen and area_bottom_pane since
+ // screen and application_window are always the same.
TAknWindowComponentLayout controlPane(
DoCompose(
- AknLayoutScalable_Avkon::application_window( 0 ),
- DoCompose(
- AknLayoutScalable_Avkon::area_bottom_pane( bottomPaneVariety ),
- AknLayoutScalable_Avkon::control_pane() ) ) );
+ AknLayoutScalable_Avkon::area_bottom_pane( bottomPaneVariety ),
+ AknLayoutScalable_Avkon::control_pane() ) );
TAknLayoutRect cbarect;
cbarect.LayoutRect( screen, controlPane.LayoutLine() );
@@ -5250,7 +5262,7 @@
// Set the softkey frame rectangles in touch layouts.
if ( iExtension && AknLayoutUtils::PenEnabled() )
- {
+ {
TAknLayoutRect layoutRect;
TBool frameSizeChanged( EFalse );
@@ -7238,28 +7250,6 @@
// ---------------------------------------------------------------------------
-// CEikCba::SetFadeState
-// Sets the CBA faded if it's contents are empty.
-// ---------------------------------------------------------------------------
-//
-void CEikCba::SetFadeState()
- {
- _AKNTRACE_FUNC_ENTER;
- TBool canBeFaded =
- IsEmpty() && !( ( iCbaFlags & EEikCbaFlagTransparent )
- || ( iExtension && iExtension->iEnablePostingTransparency ) );
-
- // No unfading when system is faded
- if ( !( !canBeFaded
- && static_cast<CAknAppUi*>( iCoeEnv->AppUi() )->IsFaded() ) )
- {
- Window().SetFaded( canBeFaded, RWindowTreeNode::EFadeIncludeChildren );
- }
- _AKNTRACE_FUNC_EXIT;
- }
-
-
-// ---------------------------------------------------------------------------
// CEikCba::UpdateLabels
// Updates softkey labels in case of embedded softkeys.
// ---------------------------------------------------------------------------
@@ -7851,6 +7841,60 @@
}
+// ---------------------------------------------------------------------------
+// CEikCba::UpdateMultipleMarkingSoftkey
+// Updates RSK when multiple marking is activated or deactivated.
+// ---------------------------------------------------------------------------
+//
+void CEikCba::UpdateMultipleMarkingSoftkey()
+ {
+ _AKNTRACE_FUNC_ENTER;
+ if ( iFlags.IsSet( ECbaSingleClickEnabled )
+ && iExtension && iExtension->iItemActionMenu )
+ {
+ TBool markingActive(
+ iExtension->iItemActionMenu->MarkingMode(
+ ).MultipleMarkingActive() );
+ TBool markingActivated( iFlags.IsSet( ECbaMultipleMarkingActive ) );
+ if ( markingActive && !markingActivated )
+ {
+ TRAPD( error,
+ AddCommandSetToStackL( R_AVKON_SOFTKEYS_OPTIONS_CANCEL ) );
+
+ if ( error == KErrNone )
+ {
+ iFlags.Set( ECbaMultipleMarkingActive );
+ }
+ }
+ else if ( !markingActive && markingActivated )
+ {
+ RemoveCommandFromStack(
+ KControlArrayCBAButton1Posn, EAknSoftkeyOptions );
+ RemoveCommandFromStack(
+ KControlArrayCBAButton2Posn, EAknSoftkeyCancel );
+ iFlags.Clear( ECbaMultipleMarkingActive );
+ }
+ }
+ _AKNTRACE_FUNC_EXIT;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CEikCba::CommandChangeAllowed
+//
+// ---------------------------------------------------------------------------
+//
+TBool CEikCba::CommandChangeAllowed()
+ {
+ if ( iFlags.IsSet( ECbaSingleClickEnabled )
+ && iFlags.IsSet( ECbaMultipleMarkingActive ) )
+ {
+ return EFalse;
+ }
+ return ETrue;
+ }
+
+
//
// class CEikCbaButton
//
--- a/uifw/EikStd/dlginc/aknrecordinggc.h Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/dlginc/aknrecordinggc.h Tue May 11 16:27:42 2010 +0300
@@ -165,7 +165,9 @@
ESetBrushStyle,
EDrawRect,
EClear,
- EDrawLine
+ EDrawLine,
+ EUseBrushPattern,
+ EDiscardBrushPattern
};
public:
--- a/uifw/EikStd/dlgsrc/AknMediatorFacade.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/dlgsrc/AknMediatorFacade.cpp Tue May 11 16:27:42 2010 +0300
@@ -20,7 +20,7 @@
#include <eikapp.h>
#include <coedef.h>
#include <MediatorDomainUIDs.h>
-#include <SecondaryDisplay/AknSecondaryDisplayDefs.h>
+#include <secondarydisplay/AknSecondaryDisplayDefs.h>
#include "AknMediatorFacade.h"
#include "AknMediatorObserver.h"
--- a/uifw/EikStd/dlgsrc/EIKCAPC.CPP Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/dlgsrc/EIKCAPC.CPP Tue May 11 16:27:42 2010 +0300
@@ -1,5 +1,5 @@
/*
-* 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"
@@ -283,7 +283,8 @@
* Extension class for additional data members.
*
*/
-NONSHARABLE_CLASS( CEikCapCExtension ): public MEikFormAnimObserver
+NONSHARABLE_CLASS( CEikCapCExtension ) : public CBase,
+ public MEikFormAnimObserver
{
friend class CEikCaptionedControl ;
@@ -379,7 +380,7 @@
iViewModeHighlightControlContext ( NULL ) ,
iEditModeHighlightControlContextPressed( NULL ),
iViewModeHighlightControlContextPressed( NULL ),
- iPreviousRect( TPoint(0, 0), TSize(0, 0) ) ,
+ iPreviousRect( 0, 0, 0, 0 ),
iPreviousState( EFalse ) ,
iPressDownEffect( EFalse ),
iXOffsetForDataPaneInEditMode( ELayoutEmpty ) ,
@@ -389,6 +390,7 @@
, iIndicator(NULL),
iIndicator2(NULL),
iObserver(NULL),
+ iSimulatedDownEvent( EFalse ),
iFeedback( MTouchFeedback::Instance() ),
iIdle(NULL),
iIdleData(NULL),
@@ -400,7 +402,7 @@
iUsesSingleClick = iAvkonAppUi->IsSingleClickCompatible();
}
_AKNTRACE_FUNC_EXIT;
- };
+ }
CEikCapCExtension::~CEikCapCExtension()
{
@@ -488,26 +490,24 @@
&& ( aPointerEvent.iType == TPointerEvent::EButton1Down
|| aPointerEvent.iType == TPointerEvent::EButton1Up ) )
{
-
// Check control type
TBool edwinControl( LaunchInputType() );
TBool simulate = EFalse;
- if ( aPointerEvent.iType == TPointerEvent::EButton1Down
- && iSelf->Rect().Contains( aPointerEvent.iPosition )
- && !iSelf->iControl->Rect().Contains(
- aPointerEvent.iPosition ) )
+
+ if ( iSelf->Rect().Contains( aPointerEvent.iPosition ) )
{
- iSimulatedDownEvent = ETrue;
- if ( !edwinControl )
+ if ( aPointerEvent.iType == TPointerEvent::EButton1Down &&
+ !iSelf->iControl->Rect().Contains( aPointerEvent.iPosition ) )
+ {
+ iSimulatedDownEvent = ETrue;
+ simulate = ETrue;
+ }
+ else if ( aPointerEvent.iType == TPointerEvent::EButton1Up &&
+ iSimulatedDownEvent )
{
simulate = ETrue;
}
}
- else if ( aPointerEvent.iType == TPointerEvent::EButton1Up
- && iSimulatedDownEvent )
- {
- simulate = ETrue;
- }
// Simulate pointer event to control
if ( simulate && !edwinControl )
@@ -519,23 +519,39 @@
}
// With edwin do action directly (due to cursor problems)
- else if ( edwinControl && simulate
- && aPointerEvent.iType == TPointerEvent::EButton1Up )
+ else if ( edwinControl &&
+ simulate &&
+ ( aPointerEvent.iType == TPointerEvent::EButton1Up ||
+ aPointerEvent.iType == TPointerEvent::EButton1Down ) )
{
- CAknExtendedInputCapabilities* input( NULL );
- iSelf->iControl->InputCapabilities().ObjectProvider(
- )->MopGetObjectNoChaining( input );
- if ( input )
+ // Basic list feedback is given instead of sensitive edit
+ // feedback when tapping editor fields in forms.
+ if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
+ {
+ iFeedback->InstantFeedback( iSelf->iControl,
+ ETouchFeedbackList );
+ }
+ else
{
- iFeedback->InstantFeedback(
- iSelf->iControl, ETouchFeedbackEdit,
- ETouchFeedbackVibra, aPointerEvent );
- input->ReportEventL(
+ iFeedback->InstantFeedback( iSelf->iControl,
+ ETouchFeedbackList,
+ ETouchFeedbackVibra,
+ aPointerEvent );
+
+ CAknExtendedInputCapabilities* input( NULL );
+ iSelf->iControl->InputCapabilities().ObjectProvider(
+ )->MopGetObjectNoChaining( input );
+
+ if ( input )
+ {
+ input->ReportEventL(
CAknExtendedInputCapabilities::\
- MAknEventObserver::EActivatePenInputRequest,
+ MAknEventObserver::EActivatePenInputRequest,
NULL );
+ }
}
}
+
if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
{
iSimulatedDownEvent = EFalse;
@@ -1405,25 +1421,28 @@
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.
- //
- if ( iIsEditable && ControlIsAnEdwin(iControlType) )
- {
- delete iExtension->iIdle;
- delete iExtension->iIdleData;
- iExtension->iIdleData = new (ELeave) CIdleCallbackData;
- iExtension->iIdleData->iCtrl = this;
- iExtension->iIdleData->iExt = iExtension;
- iExtension->iIdle = CIdle::NewL(0);
- iExtension->iIdle->Start(TCallBack(&IdleCallback, iExtension->iIdleData));
- }
-_AKNTRACE_FUNC_EXIT;
-}
+void CEikCaptionedControl::ScrollBackEditorL()
+ {
+ _AKNTRACE_FUNC_ENTER;
+ //
+ // For long single-line edwin, scroll horizontally to show beginning
+ // of the edwin when focus changes away from the edwin.
+ //
+ if ( iIsEditable && ControlIsAnEdwin( iControlType ) )
+ {
+ delete iExtension->iIdle;
+ iExtension->iIdle = NULL;
+ delete iExtension->iIdleData;
+ iExtension->iIdleData = NULL;
+ iExtension->iIdleData = new (ELeave) CIdleCallbackData;
+ iExtension->iIdleData->iCtrl = this;
+ iExtension->iIdleData->iExt = iExtension;
+ iExtension->iIdle = CIdle::NewL( 0 );
+ iExtension->iIdle->Start(
+ TCallBack( &IdleCallback, iExtension->iIdleData ) );
+ }
+ _AKNTRACE_FUNC_EXIT;
+ }
EXPORT_C void CEikCaptionedControl::FocusChanged(TDrawNow aDrawNow)
{
@@ -1438,7 +1457,7 @@
}
else if( iIsCurrentLine && !iIsEditable ) // Current and in view mode
{
- CAknAppUi* aui = static_cast<CAknAppUi*>(CEikonEnv::Static()->AppUi());
+ CAknAppUi* aui = static_cast<CAknAppUi*>(iEikonEnv->AppUi());
if( aui->IsForeground() )
{
iExtension->iAnimation->Play();
@@ -1839,14 +1858,14 @@
//
TAknsQsnTextColorsIndex CEikCaptionedControl::TextColorIndex() const
{
- TAknsQsnTextColorsIndex colorIndex = EAknsCIQsnTextColorsCG8;
+ TAknsQsnTextColorsIndex colorIndex = EAknsCIQsnTextColorsCG6;
// Note control doesn't use highlight text color
if ( iControlType != EAknCtNote )
{
if ( iIsCurrentLine && iDialogPage->HighlightVisible() )
{
- colorIndex = EAknsCIQsnTextColorsCG10;
+ colorIndex = EAknsCIQsnTextColorsCG8;
}
}
@@ -2002,23 +2021,56 @@
}
}
}
- if (iIsFormControl)
+
+ TBool edwinControl( ControlIsAnEdwin( iControlType ) );
+
+ if ( iIsFormControl )
{
- if ( PressedDownState()&&
- aPointerEvent.iType == TPointerEvent::EButton1Down )
+ if ( !PressedDownState() &&
+ aPointerEvent.iType == TPointerEvent::EButton1Down )
{
SetPressedDownState( ETrue );
- DrawDeferred();
+ DrawDeferred();
}
- else if(aPointerEvent.iType == TPointerEvent::EButton1Up)
+ else if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
{
- _AKNTRACE("TPointerEvent::EButton1Up");
+ _AKNTRACE( "TPointerEvent::EButton1Up" );
SetPressedDownState( EFalse );
DrawDeferred();
- }
+ }
+
+ if ( ( aPointerEvent.iType == TPointerEvent::EButton1Down ||
+ aPointerEvent.iType == TPointerEvent::EButton1Up ) &&
+ iIsEditable &&
+ edwinControl &&
+ iExtension &&
+ iExtension->iFeedback &&
+ iControl->Rect().Contains( aPointerEvent.iPosition ) )
+ {
+ CEikEdwin* edwin = static_cast<CEikEdwin*>( iControl );
+ if ( edwin &&
+ ( edwin->UserFlags() & CEikEdwin::EDisplayOnly ||
+ edwin->IsReadOnly() ) )
+ {
+ // For edwins in view only mode we must produce the feedback
+ // here, as the edwin itself doesn't.
+ if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
+ {
+ iExtension->iFeedback->InstantFeedback( iControl,
+ ETouchFeedbackList );
+ }
+ else
+ {
+ iExtension->iFeedback->InstantFeedback( iControl,
+ ETouchFeedbackList,
+ ETouchFeedbackVibra,
+ aPointerEvent );
+ }
+ }
+ }
}
- if ( !iIsEditable && (ControlIsAnEdwin(iControlType) || ControlIsAMfne(iControlType))
+ if ( !iIsEditable && ( edwinControl || ControlIsAMfne( iControlType ) )
&&( iDialogPage && CEikDialogPage::EDouble == iDialogPage->FormLayout() ))
{
_AKNTRACE_FUNC_EXIT;
@@ -2027,7 +2079,7 @@
CCoeControl::HandlePointerEventL(aPointerEvent);
- if ( iExtension )
+ if ( iExtension && iIsFormControl )
{
iExtension->SimulatePointerEventToControlL( aPointerEvent );
}
--- a/uifw/EikStd/dlgsrc/EIKDIALG.CPP Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/dlgsrc/EIKDIALG.CPP Tue May 11 16:27:42 2010 +0300
@@ -84,10 +84,10 @@
//
TBool CbaEmbeddedInDialog( const TInt& aFlags )
{
- return AknLayoutUtils::PenEnabled() &&
- !( aFlags & EEikDialogFlagFillAppClientRect ) &&
+ return !( aFlags & EEikDialogFlagFillAppClientRect ) &&
!( aFlags & EEikDialogFlagFillScreen ) &&
- !( aFlags & EEikDialogFlagVirtualInput );
+ !( aFlags & EEikDialogFlagVirtualInput ) &&
+ !( aFlags & EEikDialogFlagNoEmbeddedSoftkeys );
}
@@ -280,7 +280,40 @@
EnableContentObserver( ETrue );
+ // Extension member variable iDeleteEmbeddedCba is used to track whether
+ // dialog's implementation of CCoeControl::SizeChanged gets called. If it
+ // isn't then embedded softkeys won't work.
+ CEikDialogExtension* extension = Extension();
+ TBool checkCba = extension && iButtonGroupContainer
+ && CbaEmbeddedInDialog( iDialogFlags );
+
+ if ( checkCba )
+ {
+ extension->iDeleteEmbeddedCba = ETrue;
+ }
+
Layout();
+
+ // At this point CBA's rect should be correctly set. If it isn't, then
+ // assume that dialog didn't properly call CEikDialog::SizeChanged thus
+ // embedded softkeys won't work.
+ // In that case softkeys are deleted and re-created as a window-owning
+ // component in "legacy" way.
+ if ( checkCba && extension->iDeleteEmbeddedCba
+ && extension->iButtonGroupResourceId != 0 )
+ {
+ delete iButtonGroupContainer;
+ iButtonGroupContainer = NULL;
+ iButtonGroupContainer = CEikButtonGroupContainer::NewL(
+ CEikButtonGroupContainer::ECba,
+ CEikButtonGroupContainer::EHorizontal,
+ iButtonCommandObserver,
+ extension->iButtonGroupResourceId,
+ 0 );
+
+ iDialogFlags |= EEikDialogFlagNoEmbeddedSoftkeys;
+ }
+
PostLayoutDynInitL();
_AKNTRACE_FUNC_EXIT;
}
@@ -773,6 +806,11 @@
iButtonCommandObserver, aResourceId, *this, flags );
EnableContentObserver( ETrue );
+
+ if ( Extension() )
+ {
+ Extension()->iButtonGroupResourceId = aResourceId;
+ }
AknGlobalPopupPriorityController::AddSubPopupL(*this, *iButtonGroupContainer->ButtonGroup()->AsControl());
AknGlobalPopupPriorityController::AddPopupToControlStackL(*iButtonGroupContainer->ButtonGroup()->AsControl(), ECoeStackPriorityCba, ECoeStackFlagRefusesFocus);
@@ -913,6 +951,7 @@
*/
EXPORT_C TSize CEikDialog::PreferredSize(const TSize& aMaxSize) const
{
+ _AKNTRACE_FUNC_ENTER;
if (iDialogFlags&EEikDialogFlagFillScreen)
return iEikonEnv->ScreenDevice()->SizeInPixels();
else if (iDialogFlags&EEikDialogFlagFillAppClientRect)
@@ -927,20 +966,24 @@
CAknView* view = iAvkonViewAppUi->View(uid.iViewUid);
if (view)
{
+ _AKNTRACE_FUNC_EXIT;
return view->ClientRect().Size();
}
else
{
+ _AKNTRACE_FUNC_EXIT;
return iEikonEnv->EikAppUi()->ClientRect().Size();
}
}
else
{
+ _AKNTRACE_FUNC_EXIT;
return iEikonEnv->EikAppUi()->ClientRect().Size();
}
}
else
{
+ _AKNTRACE_FUNC_EXIT;
return iEikonEnv->EikAppUi()->ClientRect().Size();
}
}
@@ -991,6 +1034,7 @@
}
}
+ _AKNTRACE_FUNC_EXIT;
return preferredSize;
}
@@ -1059,7 +1103,12 @@
cba->SetRect( TRect(0, 0, 0, 0 ) );
}
}
- }
+
+ if ( Extension() )
+ {
+ Extension()->iDeleteEmbeddedCba = EFalse;
+ }
+ }
if (iTitleBar)
{
TRect nullRect(0,0,0,0);
@@ -1184,6 +1233,7 @@
*/
EXPORT_C void CEikDialog::Layout()
{
+ _AKNTRACE_FUNC_ENTER;
TAknWindowLineLayout windowLineLayoutScreen = AknLayoutScalable_Avkon::Screen().LayoutLine();
TRect rectZero = TRect(0,0,0,0);
TAknLayoutRect layoutRect;
@@ -1192,7 +1242,10 @@
TSize maxSize = rectScreen.Size();
+ _AKNTRACE( "size = %d x %d", iSize.iWidth, iSize.iHeight );
SetSizeAndPosition(PreferredSize( maxSize ));
+ _AKNTRACE( "size = %d x %d", iSize.iWidth, iSize.iHeight );
+ _AKNTRACE_FUNC_EXIT;
}
/**
@@ -1948,6 +2001,7 @@
CAknAppUi* aknAppUi = static_cast<CAknAppUi*>(iEikonEnv->EikAppUi());
if (!(iDialogFlags & EEikDialogFlagDelayEffects)
+ && IsFocusedWindowGroup( this )
&& GfxTransEffect::IsRegistered(this) && IsVisible() && effectButton
#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
&& !(iDialogFlags & EEikDialogFlagSleeping)
@@ -1981,6 +2035,9 @@
GfxTransEffect::NotifyExternalState(ECaptureComponentsAbort, (const TDesC8*)this);
GfxTransEffect::Abort(this);
}
+
+ // Draw again in cast any content change in OkToExitL
+ DrawDeferred();
_AKNTRACE("CEikDialog::TryExitL return with OkToExitL false");
return;
--- a/uifw/EikStd/dlgsrc/EIKDPAGE.CPP Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/dlgsrc/EIKDPAGE.CPP Tue May 11 16:27:42 2010 +0300
@@ -99,15 +99,25 @@
static CDialogPageExtension* NewL();
~CDialogPageExtension();
- void Feedback( CEikDialogPage* aControl, TTouchLogicalFeedback aFeedback ) const;
+ void Feedback( const CEikDialogPage& aControl,
+ TTouchLogicalFeedback aFeedback ) const;
+
/**
- * Produces vibra-only feedback. Event filtering by pointer event is used..
+ * Produces vibra-only feedback.
+ * Event filtering by pointer event is used.
*/
- void SilentFeedback( CEikDialogPage* aDPage,
+ void SilentFeedback( const CEikDialogPage& aDPage,
TTouchLogicalFeedback aFeedback,
const TPointerEvent& aPointerEvent ) const;
-
- void HandleFormFeedback( CEikDialogPage* aControl, const TPointerEvent& aPointerEvent, TInt aTouchedLineIndex, TInt aCurrentLine );
+
+ /**
+ * Produces feedback in cases where the captioned control itself
+ * doesn't do it.
+ */
+ void HandleFormFeedback( const CEikDialogPage& aDPage,
+ const TPointerEvent& aPointerEvent,
+ TInt aTouchedLineIndex,
+ TInt aCurrentLine );
protected:
void ConstructL();
@@ -141,7 +151,6 @@
TInt iLastTouchedLine;
TPoint iSynchronizedPosition;
TBool iScrolling;
- TBool iScrolled;
TBool iInitialLayoutDone;
TBool iSetInitialFocusDone;
TBool iHandlingResourceChange;
@@ -160,6 +169,8 @@
TBool iUsesSingleClick;
// It is used to distinguish if the focus item has changed.
TBool iFocusItemChanged;
+ // Boolean to check if form was scrolling on button down
+ TBool iWasScrolling;
};
CDialogPageExtension::CDialogPageExtension()
@@ -201,14 +212,18 @@
}
void CDialogPageExtension::HandleFormFeedback(
- CEikDialogPage* aDPage,
+ const CEikDialogPage& aDPage,
const TPointerEvent& aPointerEvent,
TInt aTouchedLineIndex,
TInt aCurrentLine )
{
+ CEikCaptionedControl* firstLine( aDPage.LineOnPageOrNull( 0 ) );
+ TBool viewMode( !aDPage.IsEditable() );
+
// note, that iFormControl is checked in Feedback()
if ( aPointerEvent.iType == TPointerEvent::EButton1Down &&
- aCurrentLine != aTouchedLineIndex && aDPage->LineOnPageOrNull( 0 ) )
+ aCurrentLine != aTouchedLineIndex &&
+ firstLine )
{
// feedback for edit/view mode form, when non-focused line is clicked
// feedback for focused item is responsibility of the item
@@ -219,58 +234,67 @@
}
iFocusItemChanged = ETrue;
}
-
- else if ( aPointerEvent.iType == TPointerEvent::EButton1Down &&
- aTouchedLineIndex == aCurrentLine && aDPage->LineOnPageOrNull( 0 ) )
+ else if ( viewMode && firstLine )
{
- // Feedback for view mode form, when focused item is
- // clicked. Basically same case as for msk simulation later on
- // the function, but on pointer
- // down. iExtension->iFocusedClicked is not valid here, since
- // it can't be known in this phase whether user drags pointer
- // away.
- Feedback( aDPage, ETouchFeedbackList );
- iFocusItemChanged = EFalse;
- }
-
- else if ( aPointerEvent.iType == TPointerEvent::EButton1Up &&
- aDPage->LineOnPageOrNull( 0 ) )
- {// when focus changed, it should not send feedback on up event.
- //when up event comes, aTouchedLineIndex always equal to aCurrentLine
- if ( !iFocusItemChanged )
+ if ( aPointerEvent.iType == TPointerEvent::EButton1Down &&
+ aTouchedLineIndex == aCurrentLine )
{
- SilentFeedback( aDPage, ETouchFeedbackList, aPointerEvent );
+ // Feedback for view mode form, when focused item is
+ // clicked. Basically same case as for msk simulation later on
+ // the function, but on pointer
+ // down. iExtension->iFocusedClicked is not valid here, since
+ // it can't be known in this phase whether user drags pointer
+ // away.
+ Feedback( aDPage, ETouchFeedbackList );
+ iFocusItemChanged = EFalse;
+ }
+ else if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
+ {
+ // When focus changed, it should not send feedback on up event.
+ // When up event comes, aTouchedLineIndex always equal to
+ // aCurrentLine.
+ if ( !iFocusItemChanged )
+ {
+ SilentFeedback( aDPage, ETouchFeedbackList, aPointerEvent );
+ }
}
}
}
-void CDialogPageExtension::Feedback( CEikDialogPage* aDPage,
+
+void CDialogPageExtension::Feedback( const CEikDialogPage& aDPage,
TTouchLogicalFeedback aFeedback ) const
{
- if ( aDPage
- && aDPage->IsForm()
- && iFeedback
- && !aDPage->IsDimmed()
- && aDPage->IsVisible() )
+ if ( iFeedback &&
+ aDPage.IsForm() &&
+ !aDPage.IsDimmed() &&
+ aDPage.IsVisible() &&
+ aDPage.IsEditable() )
{
iFeedback->InstantFeedback( aFeedback );
}
}
-void CDialogPageExtension::SilentFeedback( CEikDialogPage* aDPage,
- TTouchLogicalFeedback aFeedback,
- const TPointerEvent& aPointerEvent ) const
+
+void CDialogPageExtension::SilentFeedback(
+ const CEikDialogPage& aDPage,
+ TTouchLogicalFeedback aFeedback,
+ const TPointerEvent& aPointerEvent ) const
{
- if ( aDPage
- && aDPage->IsForm()
- && iFeedback
- && !aDPage->IsDimmed()
- && aDPage->IsVisible() )
+ if ( iFeedback &&
+ aDPage.IsForm() &&
+ !aDPage.IsDimmed() &&
+ aDPage.IsVisible() &&
+ aDPage.IsEditable() )
{
- iFeedback->InstantFeedback( aDPage, aFeedback, ETouchFeedbackVibra, aPointerEvent );
+ iFeedback->InstantFeedback( &aDPage,
+ aFeedback,
+ ETouchFeedbackVibra,
+ aPointerEvent );
}
}
+
class CAknPaneScroll : public CBase
{
public:
@@ -846,12 +870,10 @@
switch (aFocusNavigationMode)
{
case ECyclic:
- iExtension->iScrolled = ETrue;
response=HandleCyclicFocusNavigationKeyL(aKeyEvent);
break;
case ENonCyclic:
- iExtension->iScrolled = ETrue;
response=HandleNonCyclicFocusNavigationKeyL(aKeyEvent);
break;
@@ -1069,7 +1091,7 @@
TInt oldLine = iCurrentLine;
if( aLine != iCurrentLine )
- (*iLines)[iCurrentLine]->ScrollBackEditor();
+ (*iLines)[iCurrentLine]->ScrollBackEditorL();
ChangeFocusTo( aLine );
ExposeLine( iCurrentLine, EFalse );
@@ -1882,7 +1904,6 @@
case EEikScrollPageUp:
case EEikScrollPageDown:
case EEikScrollThumbDragVert:
- iExtension->iScrolled = ETrue;
iExtension->iScrolling = ETrue;
iLines->MoveLineToScreen( iCurrentLine, 0, EFalse );
break;
@@ -2114,7 +2135,7 @@
CEikEdwin* edwinPtr = STATIC_CAST( CEikEdwin*, theNewLine->iControl );
if( edwinPtr->Text() )
{
- edwinPtr->SetCursorPosL( edwinPtr->TextLength(), EFalse );
+ TRAP_IGNORE( edwinPtr->SetCursorPosL( edwinPtr->TextLength(), EFalse ) );
}
}
@@ -2128,10 +2149,10 @@
if ( oldLine != -1 )
{
iLines->MoveLineToScreen( oldLine, 0, EFalse );
- RecordLineL( oldLine );
+ TRAP_IGNORE( RecordLineL( oldLine ) );
}
- RecordLineL( iCurrentLine );
+ TRAP_IGNORE( RecordLineL( iCurrentLine ) );
iLines->MoveLineToScreen( iCurrentLine, iPhysics->ViewTopY(), ETrue );
}
_AKNTRACE_FUNC_EXIT;
@@ -2845,10 +2866,13 @@
}
}
iExtension->iScrolling = EFalse;
- iExtension->HandleFormFeedback( this, aPointerEvent, touchedLine, iCurrentLine );
+ iExtension->HandleFormFeedback( *this,
+ aPointerEvent,
+ touchedLine,
+ iCurrentLine );
- TBool wasScrolling = ( iPhysics->OngoingPhysicsAction() !=
- CAknPhysics::EAknPhysicsActionNone );
+ iExtension->iWasScrolling = ( iPhysics->OngoingPhysicsAction() !=
+ CAknPhysics::EAknPhysicsActionNone );
iPhysics->Stop();
iExtension->iLastTouchedLine = touchedLine;
iExtension->iDragStartPosition = aPointerEvent.iPosition;
@@ -2861,10 +2885,17 @@
if ( iExtension->iUsesSingleClick )
{
- if ( !wasScrolling )
+ if ( !iExtension->iWasScrolling )
{
- HighlightVisible( ETrue );
- HighlightTimerCallBack( this );
+ if ( iFormFlags & EEikFormDisableHighlightInViewMode )
+ {
+ HighlightVisible( EFalse );
+ }
+ else
+ {
+ HighlightVisible( ETrue );
+ HighlightTimerCallBack( this );
+ }
}
}
else
@@ -2918,7 +2949,6 @@
}
iExtension->iScrolling = ETrue;
- iExtension->iScrolled = ETrue;
iExtension->iLastPointerPos = aPointerEvent.iPosition;
RemovePressedDownHighlight();
iLines->MoveLineToScreen( iCurrentLine, 0, EFalse );
@@ -2943,8 +2973,11 @@
if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
{
- _AKNTRACE( "TPointerEvent::EButton1Up" );
- iExtension->HandleFormFeedback( this, aPointerEvent, touchedLine, iCurrentLine );
+ _AKNTRACE( "TPointerEvent::EButton1Up" );
+ iExtension->HandleFormFeedback( *this,
+ aPointerEvent,
+ touchedLine,
+ iCurrentLine );
if ( !IsEditable() && iExtension->iUsesSingleClick &&
HighlightVisible() )
{
@@ -2966,7 +2999,7 @@
{
iExtension->iScrolling = EFalse;
- if ( iPageObserver && GrabbingComponent() )
+ if ( iPageObserver && GrabbingComponent() && !iExtension->iWasScrolling )
{
iPageObserver->HandleDialogPageEventL( MEikDialogPageObserver::EDialogPageTapped );
}
@@ -2979,12 +3012,14 @@
{
// feedback is given every time when new item
// appears to the screen -> follows the visual feedback
- iExtension->SilentFeedback( this, ETouchFeedbackSensitiveList, aPointerEvent );
+ iExtension->SilentFeedback( *this,
+ ETouchFeedbackSensitiveList,
+ aPointerEvent );
+
// It might happen that there are no drag events between down and
// up if the distance is short enough.
iExtension->iHighlightTimer->Cancel();
iExtension->iScrolling = ETrue;
- iExtension->iScrolled = ETrue;
iLines->MoveLineToScreen( iCurrentLine, 0, EFalse );
RemovePressedDownHighlight();
}
@@ -3020,9 +3055,9 @@
mskPress = ETrue;
callDefaultImplementation = EFalse;
}
-
if ( callDefaultImplementation && ( iExtension->iFocusedClicked ||
- iExtension->iUsesSingleClick ) && newLine )
+ iExtension->iUsesSingleClick ) && newLine &&
+ !iExtension->iWasScrolling )
{
if ( newLine->ControlIsAPopfield( controlType ) )
{
@@ -3048,7 +3083,7 @@
key.iCode=EKeyOK;
key.iModifiers=0;
key.iRepeats = 0;
- CEikonEnv::Static()->SimulateKeyEventL( key, EEventKey );
+ iEikonEnv->SimulateKeyEventL( key, EEventKey );
}
_AKNTRACE_FUNC_EXIT;
}
@@ -3121,9 +3156,10 @@
if ( LineIsFocusable( touchedLine ) )
{
- TRAP_IGNORE( PrepareForFocusTransitionL() );
- ChangeFocusToAndExposeL( touchedLine );
- LineChangedL( (*iLines)[touchedLine]->iId );
+ TRAP_IGNORE( PrepareForFocusTransitionL();
+ ChangeFocusToAndExposeL( touchedLine );
+ LineChangedL( (*iLines)[touchedLine]->iId );
+ );
}
}
}
@@ -3187,11 +3223,15 @@
{
if( iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionDragging )
{
- iExtension->Feedback( this, ETouchFeedbackSensitiveList );
+ iExtension->Feedback( *this, ETouchFeedbackSensitiveList );
}
- else if( iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionFlicking)
+ else if( iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionFlicking )
{
- iExtension->SilentFeedback( this, ETouchFeedbackSensitiveList, TPointerEvent() );
+ iExtension->SilentFeedback( *this, ETouchFeedbackSensitiveList, TPointerEvent() );
+ }
+ else if( iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionBouncing )
+ {
+ iExtension->SilentFeedback( *this, ETouchFeedbackSensitiveList, TPointerEvent() );
}
}
}
@@ -3201,11 +3241,15 @@
{
if( iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionDragging )
{
- iExtension->Feedback( this, ETouchFeedbackSensitiveList );
+ iExtension->Feedback( *this, ETouchFeedbackSensitiveList );
}
- else if( iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionFlicking)
+ else if( iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionFlicking )
{
- iExtension->SilentFeedback( this, ETouchFeedbackSensitiveList, TPointerEvent() );
+ iExtension->SilentFeedback( *this, ETouchFeedbackSensitiveList, TPointerEvent() );
+ }
+ else if( iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionBouncing )
+ {
+ iExtension->SilentFeedback( *this, ETouchFeedbackSensitiveList, TPointerEvent() );
}
}
}
@@ -3375,7 +3419,7 @@
currentLine->SetPressedDownState( EFalse );
if ( IsForm() )
{
- RecordLineL( iCurrentLine );
+ TRAP_IGNORE( RecordLineL( iCurrentLine ) );
}
}
}
@@ -3649,16 +3693,19 @@
clear = ETrue;
}
- if ( focusItem || iExtension->iFocusedClicked)
+ if ( focusItem || iExtension->iFocusedClicked )
{
- iExtension->HandleFormFeedback( this, aPointerEvent, touchedLineIndex, iCurrentLine );
+ iExtension->HandleFormFeedback( *this,
+ aPointerEvent,
+ touchedLineIndex,
+ iCurrentLine );
}
if ( focusItem )
{
PrepareForFocusTransitionL();
- (*iLines)[iCurrentLine]->ScrollBackEditor();
+ (*iLines)[iCurrentLine]->ScrollBackEditorL();
ShowFocus( EFalse, EFalse );
iCurrentLine = touchedLineIndex;
ShowFocus( ETrue, EFalse );
@@ -3677,7 +3724,7 @@
key.iCode=EKeyOK;
key.iModifiers=0;
key.iRepeats = 0;
- CEikonEnv::Static()->SimulateKeyEventL(key, EEventKey);
+ iEikonEnv->SimulateKeyEventL(key, EEventKey);
// SimulateKeyEventL has to be last, because it can
// possibly delete the dialog.. Must not do anything
// to the dialog after the call.
--- a/uifw/EikStd/dlgsrc/aknrecordinggc.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/EikStd/dlgsrc/aknrecordinggc.cpp Tue May 11 16:27:42 2010 +0300
@@ -189,6 +189,14 @@
gc->DrawLine( item->iRect.iTl, item->iRect.iBr );
}
break;
+
+ case CBufferItem::EUseBrushPattern:
+ gc->UseBrushPattern( item->iBitmap );
+ break;
+
+ case CBufferItem::EDiscardBrushPattern:
+ gc->DiscardBrushPattern();
+ break;
}
}
@@ -612,8 +620,15 @@
// From class CWindowGc
// ---------------------------------------------------------------------------
//
-void CAknRecordingGc::UseBrushPattern( const CFbsBitmap* /*aDevice*/ )
+void CAknRecordingGc::UseBrushPattern( const CFbsBitmap* aDevice )
{
+ CBufferItem* buffer = BufferItem();
+ buffer->iType = CBufferItem::EUseBrushPattern;
+
+ CFbsBitmap* bitmap = NULL;
+ TRAP_IGNORE( bitmap = new (ELeave) CFbsBitmap() );
+ bitmap->Duplicate(aDevice->Handle());
+ buffer->iBitmap = bitmap;
}
@@ -623,6 +638,8 @@
//
void CAknRecordingGc::DiscardBrushPattern()
{
+ CBufferItem* buffer = BufferItem();
+ buffer->iType = CBufferItem::EDiscardBrushPattern;
}
--- a/uifw/eikctl/src/EIKCLB.CPP Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/eikctl/src/EIKCLB.CPP Tue May 11 16:27:42 2010 +0300
@@ -594,17 +594,6 @@
data->SetItemCellSize( iItemCellSize );
}
-void CColumnListBoxItemDrawer::DrawCurrentItemRect(const TRect& aRect) const
-//
-// Draw the item background
-//
- {
- iGc->SetClippingRect(iViewRect);
- iGc->SetBrushStyle(CGraphicsContext::ENullBrush);
- iGc->SetPenColor(iHighlightedBackColor); // KDefaultLbxHighlightRectColor
- iGc->DrawRect(aRect);
- iGc->CancelClippingRect();
- }
/**
* Returns a pointer to the column data. Does not imply transfer of ownership.
@@ -656,6 +645,12 @@
TInt pos = -1;
TBool removeicon = (!aItemIsSelected && !ItemMarkReverse()) || (aItemIsSelected && ItemMarkReverse());
+
+ if ( Flags() & CListItemDrawer::EMarkingModeEnabled )
+ {
+ removeicon = EFalse;
+ }
+
if ( Flags() & EDrawMarkSelection && ItemMarkPosition() != -1 && removeicon)
{
repl.Set( ItemMarkReplacement() );
@@ -810,8 +805,15 @@
#define ITEM_EXISTS_ONCE(x) (((x) > -1) && ((x) < iModel->NumberOfItems()))
EXPORT_C void
-CColumnListBoxView::Draw( const TRect* aRect ) const
+CColumnListBoxView::Draw( const TRect* /*aRect*/ ) const
{
+ // If we get here background is drawn via avkon implementation -> raise the
+ // corresponding flag in item drawer.
+ if ( iItemDrawer )
+ {
+ iItemDrawer->SetFlags( CListItemDrawer::ENativeImplementation );
+ }
+
if ( RedrawDisabled() || !IsVisible() )
{
return;
@@ -831,28 +833,7 @@
cc = lbi->ColumnData()->SkinBackgroundContext();
}
- // Draw the whole background at once, this is faster than drawing
- // it in separate items.
- if ( listbox && listbox->BackgroundDrawingSuppressed() )
- {
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- MAknListBoxTfxInternal* transApi = CAknListLoader::TfxApiInternal( iGc );
- if ( transApi )
- {
- transApi->StartDrawing( MAknListBoxTfxInternal::EListView );
- }
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
-
- AknsDrawUtils::Background( skin, cc, listbox, *iGc, *aRect );
-
-#ifdef RD_UI_TRANSITION_EFFECTS_LIST
- if ( transApi )
- {
- transApi->StopDrawing();
- }
-#endif // RD_UI_TRANSITION_EFFECTS_LIST
- }
- else if ( !listbox )
+ if ( !listbox )
{
iGc->Clear();
}
@@ -860,6 +841,7 @@
TInt firstPotentialItemIndex = iTopItemIndex;
TInt lastPotentialItemIndex =
iTopItemIndex + NumberOfItemsThatFitInRect( iViewRect ) - 1;
+ TBool backgroundDrawingSuppressed = ( listbox && listbox->BackgroundDrawingSuppressed() );
if ( iModel->NumberOfItems() == 0 )
{
@@ -872,6 +854,11 @@
lastPotentialItemIndex = iBottomItemIndex;
}
+ if ( backgroundDrawingSuppressed )
+ {
+ iGc->SetClippingRect( iViewRect );
+ }
+
ITEM_EXISTS_BEGIN;
for ( i = firstPotentialItemIndex; i <= lastPotentialItemIndex; i++ )
{
@@ -884,9 +871,14 @@
break;
}
}
+
+ if ( backgroundDrawingSuppressed )
+ {
+ iGc->CancelClippingRect();
+ }
}
- if ( listbox && !listbox->BackgroundDrawingSuppressed() )
+ if ( !backgroundDrawingSuppressed )
{
// Clear the unused portion of the viewing area
// (this handles drawing the vertical line too :)
--- a/uifw/eikctl/src/EIKCLBD.CPP Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/eikctl/src/EIKCLBD.CPP Tue May 11 16:27:42 2010 +0300
@@ -32,6 +32,8 @@
#include <layoutmetadata.cdl.h>
#include <aknlayoutscalable_avkon.cdl.h>
#include <aknphysics.h>
+#include <AknIconArray.h>
+#include <avkon.mbg>
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
@@ -116,7 +118,7 @@
void DeleteAnim();
void FocusGained();
void FocusLost();
- void SkinChanged();
+ void SkinChangedL();
void SetControl( CCoeControl* aControl );
// Implementation of MCoeForegroundObserver
@@ -141,6 +143,9 @@
CWindowGc& aGc,
const TRect& aOutRect,
const TRect& aInnerRect ) const;
+
+ void LoadMarkingIconsL();
+
public: //for handling column alignment
struct TColumnExt
{
@@ -239,6 +244,7 @@
CArrayFix<TColumnExt>* iColumnExtArray; //for column alignment
TRect iMarginRect;
+ CAknIconArray* iMarkingIconArray;
};
/**
@@ -306,6 +312,7 @@
iKineticScrolling = CAknPhysics::FeatureEnabled();
+ LoadMarkingIconsL();
_AKNTRACE_FUNC_EXIT;
}
@@ -330,6 +337,13 @@
delete iColorBmp;
delete iHiliBmp;
delete iColumnExtArray;
+
+ if ( iMarkingIconArray )
+ {
+ iMarkingIconArray->ResetAndDestroy();
+ }
+
+ delete iMarkingIconArray;
}
MAknsControlContext* CColumnListBoxDataExtension::SkinBackgroundContext() const
@@ -520,17 +534,20 @@
}
}
+
// -----------------------------------------------------------------------------
-// CColumnListBoxDataExtension::SkinChanged
+// CColumnListBoxDataExtension::SkinChangedL
// -----------------------------------------------------------------------------
//
-void CColumnListBoxDataExtension::SkinChanged()
+void CColumnListBoxDataExtension::SkinChangedL()
{
DeleteAnim();
TryCreateAnimation();
CreateColorBitmapsL();
+ LoadMarkingIconsL();
}
+
// -----------------------------------------------------------------------------
// CColumnListBoxDataExtension::SetControl
// -----------------------------------------------------------------------------
@@ -1122,19 +1139,63 @@
KAknsIIDQsnFrListCenterPressed );
}
+
+// -----------------------------------------------------------------------------
+// CColumnListBoxDataExtension::LoadMarkingIconsL
+// -----------------------------------------------------------------------------
+//
+void CColumnListBoxDataExtension::LoadMarkingIconsL()
+ {
+ if ( !iMarkingIconArray )
+ {
+ iMarkingIconArray = new ( ELeave ) CAknIconArray( 2 );
+ }
+ else
+ {
+ iMarkingIconArray->ResetAndDestroy();
+ }
+
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+ const TDesC& avkonIconFile = AknIconUtils::AvkonIconFileName();
+
+ CGulIcon* icon = AknsUtils::CreateGulIconL( skin,
+ KAknsIIDQgnPropCheckboxOn,
+ avkonIconFile,
+ EMbmAvkonQgn_prop_checkbox_on,
+ EMbmAvkonQgn_prop_checkbox_on_mask );
+
+ CleanupStack::PushL( icon );
+ iMarkingIconArray->AppendL( icon );
+ CleanupStack::Pop( icon );
+
+ icon = AknsUtils::CreateGulIconL( skin,
+ KAknsIIDQgnPropCheckboxOff,
+ avkonIconFile,
+ EMbmAvkonQgn_prop_checkbox_off,
+ EMbmAvkonQgn_prop_checkbox_off_mask );
+
+ CleanupStack::PushL( icon );
+ iMarkingIconArray->AppendL( icon );
+ CleanupStack::Pop( icon );
+ }
+
+
EXPORT_C CCoeControl *CColumnListBoxData::Control() const
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
return iExtension->iControl;
}
EXPORT_C void CColumnListBoxData::SetControl(CCoeControl *aControl)
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
iExtension->SetControl( aControl );
}
EXPORT_C MAknsControlContext* CColumnListBoxData::SkinBackgroundContext() const
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
if (iExtension->iSkinEnabled)
{
return iExtension->iSkinControlContext;
@@ -1145,12 +1206,14 @@
void CColumnListBoxData::SetSkinBackgroundContext(CAknsListBoxBackgroundControlContext *aContext)
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
delete iExtension->iSkinControlContext;
iExtension->iSkinControlContext = aContext;
}
void CColumnListBoxData::CreatePictographInterfaceL()
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
if ( !iExtension->iPictoInterface )
{
iExtension->iPictoInterface = CAknPictographInterface::NewL(
@@ -1160,6 +1223,7 @@
EXPORT_C void CColumnListBoxData::SetSkinHighlightFrame(const TAknsItemID *aFrameId, const TAknsItemID *aFrameCenterId)
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
_AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
iExtension->iSkinHighlightFrameId = aFrameId;
iExtension->iSkinHighlightFrameCenterId = aFrameCenterId;
@@ -1167,12 +1231,14 @@
EXPORT_C void CColumnListBoxData::SetSkinEnabledL(TBool aEnabled)
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
CListBoxData::SetSkinEnabledL(aEnabled);
iExtension->iSkinEnabled = aEnabled;
}
EXPORT_C void CColumnListBoxData::SetSkinStyle(const TAknsItemID *aId, const TRect &aTileRect)
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
if (iExtension->iSkinControlContext)
{
iExtension->iSkinControlContext->SetTiledBitmap(*aId);
@@ -1182,6 +1248,7 @@
EXPORT_C void CColumnListBoxData::SetListEndSkinStyle(const TAknsItemID *aId, const TRect &aTileRect)
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
if (iExtension->iSkinControlContext)
{
iExtension->iSkinControlContext->SetBottomBitmap(*aId);
@@ -1191,6 +1258,7 @@
void CColumnListBoxData::CreateMarqueeControlL()
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
_AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
if ( !iExtension->iMarquee )
{
@@ -1210,6 +1278,7 @@
void CColumnListBoxData::ResetMarquee()
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
_AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
if (iExtension->iMarquee)
{
@@ -1223,11 +1292,13 @@
TInt CColumnListBoxData::CurrentMarqueeItemIndex()
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
return iExtension->iCurrentItem;
}
void CColumnListBoxData::SetCurrentMarqueeItemIndex(TInt aIndex)
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
iExtension->iCurrentItem = aIndex;
}
@@ -1236,6 +1307,7 @@
//
EXPORT_C void CColumnListBoxData::EnableMarqueeL(TBool aEnable)
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
_AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
// CreateMarqueeControlL does nothing if marquee already exists,
// so let's just call it just in case.
@@ -1246,15 +1318,13 @@
EXPORT_C void CColumnListBoxData::SetSeparatorLinePosition(TAknSeparatorLinePosition aPosition)
{
- if (iExtension)
- iExtension->iSeparatorLinePosition = aPosition;
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
+ iExtension->iSeparatorLinePosition = aPosition;
}
EXPORT_C TAknSeparatorLinePosition CColumnListBoxData::SeparatorLinePosition() const
{
- if (iExtension)
- return iExtension->iSeparatorLinePosition;
- else
- return ENoLine;
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
+ return iExtension->iSeparatorLinePosition;
}
EXPORT_C CAknLayoutData *CColumnListBoxData::LayoutData() const
{
@@ -1311,12 +1381,12 @@
// D'tor
//
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
delete iColumnArray;
if (IconArray())
{
IconArray()->ResetAndDestroy();
- if (iExtension)
- delete iExtension->iIconArray;
+ delete iExtension->iIconArray;
}
delete iExtension;
}
@@ -1393,10 +1463,11 @@
// Set a columns width
//
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
TInt index;
FindColumnIndexOrAddL(index,aColumn);
At(index).iWidth=aWidth;
- if ( iExtension && iExtension->iUseLayoutData )
+ if ( iExtension->iUseLayoutData )
{
iExtension->iUseLayoutData = EFalse;
CListBoxView* view = static_cast<CEikListBox*>( iExtension->iControl )->View();
@@ -1467,6 +1538,7 @@
// Set a columns baseline position
//
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
_AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
TInt index;
FindColumnIndexOrAddL(index,aColumn);
@@ -1474,7 +1546,7 @@
// can not be nicely supported by new drawing system
// --> revert to Symbian style drawing
- if ( iExtension && iExtension->iUseLayoutData )
+ if ( iExtension->iUseLayoutData )
{
iExtension->iUseLayoutData = EFalse;
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
@@ -1509,6 +1581,7 @@
// Set a columns vertical cap
//
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
_AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
TInt index;
FindColumnIndexOrAddL(index,aColumn);
@@ -1516,7 +1589,7 @@
// can not be nicely supported by new drawing system
// --> revert to Symbian style drawing
- if ( iExtension && iExtension->iUseLayoutData )
+ if ( iExtension->iUseLayoutData )
{
iExtension->iUseLayoutData = EFalse;
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
@@ -1628,6 +1701,7 @@
// Set a columns alignment
//
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
TInt index;
FindColumnIndexOrAddL(index,aColumn);
At(index).iAlign=aAlign;
@@ -1728,10 +1802,8 @@
// Return the list of icons
//
{
- if (iExtension)
- return iExtension->iIconArray;
- else
- return 0;
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
+ return iExtension->iIconArray;
}
EXPORT_C void CColumnListBoxData::SetIconArray(CArrayPtr<CGulIcon>* aArray)
@@ -1739,14 +1811,9 @@
// Passes ownership of the icon list aArray (assumes any previous list has been deleted by the caller)
//
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
_AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
- if (iExtension)
- iExtension->iIconArray=aArray;
- else
- {
- aArray->ResetAndDestroy();
- delete aArray;
- }
+ iExtension->iIconArray=aArray;
}
EXPORT_C CFont* CColumnListBoxData::Font(const TListItemProperties& /*aItemProperties*/, TInt aColumn) const
@@ -1778,6 +1845,7 @@
void CColumnListBoxData::DrawHighLight( CWindowGc& aGc, const TRect& aRect, TBool aHighlight, MAknsSkinInstance* aSkin ) const
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
// SERIES60 Highlight drawing.
if( aHighlight )
{
@@ -1943,6 +2011,7 @@
TBool aHighlight,
const TColors& aColors ) const
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
_AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
__ASSERT_DEBUG( iExtension->iControl, Panic( EEikPanicNullPointer ));
@@ -1960,6 +2029,22 @@
TPtrC tempText;
TRgb aTextColor = aHighlight ? aColors.iHighlightedText : aColors.iText;
+
+ TBool markingMode = EFalse;
+ TRect itemRect( aRect );
+
+ if ( listbox->View() && listbox->View()->ItemDrawer() )
+ {
+ if ( listbox->View()->ItemDrawer()->Flags()
+ & CListItemDrawer::EMarkingModeEnabled
+ && iExtension->iMarkingIconArray
+ && iExtension->iMarkingIconArray->Count() == 2 )
+ {
+ markingMode = ETrue;
+ itemRect.iTl.iX +=
+ AknLayoutScalable_Avkon::list_single_graphic_pane_t1( 0 ).LayoutLine().il;
+ }
+ }
MAknsSkinInstance *skin = AknsUtils::SkinInstance();
MAknsControlContext *cc = AknsDrawUtils::ControlContext( Control() );
@@ -1975,9 +2060,8 @@
if ( iExtension->iSubCellsMightIntersect )
{
- CheckIfSubCellsIntersect( &textLines[0], &rectClipped[0], *aText, aRect );
+ CheckIfSubCellsIntersect( &textLines[0], &rectClipped[0], *aText, itemRect );
}
-
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
MAknListBoxTfxInternal *transApi = CAknListLoader::TfxApiInternal( &aGc );
#endif // RD_UI_TRANSITION_EFFECTS_LIST
@@ -2017,11 +2101,43 @@
}
DrawHighLight( aGc, aRect, aHighlight, skin );
+ if ( markingMode && !aItemProperties.IsSelectionHidden() )
+ {
+ TAknLayoutRect layoutRect;
+ layoutRect.LayoutRect( aRect,
+ AknLayoutScalable_Avkon::list_single_graphic_pane_g1( 0 ) );
+
+ aGc.SetPenColor( aColors.iText );
+ aGc.SetPenStyle( CGraphicsContext::ESolidPen );
+
+ CGulIcon* icon = (*iExtension->iMarkingIconArray)[1]; // unchecked
+
+ if ( listbox->View()->ItemIsSelected( iExtension->iCurrentRow ) )
+ {
+ icon = (*iExtension->iMarkingIconArray)[0];
+ }
+
+ CFbsBitmap* bitmap = icon->Bitmap();
+
+ if ( bitmap )
+ {
+ TSize size( bitmap->SizeInPixels() ); // set size if not already
+ TSize targetSize( layoutRect.Rect().Size() );
+
+ if ( size.iWidth != targetSize.iWidth && size.iHeight != targetSize.iHeight )
+ {
+ AknIconUtils::SetSize( bitmap, targetSize,
+ EAspectRatioPreservedAndUnusedSpaceRemoved );
+ }
+
+ aGc.BitBltMasked( layoutRect.Rect().iTl, bitmap, TRect( layoutRect.Rect().Size() ), icon->Mask(), EFalse );
+ }
+
+ }
+
// The column draw loop
column = 0;
TInt subCellIndex = 0;
-
- if ( !iExtension ) { return; }
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
if ( transApi )
@@ -2129,7 +2245,7 @@
}
TAknLayoutText textLayout;
- textLayout.LayoutText( aRect, textLineLayout, usedFont );
+ textLayout.LayoutText( itemRect, textLineLayout, usedFont );
// *2 == leave some room for marquee
const TInt maxlen( KMaxColumnDataLength * 2 );
TBuf<maxlen> convBuf = text.Left(maxlen);
@@ -2176,7 +2292,7 @@
{
iExtension->iMarquee->UseLogicalToVisualConversion( bidiConv );
- if ( iExtension->iMarquee->DrawText( aGc, aRect, textLineLayout, convBuf, usedFont, textColor ) )
+ if ( iExtension->iMarquee->DrawText( aGc, itemRect, textLineLayout, convBuf, usedFont, textColor ) )
{
// all the loops have been executed
textLayout.DrawText( aGc, convBuf, bidiConv, textColor );
@@ -2266,7 +2382,7 @@
TAknWindowLineLayout graphicLayout = iExtension->AtSL(subCellIndex).iGraphicLayout;
TAknLayoutRect graphicRect;
- graphicRect.LayoutRect(aRect,graphicLayout);
+ graphicRect.LayoutRect( itemRect,graphicLayout );
TSize graphicSize( graphicRect.Rect().Size() );
if ( index>=0 && IconArray() )
@@ -2309,6 +2425,7 @@
TBool aHighlight,
const TColors& aColors ) const
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
_AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
if ( aHighlight )
@@ -2342,11 +2459,28 @@
return;
}
+ CEikListBox* listbox = static_cast<CEikListBox*>( iExtension->iControl );
+ TBool markingMode = EFalse;
+ TRect itemRect( aRect );
+
+ if ( listbox->View() && listbox->View()->ItemDrawer() )
+ {
+ if ( listbox->View()->ItemDrawer()->Flags()
+ & CListItemDrawer::EMarkingModeEnabled &&
+ iExtension->iMarkingIconArray &&
+ iExtension->iMarkingIconArray->Count() == 2 )
+ {
+ markingMode = ETrue;
+ itemRect.iTl.iX +=
+ AknLayoutScalable_Avkon::list_single_graphic_pane_t1( 0 ).LayoutLine().il;
+ }
+ }
+
TInt extraVerticalSpace=(aRect.Height()-font->HeightInPixels());
TInt baseLineOffset=extraVerticalSpace/2+font->AscentInPixels();
- TRect textRect( aRect );
+ TRect textRect( itemRect );
TRect textMRect; // textrect with margins.
- textRect.iBr.iX=aRect.iTl.iX;
+ textRect.iBr.iX = itemRect.iTl.iX;
TInt column=0;
TPtrC text;
@@ -2356,11 +2490,11 @@
// be too difficult to do without - and this is cleaner solution.
// pass 1, figures out x-coordinates for columns.
- TInt x = aRect.iTl.iX;
+ TInt x = itemRect.iTl.iX;
TBool mirror = AknLayoutUtils::LayoutMirrored();
if (mirror)
{
- x = aRect.iBr.iX;
+ x = itemRect.iBr.iX;
}
TInt maxx = x;
while(column <= lastColumn)
@@ -2433,13 +2567,6 @@
cc = SkinBackgroundContext();
}
- // aRect is list item's rect, width of which is smaller than width of the list
- // with a scroll bar. List needs to draw under scroll bar anyway, so we need to
- // modify given rect here.
- TRect r(aRect);
-
- CEikListBox* listbox = static_cast<CEikListBox*>( iExtension->iControl );
-
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
MAknListBoxTfxInternal *transApi = CAknListLoader::TfxApiInternal( &aGc );
@@ -2475,9 +2602,7 @@
#endif // RD_UI_TRANSITION_EFFECTS_LIST
}
- CEikListBox* list = static_cast<CEikListBox*>( iExtension->iControl );
-
- if ( iExtension->iCurrentRow < list->BottomItemIndex() )
+ if ( iExtension->iCurrentRow < listbox->BottomItemIndex() )
{
AknListUtils::DrawSeparator( aGc, aRect, aColors.iText, skin );
}
@@ -2494,6 +2619,47 @@
}
#endif // RD_UI_TRANSITION_EFFECTS_LIST
+ if ( markingMode && !aItemProperties.IsSelectionHidden() )
+ {
+ TAknLayoutRect layoutRect;
+ layoutRect.LayoutRect(
+ aRect,
+ AknLayoutScalable_Avkon::list_single_graphic_pane_g1( 0 ) );
+
+ aGc.SetPenColor( aColors.iText );
+ aGc.SetPenStyle( CGraphicsContext::ESolidPen );
+
+ CGulIcon* icon = (*iExtension->iMarkingIconArray)[1]; // unchecked
+
+ if ( listbox->View()->ItemIsSelected( iExtension->iCurrentRow ) )
+ {
+ icon = (*iExtension->iMarkingIconArray)[0];
+ }
+
+ CFbsBitmap* bitmap = icon->Bitmap();
+
+ if ( bitmap )
+ {
+ TSize size( bitmap->SizeInPixels() ); // set size if not already
+ TSize targetSize( layoutRect.Rect().Size() );
+
+ if ( size.iWidth != targetSize.iWidth &&
+ size.iHeight != targetSize.iHeight )
+ {
+ AknIconUtils::SetSize(
+ bitmap,
+ targetSize,
+ EAspectRatioPreservedAndUnusedSpaceRemoved );
+ }
+
+ aGc.BitBltMasked( layoutRect.Rect().iTl,
+ bitmap,
+ TRect( layoutRect.Rect().Size() ),
+ icon->Mask(),
+ EFalse );
+ }
+ }
+
// The column draw loop
column = 0;
FOREVER
@@ -2547,7 +2713,7 @@
aGc.SetBrushColor(aColors.iHighlightedBack);
}
- if (AknsUtils::AvkonSkinEnabled() && iExtension)
+ if ( AknsUtils::AvkonSkinEnabled() )
{
if (iExtension->iTextColor != NULL)
{
@@ -2680,8 +2846,7 @@
{
CGulIcon* icon=(*IconArray())[index];
- if ( iExtension
- && iExtension->iSubCellIconSize[column] != TSize(0,0) )
+ if ( iExtension->iSubCellIconSize[column] != TSize(0,0) )
{
TSize wanted( iExtension->iSubCellIconSize[column] );
TSize got( icon->Bitmap()->SizeInPixels() );
@@ -2880,8 +3045,8 @@
TInt aColumn,
const CFont* aFont)
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
_AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
- if (!iExtension) return;
TInt index = 0;
iExtension->FindRowAndColumnIndexOrAddL(index,aRow,aColumn);
iExtension->At(index).iFont=aFont;
@@ -2890,7 +3055,7 @@
EXPORT_C const CFont*
CColumnListBoxData::RowAndColumnFont(TInt aRow,TInt aColumn) const
{
- if (!iExtension) return 0;
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
TInt index = 0;
if (iExtension->FindRowAndColumnIndex(index,aRow,aColumn)!=0)
return 0;
@@ -2899,6 +3064,7 @@
void CColumnListBoxData::SetCurrentItemIndex(TInt aIndex)
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
_AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
if( iExtension->iCurrentRow != aIndex )
{
@@ -2925,6 +3091,7 @@
const TBool aHighlight,
const TBool aIsTextClipped ) const
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
_AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
TBool marqueeDisabled =
static_cast<CEikListBox*>(
@@ -2952,6 +3119,7 @@
EXPORT_C void CColumnListBoxData::SetMarqueeParams(const TInt aLoops, const TInt aScrollAmount, const TInt aScrollDelay)
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
_AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
if ( iExtension->iMarquee )
{
@@ -2970,6 +3138,7 @@
EXPORT_C void CColumnListBoxData::SetMarqueeParams(const TInt aLoops, const TInt aScrollAmount,
const TInt aScrollDelay, const TInt aInterval)
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
_AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
if ( iExtension->iMarquee )
{
@@ -2983,8 +3152,9 @@
EXPORT_C
void CColumnListBoxData::SetSubCellIconSize(TInt aIndex, TSize aSize)
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
_AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
- if (iExtension && aIndex < 6 && aIndex >= 0)
+ if ( aIndex < 6 && aIndex >= 0 )
{
iExtension->iSubCellIconSize[aIndex] = aSize;
}
@@ -2992,7 +3162,8 @@
TSize CColumnListBoxData::GetSubCellIconSize(TInt aIndex)
{
- if (iExtension && aIndex < 6 && aIndex >= 0)
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
+ if ( aIndex < 6 && aIndex >= 0 )
{
return iExtension->iSubCellIconSize[aIndex];
}
@@ -3005,9 +3176,8 @@
//
EXPORT_C const CAknsEffectAnim* CColumnListBoxData::HighlightAnim() const
{
- if( iExtension )
- return iExtension->iAnimation;
- return NULL;
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
+ return iExtension->iAnimation;
}
// -----------------------------------------------------------------------------
@@ -3016,10 +3186,7 @@
//
EXPORT_C void CColumnListBoxData::AboutToDrawHighlightAnim() const
{
- if( !iExtension )
- {
- return;
- }
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
if( !iExtension->iAnimation || !iExtension->iControl )
{
return;
@@ -3048,11 +3215,9 @@
EXPORT_C void CColumnListBoxData::SetHighlightAnimBackgroundDrawer(
MColumnListBoxAnimBackgroundDrawer* aDrawer )
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
_AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
- if( iExtension )
- {
- iExtension->iHighlightBgDrawer = aDrawer;
- }
+ iExtension->iHighlightBgDrawer = aDrawer;
}
// -----------------------------------------------------------------------------
@@ -3061,15 +3226,14 @@
//
EXPORT_C void CColumnListBoxData::SetItemCellSize( const TSize& aSizeInPixels )
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
_AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
- if( iExtension )
+
+ if( iExtension->iAnimSize != aSizeInPixels )
{
- if( iExtension->iAnimSize != aSizeInPixels )
- {
- iExtension->Play();
- }
- iExtension->iAnimSize = aSizeInPixels;
+ iExtension->Play();
}
+ iExtension->iAnimSize = aSizeInPixels;
}
// -----------------------------------------------------------------------------
@@ -3078,8 +3242,7 @@
//
EXPORT_C TBool CColumnListBoxData::HasHighlightAnim() const
{
- if( !iExtension )
- return EFalse;
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
if( !iExtension->iAnimation )
return EFalse;
return ETrue;
@@ -3092,9 +3255,7 @@
EXPORT_C TBool CColumnListBoxData::DrawHighlightAnim(
CBitmapContext& aGc, const TRect& aRect ) const
{
- if( !iExtension )
- return EFalse;
-
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
if( !iExtension->iAnimation )
return EFalse;
@@ -3107,6 +3268,7 @@
//
void CColumnListBoxData::FocusGained()
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
iExtension->FocusGained();
}
@@ -3116,17 +3278,19 @@
//
void CColumnListBoxData::FocusLost()
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
iExtension->FocusLost();
}
void CColumnListBoxData::HandleResourceChange( TInt aType )
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
_AKNTRACE( "[%s][%s] aType = %d", "CColumnListBoxData", __FUNCTION__, aType );
// Animation is skin dependent, whenever skin changes animation changes
// too.
if( KAknsMessageSkinChange == aType )
{
- iExtension->SkinChanged();
+ TRAP_IGNORE( iExtension->SkinChangedL() );
}
else if(aType == KEikDynamicLayoutVariantSwitch)
{
@@ -3178,34 +3342,28 @@
void CColumnListBoxData::SetESSTextColor(TRgb aTextColor)
{
- if (iExtension)
- iExtension->iTextColor = aTextColor;
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
+ iExtension->iTextColor = aTextColor;
}
void CColumnListBoxData::SetESSHighlightedTextColor(TRgb aHighlightedTextColor)
{
- if (iExtension)
- iExtension->iHighlightedTextColor = aHighlightedTextColor;
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
+ iExtension->iHighlightedTextColor = aHighlightedTextColor;
}
EXPORT_C void CColumnListBoxData::SetColumnUnderlined( TBitFlags32 aUnderlinedColumns )
{
- if ( iExtension )
- {
- iExtension->iUnderlineFlagSet = ETrue;
- iExtension->iUnderlineFlags = aUnderlinedColumns;
- }
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
+ iExtension->iUnderlineFlagSet = ETrue;
+ iExtension->iUnderlineFlags = aUnderlinedColumns;
}
void CColumnListBoxData::SetUnderlineStyle( TListItemProperties aProperties,
CWindowGc& aGc,
TInt aColumn ) const
{
- if ( !iExtension )
- {
- return;
- }
-
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
if ( !iExtension->iUnderlineFlagSet )
{
// underlining is already either on or off and
@@ -3232,13 +3390,9 @@
//
EXPORT_C void CColumnListBoxData::ResetSLSubCellArray()
{
- if ( !iExtension )
- {
- return;
- }
-
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
iExtension->iMarginRect = TRect::EUninitialized;
- if ( iExtension && iExtension->iUseLayoutData )
+ if ( iExtension->iUseLayoutData )
{
iExtension->iUseLayoutData = EFalse;
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
@@ -3266,8 +3420,8 @@
EXPORT_C void CColumnListBoxData::SetGraphicSubCellL(TInt aSubCell,
const TAknWindowLineLayout &aGraphicLayout)
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
_AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
- if (!iExtension) return;
TInt index = 0;
iExtension->FindSLSubCellIndexOrAddL(index,aSubCell);
iExtension->AtSL(index).iTextLayout=NULL;
@@ -3315,8 +3469,8 @@
EXPORT_C void CColumnListBoxData::SetTextSubCellL(TInt aSubCell,
const TAknTextLineLayout &aTextLayout)
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
_AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
- if (!iExtension) return;
TInt index = 0;
iExtension->FindSLSubCellIndexOrAddL(index,aSubCell);
iExtension->AtSL(index).iTextLayout=aTextLayout;
@@ -3365,6 +3519,7 @@
const TAknTextLineLayout &aTextLayout,
TInt aAffectedSubCell)
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
_AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
// iConditionValue of affected subcell (=text subcell, which has different layouts)
// contains index of graphical subcell, which existence should be checked first.
@@ -3374,7 +3529,6 @@
// for compabitility - needed at least for text wrapping
SetOptionalColumnL( aSubCell, ETrue );
- if (!iExtension) return;
TInt i = 0x01;
i = i << aSubCell;
@@ -3501,10 +3655,8 @@
//
TBool CColumnListBoxData::UsesScalableLayoutData() const
{
- if (iExtension)
- return iExtension->iUseLayoutData;
-
- return EFalse;
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
+ return iExtension->iUseLayoutData;
}
// -----------------------------------------------------------------------------
@@ -3513,11 +3665,7 @@
//
void CColumnListBoxData::EnableStretching( const TBool aEnabled )
{
- if ( !iExtension )
- {
- return;
- }
-
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
iExtension->iStretchingEnabled = aEnabled;
}
@@ -3528,11 +3676,7 @@
//
EXPORT_C TBool CColumnListBoxData::StretchingEnabled() const
{
- if ( !iExtension )
- {
- return EFalse;
- }
-
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
return iExtension->iStretchingEnabled;
}
@@ -3558,6 +3702,7 @@
const TDesC& aText,
const TRect& aItemRect ) const
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
_AKNTRACE( "[%s][%s][%d].", "CColumnListBoxData", __FUNCTION__, __LINE__ );
TInt column = 0;
@@ -3672,6 +3817,7 @@
//
EXPORT_C void CColumnListBoxData::SubCellsMightIntersect( const TBool aMightIntersect )
{
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
iExtension->iSubCellsMightIntersect = aMightIntersect;
}
@@ -3772,16 +3918,14 @@
EXPORT_C TUint32 CColumnListBoxData::CurrentItemTextWasClipped() const
{
- return iExtension ? iExtension->iClippedColumns : 0;
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
+ return iExtension->iClippedColumns;
}
TBool CColumnListBoxData::KineticScrollingEnabled() const
{
- if ( iExtension )
- {
- return iExtension->iKineticScrolling;
- }
- return EFalse;
+ __ASSERT_DEBUG( iExtension, Panic( EEikPanicNullPointer ) );
+ return iExtension->iKineticScrolling;
}
--- a/uifw/ganes/group/bld.inf Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/ganes/group/bld.inf Tue May 11 16:27:42 2010 +0300
@@ -28,7 +28,6 @@
OPTION HEADERFILE ganes.mbg
OPTION SOURCES\
-c32,8 qgn_prop_sub_marked\
- -c32,8 qgn_prop_file_video\
-c32,8 qgn_prop_fmgr_file_video\
-c32,8 qgn_prop_drm_rights_valid_super\
-c32,8 qgn_prop_drm_rights_exp_super\
@@ -47,7 +46,8 @@
-c32,8 qgn_graf_mup_adtl_reorder_up\
-c32,8 qgn_graf_mup_adtl_reorder_updown\
-c32,8 qgn_prop_checkbox_on\
- -c32,8 qgn_indi_button_exit_fs
+ -c32,8 qgn_indi_button_exit_fs\
+ -c32,8 qgn_indi_media_thumbnail
END
#endif
--- a/uifw/ganes/src/HgIndicatorManager.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/ganes/src/HgIndicatorManager.cpp Tue May 11 16:27:42 2010 +0300
@@ -69,116 +69,116 @@
InitIconL( iBrokenPlaylistIcon,
EMbmGanesQgn_graf_mup_lst_brokenplayl,
EMbmGanesQgn_graf_mup_lst_brokenplayl_mask,
- aIndicatorSize);
+ aIndicatorSize );
// Broken track icon
InitIconL( iBrokenTrackIcon,
EMbmGanesQgn_graf_mup_lst_brokentrack,
EMbmGanesQgn_graf_mup_lst_brokentrack_mask,
- aIndicatorSize);
+ aIndicatorSize );
// Corrupted track icon
InitIconL( iCorruptedTrackIcon,
EMbmGanesQgn_graf_mup_lst_corrupttrack,
EMbmGanesQgn_graf_mup_lst_corrupttrack_mask,
- aIndicatorSize);
+ aIndicatorSize );
// New podcast icon
InitIconL( iNewPodcastIcon,
EMbmGanesQgn_graf_mup_lst_pdc_new,
EMbmGanesQgn_graf_mup_lst_pdc_new_mask,
- aIndicatorSize);
+ aIndicatorSize );
// Played podcast icon
InitIconL( iPlayedPodcastIcon,
EMbmGanesQgn_graf_mup_lst_pdc_partplay,
EMbmGanesQgn_graf_mup_lst_pdc_partplay_mask,
- aIndicatorSize);
+ aIndicatorSize );
// Completely played podcast icon
InitIconL( iCompletelyPlayedPodcastIcon,
EMbmGanesQgn_graf_mup_lst_pdc_compplay,
EMbmGanesQgn_graf_mup_lst_pdc_compplay_mask,
- aIndicatorSize);
+ aIndicatorSize );
+
+ // Video icon
+ InitIconL( iVideoIcon,
+ EMbmGanesQgn_indi_media_thumbnail,
+ EMbmGanesQgn_indi_media_thumbnail_mask,
+ aIndicatorSize );
// Skinned icons
// Mark icon
InitIconL( iMarkIcon, KAknsIIDQgnPropSubMarked,
EMbmGanesQgn_prop_sub_marked,
EMbmGanesQgn_prop_sub_marked_mask,
- aIndicatorSize);
-
- // Video icon
- InitIconL( iVideoIcon, KAknsIIDQgnPropFileVideo,
- EMbmGanesQgn_prop_file_video,
- EMbmGanesQgn_prop_file_video_mask,
- aIndicatorSize);
-
+ aIndicatorSize );
+
// DRM valid icon
InitIconL( iDrmIcon, KAknsIIDQgnPropDrmRightsValidSuper,
EMbmGanesQgn_prop_drm_rights_valid_super,
EMbmGanesQgn_prop_drm_rights_valid_super_mask,
- aIndicatorSize);
+ aIndicatorSize );
// DRM expired icon
InitIconL( iDrmExpIcon, KAknsIIDQgnPropDrmRightsExpSuper,
EMbmGanesQgn_prop_drm_rights_exp_super,
EMbmGanesQgn_prop_drm_rights_exp_super_mask,
- aIndicatorSize);
+ aIndicatorSize );
// Playback icon
InitIconL( iPlaybackIndicatorIcon, KAknsIIDQgnIndiMupPlay,
EMbmGanesQgn_indi_mup_play,
EMbmGanesQgn_indi_mup_play_mask,
- aIndicatorSize);
+ aIndicatorSize );
// Pause icon
InitIconL( iPauseIndicatorIcon, KAknsIIDQgnIndiMupPause,
EMbmGanesQgn_indi_mup_pause,
EMbmGanesQgn_indi_mup_pause_mask,
- aIndicatorSize);
+ aIndicatorSize );
// New Video icon
InitIconL( iNewVideoIcon, KAknsIIDQgnPropFmgrFileVideo,
EMbmGanesQgn_prop_fmgr_file_video,
EMbmGanesQgn_prop_fmgr_file_video_mask,
- aIndicatorSize);
+ aIndicatorSize );
// Phone memory icon
InitIconL( iPhoneStorageIcon, KAknsIIDQgnPropPhoneMemc,
EMbmGanesQgn_prop_phone_memc,
EMbmGanesQgn_prop_phone_memc_mask,
- aIndicatorSize);
+ aIndicatorSize );
// MMC memory icon
InitIconL( iMmcIcon, KAknsIIDQgnPropMmcMemc,
EMbmGanesQgn_prop_mmc_memc,
EMbmGanesQgn_prop_mmc_memc_mask,
- aIndicatorSize);
+ aIndicatorSize );
// Mass memory icon
InitIconL( iMassStorageIcon, KAknsIIDQgnPropFmgrMsSmall,
EMbmGanesQgn_prop_fmgr_ms_small,
EMbmGanesQgn_prop_fmgr_ms_small_mask,
- aIndicatorSize);
+ aIndicatorSize );
// Move up icon
InitIconL( iMoveUpIcon, KAknsIIDQgnGrafMupAdtlReorderUp,
EMbmGanesQgn_graf_mup_adtl_reorder_up,
EMbmGanesQgn_graf_mup_adtl_reorder_up_mask,
- aIndicatorSize);
+ aIndicatorSize );
// Move down icon
InitIconL( iMoveDownIcon, KAknsIIDQgnGrafMupAdtlReorderDown,
EMbmGanesQgn_graf_mup_adtl_reorder_down,
EMbmGanesQgn_graf_mup_adtl_reorder_down_mask,
- aIndicatorSize);
+ aIndicatorSize );
// Move updown icon
InitIconL( iMoveUpDownIcon, KAknsIIDQgnGrafMupAdtlReorderUpdown,
EMbmGanesQgn_graf_mup_adtl_reorder_updown,
EMbmGanesQgn_graf_mup_adtl_reorder_updown_mask,
- aIndicatorSize);
+ aIndicatorSize );
}
void CHgIndicatorManager::DrawIndicators(
--- a/uifw/ganes/src/HgScroller.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/ganes/src/HgScroller.cpp Tue May 11 16:27:42 2010 +0300
@@ -738,6 +738,7 @@
//
void CHgScroller::HandleDragEventL( const TPointerEvent& aEvent )
{
+ TBool prevPanning = iPanning;
if(!iPanning)
{
TInt delta = 0;
@@ -754,6 +755,9 @@
iPanning = delta >= iPhysics->DragThreshold();
}
+ if( prevPanning != iPanning )
+ DrawDeferred(); // to clear highlight
+
if(iPanning)
{
TPoint delta = iPrev - aEvent.iPosition;
--- a/uifw/ganes/src/HgVgHelper.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/ganes/src/HgVgHelper.cpp Tue May 11 16:27:42 2010 +0300
@@ -39,36 +39,51 @@
namespace HgVgHelper
{
+// ---------------------------------------------------------------------------
+// CreateNonMaskedVgImageL()
+// ---------------------------------------------------------------------------
+//
static VGImage CreateNonMaskedVgImageL( const CFbsBitmap& aBitmap )
{
TSize size = aBitmap.SizeInPixels();
VGImage image = vgCreateImage(VG_sRGB_565, size.iWidth, size.iHeight,VG_IMAGE_QUALITY_NONANTIALIASED);
-
- if ( image == VG_INVALID_HANDLE )
- {
- User::Leave(KErrNoMemory);
- }
- if (aBitmap.DisplayMode() == EColor64K && !aBitmap.IsCompressedInRAM())
+ if ( image != VG_INVALID_HANDLE ) // to check if the image was created
{
- aBitmap.BeginDataAccess();
- TInt stride = aBitmap.DataStride();
- TUint8* ptr = (TUint8*)aBitmap.DataAddress();
- vgImageSubData (image, ptr, stride, VG_sRGB_565, 0, 0, size.iWidth, size.iHeight );
- aBitmap.EndDataAccess();
+ if (aBitmap.DisplayMode() == EColor64K && !aBitmap.IsCompressedInRAM())
+ {
+ aBitmap.BeginDataAccess();
+ TInt stride = aBitmap.DataStride();
+ TUint8* ptr = (TUint8*)aBitmap.DataAddress();
+
+ vgGetError(); // to zero the error flag
+ vgImageSubData (image, ptr, stride, VG_sRGB_565, 0, 0, size.iWidth, size.iHeight );
+
+ if(vgGetError() != VG_NO_ERROR)
+ {
+ vgDestroyImage(image);
+ image = VG_INVALID_HANDLE;
+ }
+ aBitmap.EndDataAccess();
+ }
+ else
+ {
+ TSize size = aBitmap.SizeInPixels();
+ CHgVgDrawBuffer* temp = CHgVgDrawBuffer::NewL(size, EColor64K);
+ temp->Gc().BitBlt(TPoint(0,0), &aBitmap);
+ temp->GetDrawBufferToVgImage(size, TPoint(0,0), image,
+ VG_sRGB_565);
+ delete temp;
+ }
}
- else
- {
- TSize size = aBitmap.SizeInPixels();
- CHgVgDrawBuffer* temp = CHgVgDrawBuffer::NewL(size, EColor64K);
- temp->Gc().BitBlt(TPoint(0,0), &aBitmap);
- temp->GetDrawBufferToVgImage(size, TPoint(0,0), image,
- VG_sRGB_565);
- delete temp;
- }
+
return image;
}
+// ---------------------------------------------------------------------------
+// CreateMaskedVgImageL()
+// ---------------------------------------------------------------------------
+//
static VGImage CreateMaskedVgImageL( CFbsBitmap* aBitmap, CFbsBitmap* aMask )
{
TSize size = aBitmap->SizeInPixels();
--- a/uifw/ganes/src/HgVgLabel.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/ganes/src/HgVgLabel.cpp Tue May 11 16:27:42 2010 +0300
@@ -61,9 +61,9 @@
{
iText = aText.AllocL();
- iTextRenderer = CHgVgDrawBuffer::NewL(iRect.Size(), EGray2);
+ iTextRenderer = CHgVgDrawBuffer::NewL(iRect.Size(), EGray256);
- iTextImage = vgCreateImage(VG_A_1,
+ iTextImage = vgCreateImage(VG_A_8,
iRect.Width(), iRect.Height(),
VG_IMAGE_QUALITY_NONANTIALIASED);
@@ -178,7 +178,7 @@
text.DrawText(iTextRenderer->Gc(), *iText, ETrue, KRgbWhite);
iTextRenderer->GetDrawBufferToVgImage(TRect(TPoint(0,0), iRect.Size()),
- TPoint(0, 0), iTextImage, VG_A_1);
+ TPoint(0, 0), iTextImage, VG_A_8);
}
@@ -195,7 +195,7 @@
iTextRenderer->Clear(iRect.Size(), KRgbBlack);
DrawEmptyListImpl_real(aClientRect, iTextRenderer->Gc(), aText, KRgbWhite);
iTextRenderer->GetDrawBufferToVgImage(TRect(TPoint(0,0), iRect.Size()),
- TPoint(0, 0), iTextImage, VG_A_1);
+ TPoint(0, 0), iTextImage, VG_A_8);
iDirty = EFalse;
Draw(aClientRect, 1.0f);
}
--- a/uifw/ganes/src/HgVgLetterPopup.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/ganes/src/HgVgLetterPopup.cpp Tue May 11 16:27:42 2010 +0300
@@ -54,14 +54,14 @@
{
iPrevText = ((TDesC)KNullDesC).AllocL();
- iDrawBuffer = CHgVgDrawBuffer::NewL(iRect.Size(), EGray2);
+ iDrawBuffer = CHgVgDrawBuffer::NewL(iRect.Size(), EGray256);
iDrawBuffer->Gc().UseFont(iFont);
iDrawBuffer->Gc().SetPenColor(KRgbWhite);
iDrawBuffer->Gc().SetBrushColor(KRgbBlack);
// Create VG Image to use
- iLetterImage = vgCreateImage(VG_A_1,
+ iLetterImage = vgCreateImage(VG_A_8,
iRect.Width(), iRect.Height(),
VG_IMAGE_QUALITY_NONANTIALIASED);
@@ -140,7 +140,7 @@
TPoint pos(iRect.Width() / 2 - width / 2,
iRect.Height() / 2 + height / 2);
iDrawBuffer->DrawText(aText, iFont, KRgbWhite, pos);*/
- iDrawBuffer->GetDrawBufferToVgImage(iRect.Size(), TPoint(0,0), iLetterImage, VG_A_1);
+ iDrawBuffer->GetDrawBufferToVgImage(iRect.Size(), TPoint(0,0), iLetterImage, VG_A_8);
}
}
@@ -159,7 +159,7 @@
pos.iY += height;
pos.iX = iRect.Width() / 2 - w2 / 2;
iDrawBuffer->Gc().DrawText(aText2, pos);
- iDrawBuffer->GetDrawBufferToVgImage(iRect.Size(), TPoint(0,0), iLetterImage, VG_A_1);
+ iDrawBuffer->GetDrawBufferToVgImage(iRect.Size(), TPoint(0,0), iLetterImage, VG_A_8);
}
// -----------------------------------------------------------------------------
--- a/uifw/ganes/src/HgVgMediaWall.cpp Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/ganes/src/HgVgMediaWall.cpp Tue May 11 16:27:42 2010 +0300
@@ -334,7 +334,6 @@
delete iDelayedInit;
delete iEGL;
delete iSpring;
- delete iSurfaceBitmap;
iPopupText1.Close();
iPopupText2.Close();
@@ -369,7 +368,7 @@
void CHgVgMediaWall::Draw ( const TRect& /*aRect*/ ) const
{
- if(iFlags & EHgVgMediaWallUninitialized)
+ if( iFlags & EHgVgMediaWallUninitialized || !iIsForeground )
{
FillSystemGcWithSkin( );
return;
@@ -377,47 +376,36 @@
CHgVgMediaWall* self = const_cast<CHgVgMediaWall*>(this);
- if (iIsForeground)
+ if( iFlags & EHgVgMediaWallDrawToWindowGC )
{
- if( iFlags & EHgVgMediaWallDrawToWindowGC )
+ CFbsBitmap* screenshot = NULL;
+ screenshot = self->DrawToBitmap();
+ if (screenshot)
{
- CFbsBitmap* screenshot = NULL;
- screenshot = self->DrawToBitmap();
- if (screenshot)
- {
- SystemGc().BitBlt( Rect().iTl,screenshot );
- delete screenshot;
- }
- else
- {
- FillSystemGcWithSkin( );
- }
- }
- else
- {
-
- // draw with alpha to make a hole to composition layer
- SystemGc().SetDrawMode(CGraphicsContext::EDrawModeWriteAlpha);
- SystemGc().SetBrushColor(TRgb(0,0,0,0));
- SystemGc().Clear();
-
- DrawOpenVG();
- }
- }
- else
- {
- if (iSurfaceBitmap)
- {
- SystemGc().BitBlt( Rect().iTl, iSurfaceBitmap );
+ SystemGc().BitBlt( Rect().iTl,screenshot );
+ delete screenshot;
}
else
{
FillSystemGcWithSkin( );
}
}
-
+ else
+ {
+ // draw with alpha to make a hole to composition layer
+ SystemGc().SetDrawMode(CGraphicsContext::EDrawModeWriteAlpha);
+ SystemGc().SetBrushColor(TRgb(0,0,0,0));
+ SystemGc().Clear();
+
+ DrawOpenVG();
+ }
}
+// -----------------------------------------------------------------------------
+// CHgVgMediaWall::FillSystemGcWithSkin()
+// Draws the display.
+// -----------------------------------------------------------------------------
+//
void CHgVgMediaWall::FillSystemGcWithSkin( ) const
{
MAknsSkinInstance* skin = AknsUtils::SkinInstance();
@@ -1219,26 +1207,10 @@
{
if(iIsForeground) return; // don't react to gaining foreground without losing it
- // draw previous screenshot
- DrawNow();
-
- // delete it
- delete iSurfaceBitmap;
- iSurfaceBitmap = NULL;
-
iIsForeground = ETrue;
-
- // init egl and openvg again
- TRAP_IGNORE( InitRenderingL(EFalse); )
- // reload images to ive
- ReloadItemsImages();
-
- ClearFlags(EHgVgMediaWallUninitialized);
-
- // draw using openvg
- DrawNow();
-
+ if(iDelayedInit && !iDelayedInit->IsActive())
+ iDelayedInit->Start(100000, 1000000, TCallBack(DelayedInit, this));
}
// ---------------------------------------------------------------------------
@@ -1268,11 +1240,6 @@
iIsForeground = EFalse;
- // take a screenshot
- delete iSurfaceBitmap;
- iSurfaceBitmap = NULL;
- iSurfaceBitmap = DrawToBitmap();
-
// draw screenshot using window gc, this is needed
// for nga effects to work
DrawNow();
@@ -1281,9 +1248,10 @@
FreeItemsImages();
// free other resources
DestroyRendering();
+
+ SetFlags( EHgVgMediaWallUninitialized | EHgVgMediaWallDrawToWindowGC );
iCoeEnv->WsSession().Flush();
-
}
// ---------------------------------------------------------------------------