photosgallery/viewframework/uiutilities/inc/glxscreenfurniture.h
changeset 0 4e91876724a2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/photosgallery/viewframework/uiutilities/inc/glxscreenfurniture.h	Thu Dec 17 08:45:44 2009 +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:    Screenfurniture interface. Used to show/hide UI or 
+* 				 enable/disable induvidual screenfurniture items. Contains 
+* 				 softkeys, toolbar and the title statuspane as part of it.
+*
+*/
+
+
+
+
+#ifndef C_GLXSCREENFURNITURE_H
+#define C_GLXSCREENFURNITURE_H
+
+#include "glxuiutility.h"
+
+#include <akntoolbar.h>
+#include <akntoolbarobserver.h>
+#include <aknbutton.h>
+
+/**
+ *  CGlxScreenFurniture
+ *
+ *  ScreenFurniture is responsible for handling the floating toolbar for 
+ *  non-touch
+ *
+ *  @lib glxuiutils.lib
+ */
+NONSHARABLE_CLASS( CGlxScreenFurniture ): public CBase, 
+                                          public MAknToolbarObserver
+    { 
+
+public:
+	/**
+	* Two-phased constructor
+    * @param aParentUtility Instance of CGlxUiUtility used to create this
+	* @return Constructed object
+	*/
+	IMPORT_C static CGlxScreenFurniture* NewL( CGlxUiUtility& aParentUtility );
+	
+	/**
+	 * Two-phased constructor
+	 * @param aParentUtility Instance of CGlxUiUtility used to create this
+	 * @return Constructed object
+	 */
+	IMPORT_C static CGlxScreenFurniture* NewLC( CGlxUiUtility& aParentUtility );
+        
+	/**
+	 * Set the ID of the currently active view. Call this in DoActivateL().
+	 * @param aViewId The view that is trying to control the screen furniture
+	 */	
+	IMPORT_C void SetActiveView( TInt aViewId);
+
+	/**
+	 * Lets the screen furniture know that a view has been deactivated.
+	 * If no other views are Active, the screen furniture will turn itself off.
+	 * Call this in DoDeactivate().
+	 * @param aViewId The view that is trying to control the screen furniture
+	 */	
+	IMPORT_C void ViewDeactivated( TInt aViewId);
+	
+	/**
+	 * To set the toolbar visibility
+	 * @param aVisible Whether toolbar should be visible or not.
+	 * @param aFocus Whether focus is required by default
+	 */
+	IMPORT_C void SetToolbarVisibility(TBool aVisible);
+		
+	/**
+	 * To set the item specific visibility
+	 * @param aCommand The command that should be shown or hidden
+	 * @param aVisible ETrue if item needs to be shown else EFalse
+	 */
+	IMPORT_C void SetToolbarItemVisibility( TInt aCommand, TBool aVisible );
+	
+	/**
+	 * To set the command dimmed
+	 * @param aCommand The command that should be dimmed
+	 * @param aDimmed ETrue if command needs to be dimmed.
+	 */
+	IMPORT_C void SetToolbarItemDimmed( TInt aCommand, TBool aDimmed );
+	
+	/**
+	 * To set the focus of the toolbar
+	 * @param aCommand The command that should be focused.
+	 */
+	IMPORT_C void SetFocusL( TInt aCommand );
+	
+	/**
+	 * Set the toolbar position w.r.t the screen area	 * 
+	 */
+	IMPORT_C void SetToolbarPosition();
+	
+	/**
+	 * Sets the tooltip position of each toolbar item.
+	 * @param aCommand Command Id 
+	 * @param aPos Position of the tooltip to be set.
+	                EPositionTop = 1,  Tool tip alignment vertically to top 
+                    EPositionBottom, Tool tip alignment vertically to bottom 
+                    EPositionLeft, Tool tip alignment horizontally to left 
+                    EPositionRight, Tool tip alignment horizontally to right
+	 */
+	IMPORT_C void SetTooltipL( TInt aCommand,
+	        CAknButton::TTooltipPosition aToolTipPos, const TDesC& aToolTipText = KNullDesC);
+			
+    /**
+     * This will be called for changing softkeys(MSK and RSK) and providing commands to them
+     */
+    IMPORT_C void ModifySoftkeyIdL(CEikButtonGroupContainer::TCommandPosition aPosition, TInt aCommandId, TInt aResourceId, const TDesC& aText= KNullDesC );
+    
+	/**
+	 * Destructor
+	 */      
+	~CGlxScreenFurniture();
+
+private:
+	/**
+	 * Default constructor
+	 */
+    CGlxScreenFurniture( CGlxUiUtility& aParentUtility );
+	
+    /**
+     * ConstructL
+     */
+	void ConstructL();
+	
+private: //From MAknToolbarObserver
+	 void OfferToolbarEventL( TInt aCommand );
+	 void SetToolbarObserver(MAknToolbarObserver* aObserver);
+	  	
+private:
+    /// The ID of the view currently using the screen furniture
+    TInt iActiveView;
+    
+    // Resource offset
+    TInt iResourceOffset;
+       
+    /// Parent UiUtility reference
+    CGlxUiUtility& iParentUtility;
+    
+    /// Avkon floating toolbar with focus (Owned)
+    CAknToolbar* iToolbar;   
+    };
+
+#endif /*C_GLXSCREENFURNITUREIMPL_H*/