diff -r 000000000000 -r 7f656887cf89 commands/fed/inc/fed.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commands/fed/inc/fed.h Wed Jun 23 15:52:26 2010 +0100 @@ -0,0 +1,91 @@ +// fed.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 FED_H_ +#define FED_H_ + +#include +#include + +#include "screenmngr.h" +#include "cmdwindow.h" + +class CColorConsoleBase; +class CFedBufferBase; +class CFedViewBase; +class CDesC16Array; +class CCnvCharacterSetConverter; + +class CFed : public CActive +{ +public: + static CFed* NewL(CColorConsoleBase& aConsole, RFs& aFs); + static CFed* NewL(CConsoleBase& aConsole, RFs& aFs); + ~CFed(); + + //Main entrance to the editor + void StartL(CDesC16Array* aFiles); // Takes ownership of aFiles immediately + + void RedrawEverythingL(); + void ShowHelpL(HBufC* aHelpText); + +public: + //CActive + void DoCancel(); + void RunL(); + TInt RunError(TInt aError); + +private: + CFed(CColorConsoleBase& aConsole, RFs& aFs); + CFed(CConsoleBase& aConsole, RFs& aFs); + void ConstructL(); + //Construct all necessary views as specified in the command line + void CreateViewsL(CDesC16Array* aFiles); + //Some standard commands which need to be handled in the CFed class + enum TCmdType + { + ECmdNone, + ECmdHelp, + ECmdPrevView, + ECmdNextView, + ECmdNewDocument, + ECmdCloseCurrent, + ECmdCloseAll, + ECmdOpenDocument, + ECmdRefresh, + }; + //Main function processing keys which should catch all commands related to the whole editor, not to any particular view + TCmdType ProcessKeyL(const TKeyCode& aCode); + //Execute commands returned by ProcessKeyL + TBool ExecuteCommandL(TCmdType aCmd); + + //Closes the view which is currently active + TBool CloseCurrentViewL(); + //Closes all views, will cause the program to close only if special char has been pressed (EKeyEscape) + void CloseAllViewsL(); + //Removes the view from the array of views + void DeleteView(); + void NewViewL(const TDesC& aFileName, TBool aPromptOnNonexistantName=EFalse); + void OpenDocumentL(); + +private: + RFs& iFs; + CConsoleBase& iConsole; + CColorConsoleBase* iColorConsole; + CScreenManager iScreenMngr; + CCommandWindow* iCmdWindow; + + RArray iViewArray; + TInt iViewIdx; + CCnvCharacterSetConverter* iCharconv; // Shared between CFileBuffers, for doing UTF-8 conversion. May be null if charconv isn't available +}; + +#endif /*FED_H_*/