mirror of
https://github.com/Microsoft/calculator.git
synced 2025-08-22 14:13:30 -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")]
|
||||
public static extern void CalculatorManager_SendCommand(int instance, Command command);
|
||||
|
||||
public delegate int GetCEngineStringFunc(int state, string id);
|
||||
public delegate void BinaryOperatorReceivedFunc(int state);
|
||||
public delegate void SetPrimaryDisplayCallbackFunc(int state, string displayStringValue, bool isError);
|
||||
public delegate void SetIsInErrorCallbackFunc(int state, bool isError);
|
||||
public delegate void SetParenthesisNumberCallbackFunc(int state, int parenthesisCount);
|
||||
private delegate int GetCEngineStringFunc(int state, string id);
|
||||
private delegate void BinaryOperatorReceivedFunc(int state);
|
||||
private delegate void SetPrimaryDisplayCallbackFunc(int state, string displayStringValue, bool isError);
|
||||
private delegate void SetIsInErrorCallbackFunc(int state, bool isError);
|
||||
private delegate void SetParenthesisNumberCallbackFunc(int state, int parenthesisCount);
|
||||
|
||||
public delegate void MaxDigitsReachedCallbackFunc(int state);
|
||||
public delegate void MemoryItemChangedCallbackFunc(int state, int indexOfMemory);
|
||||
public delegate void OnHistoryItemAddedCallbackFunc(int state, int addedItemIndex);
|
||||
public delegate void OnNoRightParenAddedCallbackFunc(int state);
|
||||
public delegate void SetExpressionDisplayCallbackFunc(int state);
|
||||
public delegate void SetMemorizedNumbersCallbackFunc(int state, string[] newMemorizedNumbers);
|
||||
private delegate void MaxDigitsReachedCallbackFunc(int state);
|
||||
private delegate void MemoryItemChangedCallbackFunc(int state, int indexOfMemory);
|
||||
private delegate void OnHistoryItemAddedCallbackFunc(int state, int addedItemIndex);
|
||||
private delegate void OnNoRightParenAddedCallbackFunc(int state);
|
||||
private delegate void SetExpressionDisplayCallbackFunc(int state);
|
||||
private delegate void SetMemorizedNumbersCallbackFunc(int state, string[] newMemorizedNumbers);
|
||||
|
||||
public static GetCEngineStringFunc _getCEngineStringCallback = GetCEngineStringCallback;
|
||||
public static BinaryOperatorReceivedFunc _binaryOperatorReceivedCallback = BinaryOperatorReceivedCallback;
|
||||
public static SetPrimaryDisplayCallbackFunc _setPrimaryDisplayCallback = SetPrimaryDisplayCallback;
|
||||
public static SetIsInErrorCallbackFunc _setIsInErrorCallback = SetIsInErrorCallback;
|
||||
public static SetParenthesisNumberCallbackFunc _setParenthesisNumberCallback = SetParenthesisNumberCallback;
|
||||
private static GetCEngineStringFunc _getCEngineStringCallback = GetCEngineStringCallback;
|
||||
private static BinaryOperatorReceivedFunc _binaryOperatorReceivedCallback = BinaryOperatorReceivedCallback;
|
||||
private static SetPrimaryDisplayCallbackFunc _setPrimaryDisplayCallback = SetPrimaryDisplayCallback;
|
||||
private static SetIsInErrorCallbackFunc _setIsInErrorCallback = SetIsInErrorCallback;
|
||||
private static SetParenthesisNumberCallbackFunc _setParenthesisNumberCallback = SetParenthesisNumberCallback;
|
||||
|
||||
public static MaxDigitsReachedCallbackFunc _maxDigitsReachedCallback = MaxDigitsReachedCallback;
|
||||
public static MemoryItemChangedCallbackFunc _memoryItemChangedCallback = MemoryItemChangedCallback;
|
||||
public static OnHistoryItemAddedCallbackFunc _onHistoryItemAddedCallback = OnHistoryItemAddedCallback;
|
||||
public static OnNoRightParenAddedCallbackFunc _onNoRightParenAddedCallback = OnNoRightParenAddedCallback;
|
||||
public static SetExpressionDisplayCallbackFunc _setExpressionDisplayCallback = SetExpressionDisplayCallback;
|
||||
public static SetMemorizedNumbersCallbackFunc _setMemorizedNumbersCallback = SetMemorizedNumbersCallback;
|
||||
private static MaxDigitsReachedCallbackFunc _maxDigitsReachedCallback = MaxDigitsReachedCallback;
|
||||
private static MemoryItemChangedCallbackFunc _memoryItemChangedCallback = MemoryItemChangedCallback;
|
||||
private static OnHistoryItemAddedCallbackFunc _onHistoryItemAddedCallback = OnHistoryItemAddedCallback;
|
||||
private static OnNoRightParenAddedCallbackFunc _onNoRightParenAddedCallback = OnNoRightParenAddedCallback;
|
||||
private static SetExpressionDisplayCallbackFunc _setExpressionDisplayCallback = SetExpressionDisplayCallback;
|
||||
private static SetMemorizedNumbersCallbackFunc _setMemorizedNumbersCallback = SetMemorizedNumbersCallback;
|
||||
|
||||
public static void MaxDigitsReachedCallback(int state)
|
||||
{
|
||||
|
|
|
@ -6,6 +6,8 @@ using System.Collections.Generic;
|
|||
using System.Diagnostics;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using Uno;
|
||||
using Uno.Foundation;
|
||||
|
||||
namespace CalculationManager
|
||||
{
|
||||
|
@ -108,7 +110,7 @@ namespace CalculationManager
|
|||
_resourceProviderHandle = GCHandle.Alloc(resourceProvider);
|
||||
|
||||
#if __WASM__
|
||||
var rawPtrs = Uno.Foundation.WebAssemblyRuntime.InvokeJS("CalcManager.registerCallbacks()");
|
||||
var rawPtrs = WebAssemblyRuntime.InvokeJS("CalcManager.registerCallbacks()");
|
||||
var ptrs = rawPtrs.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
|
||||
var p = new CalculatorManager_CreateParams
|
||||
|
@ -129,6 +131,25 @@ namespace CalculationManager
|
|||
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
|
||||
var p = new CalculatorManager_CreateParams
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue