Editor.h 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  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. //---------------------------------------------------------------------------
  26. class TRichEdit20;
  27. //---------------------------------------------------------------------------
  28. class TEditorForm : public TForm
  29. {
  30. __published:
  31. TActionList *EditorActions;
  32. TPngImageList *EditorImages;
  33. TAction *SaveAction;
  34. TTBXDock *TopDock;
  35. TTBXToolbar *Toolbar;
  36. TTBXStatusBar *StatusBar;
  37. TEditCut *EditCut;
  38. TEditCopy *EditCopy;
  39. TEditPaste *EditPaste;
  40. TEditSelectAll *EditSelectAll;
  41. TEditUndo *EditUndo;
  42. TEditDelete *EditDelete;
  43. TAction *PreferencesAction;
  44. TAction *FindAction;
  45. TAction *ReplaceAction;
  46. TAction *FindNextAction;
  47. TAction *GoToLineAction;
  48. TTBXPopupMenu *EditorPopup;
  49. TTBXItem *Undo1;
  50. TTBXSeparatorItem *N1;
  51. TTBXItem *Cut1;
  52. TTBXItem *Copy1;
  53. TTBXItem *Paste1;
  54. TTBXItem *Delete1;
  55. TTBXSeparatorItem *N2;
  56. TTBXItem *SelectAll1;
  57. TTBXSeparatorItem *N3;
  58. TTBXItem *Find1;
  59. TTBXItem *Replace1;
  60. TTBXItem *Findnext1;
  61. TTBXItem *Gotolinenumber1;
  62. TAction *HelpAction;
  63. TTBXSeparatorItem *TBXSeparatorItem6;
  64. TTBXItem *TBXItem15;
  65. TAction *ReloadAction;
  66. TAction *EditRedo;
  67. TTBXItem *TBXItem18;
  68. TTBXSubmenuItem *Encoding;
  69. TTBXItem *DefaultEncoding;
  70. TTBXItem *UTF8Encoding;
  71. TAction *DefaultEncodingAction;
  72. TAction *UTF8EncodingAction;
  73. void __fastcall EditorActionsUpdate(TBasicAction *Action, bool &Handled);
  74. void __fastcall EditorActionsExecute(TBasicAction *Action,
  75. bool &Handled);
  76. void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose);
  77. void __fastcall EditorMemoMouseUp(TObject *Sender, TMouseButton Button,
  78. TShiftState Shift, int X, int Y);
  79. void __fastcall EditorMemoKeyUp(TObject *Sender, WORD &Key,
  80. TShiftState Shift);
  81. void __fastcall EditorMemoChange(TObject *Sender);
  82. void __fastcall FindDialogFind(TObject *Sender);
  83. void __fastcall FormShow(TObject *Sender);
  84. void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
  85. void __fastcall FormActivate(TObject *Sender);
  86. void __fastcall FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
  87. private:
  88. UnicodeString FFileName;
  89. TNotifyEvent FOnFileChanged;
  90. TNotifyEvent FOnFileReload;
  91. TFileClosedEvent FOnWindowClose;
  92. TCustomForm * FParentForm;
  93. TFindDialog * FLastFindDialog;
  94. TPoint FCaretPos;
  95. TFindDialog * FFindDialog;
  96. TReplaceDialog * FReplaceDialog;
  97. bool FCloseAnnounced;
  98. TRichEdit20 * EditorMemo;
  99. bool FShowStatusBarHint;
  100. UnicodeString FStatusBarHint;
  101. bool FFormRestored;
  102. UnicodeString FWindowParams;
  103. unsigned int FInstance;
  104. TEncoding * FEncoding;
  105. UnicodeString FEncodingName;
  106. static unsigned int FInstances;
  107. void __fastcall SetFileName(const UnicodeString value);
  108. void __fastcall SetParentForm(TCustomForm * value);
  109. void __fastcall ApplicationHint(TObject * Sender);
  110. public:
  111. __fastcall TEditorForm(TComponent* Owner);
  112. virtual __fastcall ~TEditorForm();
  113. void __fastcall ApplyConfiguration();
  114. void __fastcall LoadFile();
  115. __property UnicodeString FileName = { read = FFileName, write = SetFileName };
  116. __property TNotifyEvent OnFileChanged = { read = FOnFileChanged, write = FOnFileChanged };
  117. __property TNotifyEvent OnFileReload = { read = FOnFileReload, write = FOnFileReload };
  118. __property TFileClosedEvent OnWindowClose = { read = FOnWindowClose, write = FOnWindowClose };
  119. __property TCustomForm * ParentForm = { read = FParentForm, write = SetParentForm };
  120. protected:
  121. bool __fastcall CursorInUpperPart();
  122. void __fastcall Find();
  123. void __fastcall GoToLine();
  124. void __fastcall PositionFindDialog(bool VerticalOnly);
  125. void __fastcall StartFind(bool Find);
  126. void __fastcall UpdateControls();
  127. void __fastcall DoWindowClose(bool Forced);
  128. void __fastcall Reload();
  129. virtual void __fastcall CreateParams(TCreateParams & Params);
  130. void __fastcall LoadFromFile(bool PrimaryEncoding);
  131. bool __fastcall ContainsPreamble(TStream * Stream, const TBytes & Signature);
  132. void __fastcall ChangeEncoding(TEncoding * Encoding);
  133. void __fastcall InitCodePage();
  134. UnicodeString __fastcall GetCodePageName(TEncoding * Encoding);
  135. void __fastcall BackupSave();
  136. };
  137. //---------------------------------------------------------------------------
  138. #endif