* Added IGraphAnalyzer
* Key Graph Features called and getting returned to the client. To do put all strings into the Equation object
* Updated UpdateKeyGraphFeatures to add function analysis data to all properties in Equation object
* Update KGF when variables are updated
* Key graph features ui started
* Added MathRichEditBox and started hooking up key graph features to the UI
* Updated EquationViewModel to include parity and periodicity
* Updated key graph features to update the EquationViewModel
* updated key graph features to display more values
* Key graph features populating uing MathRichEdit mode
* moved KeyGraphFeatures control to GraphingCalculator.xaml
* Use MathML formatting instead of MathRichEdit for strings passed back from the engine
* cleaned up project targeting and equation.h comments
* Updated equation edit box to populate for KeyGraphFeatures
* Fixed vcxproj files to have the correct targeting and certificates. KGF Title strings moved to x:Uid instead of the code behind
* Updated per PR feedback
* Update MathRichEditBox to detect if the string is a mathml string and use the appropriate set method to set the text
* fixed the issue where parity, periodicity and monotonicity could be set with an old value if the next one is empty
* KGF control UI adjustments and error handling
* Error control updates
* Error handling added when analysis fails
* fixed alignment on rich edit boxes
* Add monotonicity direction into the mathml string and only have 1 richeditbox
* Set hover state on KGF EquationEditBox to change button opacity and fixed spacing in Monotonicity RichEditBox
* remove sideload package certificate info VS added
* updated logic for setting error strings to be in the viewmodel
* Updated KeyGraphFeatures to populate dynamically using a ListView and TemplateSelector
* Update periodicity to not show if it isn't supported
* Fixed issue where y-intercept was using the x-intercept value
* Remove ItemsControl ItemsContainerStyle
* Updated per pr feedback. Fixed bug where analysis error would not reset
* Update MathRichEdit box to remove selection when focus is lost
* Updated mathrichedit to get LAF access for Dev, Release and Graphing projects
* Remove OnLostFocus in MathRichEdit, Change KGF ItemsControl back to ListView
* Clean up styles for KGF and ensure the match the comps
* Moved formatoptions logic to the Grapher constructor and reverted LineColor.Text resource that was mistakenly taken out
* Add copyright header to KGF Files
* fixed issue where asymptote values were not populating
* Disable KGF button when there is no equation. Fixed issue where equation populated in a new equationtextbox after the previous one was deleted
* Removed formatoptions testing lines used for debugging
Initial PR for the feature/GraphingCalculator feature branch, part of #338.
The feature incorporates a proprietary Microsoft-owned graphing engine to drive graphing experiences in the Windows Calculator app. Due to the private nature of the graphing engine, the source available in the public repo will make use of a mock graphing engine. See README.md for more details.
This PR simply serves as a base for future feature development. As such, the PR will be immediately merged. Feedback on the content of this PR, and on the feature in general, is encouraged. If there is feedback related to the content of this specific PR, please leave comments on the PR page. We will address the comments in future PRs to the feature branch.
* Modify the height of RowDltrUnits when UnitConverter is in LandscapeLayout mode
* clean
* Use the same layout than the existing one while fixing the issue
* Refactor SupplementaryItemsControl to improve performance, not rely on parents and not force the parent element to be HorizonAlignment="stretch"
* take feedback into account
* add HorizontalNoOverflowStackPanel to vcproj.filters
* format conditionals
* replace max by std::max
The .resw files for all languages are expected to be checked into the repo (this used to not the the case). Let's remove the conditions in the project file which ignore them if they don't exist.
Additionally removes pseudo-loc resource references from the build as pseudo-loc resources aren't currently being generated.
Update the Microsoft.UI.Xaml NuGet package to a new version. The ARM64 framework package in 2.0.181018003.1 had entries missing from its manifest, so the classes in the package couldn't be activated.
The app currently logs diagnostic events to ETW in various places. If we add certain flags to those events, the data is eligible to be sent as telemetry. (Whether it actually gets sent is controlled outside of Calculator--for example, there are lots of checks at the system level to ensure privacy settings are honored.)
Currently we set the "eligible for telemetry" flags only in official builds, so no telemetry gets uploaded while the app is in development. We already have this set up for the main TraceLogging provider, but we also need to do this for the AppLifecycle performance logging.
Calculator (the main app project) depends on CalcManager, but only transitively: Calculator -> CalcViewModel -> CalcManager.
However, Calculator's project file currently has a direct dependency on CalcManager. Let's remove this to make it harder to accidentally introduce new dependencies between the layers.
Also cleaning up some commented-out directives in the CalcManager MSBuild file.
Remove LayoutAwarePage, SuspensionManager, and other suspend-resume handling code. SuspensionManager::SaveAsync and related methods weren't actually called anywhere. I didn't attempt to remove the serialize/deserialize code at the ViewModel layer, although much of that is likely not needed either.
We may decide we want to persist more state through a suspend-terminate-resume cycle (as the app might have done a long time ago). But if we decide we want that, we should not use a persistence mechanism that's closely coupled to frame navigation.