calculator/src/Calculator/Views
Rudy Huyn de65db6197 Decrease CPU usage of OverflowTextBlock + optimization (#403)
Fixes #402 and #414
Divide by 4 the CPU usage of OverflowTextBlock when buttons are pressed very quickly.

Description of the changes:

Xaml-side:
OverflowTextBlock has some performance issues:
double scrollviewer: the listview was in a scrollviewer, while the control already containing one -> it breaks the virtualization of the listview and impacts on UI performance.
The listview used a StackPanel, this panel doesn't support virtualization of ListViewItems contrary to ItemsStackPanel

No ListView-specific features were used, an ItemsControl is more efficient and lighter.
refactor how we manage the visibility of the left/right buttons in OverflowTextBlock, the new version is more reactive and will not display the right arrow when not necessary (see GIF below).
remove the ItemContainerSelector ExpressionItemContainerStyle, not really used by OverflowTextBlock

remove UI glitches generated by ChangeView when users type fast (control partially hidden and scrolling issues, see the GIF below).
only modify the accessibility view when it's necessary

ViewModel-side:
stop fully refreshing ExpressionTokens in StandardCalculatorViewModel when a new command were sent, instead, use a IObservableVector to only send new tokens to the UI (in average only 1 or 2 UI items are refreshed while the full expression was refreshed before)

How changes were validated:
Manually
2019-04-18 15:21:33 -07:00
..
StateTriggers - Avoid referencing project headers from precompiled headers. 2019-02-14 18:20:25 -08:00
Calculator.xaml Decrease CPU usage of OverflowTextBlock + optimization (#403) 2019-04-18 15:21:33 -07:00
Calculator.xaml.cpp Decrease CPU usage of OverflowTextBlock + optimization (#403) 2019-04-18 15:21:33 -07:00
Calculator.xaml.h Decrease CPU usage of OverflowTextBlock + optimization (#403) 2019-04-18 15:21:33 -07:00
CalculatorProgrammerBitFlipPanel.xaml Hello GitHub 2019-01-28 16:24:37 -08:00
CalculatorProgrammerBitFlipPanel.xaml.cpp ViewModelProperties namespaces converted to static member properties. (#306) 2019-03-20 09:56:59 -07:00
CalculatorProgrammerBitFlipPanel.xaml.h Replace escape sequences with path separators in include paths 2019-03-07 15:51:00 -08:00
CalculatorProgrammerDisplayPanel.xaml Hello GitHub 2019-01-28 16:24:37 -08:00
CalculatorProgrammerDisplayPanel.xaml.cpp - Avoid referencing project headers from precompiled headers. 2019-02-14 18:20:25 -08:00
CalculatorProgrammerDisplayPanel.xaml.h Replace escape sequences with path separators in include paths 2019-03-07 15:51:00 -08:00
CalculatorProgrammerOperators.xaml Updated UnitConvert ComboBox and Programmer Mode Radio Button Styles to Enable IsTextScaleFactorEnabled (#92) 2019-03-05 17:27:07 -08:00
CalculatorProgrammerOperators.xaml.cpp - Avoid referencing project headers from precompiled headers. 2019-02-14 18:20:25 -08:00
CalculatorProgrammerOperators.xaml.h Replace escape sequences with path separators in include paths 2019-03-07 15:51:00 -08:00
CalculatorProgrammerRadixOperators.xaml Improve the support of Narrator with parenthesis (#368) 2019-04-15 09:31:02 -07:00
CalculatorProgrammerRadixOperators.xaml.cpp Improve the support of Narrator with parenthesis (#368) 2019-04-15 09:31:02 -07:00
CalculatorProgrammerRadixOperators.xaml.h Improve the support of Narrator with parenthesis (#368) 2019-04-15 09:31:02 -07:00
CalculatorScientificAngleButtons.xaml Hello GitHub 2019-01-28 16:24:37 -08:00
CalculatorScientificAngleButtons.xaml.cpp Switch urls from http: to https: (#137) 2019-03-07 08:56:25 -08:00
CalculatorScientificAngleButtons.xaml.h Replace escape sequences with path separators in include paths 2019-03-07 15:51:00 -08:00
CalculatorScientificOperators.xaml Improve the support of Narrator with parenthesis (#368) 2019-04-15 09:31:02 -07:00
CalculatorScientificOperators.xaml.cpp Improve the support of Narrator with parenthesis (#368) 2019-04-15 09:31:02 -07:00
CalculatorScientificOperators.xaml.h Improve the support of Narrator with parenthesis (#368) 2019-04-15 09:31:02 -07:00
CalculatorStandardOperators.xaml Hello GitHub 2019-01-28 16:24:37 -08:00
CalculatorStandardOperators.xaml.cpp Switch urls from http: to https: (#137) 2019-03-07 08:56:25 -08:00
CalculatorStandardOperators.xaml.h Replace escape sequences with path separators in include paths 2019-03-07 15:51:00 -08:00
DateCalculator.xaml Activate TextSelection on all interesting values/results (#213) 2019-03-14 22:35:55 -07:00
DateCalculator.xaml.cpp fix: redundant semicolons (#230) 2019-03-09 08:16:05 -08:00
DateCalculator.xaml.h Replace escape sequences with path separators in include paths 2019-03-07 15:51:00 -08:00
DelighterUnitStyles.xaml Hello GitHub 2019-01-28 16:24:37 -08:00
HistoryList.xaml Activate TextSelection on all interesting values/results (#213) 2019-03-14 22:35:55 -07:00
HistoryList.xaml.cpp Replace escape sequences with path separators in include paths 2019-03-07 15:51:00 -08:00
HistoryList.xaml.h Replace escape sequences with path separators in include paths 2019-03-07 15:51:00 -08:00
MainPage.xaml Remove unused PLM code (#7) 2019-02-01 15:15:48 -08:00
MainPage.xaml.cpp Removed AppBar, OperatorTextBox and OperandTextBox controls (#440) 2019-04-16 17:46:07 -07:00
MainPage.xaml.h Removed AppBar, OperatorTextBox and OperandTextBox controls (#440) 2019-04-16 17:46:07 -07:00
Memory.xaml Hello GitHub 2019-01-28 16:24:37 -08:00
Memory.xaml.cpp Replace escape sequences with path separators in include paths 2019-03-07 15:51:00 -08:00
Memory.xaml.h Replace escape sequences with path separators in include paths 2019-03-07 15:51:00 -08:00
MemoryListItem.xaml Activate TextSelection on all interesting values/results (#213) 2019-03-14 22:35:55 -07:00
MemoryListItem.xaml.cpp Replace escape sequences with path separators in include paths 2019-03-07 15:51:00 -08:00
MemoryListItem.xaml.h Replace escape sequences with path separators in include paths 2019-03-07 15:51:00 -08:00
NumberPad.xaml Fix grid.Row (#279) 2019-03-15 02:06:10 -07:00
NumberPad.xaml.cpp Replace escape sequences with path separators in include paths 2019-03-07 15:51:00 -08:00
NumberPad.xaml.h Replace escape sequences with path separators in include paths 2019-03-07 15:51:00 -08:00
OperatorsPanel.xaml Hello GitHub 2019-01-28 16:24:37 -08:00
OperatorsPanel.xaml.cpp Hello GitHub 2019-01-28 16:24:37 -08:00
OperatorsPanel.xaml.h Replace escape sequences with path separators in include paths 2019-03-07 15:51:00 -08:00
SupplementaryResults.xaml Improve performance of SupplementaryResult + Modify the height of RowDltrUnits when UnitConverter is in Landscape (#249) 2019-03-26 11:24:36 -07:00
SupplementaryResults.xaml.cpp Improve performance of SupplementaryResult + Modify the height of RowDltrUnits when UnitConverter is in Landscape (#249) 2019-03-26 11:24:36 -07:00
SupplementaryResults.xaml.h Removed AppBar, OperatorTextBox and OperandTextBox controls (#440) 2019-04-16 17:46:07 -07:00
TitleBar.xaml Hello GitHub 2019-01-28 16:24:37 -08:00
TitleBar.xaml.cpp Replace escape sequences with path separators in include paths 2019-03-07 15:51:00 -08:00
TitleBar.xaml.h Replace escape sequences with path separators in include paths 2019-03-07 15:51:00 -08:00
UnitConverter.xaml Optimize and simplify CalculationResult to be able to update the FontSize and the DisplayMargin without fully updating the Style. (#217) 2019-04-05 13:04:39 -07:00
UnitConverter.xaml.cpp Improve performance of SupplementaryResult + Modify the height of RowDltrUnits when UnitConverter is in Landscape (#249) 2019-03-26 11:24:36 -07:00
UnitConverter.xaml.h Improve performance of SupplementaryResult + Modify the height of RowDltrUnits when UnitConverter is in Landscape (#249) 2019-03-26 11:24:36 -07:00