1759 lines
62 KiB
ObjectPascal
1759 lines
62 KiB
ObjectPascal
{
|
|
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
|
|
|
|
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-}
|
|
|
|
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;
|
|
|
|
type
|
|
TOptionsForm = class(TForm)
|
|
btnOK: TButton;
|
|
btnCancel: TButton;
|
|
OpenDialog: TOpenDialog;
|
|
Tabs: TPageControl;
|
|
GeneralPage: TTabSheet;
|
|
btnLanguage: TSpeedButton;
|
|
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;
|
|
EditorPage: TTabSheet;
|
|
GroupBox1: TGroupBox;
|
|
chkUseXFormColor: TCheckBox;
|
|
chkHelpers: TCheckBox;
|
|
chkShowAllXforms: TCheckBox;
|
|
GroupBox21: TGroupBox;
|
|
chkAxisLock: TCheckBox;
|
|
chkExtendedEdit: TCheckBox;
|
|
chkXaosRebuild: TCheckBox;
|
|
chkResetCoefs: TCheckBox;
|
|
chkResetLinear: TCheckBox;
|
|
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;
|
|
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;
|
|
GroupBox20: TGroupBox;
|
|
Label48: TLabel;
|
|
chkShowTransparency: TCheckBox;
|
|
chkExtendMainPreview: TCheckBox;
|
|
pnlExtension: TPanel;
|
|
cbExtendPercent: TComboBox;
|
|
chkUseSmallThumbs: TCheckBox;
|
|
rgEnumMode: TRadioGroup;
|
|
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;
|
|
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;
|
|
clbVarEnabled: TCheckListBox;
|
|
tabFavouriteVars: TTabSheet;
|
|
clbVarFavourite: TCheckListBox;
|
|
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;
|
|
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;
|
|
btnSmooth: TSpeedButton;
|
|
btnDefLibrary: TSpeedButton;
|
|
btnRenderer: TSpeedButton;
|
|
btnHelp: TSpeedButton;
|
|
Label49: TLabel;
|
|
btnFindDefaultSaveFile: TSpeedButton;
|
|
btnPluginPath: TSpeedButton;
|
|
btnSShotPath: TSpeedButton;
|
|
btnDefScript: TSpeedButton;
|
|
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;
|
|
chkRandomTemplates: TCheckBox;
|
|
gbGradDefaults: TGroupBox;
|
|
chkConfirmResetUndo: TCheckBox;
|
|
gbAnimation: TGroupBox;
|
|
pnlFPS: TPanel;
|
|
pnlAnimPrefix: TPanel;
|
|
edAnimPrefix: TEdit;
|
|
seFPS: TSpinEdit;
|
|
pnlFrameExt: TPanel;
|
|
cbFrameExt: TComboBox;
|
|
chkCreateAnimFolder: TCheckBox;
|
|
procedure chkEnableEditorPreviewClick(Sender: TObject);
|
|
procedure btnChaoticaClick(Sender: TObject);
|
|
procedure btnLanguageClick(Sender: TObject);
|
|
procedure FormShow(Sender: TObject);
|
|
procedure btnOKClick(Sender: TObject);
|
|
procedure btnDefParamsClick(Sender: TObject);
|
|
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);
|
|
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;
|
|
|
|
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
|
|
chkRememberLastOpen.Checked := RememberLastOpenFile;
|
|
chkUseSmallThumbs.Checked := UseSmallThumbnails;
|
|
cbUseTemplate.Checked := AlwaysCreateBlankFlame;
|
|
cbMissingPlugin.Checked := WarnOnMissingPlugin;
|
|
// cbEmbedThumbs.Checked := EmbedThumbnails;
|
|
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;
|
|
|
|
{ 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;
|
|
|
|
{ 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;
|
|
pnlGridColor1.Color := GridColor1;
|
|
pnlGridColor2.Color := GridColor2;
|
|
pnlReference.color := ReferenceTriangleColor;
|
|
pnlReflectionC.Color := FlipColor; // AV
|
|
pnlHelpersColor.Color := HelpersColor; // AV
|
|
|
|
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
|
|
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;
|
|
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
|
|
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, '.'])
|
|
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
|
|
|
|
{ General tab }
|
|
JPEGQuality := StrToIntDef(txtJPEGQuality.text, 100);
|
|
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;
|
|
|
|
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;
|
|
WarnOnMissingPlugin := cbMissingPlugin.Checked;
|
|
SetEngLayout := chkEngLayout.Checked; // AV
|
|
ConfirmClearScript := chkConfirmClearScript.Checked; // AV
|
|
ConfirmResetUndo := chkConfirmResetUndo.Checked; // AV
|
|
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];
|
|
|
|
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 }
|
|
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;
|
|
|
|
{ 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);
|
|
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;
|
|
|
|
Fuse := txtFuse.Value; // AV
|
|
|
|
HexTR := StrToFloatDef(txtHexTile.Text, 1); // AV
|
|
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;
|
|
|
|
MainPreviewScale := 1 + 0.02 * StrToFloatDef(cbExtendPercent.Text, 0);
|
|
if MainPreviewScale < 1 then
|
|
MainPreviewScale := 1
|
|
else if MainPreviewScale > 5 then
|
|
MainPreviewScale := 5;
|
|
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);
|
|
|
|
ModalResult := mrOK; // AV: was Close;
|
|
end;
|
|
|
|
procedure TOptionsForm.btnDefParamsClick(Sender: TObject);
|
|
begin
|
|
OpenDialog.Filter := TextByKey('common-filter-flamefiles') + '|*.flame|' +
|
|
TextBykey('common-filter-allfiles') + '|*.*';
|
|
OpenDialog.InitialDir := ParamFolder; // AV
|
|
OpenDialog.FileName := '';
|
|
if OpenDialog.Execute then
|
|
txtDefParameterFile.text := OpenDialog.FileName;
|
|
end;
|
|
|
|
procedure TOptionsForm.btnDefScriptClick(Sender: TObject);
|
|
begin
|
|
OpenDialog.Filter := TextByKey('common-filter-scriptfiles') + '|*.aposcript;*.asc|'
|
|
+ TextBykey('common-filter-allfiles') + '|*.*';;
|
|
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;
|
|
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') + '|*.*';
|
|
OpenDialog.InitialDir := ExtractFilePath(defSmoothPaletteFile);
|
|
OpenDialog.FileName := '';
|
|
OpenDialog.DefaultExt := 'ugr';
|
|
if OpenDialog.Execute then
|
|
txtDefSmoothFile.text := OpenDialog.FileName;;
|
|
end;
|
|
|
|
procedure TOptionsForm.btnSShotPathClick(Sender: TObject); // AV
|
|
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 + '\');
|
|
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;
|
|
end;
|
|
|
|
procedure TOptionsForm.btnDefLibraryClick(Sender: TObject);
|
|
begin
|
|
OpenDialog.Filter := TextByKey('common-filter-scriptfiles') + '|*.aposcript;*.asc|'
|
|
+ TextBykey('common-filter-allfiles') + '|*.*';
|
|
OpenDialog.InitialDir := ExtractFilePath(defLibrary);
|
|
OpenDialog.FileName := '';
|
|
OpenDialog.DefaultExt := '.asc';
|
|
if OpenDialog.Execute then
|
|
txtLibrary.Text := OpenDialog.FileName;
|
|
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
|
|
cbNrTheads.Items.Add(IntToStr(i));
|
|
end;
|
|
UseNrThreads := cbNrTheads.Items.Count; // save nr processor cores
|
|
|
|
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;
|
|
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');
|
|
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');
|
|
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');
|
|
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') ;
|
|
|
|
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..."
|
|
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') + '|*.*';
|
|
OpenDialog.InitialDir := ExtractFilePath(randGradientFile);
|
|
OpenDialog.FileName := '';
|
|
OpenDialog.DefaultExt := 'ugr';
|
|
if OpenDialog.Execute then
|
|
txtGradientsFile.text := OpenDialog.FileName;
|
|
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;
|
|
end else begin
|
|
txtDefParameterFile.Enabled := true;
|
|
btnDefParams.Enabled := true;
|
|
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') + '|*.*';
|
|
OpenDialog.FileName := '';
|
|
if OpenDialog.Execute then
|
|
txtDefaultSaveFile.Text := OpenDialog.FileName;
|
|
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;
|
|
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);
|
|
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
|
|
begin
|
|
fn := OpenDialog.FileName; // AV
|
|
fn2 := AppPath + 'Languages\' + ExtractFileName(fn);
|
|
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
|
|
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
|
|
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);
|
|
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.
|
|
|