diff -r 000000000000 -r 7f85d04be362 upnpsettings/multiselectionui/inc/upnpappmultiselectiondialog.h --- /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 +#include +#include +#include +#include //for status pane +#include +#include + +#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* aSelectionIndexArray ); + + /** + * Destructor. + */ + virtual ~CUPnPAppMultiselectionDialog(); + + + protected: // New functions + void ConstructL(THomeConnectMediaType aMediaType, + CUPnPFileSharingEngine* aFileSharingEngine, + CArrayFix* 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* 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