mirror of
https://github.com/Microsoft/calculator.git
synced 2025-08-22 22:23:29 -07:00
Add support for Wasm, fonts, loading.
This commit is contained in:
parent
1f9abe78a3
commit
bc6e316af0
2 changed files with 44 additions and 23 deletions
|
@ -18,31 +18,31 @@ namespace CalculationManager
|
||||||
[DllImport("CalcManager")]
|
[DllImport("CalcManager")]
|
||||||
public static extern void CalculatorManager_SendCommand(int instance, Command command);
|
public static extern void CalculatorManager_SendCommand(int instance, Command command);
|
||||||
|
|
||||||
public delegate int GetCEngineStringFunc(int state, string id);
|
private delegate int GetCEngineStringFunc(int state, string id);
|
||||||
public delegate void BinaryOperatorReceivedFunc(int state);
|
private delegate void BinaryOperatorReceivedFunc(int state);
|
||||||
public delegate void SetPrimaryDisplayCallbackFunc(int state, string displayStringValue, bool isError);
|
private delegate void SetPrimaryDisplayCallbackFunc(int state, string displayStringValue, bool isError);
|
||||||
public delegate void SetIsInErrorCallbackFunc(int state, bool isError);
|
private delegate void SetIsInErrorCallbackFunc(int state, bool isError);
|
||||||
public delegate void SetParenthesisNumberCallbackFunc(int state, int parenthesisCount);
|
private delegate void SetParenthesisNumberCallbackFunc(int state, int parenthesisCount);
|
||||||
|
|
||||||
public delegate void MaxDigitsReachedCallbackFunc(int state);
|
private delegate void MaxDigitsReachedCallbackFunc(int state);
|
||||||
public delegate void MemoryItemChangedCallbackFunc(int state, int indexOfMemory);
|
private delegate void MemoryItemChangedCallbackFunc(int state, int indexOfMemory);
|
||||||
public delegate void OnHistoryItemAddedCallbackFunc(int state, int addedItemIndex);
|
private delegate void OnHistoryItemAddedCallbackFunc(int state, int addedItemIndex);
|
||||||
public delegate void OnNoRightParenAddedCallbackFunc(int state);
|
private delegate void OnNoRightParenAddedCallbackFunc(int state);
|
||||||
public delegate void SetExpressionDisplayCallbackFunc(int state);
|
private delegate void SetExpressionDisplayCallbackFunc(int state);
|
||||||
public delegate void SetMemorizedNumbersCallbackFunc(int state, string[] newMemorizedNumbers);
|
private delegate void SetMemorizedNumbersCallbackFunc(int state, string[] newMemorizedNumbers);
|
||||||
|
|
||||||
public static GetCEngineStringFunc _getCEngineStringCallback = GetCEngineStringCallback;
|
private static GetCEngineStringFunc _getCEngineStringCallback = GetCEngineStringCallback;
|
||||||
public static BinaryOperatorReceivedFunc _binaryOperatorReceivedCallback = BinaryOperatorReceivedCallback;
|
private static BinaryOperatorReceivedFunc _binaryOperatorReceivedCallback = BinaryOperatorReceivedCallback;
|
||||||
public static SetPrimaryDisplayCallbackFunc _setPrimaryDisplayCallback = SetPrimaryDisplayCallback;
|
private static SetPrimaryDisplayCallbackFunc _setPrimaryDisplayCallback = SetPrimaryDisplayCallback;
|
||||||
public static SetIsInErrorCallbackFunc _setIsInErrorCallback = SetIsInErrorCallback;
|
private static SetIsInErrorCallbackFunc _setIsInErrorCallback = SetIsInErrorCallback;
|
||||||
public static SetParenthesisNumberCallbackFunc _setParenthesisNumberCallback = SetParenthesisNumberCallback;
|
private static SetParenthesisNumberCallbackFunc _setParenthesisNumberCallback = SetParenthesisNumberCallback;
|
||||||
|
|
||||||
public static MaxDigitsReachedCallbackFunc _maxDigitsReachedCallback = MaxDigitsReachedCallback;
|
private static MaxDigitsReachedCallbackFunc _maxDigitsReachedCallback = MaxDigitsReachedCallback;
|
||||||
public static MemoryItemChangedCallbackFunc _memoryItemChangedCallback = MemoryItemChangedCallback;
|
private static MemoryItemChangedCallbackFunc _memoryItemChangedCallback = MemoryItemChangedCallback;
|
||||||
public static OnHistoryItemAddedCallbackFunc _onHistoryItemAddedCallback = OnHistoryItemAddedCallback;
|
private static OnHistoryItemAddedCallbackFunc _onHistoryItemAddedCallback = OnHistoryItemAddedCallback;
|
||||||
public static OnNoRightParenAddedCallbackFunc _onNoRightParenAddedCallback = OnNoRightParenAddedCallback;
|
private static OnNoRightParenAddedCallbackFunc _onNoRightParenAddedCallback = OnNoRightParenAddedCallback;
|
||||||
public static SetExpressionDisplayCallbackFunc _setExpressionDisplayCallback = SetExpressionDisplayCallback;
|
private static SetExpressionDisplayCallbackFunc _setExpressionDisplayCallback = SetExpressionDisplayCallback;
|
||||||
public static SetMemorizedNumbersCallbackFunc _setMemorizedNumbersCallback = SetMemorizedNumbersCallback;
|
private static SetMemorizedNumbersCallbackFunc _setMemorizedNumbersCallback = SetMemorizedNumbersCallback;
|
||||||
|
|
||||||
public static void MaxDigitsReachedCallback(int state)
|
public static void MaxDigitsReachedCallback(int state)
|
||||||
{
|
{
|
||||||
|
|
|
@ -6,6 +6,8 @@ using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using Uno;
|
||||||
|
using Uno.Foundation;
|
||||||
|
|
||||||
namespace CalculationManager
|
namespace CalculationManager
|
||||||
{
|
{
|
||||||
|
@ -108,7 +110,7 @@ namespace CalculationManager
|
||||||
_resourceProviderHandle = GCHandle.Alloc(resourceProvider);
|
_resourceProviderHandle = GCHandle.Alloc(resourceProvider);
|
||||||
|
|
||||||
#if __WASM__
|
#if __WASM__
|
||||||
var rawPtrs = Uno.Foundation.WebAssemblyRuntime.InvokeJS("CalcManager.registerCallbacks()");
|
var rawPtrs = WebAssemblyRuntime.InvokeJS("CalcManager.registerCallbacks()");
|
||||||
var ptrs = rawPtrs.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
|
var ptrs = rawPtrs.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
|
||||||
|
|
||||||
var p = new CalculatorManager_CreateParams
|
var p = new CalculatorManager_CreateParams
|
||||||
|
@ -129,6 +131,25 @@ namespace CalculationManager
|
||||||
SetMemorizedNumbers = (IntPtr)int.Parse(ptrs[10]),
|
SetMemorizedNumbers = (IntPtr)int.Parse(ptrs[10]),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#else
|
||||||
|
var p = new CalculatorManager_CreateParams
|
||||||
|
{
|
||||||
|
CalculatorState = GCHandle.ToIntPtr(_displayCallbackHandle),
|
||||||
|
GetCEngineString = Marshal.GetFunctionPointerForDelegate(_getCEngineStringCallback),
|
||||||
|
|
||||||
|
GetCEngineString = (IntPtr)int.Parse(ptrs[0]),
|
||||||
|
BinaryOperatorReceived = (IntPtr)int.Parse(ptrs[1]),
|
||||||
|
SetPrimaryDisplay = (IntPtr)int.Parse(ptrs[2]),
|
||||||
|
SetIsInError = (IntPtr)int.Parse(ptrs[3]),
|
||||||
|
SetParenthesisNumber = (IntPtr)int.Parse(ptrs[4]),
|
||||||
|
MaxDigitsReached = (IntPtr)int.Parse(ptrs[5]),
|
||||||
|
MemoryItemChanged = (IntPtr)int.Parse(ptrs[6]),
|
||||||
|
OnHistoryItemAdded = (IntPtr)int.Parse(ptrs[7]),
|
||||||
|
OnNoRightParenAdded = (IntPtr)int.Parse(ptrs[8]),
|
||||||
|
SetExpressionDisplay = (IntPtr)int.Parse(ptrs[9]),
|
||||||
|
SetMemorizedNumbers = (IntPtr)int.Parse(ptrs[10]),
|
||||||
|
};
|
||||||
|
|
||||||
#else
|
#else
|
||||||
var p = new CalculatorManager_CreateParams
|
var p = new CalculatorManager_CreateParams
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue