public UnitConverter() { m_meteredConnectionOverride = false; m_layoutDirection = LocalizationService.GetInstance().GetFlowDirection(); m_FlowDirectionHorizontalAlignment = m_layoutDirection == FlowDirection.RightToLeft ? HorizontalAlignment.Right : HorizontalAlignment.Left; InitializeComponent(); // adding ESC key shortcut binding to clear button ClearEntryButtonPos0.SetValue(KeyboardShortcutManager.VirtualKeyProperty, MyVirtualKey.Escape); // Is currency symbol preference set to right side bool preferRight = LocalizationSettings.GetInstance().GetCurrencySymbolPrecedence() == 0; VisualStateManager.GoToState(this, preferRight ? "CurrencySymbolRightState" : "CurrencySymbolLeftState", false); var resLoader = AppResourceProvider.GetInstance(); m_chargesMayApplyText = resLoader.GetResourceString("DataChargesMayApply"); m_failedToRefreshText = resLoader.GetResourceString("FailedToRefresh"); InitializeOfflineStatusTextBlock(); if (Resources.TryGetValue("CalculationResultContextMenu", out var value)) { m_resultsFlyout = (MenuFlyout)value; } CopyMenuItem.Text = resLoader.GetResourceString("copyMenuItem"); PasteMenuItem.Text = resLoader.GetResourceString("pasteMenuItem"); }
public string GetCEngineString(string id) { var localizationSettings = LocalizationSettings.GetInstance(); if (id.CompareTo("sDecimal") == 0) { return(localizationSettings.GetDecimalSeparatorStr()); } if (id.CompareTo("sThousand") == 0) { return(localizationSettings.GetNumberGroupingSeparatorStr()); } if (id.CompareTo("sGrouping") == 0) { // The following groupings are the onces that CalcEngine supports. // 0;0 0x000 - no grouping // 3;0 0x003 - group every 3 digits // 3;2;0 0x023 - group 1st 3 and then every 2 digits // 4;0 0x004 - group every 4 digits // 5;3;2;0 0x235 - group 5, then 3, then every 2 string numberGroupingString = localizationSettings.GetNumberGroupingStr(); return(numberGroupingString); } return(m_resLoader.GetString(id)); }
string GetRawDisplayValue() { string rawValue = null; LocalizationSettings.GetInstance().RemoveGroupSeparators(DisplayValue, DisplayValue.Length, ref rawValue); return(rawValue); }
internal string GetRawDisplayValue() { string rawValue = null; string radixContent = Content.ToString(); LocalizationSettings.GetInstance().RemoveGroupSeparators(radixContent, radixContent.Length, ref rawValue); return(rawValue); }
public object Convert(object value, Type targetType, object parameter, string language) { var resourceLoader = AppResourceProvider.GetInstance(); // initialising the updated display with 64 bits of zeros char[] updatedBinaryDisplay = new char[64]; var localizationSettings = LocalizationSettings.GetInstance(); char ch0 = localizationSettings.GetDigitSymbolFromEnUsDigit('0'); char ch1 = localizationSettings.GetDigitSymbolFromEnUsDigit('1'); string indexName = resourceLoader.GetResourceString((string)(parameter)); string bitName = resourceLoader.GetResourceString("BitAutomationName"); string valueName = resourceLoader.GetResourceString("ValueAutomationName"); string zero = resourceLoader.GetResourceString("BinaryZeroValueAutomationName"); string one = resourceLoader.GetResourceString("BinaryOneValueAutomationName"); if ((value != null) && (parameter != null)) { string binaryDisplay = (string)value; string indexString = (string)parameter; int index = int.Parse(indexString); int binaryLength = 0; // remove all the characters except 0 and 1 from the array. foreach (char bit in binaryDisplay) { if ((bit == ch1) || (bit == ch0)) { updatedBinaryDisplay[binaryLength++] = bit; } if (binaryLength == 63) { break; } } // return if binaryDisplay is empty if (binaryLength == 0) { return(indexName + bitName + valueName + zero); } // if index is more than the length of binary display return automation name with zero if (index >= binaryLength) { return(indexName + bitName + valueName + zero); } // if bit is set return automation name with one else return zero if (updatedBinaryDisplay[binaryLength - index - 1] == ch1) { return(indexName + bitName + valueName + one); } } return(indexName + bitName + valueName + zero); }
public NumberPad() { this.InitializeComponent(); var localizationSettings = LocalizationSettings.GetInstance(); this.decimalSeparatorButton.Content = localizationSettings.GetDecimalSeparator(); this.num0Button.Content = localizationSettings.GetDigitSymbolFromEnUsDigit('0'); this.num1Button.Content = localizationSettings.GetDigitSymbolFromEnUsDigit('1'); this.num2Button.Content = localizationSettings.GetDigitSymbolFromEnUsDigit('2'); this.num3Button.Content = localizationSettings.GetDigitSymbolFromEnUsDigit('3'); this.num4Button.Content = localizationSettings.GetDigitSymbolFromEnUsDigit('4'); this.num5Button.Content = localizationSettings.GetDigitSymbolFromEnUsDigit('5'); this.num6Button.Content = localizationSettings.GetDigitSymbolFromEnUsDigit('6'); this.num7Button.Content = localizationSettings.GetDigitSymbolFromEnUsDigit('7'); this.num8Button.Content = localizationSettings.GetDigitSymbolFromEnUsDigit('8'); this.num9Button.Content = localizationSettings.GetDigitSymbolFromEnUsDigit('9'); }
private static void OnCharacterPropertyChanged(DependencyObject target, string oldValue, string newValue) { // Writer lock for the static maps lock (s_keyboardShortcutMapLockMutex) { var button = (target as ButtonBase); int viewId = Utilities.GetWindowId(); if (s_characterForButtons.TryGetValue(viewId, out var iterViewMap)) { if (!string.IsNullOrEmpty(oldValue)) { iterViewMap.Remove(oldValue[0]); } if (!string.IsNullOrEmpty(newValue)) { if (newValue == ".") { char decSep = LocalizationSettings.GetInstance().GetDecimalSeparator(); Insert(iterViewMap, decSep, new WeakReference(button)); } else { Insert(iterViewMap, newValue[0], new WeakReference(button)); } } } else { s_characterForButtons.Add(viewId, new SortedDictionary <char, List <WeakReference> >()); if (newValue == ".") { char decSep = LocalizationSettings.GetInstance().GetDecimalSeparator(); Insert(s_characterForButtons[viewId], decSep, new WeakReference(button)); } else { Insert(s_characterForButtons[viewId], newValue[0], new WeakReference(button)); } } } }
bool IsValidRegularExpression(string str) { bool result = false; string[] regexPatterns = new[] { "[-]{0,1}[0-9]{0,}[.]{0,1}[0-9]{0,}", "[-]{0,1}[0-9]{0,}[.]{0,1}[0-9]{0,}[e]{1}[+]{1}[0-9]{1,}", "[-]{0,1}[0-9]{0,}[.]{0,1}[0-9]{0,}[e]{1}[-]{1}[0-9]{1,}", }; var localizer = LocalizationSettings.GetInstance(); String englishString = localizer.GetEnglishValueFromLocalizedDigits(str); for (int i = 0; i < 3; ++i) { if (Regex.Match(englishString, regexPatterns[i]).Success) { result = true; break; } } return(result); }
// When share is invoked (by the user or programmatically) the event handler we registered will be called to populate the data package with the // data to be shared. We will request the current graph image from the grapher as a stream that will pass to the share request. private void OnDataRequested(DataTransferManager sender, DataRequestedEventArgs args) { var resourceLoader = ResourceLoader.GetForCurrentView(); try { string rawHtml; string equationHtml; rawHtml = "<p><img src='graph.png' width='600' alt='" + resourceLoader.GetString("GraphImageAltText") + "'></p>"; var equations = ViewModel.Equations; bool hasEquations = false; if (equations.Count > 0) { equationHtml = "<span style=\"color: rgb(68, 114, 196); font-style: bold; font-size : 13pt;\">" + resourceLoader.GetString("EquationsShareHeader") + "</span>" + "<table cellpadding=\"0\" cellspacing=\"0\" >"; foreach (var equation in equations) { var expression = equation.Expression; if (string.IsNullOrEmpty(expression)) { continue; } var color = equation.LineColor; hasEquations = true; expression = GraphingControl.ConvertToLinear(expression); string equationColorHtml; equationColorHtml = "color:rgb(" + color.R.ToString() + "," + color.G.ToString() + "," + color.B.ToString() + ");"; equationHtml += "<tr style=\"margin: 0pt 0pt 0pt 0pt; padding: 0pt 0pt 0pt 0pt; \"><td><span style=\"font-size: 22pt; line-height: 0;" + equationColorHtml + "\">■</span></td><td><div style=\"margin: 4pt 0pt 0pt 6pt;\">" + Utilities.EscapeHtmlSpecialCharacters(expression) + "</div></td>"; } equationHtml += "</table>"; if (hasEquations) { rawHtml += equationHtml; } } var variables = ViewModel.Variables; if (variables.Count > 0) { var localizedSeperator = LocalizationSettings.GetInstance().GetListSeparatorWinRT() + " "; rawHtml += "<br><span style=\"color: rgb(68, 114, 196); font-style: bold; font-size: 13pt;\">" + resourceLoader.GetString("VariablesShareHeader") + "</span><br><div style=\"margin: 4pt 0pt 0pt 0pt;\">"; for (int i = 0; i < variables.Count; i++) { var name = variables[i].Name; var value = variables[i].Value; rawHtml += name + "="; var formattedValue = value.ToString(); rawHtml += formattedValue; if (variables.Count - 1 != i) { rawHtml += localizedSeperator; } } rawHtml += "</div>"; } rawHtml += "<br><br>"; // Shortcut to the request data var requestData = args.Request.Data; DataPackage dataPackage = new DataPackage(); var html = HtmlFormatHelper.CreateHtmlFormat(rawHtml); requestData.Properties.Title = resourceLoader.GetString("ShareActionTitle"); requestData.SetHtmlFormat(html); var bitmapStream = GraphingControl.GetGraphBitmapStream(); requestData.ResourceMap.Add("graph.png", bitmapStream); requestData.SetBitmap(bitmapStream); // Set the thumbnail image (in case the share target can't handle HTML) requestData.Properties.Thumbnail = bitmapStream; } catch (Exception ex) { ShowShareError(); CalculatorApp.ViewModel.Common.TraceLogger.GetInstance().LogPlatformExceptionInfo(ViewMode.Graphing, System.Reflection.MethodBase.GetCurrentMethod().Name, ex.Message, ex.HResult); } }
public GraphingCalculator() { InitializeComponent(); m_accessibilitySettings = new AccessibilitySettings(); DataTransferManager dataTransferManager = DataTransferManager.GetForCurrentView(); // Register the current control as a share source. dataTransferManager.DataRequested += OnDataRequested; // Request notifications when we should be showing the trace values GraphingControl.TracingChangedEvent += OnShowTracePopupChanged; // And when the actual trace value changes GraphingControl.TracingValueChangedEvent += OnTracePointChanged; // Update where the pointer value is (ie: where the user cursor from keyboard inputs moves the point to) GraphingControl.PointerValueChangedEvent += OnPointerPointChanged; GraphingControl.Loaded += OnGraphingCalculatorLoaded; GraphingControl.UseCommaDecimalSeperator = LocalizationSettings.GetInstance().GetDecimalSeparator() == ','; // OemMinus and OemAdd aren't declared in the VirtualKey enum, we can't add this accelerator XAML-side var virtualKey = new KeyboardAccelerator(); virtualKey.Key = (VirtualKey)189; // OemPlus key virtualKey.Modifiers = VirtualKeyModifiers.Control; ZoomOutButton.KeyboardAccelerators.Add(virtualKey); virtualKey = new KeyboardAccelerator(); virtualKey.Key = (VirtualKey)187; // OemAdd key virtualKey.Modifiers = VirtualKeyModifiers.Control; ZoomInButton.KeyboardAccelerators.Add(virtualKey); if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.UI.Xaml.Media.ThemeShadow")) { SharedShadow.Receivers.Add(GraphingControl); } m_accessibilitySettings.HighContrastChanged += OnHighContrastChanged; m_uiSettings = new UISettings(); m_uiSettings.ColorValuesChanged += OnColorValuesChanged; ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings; if (localSettings != null && localSettings.Values.ContainsKey(sc_IsGraphThemeMatchApp)) { var isMatchAppLocalSetting = (bool)(localSettings.Values[sc_IsGraphThemeMatchApp]); if (isMatchAppLocalSetting) { IsMatchAppTheme = true; CalculatorApp.ViewModel.Common.TraceLogger.GetInstance().LogGraphTheme("IsMatchAppTheme"); } } else { IsMatchAppTheme = false; CalculatorApp.ViewModel.Common.TraceLogger.GetInstance().LogGraphTheme("IsAlwaysLightTheme"); } }
internal string GetRawDisplayValue() { string radixContent = Content.ToString(); return(LocalizationSettings.GetInstance().RemoveGroupSeparators(radixContent)); }
public string GetRawDisplayValue() { return(LocalizationSettings.GetInstance().RemoveGroupSeparators(DisplayValue)); }