FileSystemInfo.h 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. //----------------------------------------------------------------------------
  2. #ifndef FileSystemInfoH
  3. #define FileSystemInfoH
  4. //----------------------------------------------------------------------------
  5. #include <System.Classes.hpp>
  6. #include <Vcl.ComCtrls.hpp>
  7. #include <Vcl.Controls.hpp>
  8. #include <Vcl.Menus.hpp>
  9. #include <Vcl.StdCtrls.hpp>
  10. #include <System.Actions.hpp>
  11. #include <Vcl.ActnList.hpp>
  12. #include <Vcl.StdActns.hpp>
  13. //----------------------------------------------------------------------------
  14. typedef void __fastcall (__closure *TFeedFileSystemData)
  15. (TControl * Control, int Label, UnicodeString Value);
  16. //----------------------------------------------------------------------------
  17. class TFileSystemInfoDialog : public TForm
  18. {
  19. __published:
  20. TButton *CloseButton;
  21. TButton *HelpButton;
  22. TPageControl *PageControl;
  23. TTabSheet *ProtocolSheet;
  24. TGroupBox *HostKeyGroup;
  25. TEdit *HostKeyFingerprintSHA256Edit;
  26. TTabSheet *CapabilitiesSheet;
  27. TGroupBox *InfoGroup;
  28. TMemo *InfoMemo;
  29. TListView *ServerView;
  30. TListView *ProtocolView;
  31. TButton *ClipboardButton;
  32. TPopupMenu *ListViewMenu;
  33. TMenuItem *Copy;
  34. TTabSheet *SpaceAvailableSheet;
  35. TListView *SpaceAvailableView;
  36. TLabel *Label1;
  37. TEdit *SpaceAvailablePathEdit;
  38. TButton *SpaceAvailableButton;
  39. TGroupBox *CertificateGroup;
  40. TEdit *CertificateFingerprintEdit;
  41. TButton *CertificateViewButton;
  42. TLabel *Label2;
  43. TEdit *HostKeyAlgorithmEdit;
  44. TLabel *Label3;
  45. TLabel *Label4;
  46. TEdit *HostKeyFingerprintMD5Edit;
  47. TPopupMenu *FingerprintPopupMenu;
  48. TActionList *FingerprintActionList;
  49. TEditCopy *EditCopyAction;
  50. TEditSelectAll *EditSelectAllAction;
  51. TMenuItem *Copy1;
  52. void __fastcall HelpButtonClick(TObject *Sender);
  53. void __fastcall ClipboardButtonClick(TObject *Sender);
  54. void __fastcall CopyClick(TObject *Sender);
  55. void __fastcall FormShow(TObject *Sender);
  56. void __fastcall SpaceAvailableButtonClick(TObject *Sender);
  57. void __fastcall PageControlChange(TObject *Sender);
  58. void __fastcall ControlChange(TObject *Sender);
  59. void __fastcall SpaceAvailablePathEditEnter(TObject *Sender);
  60. void __fastcall SpaceAvailablePathEditExit(TObject *Sender);
  61. void __fastcall ControlContextPopup(TObject *Sender, TPoint &MousePos,
  62. bool &Handled);
  63. void __fastcall CertificateViewButtonClick(TObject *Sender);
  64. void __fastcall SpaceAvailableViewCustomDrawItem(TCustomListView *Sender, TListItem *Item,
  65. TCustomDrawState State, bool &DefaultDraw);
  66. void __fastcall EditCopyActionExecute(TObject *Sender);
  67. void __fastcall HostKeyFingerprintSHA256EditContextPopup(TObject *Sender, TPoint &MousePos, bool &Handled);
  68. void __fastcall EditCopyActionUpdate(TObject *Sender);
  69. public:
  70. virtual __fastcall TFileSystemInfoDialog(TComponent * AOwner,
  71. TGetSpaceAvailable OnGetSpaceAvailable);
  72. void __fastcall Execute(const TSessionInfo & SessionInfo,
  73. const TFileSystemInfo & FileSystemInfo, UnicodeString SpaceAvailablePath);
  74. private:
  75. TControl * FLastFeededControl;
  76. UnicodeString FClipboard;
  77. TGetSpaceAvailable FOnGetSpaceAvailable;
  78. bool FSpaceAvailableLoaded;
  79. TSpaceAvailable FSpaceAvailable;
  80. int FLastListItem;
  81. TSessionInfo FSessionInfo;
  82. TFileSystemInfo FFileSystemInfo;
  83. void __fastcall Feed(TFeedFileSystemData AddItem);
  84. void __fastcall UpdateControls();
  85. UnicodeString __fastcall CapabilityStr(TFSCapability Capability);
  86. UnicodeString __fastcall CapabilityStr(TFSCapability Capability1,
  87. TFSCapability Capability2);
  88. UnicodeString __fastcall SpaceStr(__int64 Bytes);
  89. void __fastcall ControlsAddItem(TControl * Control, int Label, UnicodeString Value);
  90. void __fastcall ClipboardAddItem(TControl * Control, int Label, UnicodeString Value);
  91. void __fastcall CheckSpaceAvailable();
  92. void __fastcall NeedSpaceAvailable();
  93. bool __fastcall SpaceAvailableSupported();
  94. void __fastcall FeedControls();
  95. };
  96. //----------------------------------------------------------------------------
  97. #endif