--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/photosgallery/viewframework/views/cloudview/inc/glxtagscontextmenucontrol.h Wed Sep 01 12:33:26 2010 +0100
@@ -0,0 +1,180 @@
+/*
+* 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: Cloud View Context menu control
+ *
+*/
+
+#ifndef GLXTAGSCONTEXTMENUCONTROL_H_
+#define GLXTAGSCONTEXTMENUCONTROL_H_
+
+#include <e32base.h>
+#include <e32std.h>
+#include <alf/alfcontrol.h>
+#include "glxbubbletimer.h" //for timer functionality
+
+//Forward Declaration
+class CAlfGridLayout;
+class CAlfEnv;
+
+/**
+ *MGlxItemMenuObserver is a class to handle the menu items in grid layout
+ */
+class MGlxItemMenuObserver
+ {
+public:
+ /**
+ * To Handle menu items in Grid layout
+ * @param aCommand command to be handled
+ */
+ virtual void HandleGridMenuListL(TInt aCommand) = 0;
+ };
+
+class CGlxTagsContextMenuControl : public CAlfControl,
+ public MGlxTimerNotifier
+
+ {
+public:
+ /**
+ * Perform the two phase construction
+ * @param aItemMenuObserver - handles the menu items in grid layout
+ * @return Pointer to newly created object
+ */
+ static CGlxTagsContextMenuControl* NewL(
+ MGlxItemMenuObserver& aItemMenuObserver);
+ /**
+ * Perform the two phase construction
+ * @param aItemMenuObserver - handles the menu items in grid layout
+ * @return Pointer to newly created object
+ */
+ static CGlxTagsContextMenuControl* NewLC(
+ MGlxItemMenuObserver& aItemMenuObserver);
+ /**
+ * Destroy the object and release all memory objects
+ */
+ ~CGlxTagsContextMenuControl();
+
+public:
+ //MGlxTimernotifier
+ /**
+ * Virtual Function from MGlxTimernotifier
+ */
+ void TimerCompleteL();
+
+public:
+ /**
+ * Sets the grid layout on the screen with the Point specified
+ * @param aPoint - Point from which grid has to be displayed
+ */
+ void SetDisplay(const TPoint& aPoint);
+ /**
+ * Hides/shows the grid layout
+ * @param aOpacity - Opacity value
+ */
+ void ShowItemMenuL(TBool aOpacity);
+ /**
+ * Hides/shows the grid layout
+ * @return value of menu's visibility
+ */
+ TBool ItemMenuVisibility();
+
+ /**
+ * Sets the drawable screen rect
+ * It also handles coordinates changed from Orientation
+ * @param aRect - rect area where the Tags are drawn
+ */
+ void SetViewableRect(TRect aRect);
+
+ /**
+ * Handles the Up event when moved away from stylus menu
+ */
+ void HandleUpEventL();
+
+private:
+ /**
+ * constructor
+ * @param aItemMenuObserver - handles the menu items in grid layout
+ */
+ CGlxTagsContextMenuControl(MGlxItemMenuObserver& aItemMenuObserver);
+
+ /**
+ * Perform the second phase of two phase construction
+ */
+ void ConstructL();
+
+ /**
+ * Creates the font
+ * @return the fontId
+ */
+ TInt CreateFontL();
+ /**
+ * Creates the menulist and sets the Text style
+ * @param aFontId - Sets the text style
+ */
+ void CreateMenuListL(TInt aFontId);
+
+ /**
+ * Calculates the maximum text width of menu items
+ */
+ void CalculateMaxWidth();
+ /**
+ * Draws the line separators in Stylus menu
+ */
+ void DrawLineSeparatorsL();
+ /**
+ * Perform the two phase construction
+ * @param aEvent - key Event to handle
+ * @return EKeyWasConsumed if key event is processed,
+ * otherwise EKeyWasNotConsumed
+ */
+ TBool OfferEventL(const TAlfEvent& aEvent);
+
+private:
+
+ //Observer to handle the menu items in grid layout
+ MGlxItemMenuObserver& iItemMenuObserver;
+
+ //Grid layout, not owning
+ CAlfGridLayout* iGrid;
+ /** The Alf environment*/
+ CAlfEnv* iAlfEnv;
+
+ //Slideshow text, not owning
+ CAlfTextVisual* iSlideshowTextVisual;
+
+ //Delete text, not owning
+ CAlfTextVisual* iDeleteTextVisual;
+
+ //Rename text, not owning
+ CAlfTextVisual* iRenameTextVisual;
+
+ // Anchor Layout
+ CAlfAnchorLayout* iMainVisual;
+
+ //variable used for providing delay
+ CGlxBubbleTimer* iTimer;
+
+ //Viewable rect
+ TRect iViewableRect;
+
+ //flag for stylus menu visibility
+ TBool iItemMenuVisibility;
+
+ //Menu item selected
+ TInt iCommandId;
+
+ //Maximum text width of a menu item
+ TInt iMaxTextWidth;
+ };
+
+#endif /* GLXTAGSCONTEXTMENUCONTROL_H_ */