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 <TSendingCapabilities.h>
+
+// 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<TInt>& /*aItemIndexes*/,
+ MGlxMediaList* /*aList*/){};
+
+ /**
+ * not implemented
+ * @ref MGlxMediaListObserver::HandleAttributesAvailableL
+ */
+ void HandleAttributesAvailableL(TInt /*aItemIndex*/,
+ const RArray<TMPXAttribute>& /*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__