diff -r b3cee849fa46 -r fad26422216a filebrowser/inc/FBFileEditor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filebrowser/inc/FBFileEditor.h Wed Sep 01 12:30:35 2010 +0100 @@ -0,0 +1,137 @@ +/* +* Copyright (c) 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: +* +*/ + + +#ifndef FILEBROWSER_FILEVIEWERDLG_H +#define FILEBROWSER_FILEVIEWERDLG_H + +// INCLUDES +#include +#include +#include +#include +#include + +// FORWARD DECLARATIONS +class CFileBrowserFileEditorViewControl; +class CEikEdwin; +class CParaFormat; +class CEikScrollBarFrame; + + +// CLASS DEFINITIONS + +class CFileBrowserFileEditorDlg : public CAknDialog + { +public: + static CFileBrowserFileEditorDlg* NewL(const TDesC& aFileName, TInt aMode); + virtual ~CFileBrowserFileEditorDlg(); + +private: // Constructors + CFileBrowserFileEditorDlg(const TDesC& aFileName, TInt aMode); + void ConstructL(); + +protected: // From CAknDialog + void ProcessCommandL(TInt aCommandId); + void PreLayoutDynInitL(); + void PostLayoutDynInitL(); + +protected: // From CEikDialog + void SetSizeAndPosition(const TSize& aSize); + SEikControlInfo CreateCustomControlL(TInt aControlType); + +protected: // From MEikMenuObserver + void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane); + +public: // New methods + TBool RunDlgLD(); + +private: // New methods + void OpenFileLC(RFile& aFile, const TDesC& aFileName); + void LoadFileL(); + void GetTextFileMode(RFile& aFile, TInt& aFileSize); + HBufC16* ConvertBuf8ToBuf16L(HBufC8* aBuf8); + HBufC8* ConvertBuf16ToBuf8L(HBufC16* aBuf16); + void SaveEditorDataL(TBool aQueryNewName=EFalse); + TBool IsHexChar(TInt aCh); + +private: // Data + CFileBrowserFileEditorViewControl* iViewer; + CEikEdwin* iTextEditor; + CParaFormat* iEditorPF; + TFileName iFileName; + TInt iActiveMode; + TInt iTextFormat; + }; + + + +class CFileBrowserFileEditorViewControl : public CCoeControl, MEikScrollBarObserver + { +public: + virtual ~CFileBrowserFileEditorViewControl(); + +public: // Constructors + CFileBrowserFileEditorViewControl(); + void ConstructL(); + +protected: // From CCoeControl + void Draw(const TRect& aRect) const; + TKeyResponse OfferKeyEventL(const TKeyEvent &aKeyEvent, TEventCode aType); + TSize MinimumSize(); + CCoeControl* ComponentControl(TInt aIndex) const; + TInt CountComponentControls() const; + void HandleResourceChange(TInt aType); + TTypeUid::Ptr MopSupplyObject(TTypeUid aId); + +protected: // From MEikScrollBarObserver + void HandleScrollEventL(CEikScrollBar* aScrollBar, TEikScrollEvent aEventType); + +public: // New methods + void FormatAsTextL(HBufC16* aBuf=NULL); + void FormatAsHexL(HBufC8* aBuf=NULL); + +private: // New methods + void InitVariables(); + void ResetVariables(TBool aResetData=ETrue); + void UpdateScrollBarL(); + +private: // Data + TInt iActiveMode; + TRect iViewerRect; + TInt iDrawingWidth; + TInt iLeftDrawingPosition; + TReal iX_factor; + TReal iY_factor; + TInt iNumberOfLinesFitsScreen; + CEikScrollBarFrame* iScrollBarFrame; + CFont* iFont; + TInt iCurrentLine; + TInt iTotalNumberOfLines; + + HBufC8* iHexesBuffer; + TInt iHexGrougWidth; + TInt iAmountOfHexesFitsHorizontally; + + HBufC16* iTextBuf; + CArrayFix* iWrappedTextArray; + }; + +#endif + +// End of File +