commands/fed/inc/screenmngr.h
author Tom Sutcliffe <thomas.sutcliffe@accenture.com>
Sun, 17 Oct 2010 18:43:12 +0100
changeset 86 849a0b46c767
parent 0 7f656887cf89
child 95 b3ffff030d5c
permissions -rw-r--r--
Fixed lots of issues with installing a low-caps version of fshell from SIS file. * Fixed issue in CCommandFactory whereby some APIs like GetCommandInfoL could trigger allocations on the wrong heap or signals to the wrong thread. The symptoms were often seen as a crash in the which_00 thread when running ciftest. * Lots of build fixes for when FSHELL_PROTECTED_UIDS isn't defined and when all capabilities aren't available. * Added new platform.mmh macro FSHELL_OPEN_SIGNED. * Open signing of fshell SIS files is now supported for production S60 handsets. Build fshell with the FSHELL_OPEN_SIGNED macro defined (and without defining FSHELL_CAP_ALL or FSHELL_PROTECTED_UIDS) in your platform.mmh and submit \epoc32\fshell\fshell.unsigned.sis to https://www.symbiansigned.com/app/page/public/openSignedOnline.do . The following commands are not available when using Open Signing due to Platform Security restrictions: fdb; kerninfo; chunkinfo; svrinfo; objinfo; sudo; fsck; localdrive; ramdefrag; readmem; reboot; setcritical; setpriority. Others such as chkdeps, e32header, ps, and fshell itself will run but in a restricted capacity (for example, fshell will no longer allow you to modify files in the \sys\bin directory). * Removed commands objinfo, svrinfo, chunkinfo, readmem, fsck completely when memory access isn't present - previously they would still appear in the help but would give an error if you tried to run them.

// screenmngr.h
// 
// Copyright (c) 2009 - 2010 Accenture. All rights reserved.
// This component and the accompanying materials are made available
// under the terms of the "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:
// Accenture - Initial contribution
//
#ifndef SCREENMNGR_H_
#define SCREENMNGR_H_

#include "common.h"

class MViewController;

/*
 Class responsible for arranging windows on the screen. For now it handles only one main window and one command window.
 New windows can be added by calling AddViewL. The class should rearrange visible windows and resize appropriate views.
 Many views can be shown in the same window - switching between visible views is done by calling AttachViewL. The class
 automatically disables old views and activates new views. If more than one window is supported then there may be
 another function necessary which attaches a provided view to a particular window, not just the default one.
*/
class CScreenManager : public CBase
	{
public:
	//Returns the TWindow occupied by the command window
	const TWindow& GetCommandWindow() {return iCmdWnd;}
	//Sets new coordinates of the screen available to this screen manager
	void ResizeScreenL(const TWindow& aWindow);
	//Resizes all Views to make space (if possible) for the new size of the command window.
	//Returns the new size of the command window.
	const TWindow& ResizeCommandWindowL(TInt aHeight);
	//Opens a new window and attaches the view provided to it. The new view becomes active.
	void AddViewL(MViewController& aView);
	//Attaches the provided view to the currently active window. The attached view becomes active.
	void AttachViewL(MViewController& aView);

	void RefreshScreenL();

	void UnsetCurrentView();

private:
	TWindow iScreenWnd;
	TWindow iCmdWnd;
	TWindow iMainWnd;
	MViewController* iCurrentView;
	};

#endif /*SCREENMNGR_H_*/