upnpsettings/multiselectionui/inc/upnpappmultiselectiondialog.h
changeset 0 7f85d04be362
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/upnpsettings/multiselectionui/inc/upnpappmultiselectiondialog.h	Thu Dec 17 08:52:00 2009 +0200
@@ -0,0 +1,181 @@
+/*
+* 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:      CUPnPAppMultiselectionDialog class definition
+*
+*/
+
+
+
+
+
+
+#ifndef UPNPAPPMULTISELECTIONDIALOG_H
+#define UPNPAPPMULTISELECTIONDIALOG_H
+
+// INCLUDES
+#include <AknDialog.h>
+#include <aknselectionlist.h>
+#include <aknsfld.h>
+#include <aknnavide.h>
+#include <akntitle.h> //for status pane
+#include <AknIconArray.h>
+#include <AknWaitNoteWrapper.h>
+
+#include "upnpfilesharingengine.h" // included to know THomeConnectMediaType
+#include "upnpmultiselectionutility.h"
+
+
+
+// FORWARD DECLARATIONS
+class CAknColumnListBox;
+
+// CLASS DECLARATION
+
+/**
+* CUPnPAppMultiselectionDialog dialog class
+* @since S60 3.1
+*/
+NONSHARABLE_CLASS( CUPnPAppMultiselectionDialog ) : 
+    public CAknSelectionListDialog,
+    MAknBackgroundProcess
+    {
+    public: // Constructors and destructor
+        /**
+        * Two-phased constructor.
+        * @since S60 3.1
+        * @param aMediaType. Media type for UI. Either Images Or videos or \
+music.
+        * @param aFileSharingEngine. Pointer to filesharingengine.
+        * @param aSelectionIndexArray. Array for initial selection.
+        */
+        static CUPnPAppMultiselectionDialog* NewL(
+                            THomeConnectMediaType aMediaType,
+                            CUPnPFileSharingEngine* aFileSharingEngine,
+                            CArrayFix<TInt>* aSelectionIndexArray );
+
+        /**
+        * Destructor.
+        */
+       virtual ~CUPnPAppMultiselectionDialog();
+
+
+    protected:  // New functions
+        void ConstructL(THomeConnectMediaType aMediaType,
+                        CUPnPFileSharingEngine* aFileSharingEngine,
+                        CArrayFix<TInt>* aSelectionIndexArray );
+
+    protected:  // Functions from base classes
+        /**
+        * From MAknBackgroundProcess, handles backround processing
+        * @since S60 3.1
+        */
+        virtual void StepL();
+
+        /**
+        * From MAknBackgroundProcess, handles backround processing
+        * @since S60 3.1
+        * @return TBool, ETrue when the process is done
+        */
+        virtual TBool IsProcessDone() const;
+
+        /**
+        * From CAknSelectionListDialog, handles layout initialization
+        * @since S60 3.1
+        */
+        void PreLayoutDynInitL();
+
+        /**
+        * From CAknSelectionListDialog, handles initialization
+        * that doesn't affect layout
+        * @since S60 3.1
+        */
+        void PostLayoutDynInitL();
+
+        /**
+        * From CAknSelectionListDialog, handles key events.
+        * @since S60 3.1
+        * @param TKeyEvent, Event to handled.
+        * @param TEventCode, Type of the key event.
+        * @return TKeyResponse, response code 
+        * (EKeyWasConsumed, EKeyWasNotConsumed).
+        */
+        TKeyResponse OfferKeyEventL (const TKeyEvent &aKeyEvent,
+                                     TEventCode aType);
+
+        /**
+        * From CAknSelectionListDialog, handles focus changes of the dialog
+        * @since S60 3.1
+        * @param TInt, pressed button id
+        * @return TBool, ETrue if ready to close dialog, EFalse otherwise
+        */
+        TBool OkToExitL( TInt aButtonId );
+
+
+    private:
+        /**
+        * C++ default constructor.
+        */
+        CUPnPAppMultiselectionDialog();
+
+    private: //data
+        // dialog control item
+        CAknColumnListBox*              iListBox; // not owned
+        // Mediatype selected from listbox
+        THomeConnectMediaType           iMediaType;
+        // File sharing engine member
+        CUPnPFileSharingEngine*         iFileSharingEngine; //not owned
+        // title pane
+        CAknTitlePane*                  iTitlePane;
+        // selected item - needed for creation of CAknSelectionListDialog
+        TInt                            iSelectedItem;
+
+        CAknWaitNoteWrapper*            iWaitNoteWrapper;
+        // array of marked (shared) items.
+        CArrayFix<TInt>*           iMarkedItems; //not owned
+
+        CUpnpMultiselectionUtility*      iUtility; //owned
+        
+        CAknFilteredTextListBoxModel* iModel; //not owned
+
+        CDesCArray* iSettingsTextArray; //not owned
+
+        // Variable to transfer information about wait note end
+        TBool iDone;
+
+        /**
+         * Msk's label. (Owned)
+         */
+        HBufC* iMskSelectText;
+
+        /**
+         * Msk's label. (Owned)
+         */
+        HBufC* iMskUnselectText;
+
+        /**
+         * Internal state
+         */
+        enum TState
+            {
+            ELoadNone = 0,
+            ELoadContent,
+            ELoadIndexes,
+            ELoadDone
+            };
+        TState iState;
+    };
+
+#endif // UPNPAPPMULTISELECTIONDIALOG_H
+
+// End of File