Commit Graph

136 Commits

Author SHA1 Message Date
Pepe Rivera
f1482252ef
Allow rendering the graph on a background thread (#1014)
* Render on background thread

* More work

* variable fix

* Add comments
2020-02-04 15:02:42 -08:00
Scott Freeman
52de42e7fb Removing Utils::Swap and using std::swap instead (#932) 2020-01-14 15:22:50 -08:00
Pepe Rivera
240792a775 Adjustments to ghost textbox (#924)
* adjustments

* delete extra visual states

* Fix hover bug

* Fix a few more bugs

* Fix high contrast crash
2020-01-10 16:41:23 -08:00
Stephanie Anderl
42dcfdc598 Update group policy check to look in HKCU instead of HKLM for allowing graphing mode (#918)
* Update group policy check to look in HKCU instead of HKLM

* Update the dwFlags to use RRF_RT_DWORD.
2020-01-10 15:48:07 -08:00
Rudy Huyn
f9c049a84b Add preview tag to Graphing feature (#907)
* Add preview tag to Graphing

* Fix Graph Settings button in dark mode
2020-01-08 10:34:05 -08:00
Eric Wong (PAX)
aad968ff37 Merge remote-tracking branch 'upstream/master' into mergeFeature 2020-01-07 14:08:18 -08:00
Rudy Huyn
2d177e5160 CalcViewModel code cleaning (#754)
* move KeyboardShortcutManager, ValidationConverter and ViewState to Calculator
* remove dead code listed in #753
* remove Microsoft.UI.Xaml nuget package from CalcViewModel
2020-01-07 13:59:51 -08:00
Rudy Huyn
712bdb1b7c Code cleaning: Remove all properties/functions not used in CalculationResult (#649) 2020-01-07 11:03:47 -08:00
Eric Wong (PAX)
d2b2853114 Merge remote-tracking branch 'upstream/feature/GraphingCalculator' into mergeFeature 2020-01-06 14:42:40 -08:00
Rudy Huyn
7aaeee934c Prevent the graph to pan/zoom in some cases (#897)
* prevent the graph to change ranges when hide/show an equation or change the trig unit

* make sure to not zoom/pan when we hide the last visible equation
2020-01-06 13:10:53 -08:00
Rudy Huyn
8357f5d5c5
Add Graph Settings (#879) 2020-01-03 15:06:14 -08:00
Eric Wong
13e31799c9 Wire up keyboard in graphing calculator (#863)
* Wire up graphing calculator keyboard with math rich edit control

* CR feedback

* Handle focus bug in flyout
2019-12-19 09:56:03 -08:00
Scott Freeman
a21b4a2d1a Using wstring instead of wstringstream where appropriate (#881) 2019-12-19 01:50:31 -08:00
Rudy Huyn
38da8d7b38 support ctrl+- and + (#882) 2019-12-18 16:06:13 -08:00
Rudy Huyn
534139d67d GraphControl: refactoring and optimizations (#831)
* GraphControl cleaning

* replace textbox value after submission

* rebase

* rebase

* rebase

* Add filters

* rebase!

* rebase
2019-12-13 16:33:08 -08:00
Stephanie Anderl
f593c621aa
Update GraphingCalculator Projects to allow official builds (#852)
* renamed MockGraphingImpl to GraphingImpl, updated the nuget.config to include the WindowsApps feed

* Revert nuget.config change

* Updated vcxproj files to output to the same directory regardless of configuration

* Removed outder used GenerateProjectSpecificOutputfolder instead

* revert commenting out the temporary.pfx cert in the calculator.vcxproj file
2019-12-10 16:15:49 -08:00
Rudy Huyn
07d012cf6b [Graph] Replace the Add button by a EquationTextBlock (#826)
* init

* Replace the Add equation button by an EquationTextBox

* Move automatically the focus to the next textbox when users press Enter

* nit

* localize the placeholder

* rebase

* rebased and disable remove context menu when the equation is the last one

* replace storyboards by setters in visual states
2019-12-10 11:06:37 -08:00
Scott Freeman
06f43ad373 Refactoring LocalizationSettings (#850) 2019-12-09 19:28:43 -08:00
Rudy Huyn
503831895d
Hide or Disable graphing calculator menu item when necessary (#848) 2019-12-06 15:03:07 -08:00
Matt Cooley
03c2d6514f
Build GraphingCalculator against SDK 18362 (#841) 2019-12-03 13:28:49 -08:00
Rudy Huyn
73d6a32add merge with master 2019-12-02 19:36:54 -08:00
Scott Freeman
d0785b2fad Updating HistoryViewModel::SaveHistory so it (#819)
Taking a const ref of history items vector in HistoryViewModel::SaveHistory and iterating over those items using a range for loop.
2019-12-01 09:02:34 -08:00
Scott Freeman
369843dd37 Changing CCalcEngine::s_engineStrings to use string_view for keys (#829) 2019-12-01 08:59:50 -08:00
Rudy Huyn
7ef6eaf1b6 Added support for small windows in the graphing calculator (#803)
* Add support of small windows

* remove extra space

* Modify how we manage the tooltip

* Fix merge issues
2019-11-22 10:36:36 -08:00
Stephanie Anderl
a33c1a4494
Equation button updates: Enable/Disable on click, button content f1, f2, f3..., visibility icon on hover (#804)
* Added enable/disable line functionality

* Update EquationTextBox to change the opacity of functions have are not visible. Update the function label for the EquationTextBox to increment the label to show f1, f2, f3, etc

* rebase key-graph-features and fix issue where removing an equation box and adding a new one repopulates the previous equation

* Added visibility icon for the equation button hover

* updated EquationButton to be a toggle button to better handle the LineHidden state and other PR comment fixes.

* Updated EquationButton style to use a toggle button and to have placeholder icons for the show/hide states

* Updated equation button after pulling the refactor work into the branch. Fixed the Equation Button in KGF UI

* Fixed Pepe's bugs

* Uncomment temporary.pfx in calculator.vcxproj
2019-11-21 15:07:45 -08:00
Pepe Rivera
288a90e0fe
Refactor Equation to be treated as a model and update Key Graph Features (#791)
* refactor code

* update KGF

* Rename some functions

* Undo comment out of proj file

* Pr feedback
2019-11-20 14:28:32 -08:00
Pepe Rivera
b55659f236 Update share output (#782)
* fix share bugs

* PR feedback

* PR feedback and merge fix

* Fix spacing and use explicit break

* Fix extra space
2019-11-19 15:54:24 -08:00
Scott Freeman
00346cc5a3 Fixing typo in StandardCalculatorViewModel::UpdatecommandsInRecording… (#810)
* Fixing typo in StandardCalculatorViewModel::UpdatecommandsInRecordingMode
Removing unnecessary copy of vector in StandardCalculatorViewModel::UpdateCommandsInRecordingMode
Using range-for in StandardCalculatorViewModel::UpdateCommandsInRecordingMode

* Using static_cast instead of safe_cast for unsigned char to Command
2019-11-19 07:08:05 -08:00
Scott Freeman
582e10faed Updating RemoveUnwantedCharsFromString to be a template (#808) 2019-11-18 19:02:45 -08:00
Rudy Huyn
86307f206f Modify the declaration of some properties of StandardCalculatorViewModel to make them read-only and use macros (#799) 2019-11-14 08:08:03 -08:00
Rudy Huyn
1380c7ed83 Use only NumberBase to represent radix in CalcViewModel (#797) 2019-11-14 07:09:17 -08:00
Rudy Huyn
b9b0e068cd
Convert CopyPasteManager to runtime class (#766)
* Convert CopyPasteManager to runtime class
* merge AssertUtils and Helpers.h
* update onpastemanager
2019-11-13 15:15:13 -08:00
Stephanie Anderl
442ed6a861
Key graph features (#704)
* 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
2019-11-12 13:46:11 -08:00
Scott Freeman
01299a92cd Updating code to append a wchar_t instead of const wchar_t (#778) 2019-11-11 09:23:34 -08:00
Rudy Huyn
4c81ed83c7
use Command instead of int to represent a command id (#781) 2019-11-06 15:45:31 -08:00
Rudy Huyn
5df3016df6 Fully separate Calculator and CalcManager (#752) 2019-11-06 15:31:57 -08:00
Scott Freeman
be68e72a9a Updating StandardCalculatorViewModel to use algorithms (#776)
- Using default wstring constructor instead of taking empty string literal
- Updated to for range-for where appropriate
- Used std::find for IsOp* code that was doing it by hand
- Used std::count to calculate LengthWithoutPadding
- Used existing wstring constructor to pad a string
2019-11-06 12:07:23 -08:00
Rudy Huyn
caa1c6bb9d Convert DateCalculatorViewModel to runtime class (#769) 2019-11-06 06:58:34 -08:00
Rudy Huyn
577aafb3f4 Migrate TraceLogger to runtime class (#772) 2019-11-05 18:59:24 -08:00
Rudy Huyn
613aaebf6f
fix DateDifference::operator== (#762) 2019-11-05 16:51:03 -08:00
Rudy Huyn
e38e911bfa Modify how Calculator manages the visibility of the History button (#712)
* Modify how Calculator manages the History button + code cleaning

* remove extra include
2019-11-05 15:04:28 -08:00
Rudy Huyn
136ade6aa8
Replace wstring used in public methods by Platform::String in CalcViewModel (#768) 2019-11-05 13:57:48 -08:00
Rudy Huyn
049d3f4c6c Revert "Replace wstring used in public methods by Platform::String in CalcViewModel (#758)" (#767)
This reverts commit 93f1f784bb.
2019-11-04 17:54:12 -08:00
Rudy Huyn
93f1f784bb
Replace wstring used in public methods by Platform::String in CalcViewModel (#758) 2019-11-04 17:16:16 -08:00
Scott Freeman
5e46ceabc8 Making string concatenations more efficent (#760)
by appending wchar_ts instead of  wstrings
2019-10-31 11:44:25 -07:00
Scott Freeman
6366e0c535 Replacing CalculatorVector usage with std::vector (#756)
* Replacing CalculatorVector usage with std::vector

Assumptions made here are that memory allocations
are not recoverable.  If it can be proved that an index
will be in range, then the indexing operation is used.
If not (without manual checks) the std::vector::at function
is used to throw an exception in case of a programmer bug.

* Changes based on PR feedback

Using auto& in CalculatorCollector::UpdateHistoryExpression
so the token.first value is properly updated.

Using range for loop to GenerateExpressions.

Setting isEditable directly to the result of boolean expression.

Using token.second directly instead of creating a
separate tokenCommandIndex variable.

* Fixing issue with generating expressions strings.

A space should not be added before the first item.
2019-10-30 10:55:13 -07:00
Rudy Huyn
bc2d2d4e9d use short date (#739) 2019-10-29 11:14:11 -07:00
Rudy Huyn
8db4c2b25a Allow negative numbers without digits before the decimal point (#743) 2019-10-28 10:17:02 -07:00
Mateusz
bfa5f81ef6 Do not hide expression when user presses Enter or = (#695)
* #653 Do not hide expression on EQU operation

* #653 Clear expression, when user makes an action

* #653 Fixed UI tests

* #653 Review fixes
2019-10-18 13:40:13 -07:00
Rudy Huyn
b97046ad67 Allow users to paste expressions with ^or % (#682) 2019-10-18 11:07:51 -07:00