filebrowser/inc/FBFileEditor.h
changeset 0 d6fe6244b863
--- /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
+