Editor.h 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  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. #include <Vcl.AppEvnts.hpp>
  28. #include <System.ImageList.hpp>
  29. //---------------------------------------------------------------------------
  30. class TEditorRichEdit;
  31. //---------------------------------------------------------------------------
  32. class TEditorForm : public TForm
  33. {
  34. __published:
  35. TActionList *EditorActions;
  36. TPngImageList *EditorImages;
  37. TAction *SaveAction;
  38. TTBXDock *TopDock;
  39. TTBXToolbar *Toolbar;
  40. TTBXStatusBar *StatusBar;
  41. TEditCut *EditCut;
  42. TEditCopy *EditCopy;
  43. TEditPaste *EditPaste;
  44. TEditSelectAll *EditSelectAll;
  45. TEditUndo *EditUndo;
  46. TEditDelete *EditDelete;
  47. TAction *PreferencesAction;
  48. TAction *FindAction;
  49. TAction *ReplaceAction;
  50. TAction *FindNextAction;
  51. TAction *GoToLineAction;
  52. TTBXPopupMenu *EditorPopup;
  53. TTBXItem *Undo1;
  54. TTBXSeparatorItem *N1;
  55. TTBXItem *Cut1;
  56. TTBXItem *Copy1;
  57. TTBXItem *Paste1;
  58. TTBXItem *Delete1;
  59. TTBXSeparatorItem *N2;
  60. TTBXItem *SelectAll1;
  61. TTBXSeparatorItem *N3;
  62. TTBXItem *Find1;
  63. TTBXItem *Replace1;
  64. TTBXItem *Findnext1;
  65. TTBXItem *Gotolinenumber1;
  66. TAction *HelpAction;
  67. TTBXSeparatorItem *TBXSeparatorItem6;
  68. TTBXItem *TBXItem15;
  69. TAction *ReloadAction;
  70. TAction *EditRedo;
  71. TTBXItem *TBXItem18;
  72. TTBXSubmenuItem *Encoding;
  73. TTBXItem *DefaultEncoding;
  74. TTBXItem *UTF8Encoding;
  75. TAction *DefaultEncodingAction;
  76. TAction *UTF8EncodingAction;
  77. TTBXColorItem *ColorItem;
  78. TAction *ColorAction;
  79. TAction *SaveAllAction2;
  80. TTBXItem *TBXItem1;
  81. TPngImageList *EditorImages120;
  82. TPngImageList *EditorImages144;
  83. TPngImageList *EditorImages192;
  84. void __fastcall EditorActionsUpdate(TBasicAction *Action, bool &Handled);
  85. void __fastcall EditorActionsExecute(TBasicAction *Action,
  86. bool &Handled);
  87. void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose);
  88. void __fastcall EditorMemoMouseUp(TObject *Sender, TMouseButton Button,
  89. TShiftState Shift, int X, int Y);
  90. void __fastcall EditorMemoKeyUp(TObject *Sender, WORD &Key,
  91. TShiftState Shift);
  92. void __fastcall EditorMemoChange(TObject *Sender);
  93. void __fastcall FindDialogFind(TObject *Sender);
  94. void __fastcall FormShow(TObject *Sender);
  95. void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
  96. void __fastcall FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
  97. private:
  98. UnicodeString FFileName;
  99. TNotifyEvent FOnFileChanged;
  100. TNotifyEvent FOnFileReload;
  101. TFileClosedEvent FOnWindowClose;
  102. TNotifyEvent FOnSaveAll;
  103. TAnyModifiedEvent FOnAnyModified;
  104. TForm * FParentForm;
  105. TFindDialog * FLastFindDialog;
  106. TPoint FCaretPos;
  107. TFindDialog * FFindDialog;
  108. TReplaceDialog * FReplaceDialog;
  109. bool FCloseAnnounced;
  110. TEditorRichEdit * EditorMemo;
  111. bool FFormRestored;
  112. UnicodeString FWindowParams;
  113. unsigned int FInstance;
  114. TEncoding * FEncoding;
  115. TEncoding * FAnsiEncoding;
  116. UnicodeString FEncodingName;
  117. bool FSaving;
  118. bool FStandaloneEditor;
  119. bool FClosePending;
  120. TColor FBackgroundColor;
  121. int FInternalEditorEncodingOverride;
  122. bool FNewFile;
  123. bool FReloading;
  124. static unsigned int FInstances;
  125. void __fastcall SetFileName(const UnicodeString value);
  126. void __fastcall SetBackgroundColor(TColor Color);
  127. public:
  128. __fastcall TEditorForm(TComponent* Owner);
  129. virtual __fastcall ~TEditorForm();
  130. void __fastcall ApplyConfiguration();
  131. void __fastcall FileUploadComplete();
  132. void __fastcall LoadFile();
  133. void __fastcall SaveFile();
  134. bool __fastcall IsFileModified();
  135. __property UnicodeString FileName = { read = FFileName, write = SetFileName };
  136. __property bool StandaloneEditor = { read = FStandaloneEditor, write = FStandaloneEditor };
  137. __property TNotifyEvent OnFileChanged = { read = FOnFileChanged, write = FOnFileChanged };
  138. __property TNotifyEvent OnFileReload = { read = FOnFileReload, write = FOnFileReload };
  139. __property TFileClosedEvent OnWindowClose = { read = FOnWindowClose, write = FOnWindowClose };
  140. __property TNotifyEvent OnSaveAll = { read = FOnSaveAll, write = FOnSaveAll };
  141. __property TAnyModifiedEvent OnAnyModified = { read = FOnAnyModified, write = FOnAnyModified };
  142. __property TForm * ParentForm = { read = FParentForm, write = FParentForm };
  143. __property TColor BackgroundColor = { read = FBackgroundColor, write = SetBackgroundColor };
  144. __property int InternalEditorEncodingOverride = { read = FInternalEditorEncodingOverride, write = FInternalEditorEncodingOverride };
  145. __property bool NewFile = { read = FNewFile, write = FNewFile };
  146. protected:
  147. bool __fastcall CursorInUpperPart();
  148. void __fastcall Find();
  149. void __fastcall GoToLine();
  150. void __fastcall PositionFindDialog(bool VerticalOnly);
  151. void __fastcall StartFind(bool Find);
  152. void __fastcall UpdateControls();
  153. void __fastcall DoWindowClose(bool Forced);
  154. void __fastcall Reload();
  155. virtual void __fastcall CreateParams(TCreateParams & Params);
  156. void __fastcall LoadFromFile(bool PrimaryEncoding);
  157. bool __fastcall ContainsPreamble(TStream * Stream, const TBytes & Signature);
  158. void __fastcall ChangeEncoding(TEncoding * Encoding);
  159. void __fastcall InitCodePage();
  160. UnicodeString __fastcall GetCodePageName(TEncoding * Encoding);
  161. void __fastcall SaveToFile();
  162. void __fastcall BackupSave();
  163. void __fastcall CheckFileSize();
  164. void __fastcall UpdateBackgroundColor();
  165. };
  166. //---------------------------------------------------------------------------
  167. #endif