Editor.h 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  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. TAction *SaveAllAction;
  78. TTBXItem *TBXItem1;
  79. TPngImageList *EditorImages120;
  80. TPngImageList *EditorImages144;
  81. TPngImageList *EditorImages192;
  82. void __fastcall EditorActionsUpdate(TBasicAction *Action, bool &Handled);
  83. void __fastcall EditorActionsExecute(TBasicAction *Action,
  84. bool &Handled);
  85. void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose);
  86. void __fastcall EditorMemoMouseUp(TObject *Sender, TMouseButton Button,
  87. TShiftState Shift, int X, int Y);
  88. void __fastcall EditorMemoKeyUp(TObject *Sender, WORD &Key,
  89. TShiftState Shift);
  90. void __fastcall EditorMemoChange(TObject *Sender);
  91. void __fastcall FindDialogFind(TObject *Sender);
  92. void __fastcall FormShow(TObject *Sender);
  93. void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
  94. void __fastcall FormActivate(TObject *Sender);
  95. void __fastcall FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
  96. private:
  97. UnicodeString FFileName;
  98. TNotifyEvent FOnFileChanged;
  99. TNotifyEvent FOnFileReload;
  100. TFileClosedEvent FOnWindowClose;
  101. TNotifyEvent FOnSaveAll;
  102. TAnyModifiedEvent FOnAnyModified;
  103. TCustomForm * FParentForm;
  104. TFindDialog * FLastFindDialog;
  105. TPoint FCaretPos;
  106. TFindDialog * FFindDialog;
  107. TReplaceDialog * FReplaceDialog;
  108. bool FCloseAnnounced;
  109. TRichEdit20 * EditorMemo;
  110. bool FShowStatusBarHint;
  111. UnicodeString FStatusBarHint;
  112. bool FFormRestored;
  113. UnicodeString FWindowParams;
  114. unsigned int FInstance;
  115. TEncoding * FEncoding;
  116. UnicodeString FEncodingName;
  117. bool FSaving;
  118. bool FStandaloneEditor;
  119. bool FClosePending;
  120. TColor FBackgroundColor;
  121. static unsigned int FInstances;
  122. void __fastcall SetFileName(const UnicodeString value);
  123. void __fastcall SetParentForm(TCustomForm * value);
  124. void __fastcall ApplicationHint(TObject * Sender);
  125. void __fastcall SetBackgroundColor(TColor Color);
  126. public:
  127. __fastcall TEditorForm(TComponent* Owner);
  128. virtual __fastcall ~TEditorForm();
  129. void __fastcall ApplyConfiguration();
  130. void __fastcall FileUploadComplete();
  131. void __fastcall LoadFile();
  132. void __fastcall SaveFile();
  133. bool __fastcall IsFileModified();
  134. __property UnicodeString FileName = { read = FFileName, write = SetFileName };
  135. __property bool StandaloneEditor = { read = FStandaloneEditor, write = FStandaloneEditor };
  136. __property TNotifyEvent OnFileChanged = { read = FOnFileChanged, write = FOnFileChanged };
  137. __property TNotifyEvent OnFileReload = { read = FOnFileReload, write = FOnFileReload };
  138. __property TFileClosedEvent OnWindowClose = { read = FOnWindowClose, write = FOnWindowClose };
  139. __property TNotifyEvent OnSaveAll = { read = FOnSaveAll, write = FOnSaveAll };
  140. __property TAnyModifiedEvent OnAnyModified = { read = FOnAnyModified, write = FOnAnyModified };
  141. __property TCustomForm * ParentForm = { read = FParentForm, write = SetParentForm };
  142. __property TColor BackgroundColor = { read = FBackgroundColor, write = SetBackgroundColor };
  143. protected:
  144. bool __fastcall CursorInUpperPart();
  145. void __fastcall Find();
  146. void __fastcall GoToLine();
  147. void __fastcall PositionFindDialog(bool VerticalOnly);
  148. void __fastcall StartFind(bool Find);
  149. void __fastcall UpdateControls();
  150. void __fastcall DoWindowClose(bool Forced);
  151. void __fastcall Reload();
  152. virtual void __fastcall CreateParams(TCreateParams & Params);
  153. void __fastcall LoadFromFile(bool PrimaryEncoding);
  154. bool __fastcall ContainsPreamble(TStream * Stream, const TBytes & Signature);
  155. void __fastcall ChangeEncoding(TEncoding * Encoding);
  156. void __fastcall InitCodePage();
  157. UnicodeString __fastcall GetCodePageName(TEncoding * Encoding);
  158. void __fastcall SaveToFile();
  159. void __fastcall BackupSave();
  160. void __fastcall CheckFileSize();
  161. void __fastcall UpdateBackgroundColor();
  162. };
  163. //---------------------------------------------------------------------------
  164. #endif