uifw/AvKon/aknhlist/inc/akntreelistview.h
branchRCL_3
changeset 56 d48ab3b357f1
parent 55 aecbbf00d063
child 64 85902f042028
--- a/uifw/AvKon/aknhlist/inc/akntreelistview.h	Tue Aug 31 15:28:30 2010 +0300
+++ b/uifw/AvKon/aknhlist/inc/akntreelistview.h	Wed Sep 01 12:16:19 2010 +0100
@@ -40,6 +40,7 @@
 class CEikScrollBarFrame;
 class CAknTreeListPhysicsHandler;
 class CAknItemActionMenu;
+class CAknIconArray;
 
 /**
  *  Hierarchical list view.
@@ -58,8 +59,8 @@
                                         public MAknsEffectAnimObserver,
                                         public MEikCommandObserver,
                                         public MAknCollection,
-                                        public MAknLongTapDetectorCallBack
-                                        
+                                        public MAknLongTapDetectorCallBack,
+                                        public MAknMarkingCollection
     {
 
 public:
@@ -448,12 +449,9 @@
 TInt& TopIndex();
 TInt& BottomIndex();
 
-void UpdateIndexes();
-
 TInt iItemCountLimit;
 TInt iHighlightIndex;
 TInt iTopIndex;
-TInt iBottomIndex;
 
 #endif //RD_UI_TRANSITION_EFFECTS_LIST
 
@@ -645,8 +643,10 @@
 
     /**
      * Updates scrollbars.
+     * 
+     * @param  aDrawNow  Whether or not to draw the scrollbar.
      */
-    void UpdateScrollbars();
+    void UpdateScrollbars( TBool aDrawNow );
 
     /**
      * Updates the horizontal position of the view so that the beginning of
@@ -814,23 +814,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
@@ -866,6 +866,16 @@
      */
     void UpdateViewItemAsVisible( CAknTreeItem* aItem );
 
+    /**
+     * Updates indexes 
+     */
+	void UpdateIndexes();
+	
+	/**
+	 * Loads marking mode icons.
+	 */
+    void LoadMarkingIconsL();
+	
 // from base class CCoeControl
 
     /**
@@ -889,8 +899,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
@@ -917,7 +928,7 @@
      * 
      * @return ETrue if list has marked items
      */    
-    TBool HasMarkedItemsL();    
+    TBool HasMarkedItemsL() const;
     
 // From MAknCollection
     /**
@@ -943,6 +954,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 
@@ -1052,9 +1112,6 @@
      */
     CAknTreeItem* iPreviouslyFocusedItem;
 
-    TBool iIsPressedDownState;
-    
-    TBool iIsDragged;
     
     /**
      * Physics handler. Used only when physics feature is enabled.
@@ -1062,10 +1119,6 @@
      */
     CAknTreeListPhysicsHandler* iPhysicsHandler;
 
-    /**
-     * ETrue if physics view should be adjusted according to top item.
-     */
-    TBool iScrollPhysicsTop;
 
     /**
     * Pointer to tfx redirect gc for effects
@@ -1083,7 +1136,31 @@
     * Long tap detector
     */
     CAknLongTapDetector* iLongTapDetector;
+
+   /**
+    * Last visible item index
+	*/
+	TInt iBottomIndex;
+	
+	
+    /**
+     * 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;	
+
+	
+	/**
+	 * Array for marking mode icons.
+	 * Own.
+	 */
+    CAknIconArray* iMarkingIconArray;
+    
+    /**
+     * Ordinal position of window, before stylus menu is opened.
+     */
+    TInt iOldWinPos;
     };
 
-
 #endif // C_AKNTREELISTVIEW_H