(* ***** 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.