292 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
			
		
		
	
	
			292 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
| (* ***** BEGIN LICENSE BLOCK *****
 | |
|  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
 | |
|  *
 | |
|  * The contents of this file are subject to the Mozilla Public License Version
 | |
|  * 1.1 (the "License"); you may not use this file except in compliance with
 | |
|  * the License. You may obtain a copy of the License at
 | |
|  * http://www.mozilla.org/MPL/
 | |
|  *
 | |
|  * Software distributed under the License is distributed on an "AS IS" basis,
 | |
|  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 | |
|  * for the specific language governing rights and limitations under the
 | |
|  * License.
 | |
|  *
 | |
|  * The Original Code is GeckoComponents for Delphi.
 | |
|  *
 | |
|  * The Initial Developer of the Original Code is Takanori Ito.
 | |
|  * Portions created by the Initial Developer are Copyright (C) 2003
 | |
|  * the Initial Developer. All Rights Reserved.
 | |
|  *
 | |
|  * Contributor(s):
 | |
|  *
 | |
|  * Alternatively, the contents of this file may be used under the terms of
 | |
|  * either the GNU General Public License Version 2 or later (the "GPL"), or
 | |
|  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 | |
|  * in which case the provisions of the GPL or the LGPL are applicable instead
 | |
|  * of those above. If you wish to allow use of your version of this file only
 | |
|  * under the terms of either the GPL or the LGPL, and not to allow others to
 | |
|  * use your version of this file under the terms of the MPL, indicate your
 | |
|  * decision by deleting the provisions above and replace them with the notice
 | |
|  * and other provisions required by the GPL or the LGPL. If you do not delete
 | |
|  * the provisions above, a recipient may use your version of this file under
 | |
|  * the terms of any one of the MPL, the GPL or the LGPL.
 | |
|  *
 | |
|  * ***** END LICENSE BLOCK ***** *)
 | |
| unit BrowserSupports;
 | |
| 
 | |
| interface
 | |
| 
 | |
| uses
 | |
|   nsGeckoStrings, nsTypes, nsXPCOM;
 | |
| 
 | |
| const
 | |
|   GFXIFORMATS_IID: TGUID = '{96d086e6-1dd1-11b2-b6b2-b77b59390247}';
 | |
|   GFXIFORMATS_RGB = 0;
 | |
|   GFXIFORMATS_BGR = 1;
 | |
|   GFXIFORMATS_RGB_A1 = 2;
 | |
|   GFXIFORMATS_BGR_A1 = 3;
 | |
|   GFXIFORMATS_RGB_A8 = 4;
 | |
|   GFXIFORMATS_BGR_A8 = 5;
 | |
|   GFXIFORMATS_RGBA = 6;
 | |
|   GFXIFORMATS_BGRA = 7;
 | |
| 
 | |
|   GFXIIMAGEFRAME_IID: TGUID = '{51cc27a8-1dd2-11b2-a1aa-dad33ab193b4}';
 | |
| 
 | |
|   IMGICONTAINER_IID: TGUID = '{5e8405a4-1dd2-11b2-8385-bc8e3446cad3}';
 | |
|   IMGICONTAINER_kNormalAnimMode = 0;
 | |
|   IMGICONTAINER_kDontAnimMode = 1;
 | |
|   IMGICONTAINER_kLoopOnceAnimMode = 2;
 | |
| 
 | |
|   IMGICONTAINEROBSERVER_IID: TGUID = '{153f1518-1dd2-11b2-b9cd-b16eb63e0471}';
 | |
| 
 | |
|   NS_IBASEWINDOW_IID: TGUID = '{046bc8a0-8015-11d3-af70-00a024ffc08c}';
 | |
| 
 | |
|   NS_ICONTEXTMENULISTENER2_IID: TGUID = '{7fb719b3-d804-4964-9596-77cf924ee314}';
 | |
|   NS_ICONTEXTMENULISTENER2_CONTEXT_NONE = 0;
 | |
|   NS_ICONTEXTMENULISTENER2_CONTEXT_LINK = 1;
 | |
|   NS_ICONTEXTMENULISTENER2_CONTEXT_IMAGE = 2;
 | |
