diff -r 000000000000 -r 4e91876724a2 photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraddtocontainer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraddtocontainer.h Thu Dec 17 08:45:44 2009 +0200 @@ -0,0 +1,121 @@ +/* +* Copyright (c) 2008-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: Add to container commmand handler +* +*/ + + + + +#ifndef __C_GLXCOMMANDHANDLERADDTOCONTAINER_H__ +#define __C_GLXCOMMANDHANDLERADDTOCONTAINER_H__ + +#include +#include + +class MGlxMediaListProvider; + +class CEikAppUi; + +/** + * Command handler for adding to a container. + * @author Alex Birkett, Aki Vanhatalo + * @internal reviewed 05/06/2007 by Dave Schofield + */ +NONSHARABLE_CLASS( CGlxCommandHandlerAddToContainer ) + : public CGlxMpxCommandCommandHandler + { +public: + /** + * Create add to album command handler + * @param aMediaListProvider object that provides the media list. + */ + IMPORT_C static CGlxCommandHandlerAddToContainer* NewAddToAlbumCommandHandlerL( + MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem); + + /** + * Create add (to) tags command handler + * @param aMediaListProvider object that provides the media list. + */ + IMPORT_C static CGlxCommandHandlerAddToContainer* NewAddToTagCommandHandlerL( + MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem); + + /** + * Create add (to) Favourites command handler + * @param aMediaListProvider object that provides the media list. + */ + IMPORT_C static CGlxCommandHandlerAddToContainer* NewAddToFavCommandHandlerL( + MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem); + + /** + * Two-phase constructor: + * Prefer NewAddToAlbumCommandHandlerL or NewAddToTagsCommandHandlerL + * @param aMediaListProvider object that provides the media list. + * @param aCommand The command to handle. + */ + IMPORT_C static CGlxCommandHandlerAddToContainer* NewL(MGlxMediaListProvider* aMediaListProvider, + TInt aCommandId, TBool aHasToolbarItem ); + + /** Destructor */ + IMPORT_C ~CGlxCommandHandlerAddToContainer(); + +protected: // From CGlxMediaListCommandHandler + + /** See @ref CGlxMpxCommandCommandHandler::CreateCommandL */ + virtual CMPXCommand* CreateCommandL(TInt aCommandId, MGlxMediaList& aList, + TBool& aConsume) const; + + /** See @ref CGlxMpxCommandCommandHandler::CompletionTextL */ + virtual HBufC* CompletionTextL() const; + + /** See @ref CGlxMpxCommandCommandHandler::DoHandleCommandCompleteL */ + virtual void DoHandleCommandCompleteL(TAny* aSessionId, + CMPXCommand* aCommandResult, TInt aError, MGlxMediaList* aList); + + /** See @ref CGlxCommandHandler::DoActivateL */ + void DoActivateL(TInt aViewId); + + /** See @ref CGlxCommandHandler::PopulateToolbar*/ + void PopulateToolbarL(); + +private: + /** + * Second phase constructor + * @param aCommand The command to handle. + */ + void ConstructL(TInt aCommandId); + + + /** + * First phase constructor + * @aMediaListProvider object that provides the media list. + */ + CGlxCommandHandlerAddToContainer(MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem ); + +private: + // Resource offset + TInt iResourceOffset; + + // Container Command Id + TInt iCommandId; + + // Target containers selection count + static TInt iSelectionCount; + + // Popup Completion Status Flag + mutable TBool iIsProcessOngoing; + + }; + +#endif // __C_GLXCOMMANDHANDLERADDTOCONTAINER_H__