UnixDirViewColProperties.pas 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. unit UnixDirViewColProperties;
  2. interface
  3. uses
  4. Classes, ComCtrls, DirViewColProperties;
  5. resourcestring
  6. SUnixDirViewRightsCol = 'Rights';
  7. SUnixDirViewOwnerCol = 'Owner';
  8. SUnixDirViewGroupCol = 'Group';
  9. const
  10. UnixDirViewColumns = 7;
  11. DefaultUnixDirViewCaptions: array[0..UnixDirViewColumns-1] of Pointer =
  12. (@SDirViewNameCol, @SDirViewSizeCol, @SDirViewChangedCol,
  13. @SUnixDirViewRightsCol, @SUnixDirViewOwnerCol, @SUnixDirViewGroupCol,
  14. @SDirViewExtCol);
  15. DefaultUnixDirViewWidths: array[0..UnixDirViewColumns-1] of Integer =
  16. (150, 80, 130, 100, 130, 130, 0);
  17. DefaultUnixDirViewAlignments: array[0..UnixDirViewColumns-1] of TAlignment =
  18. (taLeftJustify, taRightJustify, taLeftJustify, taLeftJustify,
  19. taLeftJustify, taLeftJustify, taLeftJustify);
  20. DefaultUnixDirViewVisible: array[0..UnixDirViewColumns-1] of Boolean =
  21. (True, True, True, True, True, True, False);
  22. type
  23. TUnixDirViewCol = (uvName, uvSize, uvChanged, uvRights, uvOwner, uvGroup, uvExt);
  24. TUnixDirViewColProperties = class(TCustomDirViewColProperties)
  25. private
  26. function StoreAlignment(Index: Integer): Boolean;
  27. function StoreCaption(Index: Integer): Boolean;
  28. function StoreWidth(Index: Integer): Boolean;
  29. function GetDirOrder(Index: Integer): TUnixDirViewCol;
  30. function GetSortDirColumn: TUnixDirViewCol;
  31. procedure SetDirOrder(Index: Integer; Value: TUnixDirViewCol);
  32. procedure SetSortDirColumn(Value: TUnixDirViewCol);
  33. protected
  34. public
  35. constructor Create(DirView: TCustomListView);
  36. published
  37. property MaxWidth;
  38. property MinWidth;
  39. property SortAscending;
  40. property SortByExtension;
  41. property SortDirColumn: TUnixDirViewCol read GetSortDirColumn write SetSortDirColumn default uvName;
  42. property NameCaption: string index uvName read GetCaptions write SetCaptions stored StoreCaption;
  43. property NameWidth: Integer index uvName read GetWidths write SetWidths stored StoreWidth;
  44. property NameVisible: Boolean index uvName read GetVisible write SetVisible default True;
  45. property NameAlignment: TAlignment index uvName read GetAlignments write SetAlignments stored StoreAlignment;
  46. property SizeCaption: string index uvSize read GetCaptions write SetCaptions stored StoreCaption;
  47. property SizeWidth: Integer index uvSize read GetWidths write SetWidths stored StoreWidth;
  48. property SizeVisible: Boolean index uvSize read GetVisible write SetVisible default True;
  49. property SizeAlignment: TAlignment index uvSize read GetAlignments write SetAlignments stored StoreAlignment;
  50. property ChangedCaption: string index uvChanged read GetCaptions write SetCaptions stored StoreCaption;
  51. property ChangedWidth: Integer index uvChanged read GetWidths write SetWidths stored StoreWidth;
  52. property ChangedVisible: Boolean index uvChanged read GetVisible write SetVisible default True;
  53. property ChangedAlignment: TAlignment index uvChanged read GetAlignments write SetAlignments stored StoreAlignment;
  54. property RightsCaption: string index uvRights read GetCaptions write SetCaptions stored StoreCaption;
  55. property RightsWidth: Integer index uvRights read GetWidths write SetWidths stored StoreWidth;
  56. property RightsVisible: Boolean index uvRights read GetVisible write SetVisible default True;
  57. property RightsAlignment: TAlignment index uvRights read GetAlignments write SetAlignments stored StoreAlignment;
  58. property OwnerCaption: string index uvOwner read GetCaptions write SetCaptions stored StoreCaption;
  59. property OwnerWidth: Integer index uvOwner read GetWidths write SetWidths stored StoreWidth;
  60. property OwnerVisible: Boolean index uvOwner read GetVisible write SetVisible default True;
  61. property OwnerAlignment: TAlignment index uvOwner read GetAlignments write SetAlignments stored StoreAlignment;
  62. property GroupCaption: string index uvGroup read GetCaptions write SetCaptions stored StoreCaption;
  63. property GroupWidth: Integer index uvGroup read GetWidths write SetWidths stored StoreWidth;
  64. property GroupVisible: Boolean index uvGroup read GetVisible write SetVisible default True;
  65. property GroupAlignment: TAlignment index uvGroup read GetAlignments write SetAlignments stored StoreAlignment;
  66. property ExtCaption: string index uvExt read GetCaptions write SetCaptions stored StoreCaption;
  67. property ExtWidth: Integer index uvExt read GetWidths write SetWidths stored StoreWidth;
  68. property ExtVisible: Boolean index uvExt read GetVisible write SetVisible default True;
  69. property ExtAlignment: TAlignment index uvExt read GetAlignments write SetAlignments stored StoreAlignment;
  70. property Column1: TUnixDirViewCol index 0 read GetDirOrder write SetDirOrder default uvName;
  71. property Column2: TUnixDirViewCol index 1 read GetDirOrder write SetDirOrder default uvSize;
  72. property Column3: TUnixDirViewCol index 2 read GetDirOrder write SetDirOrder default uvChanged;
  73. property Column4: TUnixDirViewCol index 3 read GetDirOrder write SetDirOrder default uvRights;
  74. property Column5: TUnixDirViewCol index 4 read GetDirOrder write SetDirOrder default uvOwner;
  75. property Column6: TUnixDirViewCol index 5 read GetDirOrder write SetDirOrder default uvGroup;
  76. property Column7: TUnixDirViewCol index 6 read GetDirOrder write SetDirOrder default uvExt;
  77. end; { TDirViewColProperties }
  78. implementation
  79. uses
  80. SysUtils;
  81. { TUnixDirViewColProperties }
  82. constructor TUnixDirViewColProperties.Create(DirView: TCustomListView);
  83. var
  84. Index: Integer;
  85. begin
  86. inherited Create(DirView, UnixDirViewColumns);
  87. for Index := 0 to Count-1 do
  88. begin
  89. Captions[Index] := LoadResString(DefaultUnixDirViewCaptions[Index]);
  90. Visible[Index] := DefaultUnixDirViewVisible[Index];
  91. Widths[Index] := DefaultUnixDirViewWidths[Index];
  92. Alignments[Index] := DefaultUnixDirViewAlignments[Index];
  93. end;
  94. end;
  95. function TUnixDirViewColProperties.GetDirOrder(Index: Integer): TUnixDirViewCol;
  96. begin
  97. Result := TUnixDirViewCol(GetOrder(Index));
  98. end;
  99. procedure TUnixDirViewColProperties.SetDirOrder(Index: Integer;
  100. Value: TUnixDirViewCol);
  101. begin
  102. SetOrder(Index, Integer(Value));
  103. end;
  104. procedure TUnixDirViewColProperties.SetSortDirColumn(Value: TUnixDirViewCol);
  105. begin
  106. SortColumn := Integer(Value);
  107. end;
  108. function TUnixDirViewColProperties.GetSortDirColumn: TUnixDirViewCol;
  109. begin
  110. Result := TUnixDirViewCol(SortColumn);
  111. end;
  112. function TUnixDirViewColProperties.StoreAlignment(Index: Integer): Boolean;
  113. begin
  114. Result := (Alignments[Index] <> DefaultUnixDirViewAlignments[Index]);
  115. end;
  116. function TUnixDirViewColProperties.StoreCaption(Index: Integer): Boolean;
  117. begin
  118. Result := (Captions[Index] <> LoadResString(DefaultUnixDirViewCaptions[Index]));
  119. end;
  120. function TUnixDirViewColProperties.StoreWidth(Index: Integer): Boolean;
  121. begin
  122. Result := (Widths[Index] <> DefaultUnixDirViewWidths[Index]);
  123. end;
  124. end.