feffc4b02ee4064d0366689e4828cad70d01cae5
3 {$INCLUDE ../shared/a_modes.inc}
8 LCLIntf
, LCLType
, SysUtils
, Variants
, Classes
,
9 Graphics
, Controls
, Forms
, Dialogs
, StdCtrls
,
10 ExtCtrls
, ComCtrls
, Registry
, Math
;
16 TOptionsForm
= class (TForm
)
19 cbCheckerboard
: TCheckBox
;
20 cbCompress
: TCheckBox
;
22 ColorDialog
: TColorDialog
;
25 cbShowDots
: TCheckBox
;
26 cbShowTexture
: TCheckBox
;
27 cbShowSize
: TCheckBox
;
44 sPreviewColor
: TShape
;
49 // Количество недавно открытых:
53 LabelLanguage
: TLabel
;
54 rbRussian
: TRadioButton
;
55 rbEnglish
: TRadioButton
;
56 LabelGridSize
: TLabel
;
59 procedure bGridClick(Sender
: TObject
);
60 procedure FormActivate(Sender
: TObject
);
61 procedure bOKClick(Sender
: TObject
);
62 procedure bCancelClick(Sender
: TObject
);
63 procedure bBackClick(Sender
: TObject
);
64 procedure bPreviewClick(Sender
: TObject
);
67 { Private declarations }
69 { Public declarations }
73 OptionsForm
: TOptionsForm
;
75 procedure RegisterFileType(ext
: String; FileName
: String);
80 f_main
, StdConvs
, CONFIG
, g_language
, g_resources
, g_options
;
84 procedure RegisterFileType(ext
: String; FileName
: String);
89 reg
:= TRegistry
.Create();
93 RootKey
:= HKEY_CLASSES_ROOT
;
94 OpenKey('.'+ext
,True);
95 WriteString('',ext
+'file');
97 CreateKey(ext
+'file');
98 OpenKey(ext
+'file\DefaultIcon',True);
99 WriteString('',FileName
+',0');
101 OpenKey(ext
+'file\shell\open\command',True);
102 WriteString('',FileName
+' "%1"');
108 procedure TOptionsForm
.bGridClick(Sender
: TObject
);
110 if ColorDialog
.Execute
then
111 sDotColor
.Brush
.Color
:= ColorDialog
.Color
;
114 procedure TOptionsForm
.FormActivate(Sender
: TObject
);
116 sDotColor
.Brush
.Color
:= DotColor
;
117 cbShowDots
.Checked
:= DotEnable
;
118 cbShowTexture
.Checked
:= DrawTexturePanel
;
119 cbShowSize
.Checked
:= DrawPanelSize
;
120 eDotStepOne
.Text := IntToStr(DotStepOne
);
121 eDotStepTwo
.Text := IntToStr(DotStepTwo
);
122 sBackColor
.Brush
.Color
:= BackColor
;
123 sPreviewColor
.Brush
.Color
:= PreviewColor
;
124 cbCheckerboard
.Checked
:= UseCheckerboard
;
125 cbCompress
.Checked
:= Compress
;
126 cbBackup
.Checked
:= Backup
;
128 cbScale
.ItemIndex
:= 1
130 cbScale
.ItemIndex
:= 0;
132 cbDotSize
.ItemIndex
:= 1
134 cbDotSize
.ItemIndex
:= 0;
135 eRecent
.Text := IntToStr(RecentCount
);
138 if gLanguage
= LANGUAGE_RUSSIAN
then
140 rbRussian
.Checked
:= True;
141 rbEnglish
.Checked
:= False;
145 rbRussian
.Checked
:= False;
146 rbEnglish
.Checked
:= True;
150 procedure TOptionsForm
.bOKClick(Sender
: TObject
);
158 re
:= StrToIntDef(eRecent
.Text, 5);
164 if rbRussian
.Checked
then
165 str
:= LANGUAGE_RUSSIAN
167 str
:= LANGUAGE_ENGLISH
;
169 // Нужно сменить язык:
170 if gLanguage
<> str
then
173 //e_WriteLog('Read language file', MSG_NOTIFY);
174 //g_Language_Load(EditorDir+'\data\'+gLanguage+LANGUAGE_FILE_NAME);
175 g_Language_Set(gLanguage
);
178 DotColor
:= sDotColor
.Brush
.Color
;
179 DotEnable
:= cbShowDots
.Checked
;
181 if DotStep
= DotStepOne
then
185 DotStepOne
:= EnsureRange(StrToIntDef(eDotStepOne
.Text, 16), 4, 2048);
186 DotStepTwo
:= EnsureRange(StrToIntDef(eDotStepTwo
.Text, 8), 4, 2048);
188 DotStep
:= DotStepOne
190 DotStep
:= DotStepTwo
;
192 DrawTexturePanel
:= cbShowTexture
.Checked
;
193 DrawPanelSize
:= cbShowSize
.Checked
;
194 BackColor
:= sBackColor
.Brush
.Color
;
195 PreviewColor
:= sPreviewColor
.Brush
.Color
;
196 UseCheckerboard
:= cbCheckerboard
.Checked
;
197 Compress
:= cbCompress
.Checked
;
198 Backup
:= cbBackup
.Checked
;
200 if cbScale
.ItemIndex
= 1 then
205 if cbDotSize
.ItemIndex
= 1 then
210 config
:= TConfig
.CreateFile(CfgFileName
);
212 config
.WriteInt('Editor', 'DotColor', DotColor
);
213 config
.WriteBool('Editor', 'DotEnable', DotEnable
);
214 config
.WriteInt('Editor', 'DotStepOne', DotStepOne
);
215 config
.WriteInt('Editor', 'DotStepTwo', DotStepTwo
);
216 config
.WriteInt('Editor', 'DotStep', DotStep
);
217 config
.WriteInt('Editor', 'DotSize', cbDotSize
.ItemIndex
);
218 config
.WriteBool('Editor', 'DrawTexturePanel', DrawTexturePanel
);
219 config
.WriteBool('Editor', 'DrawPanelSize', DrawPanelSize
);
220 config
.WriteInt('Editor', 'BackColor', BackColor
);
221 config
.WriteInt('Editor', 'PreviewColor', PreviewColor
);
222 config
.WriteBool('Editor', 'UseCheckerboard', UseCheckerboard
);
223 config
.WriteInt('Editor', 'Scale', cbScale
.ItemIndex
);
224 config
.WriteInt('Editor', 'RecentCount', re
);
225 config
.WriteStr('Editor', 'Language', gLanguage
);
226 config
.WriteBool('Editor', 'Compress', Compress
);
227 config
.WriteBool('Editor', 'Backup', Backup
);
229 if RecentCount
<> re
then
232 MainForm
.RefreshRecentMenu();
235 config
.SaveFile(CfgFileName
);
240 procedure TOptionsForm
.bCancelClick(Sender
: TObject
);
245 procedure TOptionsForm
.bBackClick(Sender
: TObject
);
247 if ColorDialog
.Execute
then
248 sBackColor
.Brush
.Color
:= ColorDialog
.Color
;
251 procedure TOptionsForm
.bPreviewClick(Sender
: TObject
);
253 if ColorDialog
.Execute
then
254 sPreviewColor
.Brush
.Color
:= ColorDialog
.Color
;