mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-05 16:18:15 +02:00
319 lines
9.8 KiB
ObjectPascal
319 lines
9.8 KiB
ObjectPascal
unit frmpas2jsbrowserprojectoptions;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ButtonPanel,
|
|
Spin, strpas2jsdesign;
|
|
|
|
const
|
|
WBBoolCreateHTML = 0;
|
|
WBBoolMainHTML = 1;
|
|
WBBoolRunOnReady = 2;
|
|
WBBoolShowUncaughtExceptions = 3;
|
|
WBBoolUseBrowserApp = 4;
|
|
WBBoolUseWASI = 5;
|
|
WBBoolUseBrowserConsole = 6;
|
|
WBBoolUseModule = 7;
|
|
WBBoolRunLocation = 8;
|
|
WBBoolRunServerAtPort = 9;
|
|
WBBoolRunBrowserWithURL = 10;
|
|
WBBoolRunDefault = 11;
|
|
type
|
|
|
|
{ TWebBrowserProjectOptionsForm }
|
|
|
|
TWebBrowserProjectOptionsForm = class(TForm)
|
|
BPHelpOptions: TButtonPanel;
|
|
CBCreateHTML: TCheckBox;
|
|
CBMaintainPage: TCheckBox;
|
|
CBRunLocationOnSWS: TComboBox;
|
|
CBRunOnReady: TCheckBox;
|
|
CBRunServerURL: TComboBox;
|
|
CBShowUncaughtExceptions: TCheckBox;
|
|
CBUseBrowserApp: TCheckBox;
|
|
CBUseBrowserConsole: TCheckBox;
|
|
CBUseModule: TCheckBox;
|
|
CBUseWASI: TCheckBox;
|
|
edtWasmProgram: TEdit;
|
|
RBRunLocationOnSWS: TRadioButton;
|
|
RBRunBrowserWithURL: TRadioButton;
|
|
RBRunDefault: TRadioButton;
|
|
RBRunServerAt: TRadioButton;
|
|
RunGroupBox: TGroupBox;
|
|
SERunPort: TSpinEdit;
|
|
procedure CBCreateHTMLChange(Sender: TObject);
|
|
procedure CBUseBrowserAppChange(Sender: TObject);
|
|
procedure CBUseHTTPServerChange(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure RBRunLocationOnSWSChange(Sender: TObject);
|
|
procedure RBRunDefaultChange(Sender: TObject);
|
|
procedure RBRunServerAtChange(Sender: TObject);
|
|
procedure RBRunBrowserWithURLChange(Sender: TObject);
|
|
private
|
|
function GetB(AIndex: Integer): Boolean;
|
|
function GetLocation: string;
|
|
function GetServerPort: Word;
|
|
function GetURL: String;
|
|
function GetWasmProgramURL: String;
|
|
procedure SetB(AIndex: Integer; AValue: Boolean);
|
|
procedure SetLocation(const AValue: string);
|
|
procedure SetServerPort(AValue: Word);
|
|
procedure SetURL(AValue: String);
|
|
procedure SetWasmProgramURL(AValue: String);
|
|
procedure UpdateHTMLControls;
|
|
procedure UpdateBrowserAppControls;
|
|
procedure UpdateRunControls;
|
|
public
|
|
procedure HideWASM; virtual;
|
|
procedure HideModule; virtual;
|
|
procedure HideRunOnReady; virtual;
|
|
procedure HideUseBrowserApp; virtual;
|
|
procedure HideRunHTTPServer; virtual;
|
|
procedure HideRunLocation; virtual;
|
|
|
|
property CreateHTML : Boolean Index WBBoolCreateHTML read GetB Write SetB;
|
|
property MaintainHTML : Boolean Index WBBoolMainHTML read GetB Write SetB;
|
|
property UseRunOnReady : Boolean Index WBBoolRunOnReady read GetB Write SetB;
|
|
property ShowUncaughtExceptions : Boolean Index WBBoolShowUncaughtExceptions read GetB Write SetB;
|
|
|
|
property UseBrowserApp : Boolean Index WBBoolUseBrowserApp read GetB Write SetB;
|
|
property UseWASI : Boolean Index WBBoolUseWASI read GetB Write SetB;
|
|
property WasmProgramURL : String Read GetWasmProgramURL Write SetWasmProgramURL;
|
|
|
|
property UseBrowserConsole : Boolean Index WBBoolUseBrowserConsole read GetB Write SetB;
|
|
property UseModule : Boolean Index WBBoolUseModule read GetB Write SetB;
|
|
|
|
property RunLocation : Boolean Index WBBoolRunLocation read GetB Write SetB;
|
|
property Location : string Read GetLocation Write SetLocation;
|
|
property RunServerAtPort : Boolean Index WBBoolRunServerAtPort read GetB Write SetB;
|
|
property ServerPort : Word Read GetServerPort Write SetServerPort;
|
|
property RunBrowserWithURL : Boolean Index WBBoolRunBrowserWithURL read GetB Write SetB;
|
|
property URL : String Read GetURL Write SetURL;
|
|
property RunDefault : Boolean Index WBBoolRunDefault read GetB Write SetB;
|
|
end;
|
|
|
|
var
|
|
WebBrowserProjectOptionsForm: TWebBrowserProjectOptionsForm;
|
|
|
|
implementation
|
|
|
|
{$R *.lfm}
|
|
|
|
{ TWebBrowserProjectOptionsForm }
|
|
|
|
procedure TWebBrowserProjectOptionsForm.CBCreateHTMLChange(Sender: TObject);
|
|
|
|
Procedure DOCB(CB : TCheckbox);
|
|
|
|
begin
|
|
CB.Enabled:=CBCreateHTML.Checked;
|
|
if not CB.Enabled then
|
|
CB.Checked:=False;
|
|
end;
|
|
|
|
begin
|
|
UpdateHTMLControls;
|
|
DoCB(CBMaintainPage);
|
|
DoCB(CBRunOnReady);
|
|
end;
|
|
|
|
procedure TWebBrowserProjectOptionsForm.CBUseBrowserAppChange(Sender: TObject);
|
|
begin
|
|
UpdateBrowserAppControls;
|
|
end;
|
|
|
|
procedure TWebBrowserProjectOptionsForm.CBUseHTTPServerChange(Sender: TObject);
|
|
begin
|
|
|
|
end;
|
|
|
|
procedure TWebBrowserProjectOptionsForm.UpdateBrowserAppControls;
|
|
|
|
begin
|
|
CBUseWASI.Enabled:=UseBrowserApp;
|
|
edtWasmProgram.Enabled:=UseBrowserApp;
|
|
end;
|
|
|
|
procedure TWebBrowserProjectOptionsForm.FormCreate(Sender: TObject);
|
|
begin
|
|
// localize
|
|
Caption:=pjsdPas2JSBrowserProjectOptions;
|
|
CBCreateHTML.Caption:=pjsdCreateInitialHTMLPage;
|
|
CBMaintainPage.Caption:=pjsdMaintainHTMLPage;
|
|
CBRunOnReady.Caption:=pjsdRunRTLWhenAllPageResourcesAreFullyLoaded;
|
|
CBShowUncaughtExceptions.Caption:=pjsdLetRTLShowUncaughtExceptions;
|
|
|
|
CBUseBrowserApp.Caption:=pjsdUseBrowserApplicationObject;
|
|
CBUseWASI.Caption:=pjsdUseWASIApplicationObject;
|
|
edtWasmProgram.TextHint:=pjsWasiProgramFileTextHint;
|
|
|
|
CBUseBrowserConsole.Caption:=pjsdUseBrowserConsoleUnitToDisplayWritelnOutput;
|
|
CBUseModule.Caption:=pjsCreateAJavascriptModuleInsteadOfAScript;
|
|
|
|
RunGroupBox.Caption:=pjsdRun;
|
|
RBRunLocationOnSWS.Caption:=pjsdLocationOnSimpleWebServer;
|
|
RBRunLocationOnSWS.Hint:=pjsdTheSimpleWebServerIsAutomaticallyStartedOnRunTheLo;
|
|
RBRunServerAt.Caption:=pjsdStartHTTPServerOnPort;
|
|
RBRunBrowserWithURL.Caption:=pjsdUseThisURLToStartApplication;
|
|
RBRunBrowserWithURL.Hint:=pjsdUseThisWhenYouStartYourOwnHttpServer;
|
|
RBRunDefault.Caption:=pjsExecuteRunParameters;
|
|
|
|
CBCreateHTMLChange(self);
|
|
end;
|
|
|
|
procedure TWebBrowserProjectOptionsForm.RBRunLocationOnSWSChange(
|
|
Sender: TObject);
|
|
begin
|
|
UpdateRunControls;
|
|
end;
|
|
|
|
procedure TWebBrowserProjectOptionsForm.RBRunDefaultChange(Sender: TObject);
|
|
begin
|
|
UpdateRunControls;
|
|
end;
|
|
|
|
procedure TWebBrowserProjectOptionsForm.RBRunServerAtChange(Sender: TObject);
|
|
begin
|
|
UpdateRunControls;
|
|
end;
|
|
|
|
procedure TWebBrowserProjectOptionsForm.RBRunBrowserWithURLChange(Sender: TObject);
|
|
begin
|
|
UpdateRunControls;
|
|
end;
|
|
|
|
function TWebBrowserProjectOptionsForm.GetB(AIndex: Integer): Boolean;
|
|
begin
|
|
Case Aindex of
|
|
WBBoolCreateHTML : Result:=CBCreateHTML.Checked;
|
|
WBBoolMainHTML : Result:=CBMaintainPage.Checked;
|
|
WBBoolRunOnReady : Result:=CBRunOnReady.Checked;
|
|
WBBoolShowUncaughtExceptions : Result:=CBShowUncaughtExceptions.Checked;
|
|
WBBoolUseBrowserApp : Result:=CBUseBrowserApp.Checked;
|
|
WBBoolUseWASI : Result:=cbUseWASI.Checked;
|
|
WBBoolUseBrowserConsole : Result:=CBUseBrowserConsole.Checked;
|
|
WBBoolUseModule : Result:=cbUseModule.Checked;
|
|
WBBoolRunLocation : Result:=RBRunLocationOnSWS.Checked;
|
|
WBBoolRunServerAtPort : Result:=RBRunServerAt.Checked;
|
|
WBBoolRunBrowserWithURL : Result:=RBRunBrowserWithURL.Checked;
|
|
WBBoolRunDefault : Result:=RBRunDefault.Checked;
|
|
else
|
|
Result:=False;
|
|
end;
|
|
end;
|
|
|
|
function TWebBrowserProjectOptionsForm.GetLocation: string;
|
|
begin
|
|
Result:=CBRunLocationOnSWS.Text;
|
|
end;
|
|
|
|
function TWebBrowserProjectOptionsForm.GetServerPort: Word;
|
|
begin
|
|
Result:=SERunPort.Value;
|
|
end;
|
|
|
|
function TWebBrowserProjectOptionsForm.GetURL: String;
|
|
begin
|
|
Result:=CBRunServerURL.Text;
|
|
end;
|
|
|
|
function TWebBrowserProjectOptionsForm.GetWasmProgramURL: String;
|
|
begin
|
|
Result:=edtWasmProgram.Text;
|
|
end;
|
|
|
|
procedure TWebBrowserProjectOptionsForm.SetB(AIndex: Integer; AValue: Boolean);
|
|
begin
|
|
Case Aindex of
|
|
WBBoolCreateHTML : begin CBCreateHTML.Checked:=AValue; UpdateHTMLControls; end;
|
|
WBBoolMainHTML : CBMaintainPage.Checked:=AValue;
|
|
WBBoolRunOnReady : CBRunOnReady.Checked:=AValue;
|
|
WBBoolShowUncaughtExceptions : CBShowUncaughtExceptions.Checked:=AValue;
|
|
WBBoolUseBrowserConsole : CBUseBrowserConsole.Checked:=AValue;
|
|
WBBoolUseBrowserApp : begin CBUseBrowserApp.Checked:=AValue; UpdateBrowserAppControls; end;
|
|
WBBoolUseWASI : begin cbUseWASI.Checked:=AValue; UpdateBrowserAppControls; end;
|
|
WBBoolUseModule : cbUseModule.Checked:=AValue;
|
|
WBBoolRunLocation : begin RBRunLocationOnSWS.Checked:=AValue; UpdateRunControls; end;
|
|
WBBoolRunServerAtPort : begin RBRunServerAt.Checked:=AValue; UpdateRunControls; end;
|
|
WBBoolRunBrowserWithURL : begin RBRunBrowserWithURL.Checked:=AValue; UpdateRunControls; end;
|
|
WBBoolRunDefault : begin RBRunDefault.Checked:=AValue; UpdateRunControls; end;
|
|
end;
|
|
end;
|
|
|
|
procedure TWebBrowserProjectOptionsForm.SetLocation(const AValue: string);
|
|
begin
|
|
CBRunLocationOnSWS.Text:=AValue;
|
|
end;
|
|
|
|
procedure TWebBrowserProjectOptionsForm.SetServerPort(AValue: Word);
|
|
begin
|
|
SERunPort.Value:=AValue;
|
|
end;
|
|
|
|
procedure TWebBrowserProjectOptionsForm.SetURL(AValue: String);
|
|
begin
|
|
CBRunServerURL.Text:=AValue;
|
|
end;
|
|
|
|
procedure TWebBrowserProjectOptionsForm.SetWasmProgramURL(AValue: String);
|
|
begin
|
|
edtWasmProgram.Text:=aValue;
|
|
end;
|
|
|
|
procedure TWebBrowserProjectOptionsForm.UpdateHTMLControls;
|
|
var
|
|
aEnabled: Boolean;
|
|
begin
|
|
aEnabled:=CBCreateHTML.Checked;
|
|
CBMaintainPage.Enabled:=aEnabled;
|
|
CBRunOnReady.Enabled:=aEnabled;
|
|
CBShowUncaughtExceptions.Enabled:=aEnabled;
|
|
CBUseBrowserConsole.Enabled:=aEnabled;
|
|
end;
|
|
|
|
procedure TWebBrowserProjectOptionsForm.UpdateRunControls;
|
|
begin
|
|
CBRunLocationOnSWS.Enabled:=RBRunLocationOnSWS.Enabled and RBRunLocationOnSWS.Checked;
|
|
SERunPort.Enabled:=RBRunServerAt.Enabled and RBRunServerAt.Checked;
|
|
CBRunServerURL.Enabled:=RBRunBrowserWithURL.Enabled and RBRunBrowserWithURL.Checked;
|
|
end;
|
|
|
|
procedure TWebBrowserProjectOptionsForm.HideWASM;
|
|
begin
|
|
CBUseWASI.Visible:=false;
|
|
edtWasmProgram.Visible:=false;
|
|
end;
|
|
|
|
procedure TWebBrowserProjectOptionsForm.HideModule;
|
|
begin
|
|
CBUseModule.Visible:=false;
|
|
end;
|
|
|
|
procedure TWebBrowserProjectOptionsForm.HideRunOnReady;
|
|
begin
|
|
CBRunOnReady.Visible:=false;
|
|
end;
|
|
|
|
procedure TWebBrowserProjectOptionsForm.HideUseBrowserApp;
|
|
begin
|
|
CBUseBrowserApp.Visible:=false;
|
|
end;
|
|
|
|
procedure TWebBrowserProjectOptionsForm.HideRunHTTPServer;
|
|
begin
|
|
RunGroupBox.Visible:=false;
|
|
end;
|
|
|
|
procedure TWebBrowserProjectOptionsForm.HideRunLocation;
|
|
begin
|
|
RBRunServerAt.Checked:=true;
|
|
RBRunLocationOnSWS.Visible:=false;
|
|
CBRunLocationOnSWS.Visible:=false;
|
|
end;
|
|
|
|
end.
|
|
|