Missing file updates to compile Gecko components.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1520 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
Joshy 2011-03-04 10:22:15 +00:00
parent f02506ab90
commit d35cec6ab2
4 changed files with 142 additions and 19 deletions

View File

@ -63,3 +63,73 @@ LazarusResources.Add('TGeckoBrowser','BMP',[
+#128#128#0#128#128#0#128#128#0#128#128#0#128#128#0#128#128#0#128#0#0#128#0#0 +#128#128#0#128#128#0#128#128#0#128#128#0#128#128#0#128#128#0#128#0#0#128#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#128#0#0#128#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#128#0#0#128#0#0#0#0#0#0#0#0#0
]); ]);
LazarusResources.Add('TGeckoPrompt','BMP',[
'BMv'#6#0#0#0#0#0#0'6'#4#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0#8#0#0#0#0#0#0#0#0
+#0#196#14#0#0#196#14#0#0#0#1#0#0#0#1#0#0'@@@'#255'{bP'#255'}bR'#255'|dR'#255
+#127'gY'#255'~nb'#255#206'J.'#255#219'G)'#255#220'I,'#255#213'U:'#255#221'\='
+#255#226'R3'#255#226'S5'#255#234'V3'#255#228'Y;'#255#243'^9'#255#131'kZ'#255
+#133'n^'#255#156'n_'#255#142'q['#255#145't_'#255#160'm_'#255#133'tf'#255#138
+'ve'#255#143'ud'#255#140'wf'#255#141'vh'#255#142'xj'#255#147'{j'#255#146'~o'
+#255#150#127'o'#255#141#127'{'#255#145#127's'#255#168'wi'#255#229'fE'#255#237
+'aA'#255#237'cC'#255#245'fB'#255#246'hE'#255#254'iA'#255#252'mG'#255#252'pJ'
+#255#254'qI'#255#253'tN'#255#234'sQ'#255#236'tR'#255#235'{['#255#236'zY'#255
+#254'xR'#255#254'|X'#255#143#129'u'#255#144#129'u'#255#145#129'u'#255#146#130
+'v'#255#152#130'u'#255#153#133'v'#255#154#133'w'#255#147#132'x'#255#148#132
+'y'#255#149#133'z'#255#148#134'z'#255#149#134'z'#255#150#135'{'#255#149#135
+'|'#255#153#134'{'#255#151#136'}'#255#153#136'y'#255#155#139'~'#255#156#139
+#127#255#157#139'~'#255#180#135'{'#255#254#128'\'#255#236#129'b'#255#236#136
+'j'#255#254#136'f'#255#236#142's'#255#254#143'p'#255#255#143'p'#255#236#149
+'|'#255#254#150'z'#255'~v'#138#255'kr'#181#255'hp'#186#255#131'y'#139#255#129
+'y'#140#255#220#0#255#255'q'#178#218#255#128#128#128#255#134#134#134#255#135
+#134#134#255#133#128#140#255#153#139#129#255#157#140#128#255#158#142#130#255
+#156#144#129#255#157#144#134#255#149#148#147#255#148#148#148#255#149#149#149
+#255#160#145#133#255#161#146#134#255#162#146#135#255#163#147#136#255#165#145
+#136#255#164#148#137#255#165#150#138#255#166#150#139#255#161#148#140#255#162
+#149#140#255#168#151#138#255#167#153#142#255#171#152#139#255#169#153#142#255
+#181#149#135#255#189#157#143#255#162#146#145#255#162#151#147#255#173#160#149
+#255#177#165#156#255#136#139#180#255#185#169#160#255#186#175#174#255#236#156
+#132#255#254#158#132#255#255#159#133#255#196#166#154#255#236#163#141#255#254
+#166#141#255#236#170#150#255#254#173#151#255#254#174#152#255#255#175#153#255
+#236#177#159#255#210#179#168#255#208#180#170#255#236#182#167#255#232#187#173
+#255#254#182#162#255#255#183#163#255#255#189#170#255#254#190#172#255#255#190
+#173#255#225#185#176#255#254#195#179#255#254#197#182#255#254#198#183#255#244
+#203#191#255#254#205#191#255#239#225#189#255#167#187#206#255#170#191#208#255
+#176#197#208#255#201#200#199#255#201#193#203#255#198#200#200#255#199#200#201
+#255#200#201#202#255#204#203#203#255#206#204#203#255#205#203#204#255#204#204
+#205#255#207#205#204#255#213#197#194#255#218#198#195#255#208#207#207#255#220
+#202#206#255#214#201#208#255#212#202#210#255#212#203#212#255#213#205#215#255
+#213#207#217#255#211#210#209#255#212#212#211#255#218#216#215#255#212#208#219
+#255#212#210#221#255#214#212#223#255#236#202#192#255#226#204#204#255#233#207
+#203#255#237#206#200#255#242#204#194#255#238#208#201#255#239#208#200#255#253
+#208#196#255#237#224#194#255#237#227#205#255#246#233#200#255#225#224#223#255
+#218#216#224#255#225#221#227#255#228#228#228#255#229#229#229#255#231#231#231
+#255#233#226#228#255#239#230#229#255#231#232#231#255#237#235#231#255#232#231
+#232#255#233#232#232#255#235#234#234#255#236#235#235#255#238#237#235#255#238
+#237#237#255#238#238#238#255#239#239#239#255#243#233#231#255#244#234#230#255
+#240#240#239#255#240#240#240#255#242#241#241#255#253#253#253#255#255#255#255
+#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0
+#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0
+#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0
+#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0
+#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0
+#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255'U'#0'UU'#0'U'#0'U'
+#0'UU'#0'UUU'#0'U'#0'UUU'#0'UUU'#0#0'U'#0#0'U'#0'U'#0'U'#0'U'#0'U'#0'U'#0#0
+'UU'#0'UUU'#0'U'#0#0'U'#0#0'U'#0'U'#0#0'U'#0#0'U'#0'U'#0'U'#0'UUU'#0#0'U'#0#0
+'UU'#0'UU'#0'UUU'#0'U'#0#0'U'#0#0#0'UUUUUUUUUUUUUUUUUUUUUUUUU'#22':5549>:454'
+'33<==5244444'#5'j'#209#209#209#209#209#209#209#209#209'YWWWY'#185#186'XWWWX'
+#193'5i'#209#209#209#209#209#209#209#209#209'W'#212#212#212'W'#187#148'W'#212
+#212#212'W'#191'9h'#209#209#209#209#209#209#209#209#209'bWWW`'#197#202'aWWWa'
+#204':f'#209#209#209#209#209#209#209#209#209#209#209#209#209#209#209#209#209
+#209#209#209#209#209':e'#209'YWWWWWWWWWWWWWWWWWWY'#209';d'#157'W'#212#212#212
+#212#212#212#212#212#212#212#212#212#212#212#212#212#212#212'W'#209'=e'#205
+'bWWWWWWWWWWWWWWWWWWb'#208'>f'#159#158#155#152#200#209#209#210's'#199#172#156
+#171#154#161#160#164#188#211#192#196#201'An'#209'YWWWWWWWWWWWWWWWWWWY'#203'['
+'u'#173'W'#212#212#212#212#212#212#212#212#212#212#212#212#212#212#212#212
+#212#212'W'#209'_v'#198'aWWWWWWWWWWWWWWWWWWb'#209'kx'#207#207#206#195#194#190
+#189#176#175#174#170#169#168#167#166#165#178#179#182#183#180#180'g'#134#147
+#181#177#163#143#139#137#129#127'{OLJG0*''('#15#13#14#8'F}'#184#162#150#149
,#145#141#138#131#127'|OMJG011)&#'#11#7'!r'#146#151'V'#153#144#140#137#130#127
+'{OMJG0G+)%$'#12#7#21'q'#136#133'y'#142#135#132#128'~zNKIH/-.-,"'#10#9#6#18
+'E^D\oDB'#27#26#16#1#2#3#3#4#24#19#20#30'6STP'#31'?]cpfmC@ '#29#23#17#17#25
+'87'#28#28'ltQwRZ'
]);

