OpenDirectory.h 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. //----------------------------------------------------------------------------
  2. #ifndef OpenDirectoryH
  3. #define OpenDirectoryH
  4. //----------------------------------------------------------------------------
  5. #include "IEComboBox.hpp"
  6. #include <System.Classes.hpp>
  7. #include <Vcl.ComCtrls.hpp>
  8. #include <Vcl.Controls.hpp>
  9. #include <Vcl.StdCtrls.hpp>
  10. #include <FileOperationProgress.h>
  11. #include <Terminal.h>
  12. #include <WinInterface.h>
  13. #include <Bookmarks.h>
  14. #include "IEComboBox.hpp"
  15. #include <PasTools.hpp>
  16. #include <ComCtrls.hpp>
  17. #include <Vcl.ExtCtrls.hpp>
  18. #include <Vcl.Imaging.pngimage.hpp>
  19. //----------------------------------------------------------------------------
  20. class TOpenDirectoryDialog : public TForm
  21. {
  22. __published:
  23. TButton *OKBtn;
  24. TButton *CancelBtn;
  25. TIEComboBox *RemoteDirectoryEdit;
  26. TIEComboBox *LocalDirectoryEdit;
  27. TLabel *EditLabel;
  28. TPageControl *PageControl;
  29. TButton *LocalDirectoryBrowseButton;
  30. TButton *SwitchButton;
  31. TButton *HelpButton;
  32. TTabSheet *SessionBookmarksSheet;
  33. TListBox *SessionBookmarksList;
  34. TButton *AddSessionBookmarkButton;
  35. TButton *RemoveSessionBookmarkButton;
  36. TButton *UpSessionBookmarkButton;
  37. TButton *DownSessionBookmarkButton;
  38. TListBox *SharedBookmarksList;
  39. TButton *AddSharedBookmarkButton;
  40. TButton *RemoveSharedBookmarkButton;
  41. TButton *UpSharedBookmarkButton;
  42. TButton *DownSharedBookmarkButton;
  43. TTabSheet *SharedBookmarksSheet;
  44. TButton *ShortCutSharedBookmarkButton;
  45. TImage *Image;
  46. void __fastcall ControlChange(TObject *Sender);
  47. void __fastcall AddBookmarkButtonClick(TObject *Sender);
  48. void __fastcall RemoveBookmarkButtonClick(TObject *Sender);
  49. void __fastcall BookmarksListClick(TObject *Sender);
  50. void __fastcall BookmarkButtonClick(TObject *Sender);
  51. void __fastcall BookmarksListStartDrag(TObject *Sender,
  52. TDragObject *&DragObject);
  53. void __fastcall BookmarksListDragOver(TObject *Sender, TObject *Source,
  54. int X, int Y, TDragState State, bool &Accept);
  55. void __fastcall BookmarksListDragDrop(TObject *Sender, TObject *Source,
  56. int X, int Y);
  57. void __fastcall DirectoryEditChange(TObject *Sender);
  58. void __fastcall BookmarksListDblClick(TObject *Sender);
  59. void __fastcall FormShow(TObject *Sender);
  60. void __fastcall BookmarksListKeyDown(TObject *Sender, WORD &Key,
  61. TShiftState Shift);
  62. void __fastcall LocalDirectoryBrowseButtonClick(TObject *Sender);
  63. void __fastcall SwitchButtonClick(TObject *Sender);
  64. void __fastcall HelpButtonClick(TObject *Sender);
  65. void __fastcall BookmarksListEndDrag(TObject *Sender, TObject *Target,
  66. int X, int Y);
  67. void __fastcall ShortCutBookmarkButtonClick(TObject *Sender);
  68. void __fastcall PageControlChange(TObject *Sender);
  69. public:
  70. __fastcall TOpenDirectoryDialog(TComponent* AOwner);
  71. virtual __fastcall ~TOpenDirectoryDialog();
  72. bool __fastcall Execute();
  73. __property UnicodeString Directory = { read = GetDirectory, write = SetDirectory };
  74. __property TOperationSide OperationSide = { read = FOperationSide, write = SetOperationSide };
  75. __property TStrings * Directories = { read=GetDirectories, write=SetDirectories };
  76. __property TOpenDirectoryMode Mode = { read = FMode, write = SetMode };
  77. __property TTerminal * Terminal = { read = FTerminal, write = FTerminal };
  78. __property bool AllowSwitch = { read = FAllowSwitch, write = FAllowSwitch };
  79. protected:
  80. bool __fastcall AllowBookmarkDrag(TObject * Sender, int X, int Y);
  81. void __fastcall BookmarkMove(TObject * Sender, int Source, int Dest);
  82. Integer __fastcall FindBookmark(TListBox * BookmarksList, const UnicodeString Bookmark);
  83. void __fastcall UpdateControls(bool ListBoxUpdate = false);
  84. void __fastcall AddAsBookmark(TObject * Sender);
  85. void __fastcall RemoveBookmark(TObject * Sender);
  86. __property TWinControl * CurrentEdit = { read = GetCurrentEdit };
  87. private:
  88. TOperationSide FOperationSide;
  89. TTerminal * FTerminal;
  90. int FBookmarkDragSource, FBookmarkDragDest;
  91. TOpenDirectoryMode FMode;
  92. TBookmarkList * FSessionBookmarkList;
  93. TBookmarkList * FSharedBookmarkList;
  94. bool FAllowSwitch;
  95. TListBoxScrollOnDragOver * FSessionScrollOnDragOver;
  96. TListBoxScrollOnDragOver * FSharedScrollOnDragOver;
  97. bool FBookmarkSelected;
  98. void __fastcall SetDirectory(UnicodeString value);
  99. UnicodeString __fastcall GetDirectory();
  100. TWinControl * __fastcall GetCurrentEdit();
  101. void __fastcall SetOperationSide(TOperationSide value);
  102. void __fastcall SetDirectories(TStrings * value);
  103. TStrings * __fastcall GetDirectories();
  104. void __fastcall SetMode(TOpenDirectoryMode value);
  105. void __fastcall LoadBookmarks(TListBox * ListBox,
  106. TBookmarkList * BookmarkList, TBookmarkList * Source);
  107. TListBox * GetBookmarksList(TObject * Sender);
  108. TBookmarkList * GetBookmarkList(TObject * Sender);
  109. TListBoxScrollOnDragOver * GetScrollOnDragOver(TObject * Sender);
  110. void __fastcall SelectBookmark(TListBox * BookmarksList);
  111. void __fastcall UpdateBookmarkControls(
  112. TButton * AddBookmarkButton, TButton * RemoveBookmarkButton,
  113. TButton * ShortCutBookmarkButton,
  114. TButton * UpBookmarkButton, TButton * DownBookmarkButton,
  115. TListBox * BookmarksList, bool ListBoxUpdate);
  116. void __fastcall BookmarkSelected(TObject * Sender);
  117. inline UnicodeString __fastcall BookmarkDirectory(TBookmark * Bookmark);
  118. UnicodeString __fastcall BookmarkText(TBookmark * Bookmark);
  119. inline TBookmark * __fastcall GetBookmark(TListBox * BookmarksList, int Index);
  120. };
  121. //----------------------------------------------------------------------------
  122. #endif