Editor.h 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  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. //---------------------------------------------------------------------------
  29. class TEditorRichEdit;
  30. //---------------------------------------------------------------------------
  31. class TEditorForm : public TForm
  32. {
  33. __published:
  34. TActionList *EditorActions;
  35. TPngImageList *EditorImages;
  36. TAction *SaveAction;
  37. TTBXDock *TopDock;
  38. TTBXToolbar *Toolbar;
  39. TTBXStatusBar *StatusBar;
  40. TEditCut *EditCut;
  41. TEditCopy *EditCopy;
  42. TEditPaste *EditPaste;
  43. TEditSelectAll *EditSelectAll;
  44. TEditUndo *EditUndo;
  45. TEditDelete *EditDelete;
  46. TAction *PreferencesAction;
  47. TAction *FindAction;
  48. TAction *ReplaceAction;
  49. TAction *FindNextAction;
  50. TAction *GoToLineAction;
  51. TTBXPopupMenu *EditorPopup;
  52. TTBXItem *Undo1;
  53. TTBXSeparatorItem *N1;
  54. TTBXItem *Cut1;
  55. TTBXItem *Copy1;
  56. TTBXItem *Paste1;
  57. TTBXItem *Delete1;
  58. TTBXSeparatorItem *N2;
  59. TTBXItem *SelectAll1;
  60. TTBXSeparatorItem *N3;
  61. TTBXItem *Find1;
  62. TTBXItem *Replace1;
  63. TTBXItem *Findnext1;
  64. TTBXItem *Gotolinenumber1;
  65. TAction *HelpAction;
  66. TTBXSeparatorItem *TBXSeparatorItem6;
  67. TTBXItem *TBXItem15;
  68. TAction *ReloadAction;
  69. TAction *EditRedo;
  70. TTBXItem *TBXItem18;
  71. TTBXSubmenuItem *Encoding;
  72. TTBXItem *DefaultEncoding;
  73. TTBXItem *UTF8Encoding;
  74. TAction *DefaultEncodingAction;
  75. TAction *UTF8EncodingAction;
  76. TTBXColorItem *ColorItem;
  77. TAction *ColorAction;
  78. TAction *SaveAllAction2;
  79. TTBXItem *TBXItem1;
  80. TPngImageList *EditorImages120;
  81. TPngImageList *EditorImages144;
  82. TPngImageList *EditorImages192;
  83. void __fastcall EditorActionsUpdate(TBasicAction *Action, bool &Handled);
  84. void __fastcall EditorActionsExecute(TBasicAction *Action,
  85. bool &Handled);
  86. void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose);
  87. void __fastcall EditorMemoMouseUp(TObject *Sender, TMouseButton Button,
  88. TShiftState Shift, int X, int Y);
  89. void __fastcall EditorMemoKeyUp(TObject *Sender, WORD &Key,
  90. TShiftState Shift);
  91. void __fastcall EditorMemoChange(TObject *Sender);
  92. void __fastcall FindDialogFind(TObject *Sender);
  93. void __fastcall FormShow(TObject *Sender);
  94. void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
  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. TForm * FParentForm;
  104. TFindDialog * FLastFindDialog;
  105. TPoint FCaretPos;
  106. TFindDialog * FFindDialog;
  107. TReplaceDialog * FReplaceDialog;
  108. bool FCloseAnnounced;
  109. TEditorRichEdit * EditorMemo;
  110. bool FFormRestored;
  111. UnicodeString FWindowParams;
  112. unsigned int FInstance;
  113. TEncoding * FEncoding;
  114. TEncoding * FAnsiEncoding;
  115. UnicodeString FEncodingName;
  116. bool FSaving;
  117. bool FStandaloneEditor;
  118. bool FClosePending;
  119. TColor FBackgroundColor;
  120. int FInternalEditorEncodingOverride;
  121. bool FReloading;
  122. static unsigned int FInstances;
  123. void __fastcall SetFileName(const UnicodeString value);
  124. void __fastcall SetBackgroundColor(TColor Color);
  125. public:
  126. __fastcall TEditorForm(TComponent* Owner);
  127. virtual __fastcall ~TEditorForm();
  128. void __fastcall ApplyConfiguration();
  129. void __fastcall FileUploadComplete();
  130. void __fastcall LoadFile();
  131. void __fastcall SaveFile();
  132. bool __fastcall IsFileModified();
  133. __property UnicodeString FileName = { read = FFileName, write = SetFileName };
  134. __property bool StandaloneEditor = { read = FStandaloneEditor, write = FStandaloneEditor };
  135. __property TNotifyEvent OnFileChanged = { read = FOnFileChanged, write = FOnFileChanged };
  136. __property TNotifyEvent OnFileReload = { read = FOnFileReload, write = FOnFileReload };
  137. __property TFileClosedEvent OnWindowClose = { read = FOnWindowClose, write = FOnWindowClose };
  138. __property TNotifyEvent OnSaveAll = { read = FOnSaveAll, write = FOnSaveAll };
  139. __property TAnyModifiedEvent OnAnyModified = { read = FOnAnyModified, write = FOnAnyModified };
  140. __property TForm * ParentForm = { read = FParentForm, write = FParentForm };
  141. __property TColor BackgroundColor = { read = FBackgroundColor, write = SetBackgroundColor };
  142. __property int InternalEditorEncodingOverride = { read = FInternalEditorEncodingOverride, write = FInternalEditorEncodingOverride };
  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. virtual void __fastcall Dispatch(void * Message);
  163. void __fastcall CMDpiChanged(TMessage & Message);
  164. };
  165. //---------------------------------------------------------------------------
  166. #endif