diff -r 000000000000 -r 4e91876724a2 photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlersend.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlersend.h Thu Dec 17 08:45:44 2009 +0200 @@ -0,0 +1,227 @@ +/* +* 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: Send commmand handler +* +*/ + + + + +#ifndef __GLXCOMMANDHANDLERUPLSEND_H__ +#define __GLXCOMMANDHANDLERUPLSEND_H__ + + +// EXTERNAL INCLUDES + +#include + +// INTERNAL INCLUDES +#include "glxmedialistcommandhandler.h" + + +// FORWARD DECLARATIONS +class MGlxMediaListProvider; +class CGlxUiUtility; +class CGlxDefaultAttributeContext; +class CMessageData; +class CGlxMedia; +class CSendUi; + + +// CLASS DECLARATION +/** + * Command handler that enables the send plugin + * class CGlxCommandHandlerSend + * @author Loughlin Spollen + * @internal reviewed 07/06/2007 by Alex Birkett + */ + +NONSHARABLE_CLASS (CGlxCommandHandlerSend) : public CGlxMediaListCommandHandler, + public MGlxMediaListObserver + { +public: // Constructors and destructor + /** + * Two-phased constructor. + * @param aMediaListProvider pointer to media list owner + * @param aHasToolbarItem Whether Command Should be toolbar item (ETrue - if toolbar item) + * @return pointer to CGlxCommandHandlerSend object + */ + IMPORT_C static CGlxCommandHandlerSend* NewL( + MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem ); + + /** + * Destructor. + */ + IMPORT_C ~CGlxCommandHandlerSend(); + +protected: + /* + * + */ + void PopulateToolbarL(); + +private: + /** + * Symbian 2nd phase constructor + */ + void ConstructL(); + + /** + * C++ default constructor. + * @param aMediaListProvider pointer to media list owner + * @ref CGlxMediaListCommandHandler + */ + CGlxCommandHandlerSend(MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem ); + + +private: // From CGlxMediaListCommandHandler + /** + * Execute the command, if applicable. + * @param aCommand The command to handle + * @param aList List of media items + * @return ETrue if command was handled, EFalse otherwise + * @ref CGlxMediaListCommandHandler::DoExecuteL + */ + TBool DoExecuteL (TInt aCommandId, MGlxMediaList& aList); + + /** + * Called when the owning view is activated + * @param aViewId The ID of the view + * @ref CGlxMediaListCommandHandler::ActivateL + */ + void DoActivateL (TInt aViewId); + + /** + * Called when the owning view is deactivated + */ + void Deactivate(); + + /** + * @ref CGlxMediaListCommandHandler::OfferKeyEventL + */ + TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType); + +private: // From MGlxMediaListObserver + + /** + * not implemented + * @ref MGlxMediaListObserver::HandleItemAddedL + */ + void HandleItemAddedL(TInt /*aStartIndex*/, TInt /*aEndIndex*/, + MGlxMediaList* /*aList*/){}; + /** + * not implemented + * @ref MGlxMediaListObserver::HandleMediaL + */ + void HandleMediaL(TInt /*aListIndex*/, MGlxMediaList* /*aList*/){}; + + /** + * not implemented + * @ref MGlxMediaListObserver::HandleItemRemovedL + */ + void HandleItemRemovedL(TInt /*aStartIndex*/, TInt /*aEndIndex*/, + MGlxMediaList* /*aList*/){}; + + /** + * not implemented + * @ref MGlxMediaListObserver::HandleItemModifiedL + */ + void HandleItemModifiedL(const RArray& /*aItemIndexes*/, + MGlxMediaList* /*aList*/){}; + + /** + * not implemented + * @ref MGlxMediaListObserver::HandleAttributesAvailableL + */ + void HandleAttributesAvailableL(TInt /*aItemIndex*/, + const RArray& /*aAttributes*/, + MGlxMediaList* /*aList*/){}; + + /** + * is implemented - used to trigger an update of the visible state send + * active palette item + * @ref MGlxMediaListObserver::HandleFocusChangedL + */ + void HandleFocusChangedL(NGlxListDefs::TFocusChangeType aType, TInt aNewIndex, + TInt aOldIndex, MGlxMediaList* aList); + + /** + * not implemented + * @ref MGlxMediaListObserver::HandleItemSelectedL + */ + void HandleItemSelectedL(TInt /*aIndex*/, TBool /*aSelected*/, + MGlxMediaList* /*aList*/){}; + + /** + * not implemented + * @ref MGlxMediaListObserver::HandleMessageL + */ + void HandleMessageL(const CMPXMessage& /*aMessage*/, + MGlxMediaList* /*aList*/){}; + +private: // methods local to class + /** + * Retrieve the currently selected items file name and path + * @return The currently selected items filename and path + */ + CMessageData* SelectedFilesLC(); + + /** + * Determine if the media item is of a valid type (ie video or image) + * @return ETrue if a valid type otherwise EFalse + */ + TBool IsValidTypeL(const CGlxMedia& aMedia); + + + /** + * Read the selected items uri and use it to send the items + */ + void SendSelectedItemsL(); + + /** + * Load the resource file + */ + void LoadRscFileL(); + + /** + * Return the static capabilities for sending a media item + */ + TSendingCapabilities Capabilities(); + +private: // data + + // Not owned - Provider of media list + MGlxMediaListProvider* iMediaListProvider; + + // ID of owning view + TInt iViewId; + + // Not owned - HUI utility + CGlxUiUtility* iUiUtility; + + // Not owned - Attribute context + CGlxDefaultAttributeContext* iAttributeContext; + + // Owned - the Send pop-up list, message creation and sending services + CSendUi* iSendUi; + + // Array of Send Plugins uids that should not be used + TBool iFilterOutPlugin; + + // The resource file offset + TInt iResourceOffset; + + }; + +#endif //__GLXCOMMANDHANDLERUPLSEND_H__