Prechádzať zdrojové kódy

* Clipboard support (bug ID 0038726)

michael 4 rokov pred
rodič
commit
7f00bc04ab
1 zmenil súbory, kde vykonal 41 pridanie a 1 odobranie
  1. 41 1
      packages/rtl/web.pas

+ 41 - 1
packages/rtl/web.pas

@@ -41,6 +41,7 @@ Type
   TJSPointerEvent = Class;
   TJSUIEvent = class;
   TJSTouchEvent = Class;
+  TJSBlob = class;
 
 
   { TEventListenerEvent }
@@ -725,6 +726,14 @@ TEventListenerEvent = class external name 'EventListener_Event' (TJSObject)
   end;
   TJSDragDropEventHandler = reference to function(aEvent: TJSDragEvent) : Boolean; safecall;
   THTMLClickEventHandler = reference to function(aEvent : TJSMouseEvent) : boolean; safecall;
+
+  TJSClipBoardEvent = Class external name 'ClipboardEvent' (TJSEvent)
+  Private
+    FClipboardData: TJSDataTransfer external name 'clipboardData';
+  Public
+    Property ClipBoardData : TJSDataTransfer Read FClipBoardData;
+  end;
+
   { Various events }
 
 {$IFNDEF FIREFOX}
@@ -1766,6 +1775,22 @@ TEventListenerEvent = class external name 'EventListener_Event' (TJSObject)
     property ready : TJSPromise read FReady;
   end;
 
+  TJSClipboardItemOptions = Class external name 'Object' (TJSObject)
+    presentationStyle : String;
+  end;
+
+  TJSClipBoardItem = Class external name 'ClipboardItem' (TJSObject)
+    constructor new(aData : TJSObject; aOptions : TJSOBject); overload;
+    constructor new(aData : TJSObject; aOptions : TJSClipboardItemOptions); overload;
+    constructor new(aData : TJSObject); overload;
+  end;
+
+  TJSClipBoard = class external name 'Clipboard' (TJSEventTarget)
+    Function read : TJSPromise;
+    Function readText : TJSPromise;
+    Function write(Data : Array of TJSClipBoardItem) : TJSPromise;
+    Function writeText(aText : String) : TJSPromise;
+  end;
 
   { TJSNavigator }
 
@@ -1786,6 +1811,7 @@ TEventListenerEvent = class external name 'EventListener_Event' (TJSObject)
     FPlatform: string; external name 'platform';
     FServiceWorker: TJSServiceWorkerContainer; external name 'serviceWorker';
     FUserAgent: string; external name 'userAgent';
+    fClipBoard : TJSClipBoard; external name 'clipboard';
   public
     function getBattery : TJSPromise;
     function requestMediaKeySystemAccess(aKeySystem : String; supportedConfigurations : TJSValueDynArray) : TJSPromise;
@@ -1808,6 +1834,7 @@ TEventListenerEvent = class external name 'EventListener_Event' (TJSObject)
     property platform : string read FPlatform;
     property userAgent : string read FUserAgent;
     property serviceWorker : TJSServiceWorkerContainer read FServiceWorker;
+    property ClipBoard : TJSClipBoard Read FCLipboard;
   end;
 
   { TJSTouchEvent }
@@ -1866,7 +1893,6 @@ TEventListenerEvent = class external name 'EventListener_Event' (TJSObject)
     property width: Integer read Fwidth;
   end;
 
-  TJSBlob = class;
 
   TJSParamEnumCallBack = reference to procedure (const aKey,aValue : string);
   TJSURLSearchParams = class external name 'URLSearchParams' (TJSObject)
@@ -3765,6 +3791,20 @@ TEventListenerEvent = class external name 'EventListener_Event' (TJSObject)
     content : TJSHTMLElement;
   end;
 
+    TJSHTMLOrXMLDocument = Class external name 'Document' (TJSDocument)
+  end;
+
+  TJSHTMLDocument = Class external name 'HTMLDocument' (TJSHTMLOrXMLDocument)
+  end;
+
+  TJSXMLDocument = Class external name 'HTMLDocument' (TJSHTMLOrXMLDocument)
+  end;
+
+  TDOMParser = Class external name 'DOMParser' (TJSObject)
+  Public
+    Function parseFromString (aString,aMimetype : String): TJSHTMLOrXMLDocument;
+  end;
+
 
 var
   document : TJSDocument; external name 'document';