|   NS_ICONTEXTMENULISTENER2_CONTEXT_DOCUMENT = 4;
 | |
|   NS_ICONTEXTMENULISTENER2_CONTEXT_TEXT = 8;
 | |
|   NS_ICONTEXTMENULISTENER2_CONTEXT_INPUT = 16;
 | |
|   NS_ICONTEXTMENULISTENER2_CONTEXT_BACKGROUND_IMAGE = 32;
 | |
| 
 | |
|   NS_ICONTEXTMENUINFO_IID: TGUID = '{2f977d56-5485-11d4-87e2-0010a4e75ef2}';
 | |
| 
 | |
|   NS_IWEBNAVIGATION_IID: TGUID = '{f5d9e7b0-d930-11d3-b057-00a024ffc08c}';
 | |
|   NS_IWEBNAVIGATION_LOAD_FLAGS_MASK = 65535;
 | |
|   NS_IWEBNAVIGATION_LOAD_FLAGS_NONE = 0;
 | |
|   NS_IWEBNAVIGATION_LOAD_FLAGS_IS_REFRESH = 16;
 | |
|   NS_IWEBNAVIGATION_LOAD_FLAGS_IS_LINK = 32;
 | |
|   NS_IWEBNAVIGATION_LOAD_FLAGS_BYPASS_HISTORY = 64;
 | |
|   NS_IWEBNAVIGATION_LOAD_FLAGS_REPLACE_HISTORY = 128;
 | |
|   NS_IWEBNAVIGATION_LOAD_FLAGS_BYPASS_CACHE = 256;
 | |
|   NS_IWEBNAVIGATION_LOAD_FLAGS_BYPASS_PROXY = 512;
 | |
|   NS_IWEBNAVIGATION_LOAD_FLAGS_CHARSET_CHANGE = 1024;
 | |
|   NS_IWEBNAVIGATION_STOP_NETWORK = 1;
 | |
|   NS_IWEBNAVIGATION_STOP_CONTENT = 2;
 | |
|   NS_IWEBNAVIGATION_STOP_ALL = 3;
 | |
| 
 | |
| type
 | |
|   gfxIFormats = interface;
 | |
|   gfxIImageFrame = interface;
 | |
|   imgIContainer = interface;
 | |
|   imgIContainerObserver = interface;
 | |
|   nsIBaseWindow = interface;
 | |
|   nsIContextMenuListener2 = interface;
 | |
|   nsIContextMenuInfo = interface;
 | |
|   nsIWebNavigation = interface;
 | |
| (***
 | |
|  * A color is a 32 bit unsigned integer with
 | |
|  * four components: R, G, B and A.
 | |
|  *
 | |
|  * @var typedef PRUint32 gfx_color
 | |
|  *)
 | |
|   gfx_color = PRUint32;
 | |
| (***
 | |
|  * typedef that should be used for bit depths
 | |
|  * @var typedef unsigned short gfx_depth
 | |
|  *)
 | |
|   gfx_depth = PRUint16;
 | |
| (***
 | |
|  * typedef that should be used for image formats
 | |
|  * @var typedef long gfx_format
 | |
|  * @see gfxIFormats
 | |
|  *)
 | |
|   gfx_format = PRInt32;
 | |
|   nscoord = PRInt32;
 | |
|   //In all currently supported platforms the native window handle is a pointer
 | |
|   //size handle. In Linux64 THANDLE can not be used because by default it is 32
 | |
|   //bits due file descriptors which are 32 bits even in 64 bit platform.
 | |
|   //Win32   WindowHandle 32 bits THANDLE 32 bits
 | |
|   //Win64   WindowHandle 64 bits THANDLE 64 bits
 | |
|   //Linux32 WindowHandle 32 bits THANDLE 32 bits
 | |
|   //Linux64 WindowHandle 64 bits THANDLE 32 bits
 | |
|   nativeWindow = PtrUInt;
 | |
|   gfxIFormats = interface
 | |
|   ['{96d086e6-1dd1-11b2-b6b2-b77b59390247}']
 | |
|   end;
 | |
| 
 | |
|   gfxIImageFrame = interface(nsISupports)
 | |
|   ['{51cc27a8-1dd2-11b2-a1aa-dad33ab193b4}']
 | |
|     procedure Init(aX: nscoord; aY: nscoord; aWidth: nscoord; aHeight: nscoord; aFormat: gfx_format; aDepth: gfx_depth); safecall;
 | |
|     function GetMutable(): PRBool; safecall;
 | |
|     procedure SetMutable(aMutable: PRBool); safecall;
 | |
|     property Mutable: PRBool read GetMutable write SetMutable;
 | |
|     function GetX(): nscoord; safecall;
 | |
|     property X: nscoord read GetX;
 | |
|     function GetY(): nscoord; safecall;
 | |
|     property Y: nscoord read GetY;
 | |
|     function GetWidth(): nscoord; safecall;
 | |
|     property Width: nscoord read GetWidth;
 | |
|     function GetHeight(): nscoord; safecall;
 | |
|     property Height: nscoord read GetHeight;
 | |
|     procedure GetRect(rect: nsRect); safecall;
 | |
|     function GetFormat(): gfx_format; safecall;
 | |
|     property Format: gfx_format read GetFormat;
 | |
|     function GetImageBytesPerRow(): PRUint32; safecall;
 | |
|     property ImageBytesPerRow: PRUint32 read GetImageBytesPerRow;
 | |
|     function GetImageDataLength(): PRUint32; safecall;
 | |
|     property ImageDataLength: PRUint32 read GetImageDataLength;
 | |
|     procedure GetImageData(out bits: PRUint8Array; out length: PRUint32); safecall;
 | |
|     procedure SetImageData(data: PRUint8Array; length: PRUint32; offset: PRInt32); safecall;
 | |
|     procedure LockImageData(); safecall;
 | |
|     procedure UnlockImageData(); safecall;
 | |
|     function GetAlphaBytesPerRow(): PRUint32; safecall;
 | |
|     property AlphaBytesPerRow: PRUint32 read GetAlphaBytesPerRow;
 | |
|     function GetAlphaDataLength(): PRUint32; safecall;
 | |
|     property AlphaDataLength: PRUint32 read GetAlphaDataLength;
 | |
|     procedure GetAlphaData(out bits: PRUint8Array; out length: PRUint32); safecall;
 | |
|     procedure SetAlphaData(data: PRUint8Array; length: PRUint32; offset: PRInt32); safecall;
 | |
|     procedure LockAlphaData(); safecall;
 | |
|     procedure UnlockAlphaData(); safecall;
 | |
|     procedure DrawTo(aDst: gfxIImageFrame; aDX: nscoord; aDY: nscoord; aDWidth: nscoord; aDHeight: nscoord); safecall;
 | |
|     function GetTimeout(): PRInt32; safecall;
 | |
|     procedure SetTimeout(aTimeout: PRInt32); safecall;
 | |
|     property Timeout: PRInt32 read GetTimeout write SetTimeout;
 | |
|     function GetFrameDisposalMethod(): PRInt32; safecall;
 | |
|     procedure SetFrameDisposalMethod(aFrameDisposalMethod: PRInt32); safecall;
 | |
|     property FrameDisposalMethod: PRInt32 read GetFrameDisposalMethod write SetFrameDisposalMethod;
 | |
|     function GetBackgroundColor(): gfx_color; safecall;
 | |
|     procedure SetBackgroundColor(aBackgroundColor: gfx_color); safecall;
 | |
|     property BackgroundColor: gfx_color read GetBackgroundColor write SetBackgroundColor;
 | |
|   end;
 | |
| 
 | |
|   imgIContainer = interface(nsISupports)
 | |
|   ['{5e8405a4-1dd2-11b2-8385-bc8e3446cad3}']
 | |
|     procedure Init(aWidth: nscoord; aHeight: nscoord; aObserver: imgIContainerObserver); safecall;
 | |
|     function GetPreferredAlphaChannelFormat(): gfx_format; safecall;
 | |
|     property PreferredAlphaChannelFormat: gfx_format read GetPreferredAlphaChannelFormat;
 | |
|     function GetWidth(): nscoord; safecall;
 | |
|     property Width: nscoord read GetWidth;
 | |
|     function GetHeight(): nscoord; safecall;
 | |
|     property Height: nscoord read GetHeight;
 | |
|     function GetCurrentFrame(): gfxIImageFrame; safecall;
 | |
|     property CurrentFrame: gfxIImageFrame read GetCurrentFrame;
 | |
|     function GetNumFrames(): PRUint32; safecall;
 | |
|     property NumFrames: PRUint32 read GetNumFrames;
 | |
|     function GetAnimationMode(): PRUint16; safecall;
 | |
|     procedure SetAnimationMode(aAnimationMode: PRUint16); safecall;
 | |
|     property AnimationMode: PRUint16 read GetAnimationMode write SetAnimationMode;
 | |
|     function GetFrameAt(index: PRUint32): gfxIImageFrame; safecall;
 | |
|     procedure AppendFrame(item: gfxIImageFrame); safecall;
 | |
|     procedure RemoveFrame(item: gfxIImageFrame); safecall;
 | |
|     procedure EndFrameDecode(framenumber: PRUint32; timeout: PRUint32); safecall;
 | |
|     procedure DecodingComplete(); safecall;
 | |
|     procedure Clear(); safecall;
 | |
|     procedure StartAnimation(); safecall;
 | |
|     procedure StopAnimation(); safecall;
 | |
|     procedure ResetAnimation(); safecall;
 | |
|     function GetLoopCount(): PRInt32; safecall;
 | |
|     procedure SetLoopCount(aLoopCount: PRInt32); safecall;
 | |
|     property LoopCount: PRInt32 read GetLoopCount write SetLoopCount;
 | |
|   end;
 | |
| 
 | |
|   imgIContainerObserver = interface(nsISupports)
 | |
|   ['{153f1518-1dd2-11b2-b9cd-b16eb63e0471}']
 | |
|     procedure FrameChanged(aContainer: imgIContainer; aFrame: gfxIImageFrame; const aDirtyRect: nsRect); safecall;
 | |
|   end;
 | |
| 
 | |
|   nsIBaseWindow = interface(nsISupports)
 | |
|   ['{046bc8a0-8015-11d3-af70-00a024ffc08c}']
 | |
|     procedure InitWindow(parentNativeWindow: nativeWindow; parentWidget: nsIWidget; x: PRInt32; y: PRInt32; cx: PRInt32; cy: PRInt32); safecall;
 | |
|     procedure Create(); safecall;
 | |
|     procedure Destroy(); safecall;
 | |
|     procedure SetPosition(x: PRInt32; y: PRInt32); safecall;
 | |
|     procedure GetPosition(out x: PRInt32; out y: PRInt32); safecall;
 | |
|     procedure SetSize(cx: PRInt32; cy: PRInt32; fRepaint: PRBool); safecall;
 | |
|     procedure GetSize(out cx: PRInt32; out cy: PRInt32); safecall;
 | |
|     procedure SetPositionAndSize(x: PRInt32; y: PRInt32; cx: PRInt32; cy: PRInt32; fRepaint: PRBool); safecall;
 | |
|     procedure GetPositionAndSize(out x: PRInt32; out y: PRInt32; out cx: PRInt32; out cy: PRInt32); safecall;
 | |
|     procedure Repaint(force: PRBool); safecall;
 | |
|     function GetParentWidget(): nsIWidget; safecall;
 | |
|     procedure SetParentWidget(aParentWidget: nsIWidget); safecall;
 | |
|     property ParentWidget: nsIWidget read GetParentWidget write SetParentWidget;
 | |
|     function GetParentNativeWindow(): nativeWindow; safecall;
 | |
|     procedure SetParentNativeWindow(aParentNativeWindow: nativeWindow); safecall;
 | |
|     property ParentNativeWindow: nativeWindow read GetParentNativeWindow write SetParentNativeWindow;
 | |
|     function GetVisibility(): PRBool; safecall;
 | |
|     procedure SetVisibility(aVisibility: PRBool); safecall;
 | |
|     property Visibility: PRBool read GetVisibility write SetVisibility;
 | |
|     function GetEnabled(): PRBool; safecall;
 | |
|     procedure SetEnabled(aEnabled: PRBool); safecall;
 | |
