Properties.h 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. //----------------------------------------------------------------------------
  2. #ifndef PropertiesH
  3. #define PropertiesH
  4. //----------------------------------------------------------------------------
  5. #include "PathLabel.hpp"
  6. #include "Rights.h"
  7. #include "RightsExt.h"
  8. #include <System.Classes.hpp>
  9. #include <Vcl.ComCtrls.hpp>
  10. #include <Vcl.Controls.hpp>
  11. #include <Vcl.ExtCtrls.hpp>
  12. #include <Vcl.Forms.hpp>
  13. #include <Vcl.Graphics.hpp>
  14. #include <Vcl.Menus.hpp>
  15. #include <Vcl.StdCtrls.hpp>
  16. //----------------------------------------------------------------------------
  17. #include "Rights.h"
  18. #include "RightsExt.h"
  19. #include <Menus.hpp>
  20. //----------------------------------------------------------------------------
  21. struct TCalculateSizeStats;
  22. //----------------------------------------------------------------------------
  23. class TPropertiesDialog : public TForm
  24. {
  25. __published:
  26. TButton *OkButton;
  27. TButton *CancelButton;
  28. TPageControl *PageControl;
  29. TTabSheet *CommonSheet;
  30. TBevel *Bevel1;
  31. TLabel *FileLabel;
  32. TLabel *Label1;
  33. TPathLabel *LocationLabel;
  34. TLabel *Label2;
  35. TLabel *SizeLabel;
  36. TLabel *LinksToLabelLabel;
  37. TPathLabel *LinksToLabel;
  38. TBevel *Bevel2;
  39. TLabel *Label3;
  40. TBevel *Bevel3;
  41. TLabel *Label4;
  42. TComboBox *GroupComboBox;
  43. TLabel *Label5;
  44. TComboBox *OwnerComboBox;
  45. TImage *FileIconImage;
  46. TBevel *RecursiveBevel;
  47. TCheckBox *RecursiveCheck;
  48. TButton *CalculateSizeButton;
  49. TRightsExtFrame *RightsFrame;
  50. TButton *HelpButton;
  51. TTabSheet *ChecksumSheet;
  52. TListView *ChecksumView;
  53. TLabel *Label6;
  54. TComboBox *ChecksumAlgEdit;
  55. TButton *ChecksumButton;
  56. TGroupBox *ChecksumGroup;
  57. TEdit *ChecksumEdit;
  58. TPopupMenu *ListViewMenu;
  59. TMenuItem *Copy;
  60. TLabel *ChecksumUnknownLabel;
  61. void __fastcall ControlChange(TObject *Sender);
  62. void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose);
  63. void __fastcall CalculateSizeButtonClick(TObject *Sender);
  64. void __fastcall HelpButtonClick(TObject *Sender);
  65. void __fastcall ChecksumButtonClick(TObject *Sender);
  66. void __fastcall PageControlChange(TObject *Sender);
  67. void __fastcall ChecksumAlgEditChange(TObject *Sender);
  68. void __fastcall CopyClick(TObject *Sender);
  69. void __fastcall ChecksumViewContextPopup(TObject *Sender,
  70. TPoint &MousePos, bool &Handled);
  71. void __fastcall GroupComboBoxExit(TObject *Sender);
  72. void __fastcall OwnerComboBoxExit(TObject *Sender);
  73. void __fastcall FormShow(TObject *Sender);
  74. private:
  75. int FAllowedChanges;
  76. bool FUserGroupByID;
  77. TStrings * FFileList;
  78. const TRemoteTokenList * FGroupList;
  79. const TRemoteTokenList * FUserList;
  80. TStrings * FChecksumAlgs;
  81. TRemoteProperties FOrigProperties;
  82. bool FMultiple;
  83. bool FAllowCalculateStats;
  84. bool FStatsNotCalculated;
  85. TCalculateSizeEvent FOnCalculateSize;
  86. TCalculateChecksumEvent FOnCalculateChecksum;
  87. bool FChecksumLoaded;
  88. UnicodeString FAlgUsed;
  89. bool FMultipleChecksum;
  90. void __fastcall CalculateChecksum();
  91. void __fastcall NeedChecksum();
  92. bool __fastcall ChecksumSupported();
  93. void __fastcall ResetChecksum();
  94. void __fastcall CalculatedChecksum(
  95. const UnicodeString & FileName, const UnicodeString & Alg, const UnicodeString & Hash);
  96. void __fastcall SetFileProperties(const TRemoteProperties & value);
  97. TRemoteProperties __fastcall GetFileProperties();
  98. TModalResult __fastcall DefaultResult();
  99. void __fastcall CMDpiChanged(TMessage & Message);
  100. protected:
  101. void __fastcall LoadInfo();
  102. void __fastcall LoadRemoteTokens(TComboBox * ComboBox, const TRemoteTokenList * List);
  103. UnicodeString __fastcall LoadRemoteToken(const TRemoteToken & Token);
  104. void __fastcall LoadRemoteToken(TComboBox * ComboBox, bool Valid, const TRemoteToken & Token);
  105. TRemoteToken __fastcall StoreRemoteToken(const TRemoteToken & Orig,
  106. UnicodeString Text, int Message, const TRemoteTokenList * List);
  107. void __fastcall StoreRemoteToken(TComboBox * ComboBox,
  108. int ChangeFlag, TValidProperty PropertyFlag, const TRemoteToken & Orig,
  109. TRemoteToken & Token, int Message, const TRemoteTokenList * List,
  110. TRemoteProperties & Properties);
  111. void __fastcall StoreRemoteToken(unsigned int ID, const UnicodeString & Text,
  112. const TRemoteTokenList * List, TRemoteToken & Result);
  113. void __fastcall ResolveRemoteToken(
  114. const TRemoteToken & Orig, int Message, TComboBox * ComboBox,
  115. const TRemoteTokenList * List);
  116. void __fastcall UpdateControls();
  117. void __fastcall LoadStats(__int64 FilesSize, const TCalculateSizeStats & Stats);
  118. virtual void __fastcall Dispatch(void * Message);
  119. void __fastcall UpdateFileImage();
  120. public:
  121. virtual __fastcall TPropertiesDialog(TComponent * AOwner,
  122. TStrings * FileList, const UnicodeString Directory,
  123. const TRemoteTokenList * GroupList, const TRemoteTokenList * UserList,
  124. TStrings * ChecksumAlgs,
  125. int AllowedChanges, bool UserGroupByID, TCalculateSizeEvent OnCalculateSize,
  126. TCalculateChecksumEvent OnCalculateChecksum);
  127. virtual __fastcall ~TPropertiesDialog();
  128. bool __fastcall Execute(TRemoteProperties & Properties);
  129. };
  130. //----------------------------------------------------------------------------
  131. #endif