--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filebrowser/inc/FBFileEditor.h Tue Feb 02 00:17:27 2010 +0200
@@ -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 <e32std.h>
+#include <e32base.h>
+#include <f32file.h>
+#include <AknDialog.h>
+#include <eiksbobs.h>
+
+// 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<TPtrC>* iWrappedTextArray;
+ };
+
+#endif
+
+// End of File
+