Apophysis-AV/Forms/Options.pas

1759 lines
62 KiB
ObjectPascal
Raw Permalink Normal View History

2022-03-08 12:25:51 -05:00
{
Apophysis Copyright (C) 2001-2004 Mark Townsend
Apophysis Copyright (C) 2005-2006 Ronald Hordijk, Piotr Borys, Peter Sdobnov
Apophysis Copyright (C) 2007-2008 Piotr Borys, Peter Sdobnov
Apophysis "3D hack" Copyright (C) 2007-2008 Peter Sdobnov
Apophysis "7X" Copyright (C) 2009-2010 Georg Kiehne
Apophysis AV "Phoenix Edition" Copyright (C) 2021-2022 Alice V. Koryagina
2022-03-08 12:25:51 -05:00
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
}
//{$D-,L-,O+,Q-,R-,Y-,S-}
2022-03-08 12:25:51 -05:00
unit Options;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, ExtCtrls, Buttons, Registry, CheckLst,
MMSystem, FileCtrl, StrUtils, ShellAPI, ShlObj, Vcl.Samples.Spin;
2022-03-08 12:25:51 -05:00
type
TOptionsForm = class(TForm)
btnOK: TButton;
btnCancel: TButton;
OpenDialog: TOpenDialog;
Tabs: TPageControl;
GeneralPage: TTabSheet;
btnLanguage: TSpeedButton;
2022-03-08 12:25:51 -05:00
pnlJPEGQuality: TPanel;
chkConfirmDel: TCheckBox;
chkConfirmExit: TCheckBox;
chkConfirmStopRender: TCheckBox;
cbUseTemplate: TCheckBox;
cbMissingPlugin: TCheckBox;
pnlMultithreading: TPanel;
cbNrTheads: TComboBox;
pnlPNGTransparency: TPanel;
grpGuidelines: TGroupBox;
cbGL: TCheckBox;
pnlCenterLine: TPanel;
shCenterLine: TShape;
pnlThirdsLine: TPanel;
shThirdsLine: TShape;
pnlGRLine: TPanel;
shGRLine: TShape;
pnlCenter: TPanel;
pnlThirds: TPanel;
pnlGoldenRatio: TPanel;
Panel46: TPanel;
txtLanguageFile: TComboBox;
cbPNGTransparency: TComboBox;
txtJPEGquality: TComboBox;
chkEngLayout: TCheckBox;
chkConfirmClearScript: TCheckBox;
GroupBox15: TGroupBox;
btnBrowseSound: TSpeedButton;
btnPlay: TSpeedButton;
Label44: TLabel;
txtSoundFile: TEdit;
chkPlaysound: TCheckBox;
chkShowRenderStats: TCheckBox;
chkShowRenderImage: TCheckBox;
chkAutoSaveXML: TCheckBox;
chkApplyFlatten: TCheckBox;
2022-03-08 12:25:51 -05:00
EditorPage: TTabSheet;
GroupBox1: TGroupBox;
chkUseXFormColor: TCheckBox;
chkHelpers: TCheckBox;
chkShowAllXforms: TCheckBox;
2022-03-08 12:25:51 -05:00
GroupBox21: TGroupBox;
chkAxisLock: TCheckBox;
chkExtendedEdit: TCheckBox;
chkXaosRebuild: TCheckBox;
chkResetCoefs: TCheckBox;
chkResetLinear: TCheckBox;
2022-03-08 12:25:51 -05:00
grpEditorColors: TGroupBox;
pnlBackground: TPanel;
pnlReferenceC: TPanel;
pnlHelpers: TPanel;
pnlGrid: TPanel;
pnlBackColor: TPanel;
shBackground: TShape;
pnlReference: TPanel;
shRef: TShape;
pnlHelpersColor: TPanel;
shHelpers: TShape;
pnlGridColor1: TPanel;
shGC1: TShape;
pnlGridColor2: TPanel;
shGC2: TShape;
pnlReflection: TPanel;
pnlReflectionC: TPanel;
shReflection: TShape;
2022-03-08 12:25:51 -05:00
chkEnableEditorPreview: TCheckBox;
Panel48: TPanel;
tbEPTransparency: TTrackBar;
DisplayPage: TTabSheet;
GroupBox2: TGroupBox;
pnlLowQ: TPanel;
pnlMediumQ: TPanel;
pnlHighQ: TPanel;
txtHighQuality: TEdit;
txtMediumQuality: TEdit;
txtLowQuality: TEdit;
grpRendering: TGroupBox;
pnlDensity: TPanel;
pnlGamma: TPanel;
pnlBright: TPanel;
pnlVibrancy: TPanel;
pnlRelGamma: TPanel;
pnlOSample: TPanel;
pnlFilter: TPanel;
txtGammaThreshold: TEdit;
txtFilterRadius: TEdit;
txtOversample: TEdit;
txtVibrancy: TEdit;
txtBrightness: TEdit;
txtGamma: TEdit;
txtSampleDensity: TEdit;
pnlFuse: TPanel;
txtFuse: TSpinEdit;
pnlContrast: TPanel;
txtContrast: TEdit;
GroupBox7: TGroupBox;
pnSTile: TPanel;
pnRTile: TPanel;
pnHexTile: TPanel;
txtHexTile: TEdit;
txtRTile: TEdit;
txtSTile: TEdit;
rgRotationMode: TRadioGroup;
rgZoomingMode: TRadioGroup;
2022-03-08 12:25:51 -05:00
GroupBox20: TGroupBox;
Label48: TLabel;
chkShowTransparency: TCheckBox;
chkExtendMainPreview: TCheckBox;
pnlExtension: TPanel;
cbExtendPercent: TComboBox;
chkUseSmallThumbs: TCheckBox;
rgEnumMode: TRadioGroup;
2022-03-08 12:25:51 -05:00
RandomPage: TTabSheet;
gpNumberOfTransforms: TGroupBox;
udMinXforms: TUpDown;
udMaxXForms: TUpDown;
Panel15: TPanel;
Panel16: TPanel;
txtMaxXforms: TEdit;
txtMinXForms: TEdit;
gpFlameTitlePrefix: TGroupBox;
udBatchSize: TUpDown;
chkKeepBackground: TCheckBox;
Panel11: TPanel;
Panel12: TPanel;
txtBatchSize: TEdit;
txtRandomPrefix: TEdit;
pnlRandBackground: TPanel;
pnlRandBackColor: TPanel;
shRandBackColor: TShape;
2022-03-08 12:25:51 -05:00
gpMutationTransforms: TGroupBox;
udMinMutate: TUpDown;
udMaxMutate: TUpDown;
Panel13: TPanel;
Panel14: TPanel;
txtMaxMutate: TEdit;
txtMinMutate: TEdit;
gpForcedSymmetry: TGroupBox;
udSymOrder: TUpDown;
udSymNVars: TUpDown;
Panel17: TPanel;
Panel18: TPanel;
Panel19: TPanel;
txtSymNVars: TEdit;
txtSymOrder: TEdit;
cmbSymType: TComboBox;
grpGradient: TRadioGroup;
GroupBox16: TGroupBox;
btnGradientsFile: TSpeedButton;
txtGradientsFile: TEdit;
VariationsPage: TTabSheet;
btnSetAll: TButton;
btnClearAll: TButton;
btnInvert: TButton;
VarsPages: TPageControl;
tabRandomVars: TTabSheet;
2022-03-08 12:25:51 -05:00
clbVarEnabled: TCheckListBox;
tabFavouriteVars: TTabSheet;
clbVarFavourite: TCheckListBox;
2022-03-08 12:25:51 -05:00
GradientPage: TTabSheet;
GroupBox13: TGroupBox;
Panel28: TPanel;
Panel29: TPanel;
txtTryLength: TEdit;
txtNumtries: TEdit;
GroupBox17: TGroupBox;
udMinHue: TUpDown;
Panel20: TPanel;
Panel21: TPanel;
udMaxHue: TUpDown;
txtMaxHue: TEdit;
txtMinHue: TEdit;
GroupBox18: TGroupBox;
Panel22: TPanel;
Panel23: TPanel;
udMinSat: TUpDown;
txtMinSat: TEdit;
udmaxSat: TUpDown;
txtMaxSat: TEdit;
GroupBox22: TGroupBox;
Panel24: TPanel;
Panel25: TPanel;
udMinLum: TUpDown;
txtMinLum: TEdit;
udMaxLum: TUpDown;
txtMaxLum: TEdit;
GroupBox23: TGroupBox;
Panel26: TPanel;
Panel27: TPanel;
udMinNodes: TUpDown;
txtMinNodes: TEdit;
udMaxNodes: TUpDown;
txtMaxNodes: TEdit;
rgColorBlend: TRadioGroup;
chkEqualStripes: TCheckBox;
2022-03-08 12:25:51 -05:00
UPRPage: TTabSheet;
chkAdjustDensity: TCheckBox;
GroupBox11: TGroupBox;
Panel37: TPanel;
Panel38: TPanel;
txtUPRHeight: TEdit;
txtUPRWidth: TEdit;
GroupBox9: TGroupBox;
Panel34: TPanel;
Panel35: TPanel;
Panel36: TPanel;
txtUPROversample: TEdit;
txtUPRFilterRadius: TEdit;
txtFIterDensity: TEdit;
GroupBox4: TGroupBox;
Panel30: TPanel;
Panel31: TPanel;
txtFCFile: TEdit;
txtFCIdent: TEdit;
GroupBox5: TGroupBox;
Panel32: TPanel;
Panel33: TPanel;
txtFFFile: TEdit;
txtFFIdent: TEdit;
PathsPage: TTabSheet;
btnDefParams: TSpeedButton;
2022-03-08 12:25:51 -05:00
btnSmooth: TSpeedButton;
btnDefLibrary: TSpeedButton;
2022-03-08 12:25:51 -05:00
btnRenderer: TSpeedButton;
btnHelp: TSpeedButton;
Label49: TLabel;
btnFindDefaultSaveFile: TSpeedButton;
btnPluginPath: TSpeedButton;
btnSShotPath: TSpeedButton;
btnDefScript: TSpeedButton;
2022-03-08 12:25:51 -05:00
chkRememberLastOpen: TCheckBox;
Panel39: TPanel;
txtDefParameterFile: TEdit;
Panel40: TPanel;
txtDefSmoothFile: TEdit;
Panel41: TPanel;
Panel42: TPanel;
Panel43: TPanel;
txtLibrary: TEdit;
txtRenderer: TEdit;
txtHelp: TEdit;
cbEnableAutosave: TCheckBox;
Panel44: TPanel;
txtDefaultSaveFile: TEdit;
Panel45: TPanel;
cbFreq: TComboBox;
GroupBox3: TGroupBox;
btnChaotica: TSpeedButton;
Panel47: TPanel;
txtChaotica: TEdit;
Panel49: TPanel;
Panel50: TPanel;
txtPluginFolder: TEdit;
pnlScreenShot: TPanel;
txtSShotFolder: TEdit;
pnlScriptFile: TPanel;
txtDefScript: TEdit;
chkSyncTriangles: TCheckBox;
gbNotifications: TGroupBox;
gbDefaults: TGroupBox;
chkOldPaletteFormat: TCheckBox;
2022-03-08 12:25:51 -05:00
chkRandomTemplates: TCheckBox;
gbGradDefaults: TGroupBox;
chkConfirmResetUndo: TCheckBox;
gbAnimation: TGroupBox;
pnlFPS: TPanel;
pnlAnimPrefix: TPanel;
edAnimPrefix: TEdit;
seFPS: TSpinEdit;
pnlFrameExt: TPanel;
cbFrameExt: TComboBox;
chkCreateAnimFolder: TCheckBox;
2022-03-08 12:25:51 -05:00
procedure chkEnableEditorPreviewClick(Sender: TObject);
procedure btnChaoticaClick(Sender: TObject);
procedure btnLanguageClick(Sender: TObject);
2022-03-08 12:25:51 -05:00
procedure FormShow(Sender: TObject);
procedure btnOKClick(Sender: TObject);
procedure btnDefParamsClick(Sender: TObject);
2022-03-08 12:25:51 -05:00
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btnSmoothClick(Sender: TObject);
procedure cmbSymTypeChange(Sender: TObject);
procedure btnSetAllClick(Sender: TObject);
procedure btnClearAllClick(Sender: TObject);
procedure txtMinNodesChange(Sender: TObject);
procedure txtMaxNodesChange(Sender: TObject);
procedure txtMaxHueChange(Sender: TObject);
procedure txtMaxSatChange(Sender: TObject);
procedure txtMaxLumChange(Sender: TObject);
procedure txtMinHueChange(Sender: TObject);
procedure txtMinSatChange(Sender: TObject);
procedure txtMinLumChange(Sender: TObject);
procedure txtMinXFormsChange(Sender: TObject);
procedure txtMaxXformsChange(Sender: TObject);
procedure txtMinMutateChange(Sender: TObject);
procedure txtMaxMutateChange(Sender: TObject);
procedure btnRendererClick(Sender: TObject);
procedure btnDefLibraryClick(Sender: TObject);
2022-03-08 12:25:51 -05:00
procedure FormCreate(Sender: TObject);
procedure pnlBackColorClick(Sender: TObject);
procedure pnlReferenceClick(Sender: TObject);
procedure pnlGridColor1Click(Sender: TObject);
procedure pnlGridColor2Click(Sender: TObject);
procedure pnlHelpersColorClick(Sender: TObject);
procedure btnBrowseSoundClick(Sender: TObject);
procedure pnlCenterLineClick(Sender: TObject);
procedure pnlThirdsLineClick(Sender: TObject);
procedure pnlGRLineClick(Sender: TObject);
procedure btnPlayClick(Sender: TObject);
procedure btnGradientsFileClick(Sender: TObject);
procedure shCenterLineMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure shThirdsLineMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure shGRLineMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure UpdateShapeColors;
procedure shBackgroundMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure shGC1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure shGC2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure shRefMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure shHelpersMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure chkRememberLastOpenClick(Sender: TObject);
procedure btnFindDefaultSaveFileClick(Sender: TObject);
procedure cbEnableAutosaveClick(Sender: TObject);
procedure btnHelpClick(Sender: TObject);
procedure cbGLClick(Sender: TObject);
procedure btnPluginPathClick(Sender: TObject);
procedure shReflectionMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure pnlReflectionCClick(Sender: TObject);
procedure RenderPanelsDblClick(Sender: TObject);
procedure GradientPanelsDblClick(Sender: TObject);
procedure NumFieldKeyPress(Sender: TObject; var Key: Char);
procedure NumFloatKeyPress(Sender: TObject; var Key: Char);
procedure TilePanelDblClick(Sender: TObject);
procedure btnSShotPathClick(Sender: TObject);
procedure btnDefScriptClick(Sender: TObject);
procedure DefaultPathsDblCick(Sender: TObject);
procedure pnlRandBackColorClick(Sender: TObject);
procedure shRandBackColorMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure chkKeepBackgroundClick(Sender: TObject);
procedure btnInvertClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
OptionsForm: TOptionsForm;
implementation
{$R *.DFM}
uses
Main, Global, Editor, ControlPoint, XFormMan, Adjust, FormRender, Translation;
2022-03-08 12:25:51 -05:00
procedure TOptionsForm.UpdateShapeColors;
begin
shBackground.Brush.Color := pnlBackColor.Color;
shGC1.Brush.Color := pnlGridColor1.Color;
shGC2.Brush.Color := pnlGridColor2.Color;
shRef.Brush.Color := pnlReference.Color;
shReflection.Brush.Color := pnlReflectionC.Color; // AV
shHelpers.Brush.Color := pnlHelpersColor.Color;
shCenterLine.Brush.Color := pnlCenterLine.Color;
shThirdsLine.Brush.Color := pnlThirdsLine.Color;
shGRLine.Brush.Color := pnlGRLine.Color;
shRandBackColor.Brush.Color := pnlRandBackColor.Color; // AV
end;
procedure TOptionsForm.FormShow(Sender: TObject);
var
Registry: TRegistry;
i, j: integer;
s1, s2: string;
begin
{ Read position from registry }
Registry := TRegistry.Create;
try
Registry.RootKey := HKEY_CURRENT_USER;
if Registry.OpenKey('Software\' + APP_NAME + '\Forms\Options', False) then
begin
if Registry.ValueExists('Left') then
OptionsForm.Left := Registry.ReadInteger('Left');
if Registry.ValueExists('Top') then
OptionsForm.Top := Registry.ReadInteger('Top');
end;
Registry.CloseKey;
finally
Registry.Free;
end;
{ General tab }
txtDefParameterFile.Text := DefFlameFile;
txtDefSmoothFile.Text := defSmoothPaletteFile;
txtNumtries.text := IntToStr(Numtries);
txtTryLength.text := IntToStr(Trylength);
udBatchSize.Position := BatchSize;
if NrTreads <= 1 then
cbNrTheads.ItemIndex := 0 // AV: MT off
else if (NrTreads <= UseNrThreads) then
cbNrTheads.ItemIndex := NrTreads - 1 // AV: MT on
else
cbNrTheads.ItemIndex := UseNrThreads - 1; // AV: incorrect MT value
(* begin // AV: what if we'd have 100 threads? :)
//cbNrTheads.text := intTostr(NrTreads);
// Hack
cbNrTheads.ItemIndex := 0;
case NrTreads of
2: cbNrTheads.ItemIndex := 1;
3: cbNrTheads.ItemIndex := 2;
4: cbNrTheads.ItemIndex := 3;
5: cbNrTheads.ItemIndex := 4;
6: cbNrTheads.ItemIndex := 5;
7: cbNrTheads.ItemIndex := 6;
8: cbNrTheads.ItemIndex := 7;
9: cbNrTheads.ItemIndex := 8;
10: cbNrTheads.ItemIndex := 9;
11: cbNrTheads.ItemIndex := 10;
12: cbNrTheads.ItemIndex := 11;
end;
end; *)
chkConfirmDel.Checked := ConfirmDelete;
chkOldPaletteFormat.Checked := OldPaletteFormat;
chkConfirmExit.Checked := ConfirmExit;
chkConfirmStopRender.Checked := ConfirmStopRender;
chkConfirmClearScript.Checked := ConfirmClearScript; // AV
chkConfirmResetUndo.Checked := ConfirmResetUndo; // AV
2022-03-08 12:25:51 -05:00
chkRememberLastOpen.Checked := RememberLastOpenFile;
chkUseSmallThumbs.Checked := UseSmallThumbnails;
cbUseTemplate.Checked := AlwaysCreateBlankFlame;
cbMissingPlugin.Checked := WarnOnMissingPlugin;
// cbEmbedThumbs.Checked := EmbedThumbnails;
2022-03-08 12:25:51 -05:00
chkEngLayout.Checked := SetEngLayout; // AV
chkAutoSaveXML.Checked := AutoSaveXML; // AV
chkEqualStripes.Checked := EqualStripes;
chkRandomTemplates.Checked := RandomizeTemplates;
chkApplyFlatten.Checked := ApplyFlatten;
rgRotationMode.ItemIndex := MainForm_RotationMode;
if PreserveQuality then
rgZoomingMode.ItemIndex := 0
else
rgZoomingMode.ItemIndex := 1;
rgEnumMode.ItemIndex := FlameEnumMode; // AV
txtJPEGQuality.text := IntToStr(JPEGQuality);
chkPlaySound.Checked := PlaySoundOnRenderComplete;
txtSoundFile.Text := RenderCompleteSoundFile;
{ Animation }
seFPS.Value := AnimFPS;
edAnimPrefix.Text := defAnimPrefix;
cbFrameExt.ItemIndex := defFrameExt;
chkCreateAnimFolder.Checked := CreateAnimFolder;
2022-03-08 12:25:51 -05:00
{ Editor }
chkUseXFormColor.checked := UseTransformColors;
chkHelpers.Checked := HelpersEnabled;
chkExtendedEdit.Checked := ExtEditEnabled;
chkAxisLock.Checked := TransformAxisLock;
chkXaosRebuild.Checked := RebuildXaosLinks;
chkShowAllXforms.Checked := ShowAllXforms;
chkEnableEditorPreview.Checked := EnableEditorPreview;
tbEPTransparency.Position := EditorPreviewTransparency;
chkEnableEditorPreviewClick(self);
chkResetCoefs.Checked := AllowResetCoefs;
chkResetLinear.Checked := AllowResetLinear;
chkSyncTriangles.Checked := UseTriangleSync;
2022-03-08 12:25:51 -05:00
{ Display tab }
txtSampleDensity.Text := FloatToStr(defSampleDensity);
txtGamma.Text := FloatToStr(defGamma);
txtBrightness.Text := FloatToStr(defBrightness);
txtContrast.Text := FloatToStr(defContrast); // AV
txtVibrancy.Text := FloatToStr(defVibrancy);
txtOversample.Text := IntToStr(defOversample);
txtFilterRadius.Text := FloatToStr(defFilterRadius);
txtGammaThreshold.Text := FloatToStr(defGammaThreshold);
txtFuse.Value := Fuse; // AV
txtLowQuality.Text := FloatToStr(prevLowQuality);
txtMediumQuality.Text := FloatToStr(prevMediumQuality);
txtHighQuality.Text := FloatToStr(prevHighQuality);
txtHexTile.Text := FloatToStr(HexTR); // AV
txtSTile.Text := FloatToStr(Round6(SquareTR)); // AV
txtRTile.Text := FloatToStr(RhombTR); // AV
pnlBackColor.Color := EditorBkgColor;
2022-03-08 12:25:51 -05:00
pnlGridColor1.Color := GridColor1;
pnlGridColor2.Color := GridColor2;
pnlReference.color := ReferenceTriangleColor;
pnlReflectionC.Color := FlipColor; // AV
pnlHelpersColor.Color := HelpersColor; // AV
2022-03-08 12:25:51 -05:00
cbPNGTransparency.ItemIndex := PNGTransparency;
chkShowTransparency.Checked := ShowTransparency;
cbExtendPercent.Text := FloatToStr((MainPreviewScale - 1) / 0.02);
chkExtendMainPreview.Checked := ExtendMainPreview;
chkShowRenderStats.Checked := ShowRenderStats;
chkShowRenderImage.Checked := ShowRenderImage; // AV
{ Random tab }
udMinXforms.Position := randMinTransforms;
udMaxXforms.Position := randMaxTransforms;
udMinMutate.Position := mutantMinTransforms;
udMaxMutate.Position := mutantMaxTransforms;
txtRandomPrefix.text := RandomPrefix;
chkKeepbackground.Checked := KeepBackground;
cmbSymType.ItemIndex := SymmetryType;
if (SymmetryType = 0) or (SymmetryType = 1) then
begin
txtSymOrder.enabled := false;
txtSymNVars.enabled := false;
end;
udSymOrder.Position := SymmetryOrder;
udSymNVars.Position := SymmetryNVars;
pnlRandBackColor.Color := RandBackColor; // AV
2022-03-08 12:25:51 -05:00
chkKeepBackgroundClick(nil); // AV
{ Variations tab }
for i := 0 to NRVAR -1 do
begin
clbVarEnabled.Checked[i] := Variations[i];
clbVarFavourite.Checked[i] := FavouriteVariations[i]; // AV
end;
{ Gradient tab }
grpGradient.ItemIndex := randGradient;
txtGradientsFile.Text := randGradientFile;
udMinNodes.Position := MinNodes;
udMaxNodes.Position := MaxNodes;
udMinHue.Position := MinHue;
udMinSat.Position := MinSat;
udMinLum.Position := MinLum;
udMaxHue.Position := MaxHue;
udMaxSat.Position := MaxSat;
udMaxLum.Position := MaxLum;
rgColorBlend.ItemIndex := randColorBlend;
{ UPR tab }
txtFIterDensity.text := IntToStr(UPRSampleDensity);
txtUPRFilterRadius.text := FloatToStr(UPRFilterRadius);
txtUPROversample.text := IntToStr(UPROversample);
txtFCIdent.text := UPRColoringIdent;
txtFCFile.text := UPRColoringFile;
txtFFIdent.text := UPRFormulaIdent;
txtFFFile.text := UPRFormulaFile;
txtUPRWidth.text := IntToStr(UPRWidth);
txtUPRHeight.text := IntToStr(UPRHeight);
chkAdjustDensity.checked := UPRAdjustDensity;
txtRenderer.Text := flam3Path;
txtHelp.Text := HelpPath;
txtLibrary.text := defLibrary;
txtDefScript.Text := defScriptFile; // AV
cbEnableAutosave.Checked := AutoSaveEnabled;
txtDefaultSaveFile.Text := AutoSavePath;
cbFreq.ItemIndex := AutoSaveFreq;
cbEnableAutosaveClick(nil);
pnlCenterLine.Color := LineCenterColor;
pnlThirdsLine.Color := LineThirdsColor;
pnlGRLine.Color := LineGRColor;
2022-03-08 12:25:51 -05:00
cbGL.Checked := EnableGuides;
cbGLClick(nil);
txtChaotica.Text := ChaoticaPath;
txtPluginFolder.Text := PluginPath;
txtSShotFolder.Text := ScreenShotPath;
UpdateShapeColors;
j := -1;
txtLanguageFile.Items.Clear;
for i := 0 to AvailableLanguages.Count-1 do
begin
2022-03-08 12:25:51 -05:00
if AvailableLanguages.Strings[i] = '' then begin
txtLanguageFile.Items.Add('Default (English)');
end else begin
LanguageInfo(AvailableLanguages.Strings[i], s1, s2);
if (s2 <> '') then s1 := s2 + ' (' + s1 + ')';
txtLanguageFile.Items.Add(s1);
end;
if (lowercase(AvailableLanguages.Strings[i]) = lowercase(languagefile)) then
j := i;
end;
txtLanguageFile.ItemIndex := j;
end;
procedure TOptionsForm.GradientPanelsDblClick(Sender: TObject);
begin // AV: restore defaults
case TPanel(Sender).Tag of
0: txtMinHue.Text := '0';
1: txtMaxHue.Text := '600';
2: txtMinSat.Text := '0';
3: txtMaxSat.Text := '100';
4: txtMinLum.Text := '1';
5: txtMaxLum.Text := '100';
6: txtMinNodes.Text := '2';
7: txtMaxNodes.Text := '10';
8: txtNumTries.Text := '10';
9: txtTryLength.Text := '100000';
end;
end;
procedure TOptionsForm.NumFieldKeyPress(Sender: TObject; var Key: Char);
begin
if not CharinSet(Key,['0'..'9', #8, #13])
then Key:= #0;
end;
procedure TOptionsForm.NumFloatKeyPress(Sender: TObject; var Key: Char);
begin
if (Key = ',') then Key := '.';
if not CharinSet(Key,['0'..'9', #8, #13, '.'])
2022-03-08 12:25:51 -05:00
then Key:= #0;
end;
procedure TOptionsForm.btnOKClick(Sender: TObject);
var
vars: boolean;
i: integer;
warn: boolean;
begin
{ Variations tab }
{ Get option values from controls. Disallow bad values }
vars := false;
for i := 0 to NRVAR-1 do begin
Variations[i] := clbVarEnabled.Checked[i];
vars := vars or Variations[i];
FavouriteVariations[i] := clbVarFavourite.Checked[i]; // AV
end;
if vars = false then
Variations[0] := true;
warn := (SetEngLayout <> chkEngLayout.Checked);
{ AV: eliminate "List index out of bounds" error and memory leak
if 32- and 64-bit Apophysis paths are different }
i := txtLanguageFile.ItemIndex;
if (i >= 0) then
warn := warn or (LanguageFile <> AvailableLanguages[i]); // AV
2022-03-08 12:25:51 -05:00
{ General tab }
JPEGQuality := StrToIntDef(txtJPEGQuality.text, 100);
2022-03-08 12:25:51 -05:00
if JPEGQuality > 100 then JPEGQuality := 100;
if JPEGQuality < 1 then JPEGQuality := 100;
Numtries := StrToIntDef(txtNumtries.text, 1);
if NumTries < 1 then Numtries := 1;
Trylength := StrToIntDef(txtTrylength.text, 100);
if Trylength < 100 then trylength := 100;
2022-03-08 12:25:51 -05:00
BatchSize := udBatchSize.Position;
if BatchSize < 1 then BatchSize := 1;
if BatchSize > 300 then BatchSize := 300;
PNGTransparency := cbPNGTransparency.ItemIndex;
ShowTransparency := chkShowTransparency.Checked;
// NrTreads := StrToIntDef(cbNrTheads.text, 0); // AV: why? user cannot change this text!
NrTreads := cbNrTheads.ItemIndex + 1; // AV
ConfirmDelete := chkConfirmDel.Checked;
OldPaletteFormat := chkOldPaletteFormat.Checked;
ConfirmExit := chkConfirmExit.Checked;
ConfirmStopRender := chkConfirmStopRender.Checked;
RememberLastOpenFile := chkRememberLastOpen.Checked;
UseSmallThumbnails := chkUseSmallThumbs.Checked;
AlwaysCreateBlankFlame := cbUseTemplate.Checked;
// EmbedThumbnails := cbEmbedThumbs.Checked;
2022-03-08 12:25:51 -05:00
WarnOnMissingPlugin := cbMissingPlugin.Checked;
SetEngLayout := chkEngLayout.Checked; // AV
ConfirmClearScript := chkConfirmClearScript.Checked; // AV
ConfirmResetUndo := chkConfirmResetUndo.Checked; // AV
2022-03-08 12:25:51 -05:00
AutoSaveXML := chkAutoSaveXML.Checked; // AV
EqualStripes := chkEqualStripes.Checked; // AV
RandomizeTemplates := chkRandomTemplates.Checked;
ApplyFlatten := chkApplyFlatten.Checked;
{ AV: eliminate "List index out of bounds" error and memory leak
if 32- and 64-bit Apophysis paths are different }
if (i >= 0) then LanguageFile := AvailableLanguages.Strings[i];
2022-03-08 12:25:51 -05:00
MainForm_RotationMode := rgRotationMode.ItemIndex;
PreserveQuality := (rgZoomingMode.ItemIndex = 0);
FlameEnumMode := rgEnumMode.ItemIndex; // AV
LineCenterColor := pnlCenterLine.Color;
LineThirdsColor := pnlThirdsLine.Color;
LineGRColor := pnlGRLine.Color;
EnableGuides := cbGL.Checked;
{ Animation }
AnimFPS := seFPS.Value;
defAnimPrefix := edAnimPrefix.Text;
defFrameExt := cbFrameExt.ItemIndex;
CreateAnimFolder := chkCreateAnimFolder.Checked;
{ Editor }
2022-03-08 12:25:51 -05:00
UseTransformColors := chkUseXFormColor.checked;
HelpersEnabled := chkHelpers.Checked;
ShowAllXforms := chkShowAllXforms.Checked;
ExtEditEnabled := chkExtendedEdit.Checked;
TransformAxisLock := chkAxisLock.Checked;
RebuildXaosLinks := chkXaosRebuild.Checked;
EnableEditorPreview := chkEnableEditorPreview.Checked;
EditorPreviewTransparency := tbEPTransparency.Position;
AllowResetCoefs := chkResetCoefs.Checked;
AllowResetLinear := chkResetLinear.Checked;
UseTriangleSync := chkSyncTriangles.Checked;
2022-03-08 12:25:51 -05:00
{ Display tab }
// AV: replaced all try-except blocks by a more convenient StrToFloatDef
defSampleDensity := StrToFloatDef(txtSampleDensity.Text, 5);
if defSampleDensity > 100 then
defSampleDensity := 100
else if defSampleDensity <= 0 then
defSampleDensity := 0.1;
defGamma := StrToFloatDef(txtGamma.Text, 4);
if defGamma < 0.1 then
defGamma := 0.1
else if defGamma > 10 then
defGamma := 10;
defBrightness := StrToFloatDef(txtBrightness.Text, 4);
if defBrightness < 0.1 then
defBrightness := 0.1
else if defBrightness > 100 then
defBrightness := 100;
defContrast := StrToFloatDef(txtContrast.Text, 1);
if defContrast < 0.1 then
defContrast := 0.1
else if defContrast > 10 then
defContrast := 10;
defVibrancy := StrToFloatDef(txtVibrancy.Text, 1);
if defVibrancy < 0.1 then defVibrancy := 0.1;
defFilterRadius := StrToFloatDef(txtFilterRadius.Text, 0.2);
2022-03-08 12:25:51 -05:00
if defFilterRadius <= 0 then defFilterRadius := 0.1;
defGammaThreshold := StrToFloatDef(txtGammaThreshold.Text, 0);
if defGammaThreshold < 0 then defGammaThreshold := 0;
defOversample := StrToIntDef(txtOversample.Text, 1);
if defOversample > 4 then
defOversample := 4
else if defOversample < 1 then
defOversample := 1;
prevLowQuality := StrToFloatDef(txtLowQuality.Text, 0.1);
if prevLowQuality > 100 then
prevLowQuality := 100
else if prevLowQuality < 0.01 then
prevLowQuality := 0.1;
prevMediumQuality := StrToFloatDef(txtMediumQuality.Text, 1);
if prevMediumQuality > 500 then
prevMediumQuality := 500
else if prevMediumQuality < 0.01 then
prevMediumQuality := 0.01;
prevHighQuality := StrToFloatDef(txtHighQuality.Text, 5);
if prevHighQuality > 1000 then
prevHighQuality := 1000
else if prevHighQuality < 0.01 then
prevHighQuality := 0.01;
2022-03-08 12:25:51 -05:00
Fuse := txtFuse.Value; // AV
HexTR := StrToFloatDef(txtHexTile.Text, 1); // AV
2022-03-08 12:25:51 -05:00
if HexTR < 0.1 then HexTR := 0.1;
SquareTR := StrToFloatDef(txtSTile.Text, 1); // AV
if SquareTR < 0.1 then SquareTR := 0.1;
RhombTR := StrToFloatDef(txtRTile.Text, 1); // AV
if RhombTR < 0.1 then RhombTR := 0.1;
2022-03-08 12:25:51 -05:00
MainPreviewScale := 1 + 0.02 * StrToFloatDef(cbExtendPercent.Text, 0);
if MainPreviewScale < 1 then
MainPreviewScale := 1
else if MainPreviewScale > 5 then
MainPreviewScale := 5;
2022-03-08 12:25:51 -05:00
ExtendMainPreview := chkExtendMainPreview.Checked;
ShowRenderStats := chkShowRenderStats.Checked;
ShowRenderImage := chkShowRenderImage.Checked; // AV
{ Random tab }
randMinTransforms := udMinXforms.Position;
randMaxTransforms := udMaxXforms.Position;
mutantMinTransforms := udMinMutate.Position;
mutantMaxTransforms := udMaxMutate.Position;
RandomPrefix := txtRandomPrefix.text;
SymmetryType := cmbSymType.ItemIndex;
SymmetryOrder := udSymOrder.Position;
SymmetryNVars := udSymNVars.Position;
KeepBackground := chkKeepbackground.Checked;
{Gradient tab }
randGradient := grpGradient.ItemIndex;
randGradientFile := txtGradientsFile.Text;
MinNodes := udMinNodes.Position;
MaxNodes := udMaxNodes.Position;
MinHue := udMinHue.Position;
MinSat := udMinSat.Position;
MinLum := udMinLum.Position;
MaxHue := udMaxHue.Position;
MaxSat := udMaxSat.Position;
MaxLum := udMaxLum.Position;
randColorBlend := rgColorBlend.ItemIndex;
{ UPR options }
UPRSampleDensity := StrToInt(txtFIterDensity.text);
UPRFilterRadius := StrToFloat(txtUPRFilterRadius.text);
UPROversample := StrToInt(txtUPROversample.text);
UPRColoringIdent := txtFCIdent.text;
UPRColoringFile := txtFCFile.text;
UPRFormulaIdent := txtFFIdent.text;
UPRFormulaFile := txtFFFile.text;
UPRAdjustDensity := chkAdjustDensity.checked;
UPRWidth := StrToInt(txtUPRWidth.text);
UPRHeight := StrToInt(txtUPRHeight.text);
flam3Path := txtRenderer.text;
{Paths}
defLibrary := txtLibrary.text;
// if (not RememberLastOpenFile) then // AV: fixed
defFlameFile := txtDefParameterFile.Text;
defSmoothPaletteFile := txtDefSmoothFile.Text;
PlaySoundOnRenderComplete := chkPlaySound.Checked;
RenderCompleteSoundFile := txtSoundFile.Text;
HelpPath := txtHelp.Text;
ChaoticaPath := txtChaotica.text;
ScreenShotPath := txtSShotFolder.Text; // AV
if (RightStr(ScreenShotPath, 1) <> '\') and (ScreenShotPath <> '') then
ScreenShotPath := ScreenShotPath + '\';
defScriptFile := txtDefScript.Text; // AV
PluginPath := txtPluginFolder.Text;
if (PluginPath = '') or (not DirectoryExists(PluginPath)) then
PluginPath := ExtractFilePath(Application.ExeName); // AV
if (RightStr(PluginPath, 1) <> '\') and (PluginPath <> '') then
PluginPath := PluginPath + '\';
AutoSaveEnabled := cbEnableAutosave.Checked;
AutoSavePath := txtDefaultSaveFile.Text;
AutoSaveFreq := cbFreq.ItemIndex; // AV:
MainForm.mnuExportFLame.Enabled := FileExists(flam3Path);
MainForm.mnuExportChaotica.Enabled := FileExists(chaoticaPath + '\chaotica.exe');
if (warn) then
Application.MessageBox(PChar(TextByKey('options-restartnotice')),
ApophysisSVN, MB_ICONWARNING);
2022-03-08 12:25:51 -05:00
ModalResult := mrOK; // AV: was Close;
2022-03-08 12:25:51 -05:00
end;
procedure TOptionsForm.btnDefParamsClick(Sender: TObject);
2022-03-08 12:25:51 -05:00
begin
OpenDialog.Filter := TextByKey('common-filter-flamefiles') + '|*.flame|' +
TextBykey('common-filter-allfiles') + '|*.*';
OpenDialog.InitialDir := ParamFolder; // AV
2022-03-08 12:25:51 -05:00
OpenDialog.FileName := '';
if OpenDialog.Execute then
txtDefParameterFile.text := OpenDialog.FileName;
2022-03-08 12:25:51 -05:00
end;
procedure TOptionsForm.btnDefScriptClick(Sender: TObject);
begin
OpenDialog.Filter := TextByKey('common-filter-scriptfiles') + '|*.aposcript;*.asc|'
+ TextBykey('common-filter-allfiles') + '|*.*';;
2022-03-08 12:25:51 -05:00
if DirectoryExists(ScriptPath) then
OpenDialog.InitialDir := ScriptPath + '\'
else
OpenDialog.InitialDir := ExtractFilePath(Application.ExeName);
OpenDialog.FileName := '';
OpenDialog.DefaultExt := 'asc';
if OpenDialog.Execute then
txtDefScript.Text := OpenDialog.FileName;
2022-03-08 12:25:51 -05:00
end;
procedure TOptionsForm.FormClose(Sender: TObject; var Action: TCloseAction);
var
Registry: TRegistry;
begin
{ Write position to registry }
Registry := TRegistry.Create;
try
Registry.RootKey := HKEY_CURRENT_USER;
if Registry.OpenKey('\Software\' + APP_NAME + '\Forms\Options', True) then
begin
Registry.WriteInteger('Top', OptionsForm.Top);
Registry.WriteInteger('Left', OptionsForm.Left);
end;
finally
Registry.Free;
end;
end;
procedure TOptionsForm.btnSmoothClick(Sender: TObject);
begin
OpenDialog.Filter := TextByKey('common-filter-gradientfiles') +'|*.gradient;*.ugr|'
+ TextBykey('common-filter-allfiles') + '|*.*';
2022-03-08 12:25:51 -05:00
OpenDialog.InitialDir := ExtractFilePath(defSmoothPaletteFile);
OpenDialog.FileName := '';
OpenDialog.DefaultExt := 'ugr';
if OpenDialog.Execute then
txtDefSmoothFile.text := OpenDialog.FileName;;
2022-03-08 12:25:51 -05:00
end;
procedure TOptionsForm.btnSShotPathClick(Sender: TObject); // AV
2022-03-08 12:25:51 -05:00
var sspath: string;
begin
sspath := ScreenShotPath;
if SelectDirectory(TextByKey('options-tab-environment-screenshotshint'), '',
sspath, [sdNewFolder, sdShowEdit, sdNewUI, sdValidateDir], Self) then
txtSShotFolder.Text := IfThen(RightStr(sspath, 1)='\', sspath, sspath + '\');
2022-03-08 12:25:51 -05:00
end;
procedure TOptionsForm.cmbSymTypeChange(Sender: TObject);
begin
if (cmbSymType.ItemIndex = 0) or (cmbSymType.ItemIndex = 1) then
begin
txtSymOrder.enabled := false;
txtSymNVars.enabled := false;
end else
begin
txtSymOrder.enabled := true;
txtSymNVars.enabled := true;
end;
end;
procedure TOptionsForm.DefaultPathsDblCick(Sender: TObject);
begin // AV: reset paths
case TPanel(Sender).Tag of
0: txtDefParameterFile.Text := '';
1: txtDefSmoothFile.Text := AppPath + 'Gradients\SmoothPalette.ugr';
2: txtLibrary.Text := AppPath + 'Functions.asc';
3: txtRenderer.Text := GetEnvVarValue('PROGRAMFILES') + '\flam3-3.0.1\flam3-render.exe';
4: txtHelp.Text := AppPath + 'Apophysis AV.chm';
5: begin
txtPluginFolder.Text := AppPath + 'Plugins\';
if FileExists(AppPath + 'ApoPluginSrc.dat') then
DeleteFile(AppPath + 'ApoPluginSrc.dat'); // delete old string
end;
6: txtSShotFolder.Text := AppPath + 'ScreenShots\';
7: txtDefScript.Text := '';
8: txtDefaultSaveFile.Text := AppPath + 'autosave.flame';
end;
end;
procedure TOptionsForm.btnSetAllClick(Sender: TObject);
var
i: integer;
begin
if VarsPages.ActivePageIndex = 0 then // AV
for i := 0 to NRVAR - 1 do clbVarEnabled.Checked[i] := True
//clbVarEnabled.CheckAll(cbChecked)
else
for i := 0 to NRVAR - 1 do clbVarFavourite.Checked[i] := True;
//clbVarFavourite.CheckAll(cbChecked);
end;
procedure TOptionsForm.btnClearAllClick(Sender: TObject);
var
i: integer;
begin
if VarsPages.ActivePageIndex = 0 then // AV
for i := 0 to NRVAR - 1 do clbVarEnabled.Checked[i] := False
//clbVarEnabled.CheckAll(cbUnchecked)
else
for i := 0 to NRVAR - 1 do clbVarFavourite.Checked[i] := False;
//clbVarFavourite.CheckAll(cbUnchecked);
end;
procedure TOptionsForm.txtMinNodesChange(Sender: TObject);
begin
if StrToInt(txtMinNodes.Text) > udMaxNodes.position then
udMaxNodes.Position := StrToInt(txtMinNodes.Text);
end;
procedure TOptionsForm.txtMaxNodesChange(Sender: TObject);
begin
if StrToInt(txtMaxNodes.Text) < udMinNodes.position then
udMinNodes.Position := StrToInt(txtMaxNodes.Text);
end;
procedure TOptionsForm.txtMaxHueChange(Sender: TObject);
begin
if StrToInt(txtMaxHue.Text) < udMinHue.position then
udMinHue.Position := StrToInt(txtMaxHue.Text);
end;
procedure TOptionsForm.txtMaxSatChange(Sender: TObject);
begin
if StrToInt(txtMaxSat.Text) < udMinSat.position then
udMinSat.Position := StrToInt(txtMaxSat.Text);
end;
procedure TOptionsForm.txtMaxLumChange(Sender: TObject);
begin
if StrToInt(txtMaxLum.Text) < udMinLum.position then
udMinLum.Position := StrToInt(txtMaxLum.Text);
end;
procedure TOptionsForm.txtMinHueChange(Sender: TObject);
begin
if StrToInt(txtMinHue.Text) > udMaxHue.position then
udMaxHue.Position := StrToInt(txtMinHue.Text);
end;
procedure TOptionsForm.txtMinSatChange(Sender: TObject);
begin
if StrToInt(txtMinSat.Text) > udMaxSat.position then
udMaxSat.Position := StrToInt(txtMinSat.Text);
end;
procedure TOptionsForm.txtMinLumChange(Sender: TObject);
begin
if StrToInt(txtMinLum.Text) > udMaxLum.position then
udMaxLum.Position := StrToInt(txtMinLum.Text);
end;
procedure TOptionsForm.txtMinXFormsChange(Sender: TObject);
begin
if StrToInt(txtMinXForms.Text) > udMaxXForms.position then
udMaxXFOrms.Position := StrToInt(txtMinXForms.Text);
end;
procedure TOptionsForm.txtMaxXformsChange(Sender: TObject);
begin
if StrToInt(txtMaxXForms.Text) < udMinXForms.position then
udMinXForms.Position := StrToInt(txtMaxXforms.Text);
end;
procedure TOptionsForm.txtMinMutateChange(Sender: TObject);
begin
if StrToInt(txtMinMutate.Text) > udMaxMutate.position then
udMaxMutate.Position := StrToInt(txtMinMutate.Text);
end;
procedure TOptionsForm.txtMaxMutateChange(Sender: TObject);
begin
if StrToInt(txtMaxMutate.Text) < udMinMutate.position then
udMinMutate.Position := StrToInt(txtMaxMutate.Text);
end;
procedure TOptionsForm.btnRendererClick(Sender: TObject);
begin
OpenDialog.Filter := TextBykey('common-filter-allfiles') + '|*.exe';
if FileExists(flam3Path) then
OpenDialog.InitialDir := ExtractFilePath(flam3Path)
else
OpenDialog.InitialDir := GetEnvironmentVariable('PROGRAMFILES');
OpenDialog.FileName := 'flam3-render.exe'; // AV
OpenDialog.DefaultExt := 'exe'; // AV
if OpenDialog.Execute then
txtRenderer.Text := OpenDialog.FileName;
2022-03-08 12:25:51 -05:00
end;
procedure TOptionsForm.btnDefLibraryClick(Sender: TObject);
2022-03-08 12:25:51 -05:00
begin
OpenDialog.Filter := TextByKey('common-filter-scriptfiles') + '|*.aposcript;*.asc|'
+ TextBykey('common-filter-allfiles') + '|*.*';
2022-03-08 12:25:51 -05:00
OpenDialog.InitialDir := ExtractFilePath(defLibrary);
OpenDialog.FileName := '';
OpenDialog.DefaultExt := '.asc';
if OpenDialog.Execute then
txtLibrary.Text := OpenDialog.FileName;
2022-03-08 12:25:51 -05:00
end;
procedure TOptionsForm.TilePanelDblClick(Sender: TObject);
begin
case TPanel(Sender).Tag of
0: txtSTile.Text := '1.414214';
1: txtRTile.Text := '1';
2: txtHexTile.Text := '2';
end;
end;
procedure TOptionsForm.FormCreate(Sender: TObject);
var
i: integer;
begin
// AV: to use only actual number of cores in the drop-down list
try
for i := 2 to GetCpuCount do
cbNrTheads.Items.Add(IntToStr(i));
except
cbNrTheads.Items.Clear;
for i := 1 to 12 do
2022-03-08 12:25:51 -05:00
cbNrTheads.Items.Add(IntToStr(i));
end;
UseNrThreads := cbNrTheads.Items.Count; // save nr processor cores
2022-03-08 12:25:51 -05:00
btnOK.Caption := TextByKey('common-ok');
btnCancel.Caption := TextByKey('common-cancel');
pnlLowQ.Caption := TextByKey('common-lowquality');
pnlMediumQ.Caption := TextByKey('common-mediumquality');
pnlHighQ.Caption := TextByKey('common-highquality');
btnDefParams.Hint := TextByKey('common-browse');
btnSmooth.Hint := btnDefParams.Hint;
btnDefLibrary.Hint := btnDefParams.Hint;
btnRenderer.Hint := btnDefParams.Hint;
btnHelp.Hint := btnDefParams.Hint;
btnPluginPath.Hint := btnDefParams.Hint;
btnSShotPath.Hint := btnDefParams.Hint;
btnChaotica.Hint := btnDefParams.Hint;
btnFindDefaultSaveFile.Hint := btnDefParams.Hint;
btnBrowseSound.Hint := btnDefParams.Hint;
btnDefScript.Hint := btnDefParams.Hint;
btnLanguage.Hint := btnDefParams.Hint;
2022-03-08 12:25:51 -05:00
Panel37.Caption := TextByKey('common-width');
Panel38.Caption := TextByKey('common-height');
Panel31.Caption := TextByKey('common-filename');
Panel33.Caption := TextByKey('common-filename');
Panel44.Caption := TextByKey('common-filename');
pnlFilter.Caption := TextByKey('common-filterradius');
Panel35.Caption := TextByKey('common-filterradius');
pnlDensity.Caption := TextByKey('common-density');
Panel34.Caption := TextByKey('common-density');
pnlOSample.Caption := TextByKey('common-oversample');
Panel36.Caption := TextByKey('common-oversample');
pnlGamma.Caption := TextByKey('common-gamma');
pnlBright.Caption := TextByKey('common-brightness');
pnlVibrancy.Caption := TextByKey('common-vibrancy');
pnlContrast.Caption := TextByKey('common-contrast'); // AV
pnlRelGamma.Caption := TextByKey('common-gammathreshold');
cbPNGTransparency.Items[1] := TextByKey('common-enabled');
cbPNGTransparency.Items[0] := TextByKey('common-disabled');
Panel13.Caption := TextByKey('common-minimum');
Panel15.Caption := TextByKey('common-minimum');
Panel21.Caption := TextByKey('common-minimum');
Panel22.Caption := TextByKey('common-minimum');
Panel25.Caption := TextByKey('common-minimum');
Panel26.Caption := TextByKey('common-minimum');
Panel14.Caption := TextByKey('common-maximum');
Panel16.Caption := TextByKey('common-maximum');
Panel20.Caption := TextByKey('common-maximum');
Panel23.Caption := TextByKey('common-maximum');
Panel24.Caption := TextByKey('common-maximum');
Panel27.Caption := TextByKey('common-maximum');
Label49.Caption := TextByKey('common-minutes');
Panel47.Caption := TextByKey('common-filename');
Panel50.Caption := TextByKey('options-tab-general-pluginpath');
Panel48.Caption := TextByKey('options-tab-editor-previewtransparency');
gbDefaults.Caption := TextByKey('options-tab-general-defaults');
gbGradDefaults.Caption := TextByKey('options-tab-general-defaults');
gbNotifications.Caption := TextByKey('options-tab-general-notifications');
2022-03-08 12:25:51 -05:00
pnlScreenShot.Caption := TextByKey('options-tab-environment-screenshots');
pnlScriptFile.Caption := TextByKey('options-tab-environment-defaultscript');
chkEnableEditorPreview.Caption := TextByKey('options-tab-editor-enablepreview');
chkAutoSaveXML.Caption := TextByKey('options-tab-general-autosavepasted');
self.Caption := TextByKey('options-title');
GeneralPage.Caption := TextByKey('options-tab-general-title');
Panel46.Caption := TextByKey('options-tab-general-language');
pnlMultithreading.Caption := TextByKey('options-tab-general-multithreading');
cbNrTheads.Items[0] := TextByKey('options-tab-general-multithreading-off');
pnlJPEGQuality.Caption := TextByKey('options-tab-general-jpegquality');
pnlPNGTransparency.Caption := TextByKey('options-tab-general-pngtransparency');
chkShowRenderStats.Caption := TextByKey('options-tab-general-showextendedstatistics');
chkShowRenderImage.Caption := TextByKey('options-tab-general-showrenderimage');
chkConfirmDel.Caption := TextByKey('options-tab-general-confirmdelete');
chkConfirmExit.Caption := TextByKey('options-tab-general-confirmexit');
chkconfirmStopRender.Caption := TextByKey('options-tab-general-confirmrenderstop');
chkConfirmClearScript.Caption := TextByKey('options-tab-general-confirmclearscript');
chkConfirmResetUndo.Caption := TextByKey('options-tab-general-confirmresetundo');
2022-03-08 12:25:51 -05:00
chkOldPaletteFormat.Caption := TextByKey('options-tab-general-oldgradientformat');
cbUseTemplate.Caption := TextByKey('options-tab-general-alwaysblankflame');
chkEqualStripes.Caption := TextByKey('options-tab-gradient-equalstripes');
cbMissingplugin.Caption := TextByKey('options-tab-general-enablemissingpluginswarning');
// cbEmbedThumbs.Caption := TextByKey('options-tab-general-enablethumbnailembedding');
2022-03-08 12:25:51 -05:00
chkEngLayout.Caption := TextByKey('options-tab-general-setenglayout');
chkRandomTemplates.Caption := TextByKey('options-tab-general-templaterandcolor');
chkApplyFlatten.Caption := TextByKey('options-tab-general-autoflatten');
rgRotationMode.Caption := TextByKey('options-tab-general-rotatemode');
rgRotationMode.Items[0] := TextByKey('options-tab-general-rotateimage');
rgRotationMode.Items[1] := TextByKey('options-tab-general-rotateframe');
rgZoomingMode.Caption := TextByKey('options-tab-general-zoommode');
rgZoomingMode.Items[0] := TextByKey('options-tab-general-preservequality');
rgZoomingMode.Items[1] := TextByKey('options-tab-general-preservespeed');
rgEnumMode.Caption := TextByKey('options-tab-general-enummode');
rgEnumMode.Items[0] := TextByKey('options-tab-general-enum0');
rgEnumMode.Items[1] := TextByKey('options-tab-general-enum1');
grpGuidelines.Caption := TextByKey('options-tab-general-guides');
cbGl.Caption := TextByKey('options-tab-general-enableguides');
pnlCenter.Caption := TextByKey('options-tab-general-guidecentercolor');
pnlThirds.Caption := TextByKey('options-tab-general-guidethirdscolor');
pnlGoldenRatio.Caption := TextByKey('options-tab-general-guidegoldenratiocolor');
EditorPage.Caption := TextByKey('options-tab-editor-title');
GroupBox1.Caption := TextByKey('options-tab-editor-editorgraph');
GroupBox21.Caption := TextByKey('options-tab-editor-editordefaults');
chkUseXFormColor.Caption := TextByKey('options-tab-editor-usetransformcolor');
chkHelpers.Caption := TextByKey('options-tab-editor-helperlines');
chkShowAllXForms.Caption := TextByKey('options-tab-editor-alwaysshowbothtransformtypes');
chkResetCoefs.Caption := TextByKey('options-tab-editor-resetcoefs'); // AV
chkResetLinear.Caption := TextByKey('options-tab-editor-resetlinear'); // AV
pnlBackground.Caption := TextByKey('options-tab-editor-backgroundcolor');
pnlGrid.Caption := TextByKey('options-tab-editor-gridcolors');
pnlReferenceC.Caption := TextByKey('options-tab-editor-referencecolor');
pnlHelpers.Caption := TextByKey('options-tab-editor-helpercolors');
pnlReflection.Caption := TextByKey('editor-tab-triangle-reflection');
chkExtendedEdit.Caption := TextByKey('options-tab-editor-extendededit');
chkAxisLock.Caption := TextByKey('options-tab-editor-locktransformaxes');
chkXaosRebuild.Caption := TextByKey('options-tab-editor-rebuildxaoslinks');
DisplayPage.Caption := TextByKey('options-tab-display-title');
grpRendering.Caption := TextByKey('options-tab-display-rendering');
GroupBox2.Caption := TextByKey('options-tab-display-previewdensity');
GroupBox20.Caption := TextByKey('options-tab-display-mainpreview');
chkExtendMainPreview.Caption := TextByKey('options-tab-display-extendpreviewbuffer');
pnlExtension.Caption := TextByKey('options-tab-display-extenspreviewbufferlabel');
chkShowTransparency.Caption := TextByKey('options-tab-display-showtransparency');
chkUseSmallThumbs.Caption := TextByKey('options-tab-display-usesmallthumbs');
RandomPage.Caption := TextByKey('options-tab-random-title');
gpNumberOfTransforms.Caption := TextByKey('options-tab-random-numberoftransforms');
gpMutationTransforms.Caption := TextByKey('options-tab-random-mutationtransforms');
gpFlameTitlePrefix.Caption := TextByKey('options-tab-random-randombatch');
gpForcedSymmetry.Caption := TextByKey('options-tab-random-forcedsymmetry');
Panel11.Caption := TextByKey('options-tab-random-batchsize');
Panel12.Caption := TextByKey('options-tab-random-titleprefix');
chkKeepBackground.Caption := TextByKey('options-tab-random-keepbackground');
Panel17.Caption := TextByKey('options-tab-random-symtype');
Panel18.Caption := TextByKey('options-tab-random-symorder');
Panel19.Caption := TextByKey('options-tab-random-symlimit');
cmbSymType.Items[0] := TextByKey('options-tab-random-type-none');
cmbSymType.Items[1] := TextByKey('options-tab-random-type-bilateral');
cmbSymType.Items[2] := TextByKey('options-tab-random-type-rotational');
cmbSymType.Items[3] := TextByKey('options-tab-random-type-dihedral');
grpGradient.Caption := TextByKey('options-tab-random-onrandom');
grpGradient.Items[0] := TextByKey('options-tab-random-userandom');
grpGradient.Items[1] := TextByKey('options-tab-random-usedefault');
grpGradient.Items[2] := TextByKey('options-tab-random-usecurrent');
grpGradient.Items[3] := TextByKey('options-tab-random-randomcalculated');
grpGradient.Items[4] := TextByKey('options-tab-random-randomfromfile');
rgColorBlend.Caption := TextByKey('options-tab-gradient-colorblend');
rgColorBlend.Items[0] := TextByKey('options-tab-gradient-rgbblend');
rgColorBlend.Items[1] := TextByKey('options-tab-gradient-hsvblend');
rgColorBlend.Items[2] := TextByKey('options-tab-gradient-noblend');
GroupBox16.Caption := TextByKey('options-tab-random-filetouse');
VariationsPage.Caption := TextByKey('options-tab-variations-title');
tabRandomVars.Caption := TextByKey('options-tab-variations-random'); // AV
tabFavouriteVars.Caption := TextByKey('options-tab-variations-faves'); // AV
btnSetAll.Caption := TextByKey('options-tab-variations-setall');
btnClearAll.Caption := TextByKey('options-tab-variations-clearall');
btnInvert.Caption := TextByKey('options-tab-variations-invert');
GradientPage.Caption := TextByKey('options-tab-gradient-title');
GroupBox23.Caption := TextByKey('options-tab-gradient-numberofnodes');
GroupBox13.Caption := TextByKey('options-tab-gradient-smoothpalette');
GroupBox17.Caption := TextByKey('options-tab-gradient-huebetween');
GroupBox18.Caption := TextByKey('options-tab-gradient-satbetween');
GroupBox22.Caption := TextByKey('options-tab-gradient-lumbetween');
Panel28.Caption := TextByKey('options-tab-gradient-numtries');
Panel29.Caption := TextByKey('options-tab-gradient-trylength');
UPRPage.Caption := TextByKey('options-tab-upr-title');
GroupBox9.Caption := TextByKey('options-tab-upr-paramdefaults');
GroupBox4.Caption := TextByKey('options-tab-upr-coloralgorithm');
GroupBox11.Caption := TextByKey('options-tab-upr-uprsize');
GroupBox5.Caption := TextByKey('options-tab-upr-formula');
Panel30.Caption := TextByKey('options-tab-upr-identifier');
Panel32.Caption := TextByKey('options-tab-upr-identifier');
chkAdjustDensity.Caption := TextByKey('options-tab-upr-adjustdensity');
PathsPage.Caption := TextByKey('options-tab-environment-title');
Panel39.Caption := TextByKey('options-tab-environment-defaultparams');
Panel40.Caption := TextByKey('options-tab-environment-smoothpalette');
Panel41.Caption := TextByKey('options-tab-environment-functionlib');
//Panel42.Caption := TextByKey('options-tab-environment-exportrenderer');
Panel43.Caption := TextByKey('options-tab-environment-helpfile');
chkRememberLastOpen.Caption := TextByKey('options-tab-environment-rememberlastopen');
cbEnableAutosave.Caption := TextByKey('options-tab-environment-autosave');
panel45.Caption := TextByKey('options-tab-environment-savefrequency');
grpEditorColors.Caption := TextByKey('editor-tab-color-title');
GroupBox15.Caption := TextByKey('options-tab-general-onrendercomplete');
chkPlaySound.Caption := TextByKey('options-tab-general-playsound');
btnPlay.Hint := TextByKey('options-tab-general-playhint');
Label44.Caption := TextByKey('options-tab-general-soundfile');
pnlFuse.Caption := TextByKey('options-tab-display-fuse');
pnHexTile.Caption := TextByKey('main-menu-flame-hextile');
pnRTile.Caption := TextByKey('main-menu-flame-rhombustile');
pnSTile.Caption := TextByKey('main-menu-flame-squaretile');
GroupBox7.Caption := TextByKey('options-tab-display-tileradius');
pnlRandBackground.Caption := TextByKey('options-tab-editor-backgroundcolor');
chkSyncTriangles.Caption := TextByKey('options-tab-editor-synctriangles');
gbAnimation.Caption := TextByKey('animate-animation');
pnlFPS.Caption := TextByKey('animate-fps');
pnlAnimPrefix.Caption := TextByKey('animate-prefix');
pnlFrameExt.Caption := TextByKey('animate-graphicext');
chkCreateAnimFolder.Caption := TextByKey('options-tab-general-createanimdir') ;
2022-03-08 12:25:51 -05:00
for i:= 0 to NRVAR - 1 do begin
clbVarEnabled.Items.Add(varnames(i));
clbVarFavourite.Items.Add(varnames(i)); // AV
end;
Tabs.ActivePageIndex := 0; // AV
VarsPages.ActivePageIndex := 0; // AV
end;
procedure TOptionsForm.pnlCenterLineClick(Sender: TObject);
begin
if (not cbGL.Checked) then exit;
AdjustForm.ColorDialog.Color := pnlCenterLine.Color;
if AdjustForm.ColorDialog.Execute then
begin
pnlCenterLine.Color := AdjustForm.ColorDialog.Color;
LineCenterColor := Integer(pnlCenterLine.color);
UpdateShapeColors;
end;
end;
procedure TOptionsForm.pnlThirdsLineClick(Sender: TObject);
begin
if (not cbGL.Checked) then exit;
AdjustForm.ColorDialog.Color := pnlThirdsLine.Color;
if AdjustForm.ColorDialog.Execute then
begin
pnlThirdsLine.Color := AdjustForm.ColorDialog.Color;
LineThirdsColor := Integer(pnlThirdsLine.color);
UpdateShapeColors;
end;
end;
procedure TOptionsForm.RenderPanelsDblClick(Sender: TObject);
begin // AV: reset values
case TPanel(Sender).Tag of
0: txtSampleDensity.Text := '5';
1: txtGamma.Text := '4';
2: txtBrightness.Text := '4';
3: txtVibrancy.Text := '1';
4: txtGammaThreshold.Text := '0.01';
5: txtOversample.Text := '1';
6: txtFilterRadius.Text := '0.2';
7: txtFuse.Value := 15;
8: txtLowQuality.Text := '0.1';
9: txtMediumQuality.Text := '1';
10: txtHighQuality.Text := '5';
11: txtContrast.Text := '1';
end;
end;
procedure TOptionsForm.pnlGRLineClick(Sender: TObject);
begin
if (not cbGL.Checked) then exit;
AdjustForm.ColorDialog.Color := pnlGRLine.Color;
if AdjustForm.ColorDialog.Execute then
begin
pnlGRLine.Color := AdjustForm.ColorDialog.Color;
LineGRColor := Integer(pnlGRLine.color);
UpdateShapeColors;
end;
end;
procedure TOptionsForm.pnlBackColorClick(Sender: TObject);
begin
AdjustForm.ColorDialog.Color := pnlBackColor.Color;
if AdjustForm.ColorDialog.Execute then
begin
pnlBackColor.Color := AdjustForm.ColorDialog.Color;
EditorBkgColor := Integer(pnlBackColor.color);
UpdateShapeColors;
end;
end;
procedure TOptionsForm.pnlRandBackColorClick(Sender: TObject);
begin
AdjustForm.ColorDialog.Color := pnlRandBackColor.Color;
if AdjustForm.ColorDialog.Execute then
begin
pnlRandBackColor.Color := AdjustForm.ColorDialog.Color;
RandBackColor := Integer(pnlRandBackColor.color);
UpdateShapeColors;
end;
end;
procedure TOptionsForm.pnlReferenceClick(Sender: TObject);
begin
AdjustForm.ColorDialog.Color := pnlReference.Color;
if AdjustForm.ColorDialog.Execute then
begin
pnlReference.Color := AdjustForm.ColorDialog.Color;
ReferenceTriangleColor := Integer(pnlReference.color);
UpdateShapeColors;
end;
end;
procedure TOptionsForm.pnlReflectionCClick(Sender: TObject);
begin
AdjustForm.ColorDialog.Color := pnlReflectionC.Color;
if AdjustForm.ColorDialog.Execute then
begin
pnlReflectionC.Color := AdjustForm.ColorDialog.Color;
FlipColor := Integer(pnlReflectionC.Color);
UpdateShapeColors;
end;
end;
procedure TOptionsForm.pnlGridColor1Click(Sender: TObject);
begin
AdjustForm.ColorDialog.Color := pnlGridColor1.Color;
if AdjustForm.ColorDialog.Execute then
begin
pnlGridColor1.Color := AdjustForm.ColorDialog.Color;
GridColor1 := Integer(pnlGridColor1.color);
UpdateShapeColors;
end;
end;
procedure TOptionsForm.pnlGridColor2Click(Sender: TObject);
begin
AdjustForm.ColorDialog.Color := pnlGridColor2.Color;
if AdjustForm.ColorDialog.Execute then
begin
pnlGridColor2.Color := AdjustForm.ColorDialog.Color;
GridColor2 := Integer(pnlGridColor2.color);
UpdateShapeColors;
end;
end;
procedure TOptionsForm.pnlHelpersColorClick(Sender: TObject);
begin
AdjustForm.ColorDialog.Color := pnlHelpersColor.Color;
if AdjustForm.ColorDialog.Execute then
begin
pnlHelpersColor.Color := AdjustForm.ColorDialog.Color;
HelpersColor := Integer(pnlHelpersColor.color);
UpdateShapeColors;
end;
end;
procedure TOptionsForm.btnBrowseSoundClick(Sender: TObject);
var
fn:string;
begin
if RenderCompleteSoundFile = '' then // AV
OpenDialog.InitialDir := GetEnvironmentVariable('WINDIR') + '\Media\'
else
OpenDialog.InitialDir := ExtractFilePath(RenderCompleteSoundFile);
OpenDialog.Filter := 'Waveform files (*.wav)|*.wav';
OpenDialog.FileName := '';
OpenDialog.DefaultExt := 'wav';
OpenDialog.Title := TextByKey('common-openwav');
if OpenDialog.Execute then
txtSoundFile.text := OpenDialog.FileName;
OpenDialog.Title := ''; // AV: reset caption to default "Open..."
2022-03-08 12:25:51 -05:00
end;
procedure TOptionsForm.btnPlayClick(Sender: TObject);
begin
if txtSoundFile.text <> '' then
sndPlaySound(PChar(txtSoundFile.text), SND_FILENAME or SND_ASYNC)
else
sndPlaySound(pchar(SND_ALIAS_SYSTEMASTERISK), SND_ALIAS_ID or SND_NOSTOP or SND_ASYNC);
end;
procedure TOptionsForm.btnPluginPathClick(Sender: TObject);
var
TitleName : string;
lpItemID : PItemIDList;
BrowseInfo : TBrowseInfo;
DisplayName : array[0..MAX_PATH] of char;
TempPath : array[0..MAX_PATH] of char;
begin
FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);
BrowseInfo.hwndOwner := self.Handle;
BrowseInfo.pszDisplayName := @DisplayName;
TitleName := TextByKey('options-selectplugins');
BrowseInfo.lpszTitle := PChar(TitleName);
BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS;
lpItemID := SHBrowseForFolder(BrowseInfo);
if lpItemId <> nil then begin
SHGetPathFromIDList(lpItemID, TempPath);
txtPluginFolder.Text := TempPath;
GlobalFreePtr(lpItemID);
end;
end;
procedure TOptionsForm.btnGradientsFileClick(Sender: TObject);
begin
OpenDialog.Filter := TextByKey('common-filter-gradientfiles') + '|*.gradient;*.ugr|'
+ TextBykey('common-filter-allfiles') + '|*.*';
2022-03-08 12:25:51 -05:00
OpenDialog.InitialDir := ExtractFilePath(randGradientFile);
OpenDialog.FileName := '';
OpenDialog.DefaultExt := 'ugr';
if OpenDialog.Execute then
txtGradientsFile.text := OpenDialog.FileName;
2022-03-08 12:25:51 -05:00
end;
procedure TOptionsForm.shBackgroundMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
pnlBackColorClick(Sender);
end;
procedure TOptionsForm.shCenterLineMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
pnlCenterLineClick(Sender);
end;
procedure TOptionsForm.shThirdsLineMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
pnlThirdsLineClick(Sender);
end;
procedure TOptionsForm.shGRLineMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
pnlGRLineClick(Sender);
end;
procedure TOptionsForm.shGC1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
pnlGridColor1Click(Sender);
end;
procedure TOptionsForm.shGC2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
pnlGridColor2Click(Sender);
end;
procedure TOptionsForm.shRandBackColorMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
pnlRandBackColorClick(Sender);
end;
procedure TOptionsForm.shReflectionMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
pnlReflectionCClick(Sender);
end;
procedure TOptionsForm.shRefMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
pnlReferenceClick(Sender);
end;
procedure TOptionsForm.shHelpersMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
pnlHelpersColorClick(Sender);
end;
procedure TOptionsForm.chkRememberLastOpenClick(Sender: TObject);
begin
if chkRememberLastOpen.Checked then begin
txtDefParameterFile.Enabled := false;
txtDefParameterFile.Text := ''; //LastOpenFile;
btnDefParams.Enabled := false;
2022-03-08 12:25:51 -05:00
end else begin
txtDefParameterFile.Enabled := true;
btnDefParams.Enabled := true;
2022-03-08 12:25:51 -05:00
end;
Panel39.Enabled := txtDefParameterFile.Enabled;
if (Panel39.Enabled) then Panel39.Font.Color := clWindowText
else Panel39.Font.Color := clGrayText;
end;
procedure TOptionsForm.btnFindDefaultSaveFileClick(Sender: TObject);
begin
OpenDialog.Filter := TextByKey('common-filter-flamefiles') + '|*.flame|' +
TextBykey('common-filter-allfiles') + '|*.*';
2022-03-08 12:25:51 -05:00
OpenDialog.FileName := '';
if OpenDialog.Execute then
txtDefaultSaveFile.Text := OpenDialog.FileName;
2022-03-08 12:25:51 -05:00
end;
procedure TOptionsForm.cbEnableAutosaveClick(Sender: TObject);
begin
Panel44.Enabled := cbEnableAutoSave.Checked;
Panel45.Enabled := cbEnableAutoSave.Checked;
Label49.Enabled := cbEnableAutoSave.Checked;
if (Panel44.Enabled) then Panel44.Font.Color := clWindowText
else Panel44.Font.Color := clGrayText;
if (Panel45.Enabled) then Panel45.Font.Color := clWindowText
else Panel45.Font.Color := clGrayText;
txtDefaultSaveFile.Enabled := cbEnableAutoSave.Checked;
btnFindDefaultSaveFile.Enabled := cbEnableAutoSave.Checked;
cbFreq.Enabled := cbEnableAutoSave.Checked;
end;
procedure TOptionsForm.btnHelpClick(Sender: TObject);
begin
OpenDialog.Filter := TextBykey('common-filter-allfiles') + '|*.*';
OpenDialog.InitialDir := ExtractFilePath(helpPath);
OpenDialog.FileName := '';
OpenDialog.DefaultExt := '';
if OpenDialog.Execute then
txtHelp.text := OpenDialog.FileName;
2022-03-08 12:25:51 -05:00
end;
procedure TOptionsForm.btnInvertClick(Sender: TObject);
var
i: integer;
begin
if VarsPages.ActivePageIndex = 0 then // AV
for i := 0 to NRVAR - 1 do
clbVarEnabled.Checked[i] := not clbVarEnabled.Checked[i]
else // AV
for i := 0 to NRVAR - 1 do
clbVarFavourite.Checked[i] := not clbVarFavourite.Checked[i];
end;
procedure TOptionsForm.cbGLClick(Sender: TObject);
begin
pnlCenter.Enabled := cbGL.Checked;
pnlThirds.Enabled := cbGL.Checked;
pnlGoldenRatio.Enabled := cbGL.Checked;
if (pnlCenter.Enabled) then pnlCenter.Font.Color := clWindowText
else pnlCenter.Font.Color := clGrayText;
if (pnlThirds.Enabled) then pnlThirds.Font.Color := clWindowText
else pnlThirds.Font.Color := clGrayText;
if (pnlGoldenRatio.Enabled) then pnlGoldenRatio.Font.Color := clWindowText
else pnlGoldenRatio.Font.Color := clGrayText;
end;
procedure TOptionsForm.btnLanguageClick(Sender: TObject);
2022-03-08 12:25:51 -05:00
var fn, fn2, s1, s2:string; i : integer;
begin
OpenDialog.Filter := 'Extensible Markup Language Files (*.xml)|*.xml';
OpenDialog.InitialDir := ExtractFilePath(helpPath);
OpenDialog.FileName := '';
OpenDialog.DefaultExt := '';
if OpenDialog.Execute then
2022-03-08 12:25:51 -05:00
begin
fn := OpenDialog.FileName; // AV
fn2 := AppPath + 'Languages\' + ExtractFileName(fn);
2022-03-08 12:25:51 -05:00
LanguageInfo(fn, s1, s2);
if s1 <> '' then begin
if not DirectoryExists(AppPath + 'Languages\') then
CreateDir(AppPath + 'Languages\');
if (lowercase(ExtractFilePath(fn)) <> lowercase(AppPath + 'Languages\')) then
2022-03-08 12:25:51 -05:00
CopyFile(PChar(fn), PChar(fn2), False);
AvailableLanguages.Add(fn2);
i := AvailableLanguages.Count - 1;
if (s2 <> '') then
s1 := s2 + ' (' + s1 + ')';
txtLanguageFile.Items.Add(s1);
txtLanguageFile.ItemIndex := txtLanguageFile.Items.Count - 1;
end else
raise Exception.Create(TextByKey('common-invalidformat')); // AV
2022-03-08 12:25:51 -05:00
end;
end;
procedure TOptionsForm.btnChaoticaClick(Sender: TObject);
var fn: string;
begin
fn := ChaoticaPath;
if SelectDirectory(fn, [sdAllowCreate, sdPerformCreate, sdPrompt], 0) then
begin
txtChaotica.Text := fn;
if not FileExists(fn + '\chaotica.exe') then
begin
MessageBox(0, PCHAR(TextByKey('main-status-nochaotica')),
ApophysisSVN, MB_ICONHAND or MB_OK);
2022-03-08 12:25:51 -05:00
txtChaotica.Text := ChaoticaPath;
fn := ChaoticaPath;
end;
end;
end;
procedure TOptionsForm.chkEnableEditorPreviewClick(Sender: TObject);
begin
Panel48.Enabled := chkEnableEditorPreview.Checked;
if chkEnableEditorPreview.Checked then
Panel48.Font.Color := clWindowText
else Panel48.Font.Color := clGrayText;
tbEPTransparency.Enabled := chkEnableEditorPreview.Checked;
end;
procedure TOptionsForm.chkKeepBackgroundClick(Sender: TObject);
begin
pnlRandBackGround.Enabled := not chkKeepBackground.Checked;
pnlRandBackColor.Enabled := not chkKeepBackground.Checked;
if (pnlRandBackGround.Enabled) then
pnlRandBackGround.Font.Color := clWindowText
else
pnlRandBackGround.Font.Color := clGrayText;
end;
end.