home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 April A / Pcwk4a98.iso / PROGRAM / DELPHI16 / Calmira / Src / SRC / FSYSPROP.PAS < prev    next >
Pascal/Delphi Source File  |  1997-02-15  |  6KB  |  199 lines

  1. {**************************************************************************}
  2. {                                                                          }
  3. {    Calmira shell for Microsoft« Windows(TM) 3.1                          }
  4. {    Source Release 1.0                                                    }
  5. {    Copyright (C) 1997  Li-Hsin Huang                                     }
  6. {                                                                          }
  7. {    This program is free software; you can redistribute it and/or modify  }
  8. {    it under the terms of the GNU General Public License as published by  }
  9. {    the Free Software Foundation; either version 2 of the License, or     }
  10. {    (at your option) any later version.                                   }
  11. {                                                                          }
  12. {    This program is distributed in the hope that it will be useful,       }
  13. {    but WITHOUT ANY WARRANTY; without even the implied warranty of        }
  14. {    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         }
  15. {    GNU General Public License for more details.                          }
  16. {                                                                          }
  17. {    You should have received a copy of the GNU General Public License     }
  18. {    along with this program; if not, write to the Free Software           }
  19. {    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.             }
  20. {                                                                          }
  21. {**************************************************************************}
  22.  
  23. unit Fsysprop;
  24.  
  25. interface
  26.  
  27. uses WinTypes, WinProcs, Classes, Graphics, Forms, Controls, Buttons,
  28.   StdCtrls, ExtCtrls, Chklist, TabNotBk, Dialogs, Settings;
  29.  
  30. type
  31.   TFileSysPropDlg = class(TForm)
  32.     OKBtn: TBitBtn;
  33.     CancelBtn: TBitBtn;
  34.     Notebook: TTabbedNotebook;
  35.     Sorting: TRadioGroup;
  36.     rbDOSFilenames: TRadioButton;
  37.     Bevel1: TBevel;
  38.     rb4DOSDesc: TRadioButton;
  39.     Label8: TLabel;
  40.     IconEdit: TEdit;
  41.     DescPanel: TPanel;
  42.     cbDescCaptions: TCheckBox;
  43.     cbSimul4DOS: TCheckBox;
  44.     Label1: TLabel;
  45.     Bevel2: TBevel;
  46.     cbFileHints: TCheckBox;
  47.     Label2: TLabel;
  48.     sbDelay: TScrollBar;
  49.     Label3: TLabel;
  50.     Label4: TLabel;
  51.     Label5: TLabel;
  52.     Label6: TLabel;
  53.     ConfirmList: TCheckList;
  54.     Label7: TLabel;
  55.     MiscList: TCheckList;
  56.     Label9: TLabel;
  57.     Label10: TLabel;
  58.     FilterEdit: TEdit;
  59.     Label11: TLabel;
  60.     IconPathEdit: TEdit;
  61.     Label12: TLabel;
  62.     Bevel3: TBevel;
  63.     Bevel4: TBevel;
  64.     InspectEdit: TEdit;
  65.     DefaultEdit: TEdit;
  66.     UndelEdit: TEdit;
  67.     DiskEdit: TEdit;
  68.     Label13: TLabel;
  69.     Label14: TLabel;
  70.     Label15: TLabel;
  71.     Label16: TLabel;
  72.     Label17: TLabel;
  73.     OpenDialog: TOpenDialog;
  74.     HelpBtn: TBitBtn;
  75.     procedure FormCreate(Sender: TObject);
  76.     procedure OKBtnClick(Sender: TObject);
  77.     procedure rb4DOSDescClick(Sender: TObject);
  78.     procedure InspectEditDblClick(Sender: TObject);
  79.     procedure IconPathEditDblClick(Sender: TObject);
  80.   private
  81.     { Private declarations }
  82.     Changes : TSettingChanges;
  83.   public
  84.     { Public declarations }
  85.   end;
  86.  
  87. {
  88. var
  89.   FileSysPropDlg: TFileSysPropDlg;
  90. }
  91.  
  92. implementation
  93.  
  94. uses Strings, SysUtils, Tree;
  95.  
  96. {$R *.DFM}
  97.  
  98. procedure TFileSysPropDlg.FormCreate(Sender: TObject);
  99. begin
  100.   Changes := [scFileSystem];
  101.   Notebook.PageIndex := 0;
  102.  
  103.   { General }
  104.   Sorting.ItemIndex := Integer(DefaultSort);
  105.   IconEdit.Text := Trim(IconStrings);
  106.   IconPathEdit.Text := ini.ReadString('File system', 'UserIcons', '');
  107.   FilterEdit.Text := DefaultFilter;
  108.  
  109.   { Details }
  110.   cbFileHints.Checked := FileHints;
  111.   sbDelay.Position := HintDelay;
  112.   rbDOSFilenames.Checked := not UseDescriptions;
  113.   rb4DOSDesc.Checked := UseDescriptions;
  114.   cbSimul4DOS.Checked := Simul4DOS;
  115.   cbDescCaptions.Checked := DescCaptions;
  116.  
  117.   { Options }
  118.   ConfirmList.SetData(
  119.     [ConfirmCopyStart, ConfirmMoveStart, ConfirmDelStart,
  120.      ConfirmCopyFile, ConfirmMoveFile, ConfirmDelFile,
  121.      ConfirmReplace, ConfirmProtect, ConfirmCopyFolder,
  122.      ConfirmMoveFolder, ConfirmDelFolder, ConfirmNewAlias]);
  123.  
  124.   MiscList.SetData(
  125.     [BackCopying, ShowHidSys, ShowList, ProgDrop,
  126.      FindVersion, FindDlgIcons, RefreshFolders, AliasArrows,
  127.      HintDesc, HintDate, HintTime, HintAttrib]);
  128.  
  129.   { Utilities }
  130.   InspectEdit.Text := InspectProg;
  131.   DefaultEdit.Text := DefaultProg;
  132.   UndelEdit.Text := UndeleteProg;
  133.   DiskEdit.Text := DiskProg;
  134. end;
  135.  
  136.  
  137. procedure TFileSysPropDlg.OKBtnClick(Sender: TObject);
  138. begin
  139.   { General }
  140.   DefaultSort := TSortOrder(Sorting.ItemIndex);
  141.   IconStrings := ' ' + Trim(Lowercase(IconEdit.Text)) + ' ';
  142.   ini.WriteString('File system', 'UserIcons', IconPathEdit.Text);
  143.   DefaultFilter := FilterEdit.Text;
  144.  
  145.   { Details }
  146.  
  147.   FileHints := cbFileHints.Checked;
  148.   HintDelay := sbDelay.Position;
  149.   UseDescriptions := rb4DOSDesc.Checked;
  150.   DescCaptions := cbDescCaptions.Checked;
  151.   Simul4DOS := cbSimul4DOS.Checked;
  152.  
  153.   { Options }
  154.   ConfirmList.GetData(
  155.     [@ConfirmCopyStart, @ConfirmMoveStart, @ConfirmDelStart,
  156.      @ConfirmCopyFile, @ConfirmMoveFile, @ConfirmDelFile,
  157.      @ConfirmReplace, @ConfirmProtect, @ConfirmCopyFolder,
  158.      @ConfirmMoveFolder, @ConfirmDelFolder, @ConfirmNewAlias]);
  159.  
  160.   MiscList.GetData(
  161.     [@BackCopying, @ShowHidSys, @ShowList, @ProgDrop,
  162.      @FindVersion, @FindDlgIcons, @RefreshFolders, @AliasArrows,
  163.      @HintDesc, @HintDate, @HintTime, @HintAttrib]);
  164.  
  165.   InspectProg := InspectEdit.Text;
  166.   DefaultProg := DefaultEdit.Text;
  167.   UndeleteProg := UndelEdit.Text;
  168.   DiskProg := DiskEdit.Text;
  169.  
  170.   SaveFileSysProp;
  171.   AnnounceSettingsChanged(Changes);
  172. end;
  173.  
  174.  
  175.  
  176. procedure TFileSysPropDlg.rb4DOSDescClick(Sender: TObject);
  177. const
  178.   FontColors : array[Boolean] of TColor = (clGray, clBlack);
  179. begin
  180.   DescPanel.Enabled := rb4DOSDesc.Checked;
  181.   DescPanel.Font.Color := FontColors[rb4DOSDesc.Checked];
  182.   if Showing then Include(Changes, sc4DOS);
  183. end;
  184.  
  185.  
  186. procedure TFileSysPropDlg.InspectEditDblClick(Sender: TObject);
  187. begin
  188.   if OpenDialog.Execute then
  189.     (Sender as TEdit).Text := Lowercase(OpenDialog.Filename);
  190. end;
  191.  
  192.  
  193. procedure TFileSysPropDlg.IconPathEditDblClick(Sender: TObject);
  194. begin
  195.   IconPathEdit.Text := SelectFolder(IconPathEdit.Text);
  196. end;
  197.  
  198. end.
  199.