diff -r f7f0874bfe7d -r 6b87b143d312 photosgallery/viewframework/views/cloudview/inc/glxtagscontextmenucontrol.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/photosgallery/viewframework/views/cloudview/inc/glxtagscontextmenucontrol.h Fri Feb 19 22:51:01 2010 +0200 @@ -0,0 +1,156 @@ +/* +* 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 +#include +#include +#include "glxbubbletimer.h" //for timer functionality + +//Forward Declaration +class CAlfGridLayout; +class CGlxUiUtility; + +/** + *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 TimerComplete(); + +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 ShowItemMenu(TBool aOpacity); + + /** + * 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); + +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); + + /** + * 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: + + //Ui Utility, not owning, only close + CGlxUiUtility* iUiUtility; + + // Background Image Visual + CAlfImageVisual* iBackgroundBorderImageVisual; + + //Observer to handle the menu items in grid layout + MGlxItemMenuObserver& iItemMenuObserver; + + //Grid layout, not owning + CAlfGridLayout* iGrid; + + //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; + }; + +#endif /* GLXTAGSCONTEXTMENUCONTROL_H_ */