Browse Source

Clipboard Fix (#971)

Maurice Doison 4 years ago
parent
commit
81e45c02e1
2 changed files with 8 additions and 173 deletions
  1. 0 173
      System.js.hx
  2. 8 0
      hxd/System.js.hx

+ 0 - 173
System.js.hx

@@ -1,173 +0,0 @@
-package hxd;
-
-enum Platform {
-	IOS;
-	Android;
-	WebGL;
-	PC;
-	Console;
-	FlashPlayer;
-}
-
-enum SystemValue {
-	IsTouch;
-	IsWindowed;
-	IsMobile;
-}
-
-class System {
-
-	public static var width(get,never) : Int;
-	public static var height(get, never) : Int;
-	public static var lang(get, never) : String;
-	public static var platform(get, never) : Platform;
-	public static var screenDPI(get,never) : Float;
-	public static var setCursor = setNativeCursor;
-	public static var allowTimeout(get, set) : Bool;
-
-	public static function timeoutTick() : Void {
-	}
-
-	static var loopFunc : Void -> Void;
-
-	// JS
-	static var loopInit = false;
-	static var currentNativeCursor:hxd.Cursor;
-	static var currentCustomCursor:hxd.Cursor.CustomCursor;
-
-	/** If greater than 0, this will reduce loop framerate to reduce CPU usage **/
-	public static var fpsLimit = -1;
-
-	public static function getCurrentLoop() : Void -> Void {
-		return loopFunc;
-	}
-
-	public static function setLoop( f : Void -> Void ) : Void {
-		if( !loopInit ) {
-			loopInit = true;
-			browserLoop();
-		}
-		loopFunc = f;
-	}
-
-	static function browserLoop() {
-		if( js.Browser.supported ) {
-			var window : Dynamic = js.Browser.window;
-			var rqf : Dynamic = window.requestAnimationFrame ||
-				window.webkitRequestAnimationFrame ||
-				window.mozRequestAnimationFrame;
-			if( fpsLimit>0 )
-				js.Browser.window.setTimeout( ()->rqf(browserLoop), 1000/fpsLimit );
-			else
-				rqf(browserLoop);
-		} else {
-			#if (nodejs && hxnodejs)
-			js.node.Timers.setTimeout(browserLoop, 0);
-			#else
-			throw "Cannot use browserLoop without Browser support nor defining nodejs + hxnodejs";
-			#end
-		}
-		if( loopFunc != null ) loopFunc();
-	}
-
-	public static function start( callb : Void -> Void ) : Void {
-		callb();
-	}
-
-	public static function setNativeCursor( c : Cursor ) : Void {
-		if( currentNativeCursor != null && c.equals(currentNativeCursor) )
-			return;
-		currentNativeCursor = c;
-		currentCustomCursor = null;
-		var canvas = @:privateAccess hxd.Window.getInstance().canvas;
-		if( canvas != null ) {
-			canvas.style.cursor = switch( c ) {
-			case Default: "default";
-			case Button: "pointer";
-			case Move: "move";
-			case TextInput: "text";
-			case Hide: "none";
-			case Callback(_): throw "assert";
-			case Custom(cur):
-				if ( cur.alloc == null ) {
-					cur.alloc = new Array();
-					for ( frame in cur.frames ) {
-						cur.alloc.push("url(\"" + frame.toNative().canvas.toDataURL("image/png") + "\") " + cur.offsetX + " " + cur.offsetY + ", default");
-					}
-				}
-				if ( cur.frames.length > 1 ) {
-					currentCustomCursor = cur;
-					cur.reset();
-				}
-				cur.alloc[cur.frameIndex];
-			};
-		}
-	}
-
-	public static function getDeviceName() : String {
-		return "Unknown";
-	}
-
-	public static function getDefaultFrameRate() : Float {
-		return 60.;
-	}
-
-	public static function getValue( s : SystemValue ) : Bool {
-		return switch( s ) {
-		case IsWindowed: true;
-		case IsTouch: platform==Android || platform==IOS;
-		case IsMobile: platform==Android || platform==IOS;
-		default: false;
-		}
-	}
-
-	public static function exit() : Void {
-	}
-
-	public static function openURL( url : String ) : Void {
-		js.Browser.window.open(url, '_blank');
-	}
-
-	static function updateCursor() : Void {
-		if ( currentCustomCursor != null ) {
-			var change = currentCustomCursor.update(hxd.Timer.elapsedTime);
-			if ( change != -1 ) {
-				var canvas = @:privateAccess hxd.Window.getInstance().canvas;
-				if ( canvas != null ) {
-					canvas.style.cursor = currentCustomCursor.alloc[change];
-				}
-			}
-		}
-	}
-
-	public static function getClipboardText() : String {
-		return null;
-	}
-	
-	public static function setClipboardText(text:String) : Bool {
-		return false;
-	}
-
-	// getters
-
-	static function get_width() : Int return Math.round(js.Browser.document.body.clientWidth * js.Browser.window.devicePixelRatio);
-	static function get_height() : Int return Math.round(js.Browser.document.body.clientHeight  * js.Browser.window.devicePixelRatio);
-	static function get_lang() : String return "en";
-	static function get_platform() : Platform {
-		var ua = js.Browser.navigator.userAgent.toLowerCase();
-		if( ua.indexOf("android")>=0 )
-			return Android;
-		else if( ua.indexOf("ipad")>=0 || ua.indexOf("iphone")>=0 || ua.indexOf("ipod")>=0 )
-			return IOS;
-		else
-			return PC;
-	}
-	static function get_screenDPI() : Int return 72;
-	static function get_allowTimeout() return false;
-	static function set_allowTimeout(b) return false;
-
-	static function __init__() : Void {
-		haxe.MainLoop.add(updateCursor, -1);
-	}
-
-}

+ 8 - 0
hxd/System.js.hx

@@ -140,6 +140,14 @@ class System {
 		}
 	}
 
+	public static function getClipboardText() : String {
+		return null;
+	}
+	
+	public static function setClipboardText(text:String) : Bool {
+		return false;
+	}
+
 	// getters
 
 	static function get_width() : Int return Math.round(js.Browser.document.body.clientWidth * js.Browser.window.devicePixelRatio);