lasarus_compotents/gecko/Components/BrowserSupports.pas

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.