diff --git a/applications/fpbrowser/fpbrowser.dpr b/applications/fpbrowser/fpbrowser.dpr
index 275665c60..f7e50ba9f 100644
--- a/applications/fpbrowser/fpbrowser.dpr
+++ b/applications/fpbrowser/fpbrowser.dpr
@@ -25,7 +25,7 @@ uses
{$ifdef FPBROWSER_TURBOPOWERIPRO}
viewer_ipro,
{$endif}
- browserviewer;
+ browserviewer, utf8_braille;
begin
Application.Initialize;
diff --git a/applications/fpbrowser/fpbrowser.lpi b/applications/fpbrowser/fpbrowser.lpi
index 21b614eb8..bd7e5ad81 100644
--- a/applications/fpbrowser/fpbrowser.lpi
+++ b/applications/fpbrowser/fpbrowser.lpi
@@ -44,7 +44,7 @@
-
+
@@ -101,6 +101,11 @@
+
+
+
+
+
diff --git a/applications/fpbrowser/mainform.lfm b/applications/fpbrowser/mainform.lfm
index 9e4f71330..4454d14ac 100644
--- a/applications/fpbrowser/mainform.lfm
+++ b/applications/fpbrowser/mainform.lfm
@@ -3,7 +3,7 @@ object formBrowser: TformBrowser
Height = 439
Top = 186
Width = 621
- ClientHeight = 439
+ ClientHeight = 412
ClientWidth = 621
Color = clBtnFace
Font.Color = clWindowText
@@ -18,7 +18,7 @@ object formBrowser: TformBrowser
object panelBottom: TPanel
Left = 0
Height = 18
- Top = 421
+ Top = 394
Width = 621
Align = alBottom
Alignment = taLeftJustify
@@ -39,14 +39,14 @@ object formBrowser: TformBrowser
Left = 319
Height = 16
Top = 3
- Width = 22
+ Width = 21
Caption = 'Idle'
ParentColor = False
end
end
object pageBrowser: TPageControl
Left = 0
- Height = 421
+ Height = 394
Top = 0
Width = 621
Align = alClient
@@ -121,7 +121,7 @@ object formBrowser: TformBrowser
OnClick = SelectAllItemClick
end
end
- object options1: TMenuItem
+ object menuOptions: TMenuItem
Caption = '&Tools'
object ShowImages: TMenuItem
Caption = '&Show images'
@@ -135,6 +135,9 @@ object formBrowser: TformBrowser
Caption = 'View Source and Debug info'
OnClick = menuViewDebugClick
end
+ object menuToolsModules: TMenuItem
+ Caption = 'Modules'
+ end
end
object HistoryMenuItem: TMenuItem
Caption = '&History'
diff --git a/applications/fpbrowser/mainform.lrs b/applications/fpbrowser/mainform.lrs
index 2c09e6718..ed76dfa8f 100644
--- a/applications/fpbrowser/mainform.lrs
+++ b/applications/fpbrowser/mainform.lrs
@@ -2,19 +2,19 @@
LazarusResources.Add('TformBrowser','FORMDATA',[
'TPF0'#12'TformBrowser'#11'formBrowser'#4'Left'#3'G'#1#6'Height'#3#183#1#3'To'
- +'p'#3#186#0#5'Width'#3'm'#2#12'ClientHeight'#3#183#1#11'ClientWidth'#3'm'#2#5
+ +'p'#3#186#0#5'Width'#3'm'#2#12'ClientHeight'#3#156#1#11'ClientWidth'#3'm'#2#5
+'Color'#7#9'clBtnFace'#10'Font.Color'#7#12'clWindowText'#11'Font.Height'#2
+#243#9'Font.Name'#6#5'Arial'#4'Menu'#7#8'MainMenu'#8'OnCreate'#7#10'FormCrea'
+'te'#9'OnDestroy'#7#11'FormDestroy'#6'OnShow'#7#8'FormShow'#8'Position'#7#14
+'poScreenCenter'#10'LCLVersion'#6#6'0.9.31'#0#6'TPanel'#11'panelBottom'#4'Le'
- +'ft'#2#0#6'Height'#2#18#3'Top'#3#165#1#5'Width'#3'm'#2#5'Align'#7#8'alBottom'
+ +'ft'#2#0#6'Height'#2#18#3'Top'#3#138#1#5'Width'#3'm'#2#5'Align'#7#8'alBottom'
+#9'Alignment'#7#13'taLeftJustify'#10'BevelInner'#7#9'bvLowered'#10'BevelOute'
+'r'#7#6'bvNone'#12'ClientHeight'#2#18#11'ClientWidth'#3'm'#2#8'TabOrder'#2#0
+#0#12'TProgressBar'#11'ProgressBar'#4'Left'#3#214#1#6'Height'#2#16#3'Top'#2#1
+#5'Width'#3#150#0#5'Align'#7#7'alRight'#8'TabOrder'#2#0#0#0#6'TLabel'#13'lab'
- +'elProgress'#4'Left'#3'?'#1#6'Height'#2#16#3'Top'#2#3#5'Width'#2#22#7'Captio'
+ +'elProgress'#4'Left'#3'?'#1#6'Height'#2#16#3'Top'#2#3#5'Width'#2#21#7'Captio'
+'n'#6#4'Idle'#11'ParentColor'#8#0#0#0#12'TPageControl'#11'pageBrowser'#4'Lef'
- +'t'#2#0#6'Height'#3#165#1#3'Top'#2#0#5'Width'#3'm'#2#5'Align'#7#8'alClient'#8
+ +'t'#2#0#6'Height'#3#138#1#3'Top'#2#0#5'Width'#3'm'#2#5'Align'#7#8'alClient'#8
+'TabOrder'#2#1#0#0#11'TOpenDialog'#10'OpenDialog'#10'DefaultExt'#6#4'.htm'#6
+'Filter'#6'%html files|*.htm;*.html|all files|*.*'#7'Options'#11#14'ofHideRe'
+'adOnly'#15'ofPathMustExist'#15'ofFileMustExist'#0#4'left'#3'I'#1#3'top'#2#2
@@ -34,26 +34,26 @@ LazarusResources.Add('TformBrowser','FORMDATA',[
+#7#10'Find1Click'#0#0#9'TMenuItem'#8'CopyItem'#7'Caption'#6#5'&Copy'#8'Short'
+'Cut'#3'C@'#7'OnClick'#7#13'CopyItemClick'#0#0#9'TMenuItem'#2'N2'#7'Caption'
+#6#1'-'#0#0#9'TMenuItem'#13'SelectAllItem'#7'Caption'#6#11'Select &All'#7'En'
- +'abled'#8#7'OnClick'#7#18'SelectAllItemClick'#0#0#0#9'TMenuItem'#8'options1'
- +#7'Caption'#6#6'&Tools'#0#9'TMenuItem'#10'ShowImages'#7'Caption'#6#12'&Show '
- +'images'#7'OnClick'#7#15'ShowImagesClick'#0#0#9'TMenuItem'#5'Fonts'#7'Captio'
- +'n'#6#23'Default &Font/Colors...'#7'OnClick'#7#15'FontColorsClick'#0#0#9'TMe'
- +'nuItem'#13'menuViewDebug'#7'Caption'#6#26'View Source and Debug info'#7'OnC'
- +'lick'#7#18'menuViewDebugClick'#0#0#0#9'TMenuItem'#15'HistoryMenuItem'#7'Cap'
- +'tion'#6#8'&History'#7'Visible'#8#0#0#9'TMenuItem'#6'About1'#7'Caption'#6#6
- +'&About'#7'OnClick'#7#11'About1Click'#0#0#0#12'TPrintDialog'#11'PrintDialog'
- +#8'FromPage'#2#1#7'MinPage'#2#1#7'MaxPage'#3#15''''#7'Options'#11#10'poPageN'
- +'ums'#0#6'ToPage'#2#1#4'left'#3'j'#1#3'top'#2#1#0#0#11'TFindDialog'#10'FindD'
- +'ialog'#7'Options'#11#6'frDown'#15'frHideWholeWord'#18'frDisableWholeWord'#0
- +#6'OnFind'#7#14'FindDialogFind'#4'left'#3#248#0#3'top'#2#4#0#0#10'TPopupMenu'
- +#9'PopupMenu'#4'left'#3#144#1#3'top'#2#1#0#9'TMenuItem'#9'Viewimage'#7'Capti'
- +'on'#6#11'&View image'#7'OnClick'#7#14'ViewimageClick'#0#0#9'TMenuItem'#20'C'
- +'opyImageToClipboard'#7'Caption'#6#24'&Copy image to clipboard'#7'OnClick'#7
- +#25'CopyImageToClipboardClick'#0#0#9'TMenuItem'#2'N3'#7'Caption'#6#1'-'#0#0#9
- +'TMenuItem'#15'OpenInNewWindow'#7'Caption'#6#19'&Open in new window'#7'OnCli'
- +'ck'#7#20'OpenInNewWindowClick'#0#0#0#6'TTimer'#9'MetaTimer'#7'Enabled'#8#7
- +'OnTimer'#7#14'MetaTimerTimer'#4'left'#3#242#0#3'top'#2'K'#0#0#6'TTimer'#6'T'
- +'imer1'#8'Interval'#3#200#0#7'OnTimer'#7#11'Timer1Timer'#4'left'#3'0'#1#3'to'
- +'p'#2'G'#0#0#19'TPrinterSetupDialog'#18'PrinterSetupDialog'#4'left'#3#192#1#0
- +#0#0
+ +'abled'#8#7'OnClick'#7#18'SelectAllItemClick'#0#0#0#9'TMenuItem'#11'menuOpti'
+ +'ons'#7'Caption'#6#6'&Tools'#0#9'TMenuItem'#10'ShowImages'#7'Caption'#6#12'&'
+ +'Show images'#7'OnClick'#7#15'ShowImagesClick'#0#0#9'TMenuItem'#5'Fonts'#7'C'
+ +'aption'#6#23'Default &Font/Colors...'#7'OnClick'#7#15'FontColorsClick'#0#0#9
+ +'TMenuItem'#13'menuViewDebug'#7'Caption'#6#26'View Source and Debug info'#7
+ +'OnClick'#7#18'menuViewDebugClick'#0#0#9'TMenuItem'#16'menuToolsModules'#7'C'
+ +'aption'#6#7'Modules'#0#0#0#9'TMenuItem'#15'HistoryMenuItem'#7'Caption'#6#8
+ +'&History'#7'Visible'#8#0#0#9'TMenuItem'#6'About1'#7'Caption'#6#6'&About'#7
+ +'OnClick'#7#11'About1Click'#0#0#0#12'TPrintDialog'#11'PrintDialog'#8'FromPag'
+ +'e'#2#1#7'MinPage'#2#1#7'MaxPage'#3#15''''#7'Options'#11#10'poPageNums'#0#6
+ +'ToPage'#2#1#4'left'#3'j'#1#3'top'#2#1#0#0#11'TFindDialog'#10'FindDialog'#7
+ +'Options'#11#6'frDown'#15'frHideWholeWord'#18'frDisableWholeWord'#0#6'OnFind'
+ +#7#14'FindDialogFind'#4'left'#3#248#0#3'top'#2#4#0#0#10'TPopupMenu'#9'PopupM'
+ +'enu'#4'left'#3#144#1#3'top'#2#1#0#9'TMenuItem'#9'Viewimage'#7'Caption'#6#11
+ +'&View image'#7'OnClick'#7#14'ViewimageClick'#0#0#9'TMenuItem'#20'CopyImageT'
+ +'oClipboard'#7'Caption'#6#24'&Copy image to clipboard'#7'OnClick'#7#25'CopyI'
+ +'mageToClipboardClick'#0#0#9'TMenuItem'#2'N3'#7'Caption'#6#1'-'#0#0#9'TMenuI'
+ +'tem'#15'OpenInNewWindow'#7'Caption'#6#19'&Open in new window'#7'OnClick'#7
+ +#20'OpenInNewWindowClick'#0#0#0#6'TTimer'#9'MetaTimer'#7'Enabled'#8#7'OnTime'
+ +'r'#7#14'MetaTimerTimer'#4'left'#3#242#0#3'top'#2'K'#0#0#6'TTimer'#6'Timer1'
+ +#8'Interval'#3#200#0#7'OnTimer'#7#11'Timer1Timer'#4'left'#3'0'#1#3'top'#2'G'
+ +#0#0#19'TPrinterSetupDialog'#18'PrinterSetupDialog'#4'left'#3#192#1#0#0#0
]);
diff --git a/applications/fpbrowser/mainform.pas b/applications/fpbrowser/mainform.pas
index 8c812bffa..f8538d256 100644
--- a/applications/fpbrowser/mainform.pas
+++ b/applications/fpbrowser/mainform.pas
@@ -14,8 +14,7 @@ uses
ComCtrls,
{$IFDEF MSWINDOWS} ShellAPI, {$ELSE} Unix, {$ENDIF}
HTMLabt,
- pageloader,
- browserviewer;
+ pageloader, browserviewer, browsermodules;
type
@@ -23,6 +22,7 @@ type
TformBrowser = class(TForm)
labelProgress: TLabel;
+ menuToolsModules: TMenuItem;
menuViewDebug: TMenuItem;
N1: TMenuItem;
OpenDialog: TOpenDialog;
@@ -31,7 +31,7 @@ type
panelBottom: TPanel;
File1: TMenuItem;
Open: TMenuItem;
- options1: TMenuItem;
+ menuOptions: TMenuItem;
ShowImages: TMenuItem;
Fonts: TMenuItem;
HistoryMenuItem: TMenuItem;
@@ -114,6 +114,9 @@ type
procedure CloseAll;
procedure ForwardClick(Sender: TObject);
procedure BackClick(Sender: TObject);
+ procedure InitializeForm();
+ procedure UpdateModulesMenu();
+ procedure HandleModuleMenuItemClick(Sender: TObject);
public
{ Public declarations }
CurrentTab: Integer;
@@ -133,55 +136,8 @@ uses
Submit, ImgForm;//, FontDlg;
procedure TformBrowser.FormCreate(Sender: TObject);
-var
- I: integer;
begin
- History := TStringList.Create;
-
- AddBrowserTab('', True);
-
- Position := poScreenCenter;
-
- {$IFDEF DARWIN} //Don't default to within app bundle.
- OpenDialog.InitialDir := ExtractFilePath(ParamStr(0)) + '../../../';
- {$ELSE}
- OpenDialog.InitialDir := ExtractFilePath(ParamStr(0));
- {$ENDIF}
-
- Caption := 'HTML Demo, Version '+HTMLAbt.Version;
-
- (*for I := 0 to MaxHistories-1 do
- begin {create the MenuItems for the history list}
- Histories[I] := TMenuItem.Create(HistoryMenuItem);
- HistoryMenuItem.Insert(I, Histories[I]);
- with Histories[I] do
- begin
- Visible := False;
- OnClick := HistoryClick;
- Tag := I;
- end;
- end;*)
-
- {$IFDEF LCLCarbon}
- AppMenu := TMenuItem.Create(Self); //Application menu
- AppMenu.Caption := #$EF#$A3#$BF; //Unicode Apple logo char
- MainMenu.Items.Insert(0, AppMenu);
- MainMenu.Items.Remove(About1); //Remove About as separate menu
- AppMenu.Add(About1); //Add About as item in application menu
-
- File1.Remove(File1.Items[File1.Count-2]);
- File1.Remove(Exit1); //Remove Exit since have Quit
-
- Find1.ShortCut := ShortCut(VK_F, [ssMeta]);
- CopyItem.ShortCut := ShortCut(VK_C, [ssMeta]);
- SelectAllItem.ShortCut := ShortCut(VK_A, [ssMeta]);
- {$ENDIF}
-
- AllowDropFiles := True;
- OnDropFiles := DropFiles;
-
- HintWindow := THintWindow.Create(Self);
- HintWindow.Color := $C0FFFF;
+ InitializeForm();
end;
procedure TformBrowser.FormShow(Sender: TObject);
@@ -272,6 +228,97 @@ begin
//buttonForward.Enabled := True;
end;
+procedure TformBrowser.InitializeForm;
+var
+ I: integer;
+begin
+ History := TStringList.Create;
+
+ AddBrowserTab('', True);
+
+ Position := poScreenCenter;
+
+ {$IFDEF DARWIN} //Don't default to within app bundle.
+ OpenDialog.InitialDir := ExtractFilePath(ParamStr(0)) + '../../../';
+ {$ELSE}
+ OpenDialog.InitialDir := ExtractFilePath(ParamStr(0));
+ {$ENDIF}
+
+ Caption := 'fpBrowser, Version '+HTMLAbt.Version;
+
+ (*for I := 0 to MaxHistories-1 do
+ begin {create the MenuItems for the history list}
+ Histories[I] := TMenuItem.Create(HistoryMenuItem);
+ HistoryMenuItem.Insert(I, Histories[I]);
+ with Histories[I] do
+ begin
+ Visible := False;
+ OnClick := HistoryClick;
+ Tag := I;
+ end;
+ end;*)
+
+ {$IFDEF LCLCarbon}
+ AppMenu := TMenuItem.Create(Self); //Application menu
+ AppMenu.Caption := #$EF#$A3#$BF; //Unicode Apple logo char
+ MainMenu.Items.Insert(0, AppMenu);
+ MainMenu.Items.Remove(About1); //Remove About as separate menu
+ AppMenu.Add(About1); //Add About as item in application menu
+
+ File1.Remove(File1.Items[File1.Count-2]);
+ File1.Remove(Exit1); //Remove Exit since have Quit
+
+ Find1.ShortCut := ShortCut(VK_F, [ssMeta]);
+ CopyItem.ShortCut := ShortCut(VK_C, [ssMeta]);
+ SelectAllItem.ShortCut := ShortCut(VK_A, [ssMeta]);
+ {$ENDIF}
+
+ AllowDropFiles := True;
+ OnDropFiles := DropFiles;
+
+ HintWindow := THintWindow.Create(Self);
+ HintWindow.Color := $C0FFFF;
+
+ // Add the modules menu
+ UpdateModulesMenu();
+end;
+
+procedure TformBrowser.UpdateModulesMenu;
+var
+ lItem: TMenuItem;
+ lModule: TBrowserModule;
+ i: Integer;
+begin
+ // First remove any existing modules
+ menuToolsModules.Clear;
+
+ // Now add all modules and their state
+ for i := 0 to GetBrowserModuleCount() - 1 do
+ begin
+ lModule := GetBrowserModule(0);
+ lItem := TMenuItem.Create(nil);
+ lItem.Caption := lModule.ShortDescription;
+ lItem.Checked := lModule.Activated;
+ lItem.OnClick := HandleModuleMenuItemClick;
+ menuToolsModules.Add(lItem);
+ end;
+end;
+
+procedure TformBrowser.HandleModuleMenuItemClick(Sender: TObject);
+var
+ lItem: TMenuItem;
+ lModuleNum: Integer;
+ lModule: TBrowserModule;
+ lNewState: Boolean;
+begin
+ lItem := Sender as TMenuItem;
+ lNewState := not lItem.Checked;
+ lItem.Checked := lNewState;
+ lModuleNum := lItem.Parent.IndexOf(lItem);
+ lModule := GetBrowserModule(lModuleNum);
+ lModule.Activated := lNewState;
+end;
+
procedure TformBrowser.HistoryChange(Sender: TObject);
{This event occurs when something changes history list}
var
@@ -702,6 +749,7 @@ var
leditURL: TEdit;
begin
lTabSheet := pageBrowser.AddTabSheet(); // This call requires Lazarus 0.9.31+
+ lTabSheet.Caption := 'WebPage';
// Add the top panel of the tab with buttons and the edit box
lTopPanel := TPanel.Create(lTabSheet);