1
0

FileSystemInfo.h 4.1 KB

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