root/_TextViewer/BF_GUI_TextViewer.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


   1 #ifndef __BF_GUI_TEXTVIEWER__
   2 #define __BF_GUI_TEXTVIEWER__
   3 
   4 #include <InterfaceKit.h>
   5 #include <List.h>
   6 #include "BL_Tools.h"
   7 #include "BF_GUI_Setup.h"
   8 
   9 enum {
  10         CP_UTF8 = 0,
  11         CP_DOS,
  12         CP_WIN,
  13         CP_KOI,
  14         CP_END,
  15 };
  16 
  17 class BF_TextFile_Line:public BL_Object{
  18 public:
  19                                                         BF_TextFile_Line(const BL_String & s_Src,off_t i_Pos,int32 i_Bytes);
  20                 void                            SetBytesTo(int32 i_Bytes)       {iBytes = i_Bytes;};
  21                 int32                           Bytes()const                            {return iBytes;};
  22                 off_t                           Pos()const                                      {return iPos;};
  23                 
  24                 const char*             String()const                           {return s.String();};
  25                 
  26                 BL_String                       s;
  27 private:
  28                 int32                           iBytes;         
  29                 off_t                           iPos;
  30 };
  31 
  32 class BF_TextFile_Buffer:public BL_Object{
  33 public:
  34                                                         BF_TextFile_Buffer();
  35                                                         
  36                 void                            SetFileNameTo(const char *pc_FileName);
  37                 
  38                 int32                           LoadText(off_t i_StartPos,int32 i_LinesCount,BL_List & lo_Data,bool b_DeleteData=true,off_t i_LastPos=-1);
  39                 int32                           LoadText_FromNextLine(off_t & i_StartPos,int32 i_LinesCount,BL_List & lo_Data,bool b_DeleteFirstLines=true);
  40                 int32                           LoadText_BeforePos(off_t & i_LastPos,int32 i_LinesCount,BL_List & lo_Data);
  41                 
  42                 off_t                           FileSize();
  43 private:        
  44                 BL_String                       sFileName;              
  45                 BL_File                         oFile;                          
  46                 off_t                           iFileSize;
  47                 
  48                 status_t                        OpenFile();
  49                 void                            CloseFile();
  50 };
  51 
  52 class BF_GUI_TextViewer_StatusBar : public BView{
  53 public:
  54                                                         BF_GUI_TextViewer_StatusBar(BRect & o_Rect,const char *pc_FileName);
  55                 void                            SetVarsTo(off_t i_FilePos,off_t i_PageSize,off_t i_FileSize,int32 i_CodePage,int32 i_StartColumn);
  56 virtual void                            Draw(BRect o_Rect);             
  57 private:                
  58                 off_t                           iFilePos,iPageSize,iFileSize;           
  59                 BL_String                       sFileName;
  60                 int32                           iCodePage,iStartColumn;
  61 };
  62 
  63 
  64 class BF_GUI_TextViewer : public BView
  65 {
  66 public:
  67 
  68                                                         BF_GUI_TextViewer(BRect o_frame,const char *pcFileForView);
  69                                                         ~BF_GUI_TextViewer();
  70                                                         
  71                 
  72                                                 
  73 virtual void                            Draw(BRect o_Rect);
  74 virtual void                            MouseDown(BPoint point);
  75 virtual void                            MakeFocus(bool b_Focused = true);
  76 virtual void                            MessageReceived(BMessage* po_Message);
  77 virtual void                            KeyDown(const char *bytes, int32 numBytes);
  78 
  79 private:
  80                 BF_TextFile_Buffer      oBuffer;
  81 
  82                 BView                           *poLastFocus;
  83                 BL_List                         loData;
  84                 BL_String                       sFileName;
  85                 int32                           iCodePage,iLinesCount,iStartColumn;
  86                 off_t                           iFilePos,iFileSize;
  87                 float                           fFontHeight;
  88                 bool                            bWrapped,bShowSpec;
  89                 
  90                 int32                           iSearchPos,iSearchLine,iSearchPosInLine;
  91                 BL_String                       sSearchText;
  92                 
  93                 char                            pcConvertBuffer[0x1000];
  94                 
  95                 void                            CalcVars();
  96                 void                            UpdateStatusBar();
  97                 
  98                 status_t                        OpenFile(BL_File & o_File);
  99                 void                            LoadPage();
 100                 
 101                 void                            PrepareKeysMenu();
 102                 void                            CloseViewer();
 103                 
 104                 bool                            Nav_LineUp();
 105                 bool                            Nav_LineDown();
 106                 bool                            Nav_PageDown();
 107                 bool                            Nav_PageUp();
 108                 bool                            Nav_End();
 109                 void                            Nav_GoPos(off_t i_NewFilePos);
 110                 bool                            Nav_Right();
 111                 bool                            Nav_Left();
 112 
 113 virtual void                            Search_Step0();
 114 virtual void                            Search_Step1(BMessage & o_Message);
 115 virtual void                            Search_Run();           
 116 
 117                 void                            ChangeCodePage();
 118 virtual void                            ToUtf8(const char *pc_Source,char *pc_Dest);
 119 virtual void                            FromUtf8(const char *pc_Source,char *pc_Dest);
 120 virtual uint32                          GetConversion( void );
 121                 
 122                 void                            DrawLine(BView *po_Render,int i_Line,bool b_InitRender,bool b_DrawBackground,BL_String & s);
 123                 
 124 };
 125 
 126 
 127 void  BF_GUI_TextViewer_Run(const char *pc_File);
 128 
 129 
 130 #endif

/* [previous][next][first][last][top][bottom][index][help] */