Editor.h 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. //---------------------------------------------------------------------------
  2. #ifndef EditorH
  3. #define EditorH
  4. //---------------------------------------------------------------------------
  5. #include <Classes.hpp>
  6. #include <Controls.hpp>
  7. #include <StdCtrls.hpp>
  8. #include <Forms.hpp>
  9. #include <ComCtrls.hpp>
  10. #include <ToolWin.hpp>
  11. #include <ActnList.hpp>
  12. #include <ImgList.hpp>
  13. #include <ExtCtrls.hpp>
  14. #include <StdActns.hpp>
  15. #include <Dialogs.hpp>
  16. #include <Menus.hpp>
  17. #include "TB2Dock.hpp"
  18. #include "TBX.hpp"
  19. #include "TB2Item.hpp"
  20. #include "TB2Toolbar.hpp"
  21. #include "TBXStatusBars.hpp"
  22. #include "WinConfiguration.h"
  23. #include "WinInterface.h"
  24. #include "PngImageList.hpp"
  25. #include <System.Actions.hpp>
  26. #include "TBXExtItems.hpp"
  27. //---------------------------------------------------------------------------
  28. class TRichEdit20;
  29. //---------------------------------------------------------------------------
  30. class TEditorForm : public TForm
  31. {
  32. __published:
  33. TActionList *EditorActions;
  34. TPngImageList *EditorImages;
  35. TAction *SaveAction;
  36. TTBXDock *TopDock;
  37. TTBXToolbar *Toolbar;
  38. TTBXStatusBar *StatusBar;
  39. TEditCut *EditCut;
  40. TEditCopy *EditCopy;
  41. TEditPaste *EditPaste;
  42. TEditSelectAll *EditSelectAll;
  43. TEditUndo *EditUndo;
  44. TEditDelete *EditDelete;
  45. TAction *PreferencesAction;
  46. TAction *FindAction;
  47. TAction *ReplaceAction;
  48. TAction *FindNextAction;
  49. TAction *GoToLineAction;
  50. TTBXPopupMenu *EditorPopup;
  51. TTBXItem *Undo1;
  52. TTBXSeparatorItem *N1;
  53. TTBXItem *Cut1;
  54. TTBXItem *Copy1;
  55. TTBXItem *Paste1;
  56. TTBXItem *Delete1;
  57. TTBXSeparatorItem *N2;
  58. TTBXItem *SelectAll1;
  59. TTBXSeparatorItem *N3;
  60. TTBXItem *Find1;
  61. TTBXItem *Replace1;
  62. TTBXItem *Findnext1;
  63. TTBXItem *Gotolinenumber1;
  64. TAction *HelpAction;
  65. TTBXSeparatorItem *TBXSeparatorItem6;
  66. TTBXItem *TBXItem15;
  67. TAction *ReloadAction;
  68. TAction *EditRedo;
  69. TTBXItem *TBXItem18;
  70. TTBXSubmenuItem *Encoding;
  71. TTBXItem *DefaultEncoding;
  72. TTBXItem *UTF8Encoding;
  73. TAction *DefaultEncodingAction;
  74. TAction *UTF8EncodingAction;
  75. TTBXColorItem *ColorItem;
  76. TAction *ColorAction;
  77. void __fastcall EditorActionsUpdate(TBasicAction *Action, bool &Handled);
  78. void __fastcall EditorActionsExecute(TBasicAction *Action,
  79. bool &Handled);
  80. void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose);
  81. void __fastcall EditorMemoMouseUp(TObject *Sender, TMouseButton Button,
  82. TShiftState Shift, int X, int Y);
  83. void __fastcall EditorMemoKeyUp(TObject *Sender, WORD &Key,
  84. TShiftState Shift);
  85. void __fastcall EditorMemoChange(TObject *Sender);
  86. void __fastcall FindDialogFind(TObject *Sender);
  87. void __fastcall FormShow(TObject *Sender);
  88. void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
  89. void __fastcall FormActivate(TObject *Sender);
  90. void __fastcall FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
  91. private:
  92. UnicodeString FFileName;
  93. TNotifyEvent FOnFileChanged;
  94. TNotifyEvent FOnFileReload;
  95. TFileClosedEvent FOnWindowClose;
  96. TCustomForm * FParentForm;
  97. TFindDialog * FLastFindDialog;
  98. TPoint FCaretPos;
  99. TFindDialog * FFindDialog;
  100. TReplaceDialog * FReplaceDialog;
  101. bool FCloseAnnounced;
  102. TRichEdit20 * EditorMemo;
  103. bool FShowStatusBarHint;
  104. UnicodeString FStatusBarHint;
  105. bool FFormRestored;
  106. UnicodeString FWindowParams;
  107. unsigned int FInstance;
  108. TEncoding * FEncoding;
  109. UnicodeString FEncodingName;
  110. bool FSaving;
  111. bool FStandaloneEditor;
  112. bool FClosePending;
  113. TColor FBackgroundColor;
  114. static unsigned int FInstances;
  115. void __fastcall SetFileName(const UnicodeString value);
  116. void __fastcall SetParentForm(TCustomForm * value);
  117. void __fastcall ApplicationHint(TObject * Sender);
  118. void __fastcall SetBackgroundColor(TColor Color);
  119. public:
  120. __fastcall TEditorForm(TComponent* Owner);
  121. virtual __fastcall ~TEditorForm();
  122. void __fastcall ApplyConfiguration();
  123. void __fastcall FileUploadComplete();
  124. void __fastcall LoadFile();
  125. __property UnicodeString FileName = { read = FFileName, write = SetFileName };
  126. __property bool StandaloneEditor = { read = FStandaloneEditor, write = FStandaloneEditor };
  127. __property TNotifyEvent OnFileChanged = { read = FOnFileChanged, write = FOnFileChanged };
  128. __property TNotifyEvent OnFileReload = { read = FOnFileReload, write = FOnFileReload };
  129. __property TFileClosedEvent OnWindowClose = { read = FOnWindowClose, write = FOnWindowClose };
  130. __property TCustomForm * ParentForm = { read = FParentForm, write = SetParentForm };
  131. __property TColor BackgroundColor = { read = FBackgroundColor, write = SetBackgroundColor };
  132. protected:
  133. bool __fastcall CursorInUpperPart();
  134. void __fastcall Find();
  135. void __fastcall GoToLine();
  136. void __fastcall PositionFindDialog(bool VerticalOnly);
  137. void __fastcall StartFind(bool Find);
  138. void __fastcall UpdateControls();
  139. void __fastcall DoWindowClose(bool Forced);
  140. void __fastcall Reload();
  141. virtual void __fastcall CreateParams(TCreateParams & Params);
  142. void __fastcall LoadFromFile(bool PrimaryEncoding);
  143. bool __fastcall ContainsPreamble(TStream * Stream, const TBytes & Signature);
  144. void __fastcall ChangeEncoding(TEncoding * Encoding);
  145. void __fastcall InitCodePage();
  146. UnicodeString __fastcall GetCodePageName(TEncoding * Encoding);
  147. void __fastcall SaveToFile();
  148. void __fastcall BackupSave();
  149. void __fastcall CheckFileSize();
  150. };
  151. //---------------------------------------------------------------------------
  152. #endif