|     property Enabled: PRBool read GetEnabled write SetEnabled;
 | |
|     function GetBlurSuppression(): PRBool; safecall;
 | |
|     procedure SetBlurSuppression(aBlurSuppression: PRBool); safecall;
 | |
|     property BlurSuppression: PRBool read GetBlurSuppression write SetBlurSuppression;
 | |
|     function GetMainWidget(): nsIWidget; safecall;
 | |
|     property MainWidget: nsIWidget read GetMainWidget;
 | |
|     procedure SetFocus(); safecall;
 | |
|     function GetTitle(): PWideChar; safecall;
 | |
|     procedure SetTitle(const aTitle: PWideChar); safecall;
 | |
|     property Title: PWideChar read GetTitle write SetTitle;
 | |
|   end;
 | |
| 
 | |
|   nsIContextMenuListener2 = interface(nsISupports)
 | |
|   ['{7fb719b3-d804-4964-9596-77cf924ee314}']
 | |
|     procedure OnShowContextMenu(aContextFlags: PRUint32; aUtils: nsIContextMenuInfo); safecall;
 | |
|   end;
 | |
| 
 | |
|   nsIContextMenuInfo = interface(nsISupports)
 | |
|   ['{2f977d56-5485-11d4-87e2-0010a4e75ef2}']
 | |
|     function GetMouseEvent(): nsIDOMEvent; safecall;
 | |
|     property MouseEvent: nsIDOMEvent read GetMouseEvent;
 | |
|     function GetTargetNode(): nsIDOMNode; safecall;
 | |
|     property TargetNode: nsIDOMNode read GetTargetNode;
 | |
|     procedure GetAssociatedLink(aAssociatedLink: nsAString); safecall;
 | |
|     function GetImageContainer(): imgIContainer; safecall;
 | |
|     property ImageContainer: imgIContainer read GetImageContainer;
 | |
|     function GetImageSrc(): nsIURI; safecall;
 | |
|     property ImageSrc: nsIURI read GetImageSrc;
 | |
|     function GetBackgroundImageContainer(): imgIContainer; safecall;
 | |
|     property BackgroundImageContainer: imgIContainer read GetBackgroundImageContainer;
 | |
|     function GetBackgroundImageSrc(): nsIURI; safecall;
 | |
|     property BackgroundImageSrc: nsIURI read GetBackgroundImageSrc;
 | |
|   end;
 | |
| 
 | |
|   nsIWebNavigation = interface(nsISupports)
 | |
|   ['{f5d9e7b0-d930-11d3-b057-00a024ffc08c}']
 | |
|     function GetCanGoBack(): PRBool; safecall;
 | |
|     property CanGoBack: PRBool read GetCanGoBack;
 | |
|     function GetCanGoForward(): PRBool; safecall;
 | |
|     property CanGoForward: PRBool read GetCanGoForward;
 | |
|     procedure GoBack(); safecall;
 | |
|     procedure GoForward(); safecall;
 | |
|     procedure GotoIndex(index: PRInt32); safecall;
 | |
|     procedure LoadURI(const uri: PWideChar; loadFlags: PRUint32; referrer: nsIURI; postData: nsIInputStream; headers: nsIInputStream); safecall;
 | |
|     procedure Reload(reloadFlags: PRUint32); safecall;
 | |
|     procedure Stop(stopFlags: PRUint32); safecall;
 | |
|     function GetDocument(): nsIDOMDocument; safecall;
 | |
|     property Document: nsIDOMDocument read GetDocument;
 | |
|     function GetCurrentURI(): nsIURI; safecall;
 | |
|     property CurrentURI: nsIURI read GetCurrentURI;
 | |
|     function GetReferringURI(): nsIURI; safecall;
 | |
|     property ReferringURI: nsIURI read GetReferringURI;
 | |
|     function GetSessionHistory(): nsISHistory; safecall;
 | |
|     procedure SetSessionHistory(aSessionHistory: nsISHistory); safecall;
 | |
|     property SessionHistory: nsISHistory read GetSessionHistory write SetSessionHistory;
 | |
|   end;
 | |
| 
 | |
| implementation
 | |
| 
 | |
| end.
 |