View File

@ -56,7 +56,7 @@ uses
LclIntf, LMessages, LclType, LResources, Graphics, LclIntf, LMessages, LclType, LResources, Graphics,
SysUtils, Classes, Controls, nsXPCOM, SysUtils, Classes, Controls, nsXPCOM,
nsGeckoStrings, nsTypes, CallbackInterfaces, nsXPCOMGlue, BrowserSupports, nsGeckoStrings, nsTypes, CallbackInterfaces, nsXPCOMGlue, BrowserSupports,
nsXPCOM_std19 nsXPCOM_std19, GeckoPromptService
{$IFDEF LCLCarbon}, CarbonPrivate {$ENDIF} {$IFDEF LCLCarbon}, CarbonPrivate {$ENDIF}
{$IFDEF LCLCocoa}, CocoaPrivate, CocoaAll, CocoaUtils {$ENDIF} {$IFDEF LCLCocoa}, CocoaPrivate, CocoaAll, CocoaUtils {$ENDIF}
{$IFDEF LCLGtk2}, gtk2, {$IFDEF LCLGtk2}, gtk2,
@ -191,6 +191,9 @@ type
FGeckoComponentsStartupSucceeded: boolean; FGeckoComponentsStartupSucceeded: boolean;
//Linked event components
FPromptService: TGeckoPrompt;
//misc settings //misc settings
FDisableJavaScript: Boolean; FDisableJavaScript: Boolean;
FInitializationStarted: Boolean; FInitializationStarted: Boolean;
@ -327,6 +330,10 @@ type
property DisableJavaScript: Boolean property DisableJavaScript: Boolean
read GetDisableJavaScript write SetDisableJavascript; read GetDisableJavaScript write SetDisableJavascript;
property Initialized: Boolean read FInitialized; property Initialized: Boolean read FInitialized;
// Linked components set
property Prompt: TGeckoPrompt
read FPromptService write FPromptService;
end; end;
TCustomGeckoBrowserChrome = class(TInterfacedObject, TCustomGeckoBrowserChrome = class(TInterfacedObject,
@ -438,11 +445,14 @@ type
function GetURIString: UTF8String; function GetURIString: UTF8String;
public public
constructor Create(AOwner: TComponent); override; constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property Title: WideString read FTitle; property Title: WideString read FTitle;
property URIString: UTF8String read GetURIString; property URIString: UTF8String read GetURIString;
class function GetGeckoBrowserWithDOMWindow(constref DOMWindow: nsIDOMWindow): TGeckoBrowser;
published published
property OnDOMLoad: TGeckoBrowserDOMEventHandler property OnDOMLoad: TGeckoBrowserDOMEventHandler
read FOnDOMLoad write FOnDOMLoad; read FOnDOMLoad write FOnDOMLoad;
@ -514,7 +524,7 @@ type
property OnDirectoryService; property OnDirectoryService;
property DisableJavaScript; property DisableJavaScript;
property Prompt;
public public
property ContentDocument; property ContentDocument;
property ContentWindow; property ContentWindow;
@ -523,6 +533,8 @@ type
end; end;
{ TGeckoBrowserChrome }
TGeckoBrowserChrome = class(TCustomGeckoBrowserChrome, TGeckoBrowserChrome = class(TCustomGeckoBrowserChrome,
nsIInterfaceRequestor_std19, nsIInterfaceRequestor_std19,
nsIContextMenuListener2, nsIContextMenuListener2,
@ -724,6 +736,9 @@ uses
nsError, nsStream, nsMemory, nsNetUtil, GeckoInit, nsError, nsStream, nsMemory, nsNetUtil, GeckoInit,
Forms, TypInfo, Variants; Forms, TypInfo, Variants;
var
GeckoListBrowsers: TFPList=nil;
procedure Register; procedure Register;
begin begin
RegisterComponents('Gecko', [TGeckoBrowser]); RegisterComponents('Gecko', [TGeckoBrowser]);
@ -1310,6 +1325,8 @@ begin
try try
GeckoComponentsStartup; GeckoComponentsStartup;
FGeckoComponentsStartupSucceeded := true; FGeckoComponentsStartupSucceeded := true;
//Create the prompt service and register
RegisterPromptService;
except except
FGeckoComponentsStartupSucceeded := false; FGeckoComponentsStartupSucceeded := false;
end; end;
@ -1403,7 +1420,7 @@ begin
FBrowser.OnStatusChange(FBrowser, status); FBrowser.OnStatusChange(FBrowser, status);
end; end;
function TGeckoBrowserChrome.GetWebBrowser function TGeckoBrowserChrome.GetWebBrowser()
: nsIWebBrowser; : nsIWebBrowser;
begin begin
Result := FBrowser.FWebBrowser; Result := FBrowser.FWebBrowser;
@ -1415,7 +1432,7 @@ begin
FBrowser.FWebBrowser := aWebBrowser; FBrowser.FWebBrowser := aWebBrowser;
end; end;
function TGeckoBrowserChrome.GetChromeFlags function TGeckoBrowserChrome.GetChromeFlags()
: PRUint32; : PRUint32;
begin begin
//TODO 2 -cTGeckoBrowserChrome: Chrome フラグの扱いをどうしようか //TODO 2 -cTGeckoBrowserChrome: Chrome フラグの扱いをどうしようか
@ -1428,7 +1445,7 @@ begin
UseParameter(aChromeFlags); UseParameter(aChromeFlags);
end; end;
procedure TGeckoBrowserChrome.DestroyBrowserWindow; procedure TGeckoBrowserChrome.DestroyBrowserWindow();
begin begin
if Assigned(FBrowser.FOnCloseWindow) then if Assigned(FBrowser.FOnCloseWindow) then
FBrowser.FOnCloseWindow(FBrowser); FBrowser.FOnCloseWindow(FBrowser);
@ -1442,11 +1459,11 @@ begin
FBrowser.Height:= aCY; FBrowser.Height:= aCY;
end; end;
procedure TGeckoBrowserChrome.ShowAsModal; procedure TGeckoBrowserChrome.ShowAsModal();
begin begin
end; end;
function TGeckoBrowserChrome.IsWindowModal function TGeckoBrowserChrome.IsWindowModal()
: PRBool; : PRBool;
begin begin
Result := False; Result := False;
@ -1533,7 +1550,7 @@ begin
end; end;
end; end;
procedure TGeckoBrowserChrome.SetFocus; procedure TGeckoBrowserChrome.SetFocus();
begin begin
if Assigned(FBrowser.FOnVisibleChange) then begin if Assigned(FBrowser.FOnVisibleChange) then begin
//Give the browser a chance to become visible //Give the browser a chance to become visible
@ -1546,7 +1563,7 @@ begin
end; end;
end; end;
function TGeckoBrowserChrome.GetVisibility: PRBool; function TGeckoBrowserChrome.GetVisibility(): PRBool;
begin begin
// TODO 1 -cTGeckoBrowserChrome: TGeckoBrowserChrome.GetVisibility はどうすべきか // TODO 1 -cTGeckoBrowserChrome: TGeckoBrowserChrome.GetVisibility はどうすべきか
Result := True; Result := True;
@ -1559,7 +1576,7 @@ begin
//TODO 1 -cTGeckoBrowserChrome: TGeckoBrowserChrome.SetVisibility の実装 //TODO 1 -cTGeckoBrowserChrome: TGeckoBrowserChrome.SetVisibility の実装
end; end;
function TGeckoBrowserChrome.GetTitle: PWideChar; function TGeckoBrowserChrome.GetTitle(): PWideChar;
var var
pstr: PWideChar; pstr: PWideChar;
title: WideString; title: WideString;
@ -1581,7 +1598,7 @@ begin
FBrowser.OnTitleChange(FBrowser, FBrowser.FTitle); FBrowser.OnTitleChange(FBrowser, FBrowser.FTitle);
end; end;
function TGeckoBrowserChrome.GetSiteWindow: Pointer; function TGeckoBrowserChrome.GetSiteWindow(): Pointer;
begin begin
{$PUSH} {$PUSH}
{$HINTS OFF} {$HINTS OFF}
@ -1779,6 +1796,8 @@ end;
constructor TGeckoBrowser.Create(AOwner: TComponent); constructor TGeckoBrowser.Create(AOwner: TComponent);
begin begin
if not Assigned(GeckoListBrowsers) then GeckoListBrowsers:=TFPList.Create;
GeckoListBrowsers.Add(Self);
inherited; inherited;
Chrome := TGeckoBrowserChrome.Create(Self); Chrome := TGeckoBrowserChrome.Create(Self);
Listener := TGeckoBrowserListener.Create(Self); Listener := TGeckoBrowserListener.Create(Self);
@ -1794,6 +1813,34 @@ begin
{$ENDIF} {$ENDIF}
end; end;
destructor TGeckoBrowser.Destroy;
begin
inherited Destroy;
GeckoListBrowsers.Remove(Self);
if GeckoListBrowsers.Count=0 then FreeAndNil(GeckoListBrowsers);
end;
class function TGeckoBrowser.GetGeckoBrowserWithDOMWindow(
constref DOMWindow: nsIDOMWindow): TGeckoBrowser;
var
ThisGecko: TGeckoBrowser;
t1,t2: nsIDOMWindow;
j: integer;
begin
Result:=nil;
if Assigned(GeckoListBrowsers) then begin
for j := 0 to GeckoListBrowsers.Count-1 do begin
ThisGecko:=TGeckoBrowser(GeckoListBrowsers[j]);
t1:=ThisGecko.GetContentWindow.Parent;
t2:=DOMWindow.Parent;
if t1=t2 then begin
Result:=ThisGecko;
break;
end;
end;
end;
end;
function TGeckoBrowserChrome.NS_GetInterface(constref uuid: TGUID; out _result): nsresult; function TGeckoBrowserChrome.NS_GetInterface(constref uuid: TGUID; out _result): nsresult;
begin begin
if IsEqualGUID(uuid, nsIDOMWindow) then if IsEqualGUID(uuid, nsIDOMWindow) then

View File

@ -5,9 +5,9 @@
<AddToProjectUsesSection Value="False"/> <AddToProjectUsesSection Value="False"/>
<Author Value="Gecko Components for Delphi; ported to Lazarus by Phil Hess"/> <Author Value="Gecko Components for Delphi; ported to Lazarus by Phil Hess"/>
<CompilerOptions> <CompilerOptions>
<Version Value="8"/> <Version Value="9"/>
<SearchPaths> <SearchPaths>
<OtherUnitFiles Value="../;../each-version/"/> <OtherUnitFiles Value="..;../each-version"/>
<UnitOutputDirectory Value="units/$(TargetCPU)-$(TargetOS)"/> <UnitOutputDirectory Value="units/$(TargetCPU)-$(TargetOS)"/>
</SearchPaths> </SearchPaths>
<Parsing> <Parsing>
@ -42,7 +42,7 @@
<Description Value="Gecko Components for Lazarus"/> <Description Value="Gecko Components for Lazarus"/>
<License Value="MPL 1.1"/> <License Value="MPL 1.1"/>
<Version Release="3"/> <Version Release="3"/>
<Files Count="20"> <Files Count="21">
<Item1> <Item1>
<Filename Value="GeckoBrowser.pas"/> <Filename Value="GeckoBrowser.pas"/>
<HasRegisterProc Value="True"/> <HasRegisterProc Value="True"/>
@ -124,6 +124,11 @@
<Filename Value="../each-version/nsXPCOM_std19.pas"/> <Filename Value="../each-version/nsXPCOM_std19.pas"/>
<UnitName Value="nsXPCOM_std19"/> <UnitName Value="nsXPCOM_std19"/>
</Item20> </Item20>
<Item21>
<Filename Value="GeckoPromptService.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="GeckoPromptService"/>
</Item21>
</Files> </Files>
<Type Value="RunAndDesignTime"/> <Type Value="RunAndDesignTime"/>
<RequiredPkgs Count="2"> <RequiredPkgs Count="2">

View File

@ -1,4 +1,4 @@
{ This file was automatically created by Lazarus. do not edit! { This file was automatically created by Lazarus. Do not edit!
This source is only used to compile and install the package. This source is only used to compile and install the package.
} }
@ -7,16 +7,17 @@ unit GeckoComponents;
interface interface
uses uses
GeckoBrowser, GeckoChromeWindow, GeckoInit, nsCID, GeckoBrowser, GeckoChromeWindow, GeckoInit, nsCID, nsConsts,
nsConsts, nsEnumerators, nsError, nsErrorUtils, nsGeckoStrings, nsInit, nsEnumerators, nsError, nsErrorUtils, nsGeckoStrings, nsInit, nsMemory,
nsMemory, nsNetUtil, nsStream, nsTypes, nsXPCOM, nsXPCOMGlue, nsXRE, nsNetUtil, nsStream, nsTypes, nsXPCOM, nsXPCOMGlue, nsXRE, nsXPCOM_std19,
nsXPCOM_std19, LazarusPackageIntf; GeckoPromptService, LazarusPackageIntf;
implementation implementation
procedure Register; procedure Register;
begin begin
RegisterUnit('GeckoBrowser', @GeckoBrowser.Register); RegisterUnit('GeckoBrowser', @GeckoBrowser.Register);
RegisterUnit('GeckoPromptService', @GeckoPromptService.Register);
end; end;
initialization initialization