Adds support for the user adding new tabs by itself (requires Lazarus rev 33539+)

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2136 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
sekelsenmat 2011-11-15 10:22:30 +00:00
parent 5195e212a1
commit c38546ca77
4 changed files with 36 additions and 22 deletions

View File

@ -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,7 +39,7 @@ object formBrowser: TformBrowser
Left = 319
Height = 16
Top = 3
Width = 22
Width = 21
Caption = 'Idle'
ParentColor = False
end

View File

@ -2,17 +2,17 @@
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#11'TOpenDialog'#10'OpenDialog'#10'Defa'
+'ultExt'#6#4'.htm'#6'Filter'#6'%html files|*.htm;*.html|all files|*.*'#7'Opt'
+'ions'#11#14'ofHideReadOnly'#15'ofPathMustExist'#15'ofFileMustExist'#0#4'lef'

View File

@ -126,10 +126,12 @@ type
CurrentTab: Integer;
procedure LoadURL(AURL: string);
procedure AddBrowserTab(AURL: string; AGoToTab: Boolean);
procedure AddBrowserControlsToTab(ATabSheet: TCDTabSheet);
procedure AddMemoTab(AText: TStringList; ACaption: string; AGoToTab: Boolean);
procedure AddURLToHistory(AURL: string);
procedure HandlePageLoaderProgress(APercent: Integer);
procedure HandlePageLoaderTerminated(Sender: TObject);
procedure HandleUserAddedPage(Sender: TObject; APage: TCDTabSheet);
end;
var
@ -147,7 +149,8 @@ begin
pageBrowser.Align := alClient;
pageBrowser.DrawStyle := dsKDE;
pageBrowser.Options := [nboShowCloseButtons, nboHidePageListPopup,
nboKeyboardTabSwitch];
nboKeyboardTabSwitch, nboShowAddTabButton];
pageBrowser.OnUserAddedPage := HandleUserAddedPage;
InitializeForm();
end;
@ -776,18 +779,30 @@ end;
procedure TformBrowser.AddBrowserTab(AURL: string; AGoToTab: Boolean);
var
lViewer: TBrowserViewer;
lTabSheet: TCDTabSheet;
lTopPanel: TPanel;
lbuttonReload, lbuttonBack, lbuttonForward: TBitBtn;
leditURL: TEdit;
begin
lTabSheet := pageBrowser.AddPage(''); // This call requires Lazarus 0.9.31+
lTabSheet.Caption := 'WebPage';
AddBrowserControlsToTab(lTabSheet);
if AGoToTab then
begin
CurrentTab := GetBrowerViewerCount() - 1;
SetCurrentBrowserViewer(CurrentTab);
end;
end;
procedure TformBrowser.AddBrowserControlsToTab(ATabSheet: TCDTabSheet);
var
lViewer: TBrowserViewer;
lTopPanel: TPanel;
lbuttonReload, lbuttonBack, lbuttonForward: TBitBtn;
leditURL: TEdit;
begin
// Add the top panel of the tab with buttons and the edit box
lTopPanel := TPanel.Create(lTabSheet);
lTopPanel.Parent := lTabSheet;
lTopPanel := TPanel.Create(ATabSheet);
lTopPanel.Parent := ATabSheet;
lTopPanel.Align := alTop;
lTopPanel.Height := 33;
@ -828,13 +843,7 @@ begin
// Add the HTML Viewer
lViewer := AddBrowserViewer();
lViewer.CreateViewer(lTabSheet, Self);
if AGoToTab then
begin
CurrentTab := GetBrowerViewerCount() - 1;
SetCurrentBrowserViewer(CurrentTab);
end;
lViewer.CreateViewer(ATabSheet, Self);
end;
procedure TformBrowser.AddMemoTab(AText: TStringList; ACaption: string;
@ -886,6 +895,11 @@ begin
AddURLToHistory(MyPageLoader.LastPageURL);}
end;
procedure TformBrowser.HandleUserAddedPage(Sender: TObject; APage: TCDTabSheet);
begin
AddBrowserControlsToTab(APage);
end;
procedure TformBrowser.Timer1Timer(Sender: TObject);
const
StartCount = 2; {timer counts before hint window opens}

View File

@ -195,7 +195,7 @@ begin
ViewerName := 'Turbo Power iPro HTML viewer written in Pascal';
DataProvider1:=TMyIpHtmlDataProvider.Create(AOwner);
DataProvider1.Name:='DataProvider1';
//DataProvider1.Name:='DataProvider1';
DataProvider1.OnCanHandle:=DataProvider1CanHandle;
DataProvider1.OnGetHtml:=DataProvider1GetHtml;
DataProvider1.OnGetImage:=DataProvider1GetImage;
@ -204,7 +204,7 @@ begin
DataProvider1.OnReportReference:=DataProvider1ReportReference;
IpHtmlPanel1:=TIpHtmlPanel.Create(AOwner);
IpHtmlPanel1.Name:='IpHtmlPanel1';
//IpHtmlPanel1.Name:='IpHtmlPanel1';
IpHtmlPanel1.Parent:=AParent;
IpHtmlPanel1.Align:=alClient;
IpHtmlPanel1.DefaultFontSize:=10;