You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
126 lines
3.7 KiB
126 lines
3.7 KiB
unit AdvOptionsForm;
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
|
|
ExtCtrls, Spin, ActnList, Options, Config;
|
|
|
|
type
|
|
|
|
{ TFormAdvOptions }
|
|
|
|
TFormAdvOptions = class(TForm)
|
|
ActResetOptions: TAction;
|
|
AtcBrowseDeskewExe: TAction;
|
|
ActionList: TActionList;
|
|
BtnBrowseDeskewExePath: TButton;
|
|
BtnResetOptions: TButton;
|
|
CheckDefaultExecutable: TCheckBox;
|
|
ComboOutputFormat: TComboBox;
|
|
EdDeskewExePath: TEdit;
|
|
LabDeskewExe: TLabel;
|
|
LabTitle: TLabel;
|
|
LabForcedFormat: TLabel;
|
|
LabMaxAngle: TLabel;
|
|
LabSkipAngle: TLabel;
|
|
Panel1: TPanel;
|
|
SpinEditMaxAngle: TFloatSpinEdit;
|
|
SpinEditSkipAngle: TFloatSpinEdit;
|
|
procedure ActResetOptionsExecute(Sender: TObject);
|
|
procedure AtcBrowseDeskewExeExecute(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure FormDestroy(Sender: TObject);
|
|
public
|
|
procedure ApplyOptions(AOptions: TOptions);
|
|
procedure GatherOptions(AOptions: TOptions);
|
|
procedure DoIdle;
|
|
end;
|
|
|
|
var
|
|
FormAdvOptions: TFormAdvOptions;
|
|
|
|
implementation
|
|
|
|
uses
|
|
DataModule, MainForm;
|
|
|
|
{$R *.lfm}
|
|
|
|
{ TFormAdvOptions }
|
|
|
|
procedure TFormAdvOptions.FormCreate(Sender: TObject);
|
|
begin
|
|
ComboOutputFormat.Items.Clear;
|
|
ComboOutputFormat.Items.AddObject('Default (usually same as input)', TObject(fofNone));
|
|
ComboOutputFormat.Items.AddObject('1bit black and white', TObject(fofBinary1));
|
|
ComboOutputFormat.Items.AddObject('8bit grayscale', TObject(fofGray8));
|
|
ComboOutputFormat.Items.AddObject('24bit RGB', TObject(fofRgb24));
|
|
ComboOutputFormat.Items.AddObject('32bit RGB + opacity', TObject(fofRgba32));
|
|
ComboOutputFormat.ItemIndex := 0;
|
|
|
|
if not Config.ShowDeskewExeOption then
|
|
begin
|
|
CheckDefaultExecutable.Visible := False;
|
|
LabDeskewExe.Visible := False;
|
|
EdDeskewExePath.Visible := False;
|
|
BtnBrowseDeskewExePath.Visible := False;
|
|
Height := EdDeskewExePath.BoundsRect.Bottom;
|
|
end;
|
|
|
|
ApplyOptions(Module.Options);
|
|
end;
|
|
|
|
procedure TFormAdvOptions.FormDestroy(Sender: TObject);
|
|
begin
|
|
GatherOptions(Module.Options);
|
|
end;
|
|
|
|
procedure TFormAdvOptions.ApplyOptions(AOptions: TOptions);
|
|
begin
|
|
CheckDefaultExecutable.Checked := AOptions.DefaultExecutable;
|
|
EdDeskewExePath.Text := AOptions.CustomExecutablePath;
|
|
EdDeskewExePath.SelStart := Length(EdDeskewExePath.Text);
|
|
SpinEditMaxAngle.Value := AOptions.MaxAngle;
|
|
SpinEditSkipAngle.Value := AOptions.SkipAngle;
|
|
ComboOutputFormat.ItemIndex := Integer(AOptions.ForcedOutputFormat);
|
|
end;
|
|
|
|
procedure TFormAdvOptions.GatherOptions(AOptions: TOptions);
|
|
begin
|
|
AOptions.MaxAngle := SpinEditMaxAngle.Value;
|
|
AOptions.SkipAngle := SpinEditSkipAngle.Value;
|
|
AOptions.ForcedOutputFormat := TForcedOutputFormat(PtrUInt(ComboOutputFormat.Items.Objects[ComboOutputFormat.ItemIndex]));
|
|
AOptions.DefaultExecutable := CheckDefaultExecutable.Checked;
|
|
AOptions.CustomExecutablePath := EdDeskewExePath.Text;
|
|
end;
|
|
|
|
procedure TFormAdvOptions.DoIdle;
|
|
begin
|
|
AtcBrowseDeskewExe.Enabled := not CheckDefaultExecutable.Checked;
|
|
EdDeskewExePath.Enabled := AtcBrowseDeskewExe.Enabled;
|
|
end;
|
|
|
|
procedure TFormAdvOptions.AtcBrowseDeskewExeExecute(Sender: TObject);
|
|
begin
|
|
Module.OpenDialogSingle.Title := 'Select Deskew Binary Executable';
|
|
if Module.OpenDialogSingle.Execute then
|
|
begin
|
|
EdDeskewExePath.Text := Module.OpenDialogSingle.FileName;
|
|
EdDeskewExePath.SelStart := Length(EdDeskewExePath.Text);
|
|
end;
|
|
end;
|
|
|
|
procedure TFormAdvOptions.ActResetOptionsExecute(Sender: TObject);
|
|
begin
|
|
if Dialogs.QuestionDlg('Reset Options', 'Do you really want to reset the options to default?',
|
|
mtConfirmation, [mrOk, 'Reset', mrCancel], 0) = mrOk then
|
|
begin
|
|
Module.Options.Reset;
|
|
ApplyOptions(Module.Options);
|
|
FormMain.ApplyOptions(Module.Options);
|
|
end;
|
|
end;
|
|
|
|
end.
|
|
|