You've already forked lazarus-ccr
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2123 8e941d3f-bd1b-0410-a28a-d453659cc2b4
122 lines
2.8 KiB
ObjectPascal
122 lines
2.8 KiB
ObjectPascal
unit browserviewer;
|
|
|
|
{$mode delphi}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils,
|
|
Controls, Forms, Graphics,
|
|
//
|
|
pageloader;
|
|
|
|
type
|
|
|
|
{ TBrowserViewer }
|
|
|
|
TBrowserViewer = class
|
|
public
|
|
MyPageLoaderThread: TPageLoaderThread;
|
|
MyPageLoader: TPageLoader;
|
|
CurrentTab: Integer;
|
|
ViewerName: string;
|
|
constructor Create; virtual;
|
|
destructor Destroy; override;
|
|
procedure CreateViewer(AParent, AOwner: TWinControl); virtual; abstract;
|
|
procedure LoadFromFile(AFilename: string); virtual; abstract;
|
|
procedure LoadFromURL(AURL: string); virtual;
|
|
function GetDocumentTitle: string; virtual; abstract;
|
|
procedure SetShowImages(AValue: Boolean); virtual; abstract;
|
|
procedure HandlePageLoaderTerminated(Sender: TObject); virtual;
|
|
procedure Reload; virtual; abstract;
|
|
end;
|
|
|
|
TBrowserViewerClass = class of TBrowserViewer;
|
|
|
|
procedure SetBrowserViewerClass(AViewerClass: TBrowserViewerClass);
|
|
function GetBrowserViewer(AIndex: Integer): TBrowserViewer;
|
|
function GetCurrentBrowserViewer: TBrowserViewer;
|
|
procedure SetCurrentBrowserViewer(AIndex: Integer);
|
|
function AddBrowserViewer(): TBrowserViewer;
|
|
procedure RemoveBrowserViewer(AIndex: Integer);
|
|
function GetBrowerViewerCount: Integer;
|
|
|
|
implementation
|
|
|
|
var
|
|
gBrowserViewerClass: TBrowserViewerClass;
|
|
gBrowserViewers: TFPList;
|
|
gCurrentViewer: Integer;
|
|
|
|
procedure SetBrowserViewerClass(AViewerClass: TBrowserViewerClass);
|
|
begin
|
|
gBrowserViewerClass := AViewerClass;
|
|
end;
|
|
|
|
function GetBrowserViewer(AIndex: Integer): TBrowserViewer;
|
|
begin
|
|
Result := gBrowserViewers.Items[AIndex];
|
|
end;
|
|
|
|
function GetCurrentBrowserViewer: TBrowserViewer;
|
|
begin
|
|
Result := GetBrowserViewer(gCurrentViewer);
|
|
end;
|
|
|
|
procedure SetCurrentBrowserViewer(AIndex: Integer);
|
|
begin
|
|
gCurrentViewer := AIndex;
|
|
end;
|
|
|
|
function AddBrowserViewer(): TBrowserViewer;
|
|
begin
|
|
Result := gBrowserViewerClass.Create();
|
|
gBrowserViewers.Add(Result);
|
|
end;
|
|
|
|
procedure RemoveBrowserViewer(AIndex: Integer);
|
|
begin
|
|
|
|
end;
|
|
|
|
function GetBrowerViewerCount: Integer;
|
|
begin
|
|
Result := gBrowserViewers.Count;
|
|
end;
|
|
|
|
{ TBrowserViewer }
|
|
|
|
constructor TBrowserViewer.Create;
|
|
begin
|
|
inherited Create;
|
|
MyPageLoader := TPageLoader.Create;
|
|
end;
|
|
|
|
destructor TBrowserViewer.Destroy;
|
|
begin
|
|
MyPageLoader.Free;
|
|
inherited Destroy;
|
|
end;
|
|
|
|
procedure TBrowserViewer.LoadFromURL(AURL: string);
|
|
begin
|
|
MyPageLoaderThread := TPageLoaderThread.Create(True);
|
|
MyPageLoaderThread.URL := AURL;
|
|
MyPageLoaderThread.PageLoader := MyPageLoader;
|
|
// MyPageLoaderThread.OnPageLoadProgress := @HandlePageLoaderProgress;
|
|
MyPageLoaderThread.OnTerminate := HandlePageLoaderTerminated;
|
|
MyPageLoaderThread.FreeOnTerminate := True;
|
|
MyPageLoaderThread.Resume;
|
|
end;
|
|
|
|
procedure TBrowserViewer.HandlePageLoaderTerminated(Sender: TObject);
|
|
begin
|
|
end;
|
|
|
|
initialization
|
|
gBrowserViewers := TFPList.Create;
|
|
finalization
|
|
gBrowserViewers.Free;
|
|
end.
|
|
|