diff --git a/src/Calculator.Shared/CalcManager/CalculatorManager.Interop.cs b/src/Calculator.Shared/CalcManager/CalculatorManager.Interop.cs index 88ebd595..d5b675da 100644 --- a/src/Calculator.Shared/CalcManager/CalculatorManager.Interop.cs +++ b/src/Calculator.Shared/CalcManager/CalculatorManager.Interop.cs @@ -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) { diff --git a/src/Calculator.Shared/CalcManager/CalculatorManager.cs b/src/Calculator.Shared/CalcManager/CalculatorManager.cs index 00049a96..660f4333 100644 --- a/src/Calculator.Shared/CalcManager/CalculatorManager.cs +++ b/src/Calculator.Shared/CalcManager/CalculatorManager.cs @@ -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 {