forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			77 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			77 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
| 
								 | 
							
								package kha.input;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import kha.SystemImpl;
							 | 
						||
| 
								 | 
							
								import kha.input.Mouse;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class MouseImpl extends kha.input.Mouse {
							 | 
						||
| 
								 | 
							
									public function new() {
							 | 
						||
| 
								 | 
							
										super();
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									override public function lock(): Void {
							 | 
						||
| 
								 | 
							
										SystemImpl.lockMouse();
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									override public function unlock(): Void {
							 | 
						||
| 
								 | 
							
										SystemImpl.unlockMouse();
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									override public function canLock(): Bool {
							 | 
						||
| 
								 | 
							
										return SystemImpl.canLockMouse();
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									override public function isLocked(): Bool {
							 | 
						||
| 
								 | 
							
										return SystemImpl.isMouseLocked();
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									override public function notifyOnLockChange(func: Void->Void, error: Void->Void): Void {
							 | 
						||
| 
								 | 
							
										SystemImpl.notifyOfMouseLockChange(func, error);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									override public function removeFromLockChange(func: Void->Void, error: Void->Void): Void {
							 | 
						||
| 
								 | 
							
										SystemImpl.removeFromMouseLockChange(func, error);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									override public function hideSystemCursor(): Void {
							 | 
						||
| 
								 | 
							
										SystemImpl.khanvas.style.cursor = "none";
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									override public function showSystemCursor(): Void {
							 | 
						||
| 
								 | 
							
										SystemImpl.khanvas.style.cursor = "default";
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									override public function setSystemCursor(cursor: MouseCursor): Void {
							 | 
						||
| 
								 | 
							
										SystemImpl.khanvas.style.cursor = switch (cursor) {
							 | 
						||
| 
								 | 
							
											case Default: "default";
							 | 
						||
| 
								 | 
							
											case Pointer: "pointer";
							 | 
						||
| 
								 | 
							
											case Text: "text";
							 | 
						||
| 
								 | 
							
											case EastWestResize: "ew-resize";
							 | 
						||
| 
								 | 
							
											case NorthSouthResize: "ns-resize";
							 | 
						||
| 
								 | 
							
											case NorthEastResize: "ne-resize";
							 | 
						||
| 
								 | 
							
											case SouthEastResize: "se-resize";
							 | 
						||
| 
								 | 
							
											case NorthWestResize: "nw-resize";
							 | 
						||
| 
								 | 
							
											case SouthWestResize: "sw-resize";
							 | 
						||
| 
								 | 
							
											case Grab: "grab";
							 | 
						||
| 
								 | 
							
											case Grabbing: "grabbing";
							 | 
						||
| 
								 | 
							
											case NotAllowed: "not-allowed";
							 | 
						||
| 
								 | 
							
											case Wait: "wait";
							 | 
						||
| 
								 | 
							
											case Crosshair: "crosshair";
							 | 
						||
| 
								 | 
							
											case Custom(image):
							 | 
						||
| 
								 | 
							
												var canvas = js.Browser.document.createCanvasElement();
							 | 
						||
| 
								 | 
							
												canvas.width = image.width;
							 | 
						||
| 
								 | 
							
												canvas.height = image.height;
							 | 
						||
| 
								 | 
							
												if (Std.isOfType(image, WebGLImage)) {
							 | 
						||
| 
								 | 
							
													canvas.getContext2d().drawImage(cast(image, WebGLImage).image, 0, 0);
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
												else {
							 | 
						||
| 
								 | 
							
													canvas.getContext2d().drawImage(cast(image, CanvasImage).image, 0, 0);
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
												var dataURL = canvas.toDataURL("image/png");
							 | 
						||
| 
								 | 
							
												dataURL = StringTools.replace(dataURL, "/^data:image\\/(png|jpg);base64,/", "");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
												'url(\'$dataURL\'),auto';
							 | 
						||
| 
								 | 
							
											default: "default";
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 |