source: trunk/Forms/UFormSettings.pas

Last change on this file was 207, checked in by chronos, 3 years ago
  • Modified: Updated Common package.
  • Modified: CoolTranslator package merged into Common package.
  • Fixed: Build with Lazarus 2.0.12
File size: 3.6 KB
Line 
1unit UFormSettings;
2
3{$mode delphi}
4
5interface
6
7uses
8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
9 Menus, Spin, ExtCtrls, ULanguages;
10
11type
12
13 { TFormSettings }
14
15 TFormSettings = class(TForm)
16 Bevel1: TBevel;
17 ButtonOk: TButton;
18 ButtonCancel: TButton;
19 CheckBoxReopenLastFileOnStart: TCheckBox;
20 CheckBoxAutomaticDPI: TCheckBox;
21 CheckBoxStartMinimizedToTray: TCheckBox;
22 CheckBoxStartOnLogon: TCheckBox;
23 CheckBoxAlwaysOnTop: TCheckBox;
24 ComboBoxLanguage: TComboBox;
25 ComboBoxTheme: TComboBox;
26 Label1: TLabel;
27 Label2: TLabel;
28 Label3: TLabel;
29 SpinEditDPI: TSpinEdit;
30 procedure ButtonOkClick(Sender: TObject);
31 procedure CheckBoxAutomaticDPIChange(Sender: TObject);
32 procedure CheckBoxStartOnLogonChange(Sender: TObject);
33 procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
34 procedure FormCreate(Sender: TObject);
35 procedure FormShow(Sender: TObject);
36 private
37 { private declarations }
38 public
39 procedure Load;
40 procedure Save;
41 procedure UpdateInterface;
42 end;
43
44var
45 FormSettings: TFormSettings;
46
47implementation
48
49{$R *.lfm}
50
51uses
52 UCore, UTheme;
53
54{ TFormSettings }
55
56procedure TFormSettings.FormShow(Sender: TObject);
57begin
58 Core.PersistentForm1.Load(Self);
59end;
60
61procedure TFormSettings.ButtonOkClick(Sender: TObject);
62begin
63end;
64
65procedure TFormSettings.CheckBoxAutomaticDPIChange(Sender: TObject);
66begin
67 UpdateInterface;
68end;
69
70procedure TFormSettings.CheckBoxStartOnLogonChange(Sender: TObject);
71begin
72 UpdateInterface;
73end;
74
75procedure TFormSettings.FormClose(Sender: TObject; var CloseAction: TCloseAction
76 );
77begin
78 Core.PersistentForm1.Save(Self);
79end;
80
81procedure TFormSettings.FormCreate(Sender: TObject);
82begin
83 Core.Translator.TranslateComponentRecursive(Self);
84 Core.ThemeManager.UseTheme(Self);
85 Core.ThemeManager.Themes.LoadToStrings(ComboBoxTheme.Items);
86 Core.Translator.LanguageListToStrings(ComboBoxLanguage.Items);
87end;
88
89procedure TFormSettings.Load;
90begin
91 ComboBoxLanguage.ItemIndex := ComboBoxLanguage.Items.IndexOfObject(Core.Translator.Language);
92 if ComboBoxLanguage.ItemIndex = -1 then ComboBoxLanguage.ItemIndex := 0;
93 ComboBoxTheme.ItemIndex := ComboBoxTheme.Items.IndexOfObject(Core.ThemeManager.Theme);
94 if ComboBoxTheme.ItemIndex = -1 then ComboBoxTheme.ItemIndex := 0;
95 CheckBoxAlwaysOnTop.Checked := Core.AlwaysOnTop;
96 CheckBoxStartOnLogon.Checked := Core.StartOnLogon;
97 CheckBoxStartMinimizedToTray.Checked := Core.StartMinimizedToTray;
98 CheckBoxAutomaticDPI.Checked := Core.ScaleDPI1.AutoDetect;
99 SpinEditDPI.Value := Core.ScaleDPI1.DPI.X;
100 CheckBoxReopenLastFileOnStart.Checked := Core.ReopenLastFileOnStart;
101 UpdateInterface;
102end;
103
104procedure TFormSettings.Save;
105begin
106 if ComboBoxLanguage.ItemIndex <> -1 then
107 Core.Translator.Language := TLanguage(ComboBoxLanguage.Items.Objects[ComboBoxLanguage.ItemIndex]);
108 if ComboBoxTheme.ItemIndex <> -1 then
109 Core.ThemeManager.Theme := TTheme(ComboBoxTheme.Items.Objects[ComboBoxTheme.ItemIndex]);
110 Core.AlwaysOnTop := CheckBoxAlwaysOnTop.Checked;
111 Core.StartOnLogon := CheckBoxStartOnLogon.Checked;
112 Core.StartMinimizedToTray := CheckBoxStartMinimizedToTray.Checked;
113 Core.ScaleDPI1.AutoDetect := CheckBoxAutomaticDPI.Checked;
114 Core.ScaleDPI1.DPI := Point(SpinEditDPI.Value, SpinEditDPI.Value);
115 Core.ReopenLastFileOnStart := CheckBoxReopenLastFileOnStart.Checked;
116end;
117
118procedure TFormSettings.UpdateInterface;
119begin
120 CheckBoxStartMinimizedToTray.Enabled := CheckBoxStartOnLogon.Checked;
121 SpinEditDPI.Enabled := not CheckBoxAutomaticDPI.Checked;
122 Label2.Enabled := not CheckBoxAutomaticDPI.Checked;
123end;
124
125end.
126
Note: See TracBrowser for help on using the repository browser.