package kha; import haxe.CallStack; import haxe.io.Bytes; import haxe.io.BytesData; import haxe.Json; import kha.Blob; import kha.FontStyle; import kha.Kravur; import system.io.File; import system.windows.FrameworkElement; import system.windows.input.Cursor; import system.windows.input.Cursors; import system.windows.input.Mouse; class LoaderImpl { public static var path: String = ""; public static var forceBusyCursor: Bool = false; static var savedCursor: Cursor; static var busyCursor: Bool = false; public static function loadSoundFromDescription(desc: Dynamic, done: kha.Sound->Void, failed: AssetError->Void): Void { done(new kha.wpf.Sound(path + desc.files[0])); } public static function getSoundFormats(): Array { return ["wav"]; } public static function loadImageFromDescription(desc: Dynamic, done: kha.Image->Void, failed: AssetError->Void): Void { done(Image.fromFilename(path + desc.files[0])); } public static function getImageFormats(): Array { return ["png", "jpg"]; } public static function loadBlobFromDescription(desc: Dynamic, done: kha.Blob->Void, failed: AssetError->Void): Void { done(new Blob(Bytes.ofData(File.ReadAllBytes(path + desc.files[0])))); } public static function loadVideoFromDescription(desc: Dynamic, done: kha.Video->Void, failed: AssetError->Void): Void { done(new kha.wpf.Video(path + desc.files[0])); } public static function getVideoFormats(): Array { return ["wmv"]; } public static function loadFontFromDescription(desc: Dynamic, done: kha.Font->Void, failed: AssetError->Void): Void { loadBlobFromDescription(desc, function(blob: Blob) { done(new Kravur(blob)); }, failed); } @:functionCode('global::System.Diagnostics.Process.Start(new global::System.Uri(url).AbsoluteUri);') public static function loadURL(url: String): Void {} public static function setNormalCursor() { savedCursor = Cursors.Arrow; // if (!busyCursor && !forceBusyCursor) Starter.frameworkElement.Cursor = Cursors.Arrow; } public static function setHandCursor() { savedCursor = Cursors.Hand; // if (!busyCursor && !forceBusyCursor) Starter.frameworkElement.Cursor = Cursors.Hand; } public static function setCursorBusy(busy: Bool) { /*busyCursor = busy; if (busy || forceBusyCursor) { Starter.frameworkElement.Cursor = Cursors.Wait; } else { Starter.frameworkElement.Cursor = savedCursor; }*/ } }