--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/homesync/contentmanager/mediaservant/inc/msfillcontainer.h Thu Dec 17 08:52:00 2009 +0200
@@ -0,0 +1,323 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Definition for MediaServant fill list container class
+*
+*/
+
+
+#ifndef C_MSFILLCONTAINER_H
+#define C_MSFILLCONTAINER_H
+
+// INCLUDES
+#include <aknlists.h>
+#include "msbasecontainer.h"
+#include "mediaservant.hrh"
+
+// FORWARD DECLARATIONS
+class CAknColumnListBox;
+class CAknIconArray;
+class CMSAppUi;
+class CCmFillRule;
+class CMSFillRuleController;
+class CMSFillView;
+class CMSFillList;
+
+/**
+ * CMSFillContainer class
+ *
+ * @since S60 5.1
+ */
+NONSHARABLE_CLASS( CMSFillContainer ): public CMSBaseContainer
+ {
+ private:
+
+ // icon enumerations
+ enum TMSListBoxIcons
+ {
+ EMSSelectedFits = 0,
+ EMSUnselectedFits,
+ EMSSelectedPartiallyFits,
+ EMSUnselectedPartiallyFits,
+ EMSSelectedDoesntFit,
+ EMSUnSelectedDoesntFit,
+ EVideoType,
+ EImageType,
+ EAudioType,
+ EMark,
+ EIconCount
+ };
+
+ public:
+
+ /**
+ * Constructor.
+ */
+ CMSFillContainer( CMSAppUi& aAppUi, CMSFillView& aView );
+
+ /**
+ * Symbian default constructor.
+ */
+ void ConstructL( TRect aRect );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CMSFillContainer();
+
+ /**
+ * Updates listbox data
+ * @since S60 5.1
+ */
+ void UpdateListBoxDataL();
+
+ /**
+ * sets fill rule activity
+ * @since S60 5.1
+ */
+ void SetFillRules();
+
+ /**
+ * Highlighted item index
+ * @since S60 5.1
+ * @return TInt, highlighted item index
+ */
+ TInt SelectedItemIndex();
+
+ /**
+ * Count of list items
+ * @since S60 5.1
+ * @return TInt, item count
+ */
+ TInt ListItemCount();
+
+ /**
+ * Sets reorder mode states
+ * @since S60 5.1
+ * @param aState, reordering state
+ */
+ void SetReorderStateL( TMSReorderState aState );
+
+ /**
+ * Deletes current rule
+ * @since S60 5.1
+ */
+ void DeleteRuleL();
+
+ /**
+ * Checks if the list already have rule with this name
+ * @since S60 5.1
+ * @param aName, rule name
+ * @TInt number of dublicates
+ */
+ TInt CheckIfDublicateNames( const TDesC& aName );
+
+ /**
+ * Toggles list item
+ * @since S60 5.1
+ */
+ void ChangeListActivityL();
+
+ /**
+ * Checks if item is selected
+ * @since S60 5.1
+ * @return TBool, ETrue if activated
+ */
+ TBool IsCurrentListItemActive();
+
+ /**
+ * Checks if user has changed list selections
+ * @since S60 5.1
+ * @return TBool, ETrue if changed
+ */
+ TBool HasListSelectionsChanged();
+
+ /**
+ * Updates fill list size on navi pane
+ * @since S60 5.1
+ */
+ void UpdateNaviTextL();
+
+ /**
+ * Checks if list(s) have been deleted
+ * @since S60 5.1
+ * @return TBool, ETrue if deleted, EFalse otherwise
+ */
+ TBool IsListDeleted();
+
+ /**
+ * Handles pointer event on touchscreen
+ * @param aPointerEvent, touchscreen key event
+ */
+ void HandlePointerEventL ( const TPointerEvent& aPointerEvent );
+
+ protected:
+
+// From base class CCoeControl
+
+ /**
+ * From CoeControl
+ * See base class definition
+ */
+ void GetHelpContext(TCoeHelpContext& aContext) const;
+
+ /**
+ * From CoeControl
+ * See base class definition
+ */
+ CCoeControl* ComponentControl(TInt aIndex) const;
+
+ /**
+ * From CoeControl
+ * See base class definition
+ */
+ TInt CountComponentControls() const;
+
+ /**
+ * From CoeControl
+ * See base class definition
+ */
+ void SizeChanged();
+
+ /**
+ * From CoeControl
+ * See base class definition
+ */
+ void HandleResourceChange(TInt aType);
+
+ /**
+ * From CoeControl
+ * See base class definition
+ */
+ TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
+ TEventCode aType );
+
+ /**
+ * From CoeControl
+ * See base class definition
+ */
+ void HandleDragAndDropEventsL( const TPointerEvent& aPointerEvent );
+
+ private:
+
+
+ /**
+ * Handles up/down keys during reordering
+ * @since S60 5.1
+ * @param aKeyEvent Key event.
+ * @param aType Type of key event( EEventKey, EEventKeyUp or
+ * EEventKeyDown ).
+ */
+ TKeyResponse HandleReorderKeyEventL(const TKeyEvent& aKeyEvent,
+ TEventCode aType );
+
+ /**
+ * Moves item on the list
+ * @since S60 5.1
+ * @param aDirection, moving direction
+ */
+ void MoveItem( TInt aDirection );
+
+ /**
+ * Sets rule activity according to checkbox states on the list
+ * @since S60 5.1
+ */
+ void StoreSelectionStatus();
+
+ /**
+ * Gets icon for the list
+ * @since S60 5.1
+ * @param aListName, name of the list
+ * @param aIndex, item index
+ * @param aListSize, list size in bytes
+ */
+ TInt ListItemIconIndex( TInt aIndex,
+ TInt64 aListSize,
+ TInt64& aFreeSpace );
+
+ /**
+ * Calculates fill quota based on selected drives
+ * @since S60 5.1
+ */
+ void CalculateFillQuotaL();
+
+ private:
+
+ /**
+ * Listbox control
+ */
+ CAknColumnListBox* iListBox;
+ /**
+ * Pointer to application ui
+ */
+ CMSAppUi& iMSAppUi; // not owned
+ /**
+ * Reorder state
+ */
+ TMSReorderState iReorderState;
+ /**
+ * Pointer array to rules
+ */
+ RPointerArray<CMSFillList>* iFillListArray; // not owned
+ /**
+ * Fill rule controller
+ */
+ CMSFillRuleController* iFillRuleController;// not owned
+ /**
+ * Parent view
+ */
+ CMSFillView& iView;
+ /**
+ * Size of selected lists
+ */
+ TInt64 iSizeOfSelectedLists;
+ /**
+ * Selected items on view activation
+ */
+ RArray<TInt> iSelectedLists;
+ /**
+ * Context pane icon
+ */
+ CFbsBitmap* iIcon; // not owned
+ /**
+ * Context pane icon mask
+ */
+ CFbsBitmap* iIconMask; // not owned
+ /**
+ * Selection indexes
+ */
+ const CListBoxView::CSelectionIndexArray*
+ iSelectedIndexes; // not owned
+ /**
+ * MMC free space ( for navi pane text )
+ */
+ TInt64 iFreeMemory;
+ /**
+ * MMC quota ( set by user )
+ */
+ TInt64 iQuota;
+ /**
+ * List delete flag
+ */
+ TBool iListDeleted;
+ /**
+ * Previous listbox selection
+ */
+ TInt iPreviousItemIndex;
+ /**
+ * Index of an item that is dragged
+ */
+ TInt iDragItemIndex;
+ };
+
+#endif // C_MSMAINCONTAINER_H
\ No newline at end of file