source: tags/1.2.0/Forms/UFormSettings.pas

Last change on this file was 23, checked in by chronos, 4 years ago
  • Added: Snap package definition file.
  • Fixed: Selected theme in settings also changed language.
  • Modified: Load correctly language files if installed on Linux.
File size: 3.1 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 ComboBoxLanguage: TComboBox;
22 ComboBoxTheme: TComboBox;
23 Label1: TLabel;
24 Label2: TLabel;
25 LabelDPI: TLabel;
26 SpinEditDPI: TSpinEdit;
27 procedure ButtonOkClick(Sender: TObject);
28 procedure CheckBoxAutomaticDPIChange(Sender: TObject);
29 procedure CheckBoxStartOnLogonChange(Sender: TObject);
30 procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
31 procedure FormCreate(Sender: TObject);
32 procedure FormShow(Sender: TObject);
33 private
34 { private declarations }
35 public
36 procedure LoadData;
37 procedure SaveData;
38 procedure UpdateInterface;
39 end;
40
41var
42 FormSettings: TFormSettings;
43
44
45implementation
46
47{$R *.lfm}
48
49uses
50 UCore, UTheme;
51
52{ TFormSettings }
53
54procedure TFormSettings.FormShow(Sender: TObject);
55begin
56 Core.PersistentForm1.Load(Self);
57
58 Core.Translator.LanguageListToStrings(ComboBoxLanguage.Items);
59 ComboBoxLanguage.ItemIndex := ComboBoxLanguage.Items.IndexOfObject(Core.Translator.Language);
60 if ComboBoxLanguage.ItemIndex = -1 then ComboBoxLanguage.ItemIndex := 0;
61
62 Core.ThemeManager1.Themes.LoadToStrings(ComboBoxTheme.Items);
63 ComboBoxTheme.ItemIndex := ComboBoxTheme.Items.IndexOfObject(Core.ThemeManager1.Theme);
64 if ComboBoxTheme.ItemIndex = -1 then ComboBoxTheme.ItemIndex := 0;
65end;
66
67procedure TFormSettings.ButtonOkClick(Sender: TObject);
68begin
69 if ComboBoxLanguage.ItemIndex <> -1 then
70 Core.Translator.Language := TLanguage(ComboBoxLanguage.Items.Objects[ComboBoxLanguage.ItemIndex]);
71 if ComboBoxTheme.ItemIndex <> -1 then
72 Core.ThemeManager1.Theme := TTheme(ComboBoxTheme.Items.Objects[ComboBoxTheme.ItemIndex]);
73end;
74
75procedure TFormSettings.CheckBoxAutomaticDPIChange(Sender: TObject);
76begin
77 UpdateInterface;
78end;
79
80procedure TFormSettings.CheckBoxStartOnLogonChange(Sender: TObject);
81begin
82 UpdateInterface;
83end;
84
85procedure TFormSettings.FormClose(Sender: TObject; var CloseAction: TCloseAction
86 );
87begin
88 Core.PersistentForm1.Save(Self);
89end;
90
91procedure TFormSettings.FormCreate(Sender: TObject);
92begin
93 Core.Translator.TranslateComponentRecursive(Self);
94 Core.ThemeManager1.UseTheme(Self);
95end;
96
97procedure TFormSettings.LoadData;
98begin
99 CheckBoxAutomaticDPI.Checked := Core.ScaleDPI1.AutoDetect;
100 SpinEditDPI.Value := Core.ScaleDPI1.DPI.X;
101 CheckBoxReopenLastFileOnStart.Checked := Core.ReopenLastFileOnStart;
102 UpdateInterface;
103end;
104
105procedure TFormSettings.SaveData;
106begin
107 Core.ScaleDPI1.AutoDetect := CheckBoxAutomaticDPI.Checked;
108 Core.ScaleDPI1.DPI := Point(SpinEditDPI.Value, SpinEditDPI.Value);
109 Core.ReopenLastFileOnStart := CheckBoxReopenLastFileOnStart.Checked;
110end;
111
112procedure TFormSettings.UpdateInterface;
113begin
114 SpinEditDPI.Enabled := not CheckBoxAutomaticDPI.Checked;
115 LabelDPI.Enabled := not CheckBoxAutomaticDPI.Checked;
116end;
117
118end.
119
Note: See TracBrowser for help on using the repository browser.