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.
// textview.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 TEXTVIEW_H_
#define TEXTVIEW_H_
#include <e32base.h>
#include "viewbase.h"
class CColorConsoleBase;
class CFileBuffer;
/*
Main parent class for all views able to show any texts on the screen using data read/written from/to the universal
memory buffer CFileBuffer (unicode, left-to-right, right-to-left, up-to-down), etc.
*/
class CTextView : public CFedViewBase
{
protected:
CTextView(MConsoleProvider& aConsoleProvider, CFedBufferBase& aBuffer, TInt aPriority = CActive::EPriorityStandard);
void ConstructL();
~CTextView();
public:
//CActive
void DoCancel();
void RunL();
TInt RunError(TInt aError);
void ResizeL(const TWindow& aWindow);
void RedrawL(const TWindow& aWindow);
void DeactivateL();
//MSharedCacheClient
void InvalidateBuffer(TRequestStatus& aStatus);
CFedBufferBase& Buffer();
protected:
void RequestData(TBool aFromTheTop, TInt aOffset);
void SeekData(TInt aDocumentPosition, TInt aNumLines);
virtual void UpdateCursor(const TPoint& aNewPos);
virtual void ValidateCursor();
void ShowCursor();
void HideCursor();
void HandleDataLoadError(TInt aError);
protected:
virtual void DoResizeL(const TWindow& aOldWindow) = 0;
virtual void DoRedrawL() = 0;
virtual void DoDrawL() = 0;
private:
enum TState
{
EStateNone,
EStateGetData,
} iState;
//member variables to use by inheriting classes
protected:
CFedBufferBase& iBuffer;
TPtrC16 iDes; // This is set to whatever cache block is currently active
TBool iActive; // Whether the view is active and can draw on the screen or not
TPoint iCursor; // Current position of cursor on the screen (in window coords, NOT console coords)
TPoint iDrawPoint; // Current position of drawing new characters on the screen (in console coordinates)
RBuf iLine; // Temp buffer for chars to be drawn on the screen
TRange iRange; // Document range of last fetched data (iDes)
TInt iRangeStartLineNumber; // Line number for the first character of iRange
};
#endif /*TEXTVIEW_H_*/