diff --git a/src/CalcManager/CEngine/scicomm.cpp b/src/CalcManager/CEngine/scicomm.cpp
index 701fb21c..46bec0a1 100644
--- a/src/CalcManager/CEngine/scicomm.cpp
+++ b/src/CalcManager/CEngine/scicomm.cpp
@@ -389,7 +389,7 @@ void CCalcEngine::ProcessCommandWorker(OpCode wParam)
}
/* Now branch off to do other commands and functions. */
- switch (wParam)
+ switch (wParam) //wParam
{
case IDC_CLEAR: /* Total clear. */
{
@@ -780,6 +780,11 @@ void CCalcEngine::ProcessCommandWorker(OpCode wParam)
DisplayNum();
break;
+ case IDC_ENG:
+ m_nFE = NumberFormat::Engineering;
+ DisplayNum();
+ break;
+
case IDC_EXP:
if (m_bRecord && !m_fIntegerMode && m_input.TryBeginExponent())
{
diff --git a/src/CalcManager/Command.h b/src/CalcManager/Command.h
index 8d27dc79..c6f2b46c 100644
--- a/src/CalcManager/Command.h
+++ b/src/CalcManager/Command.h
@@ -66,6 +66,7 @@ namespace CalculationManager
CommandGRAD = 323,
CommandDegrees = 324,
CommandHYP = 325,
+ CommandENG = 326,
CommandNULL = 0,
diff --git a/src/CalcManager/Header Files/CCommand.h b/src/CalcManager/Header Files/CCommand.h
index 2696181a..a56c7757 100644
--- a/src/CalcManager/Header Files/CCommand.h
+++ b/src/CalcManager/Header Files/CCommand.h
@@ -29,6 +29,7 @@
#define IDM_RAD 322
#define IDM_GRAD 323
#define IDM_DEGREES 324
+#define IDC_ENG 326
#define IDC_HEX IDM_HEX
#define IDC_DEC IDM_DEC
diff --git a/src/CalcViewModel/Common/CalculatorButtonUser.h b/src/CalcViewModel/Common/CalculatorButtonUser.h
index 4885e488..1c64eac6 100644
--- a/src/CalcViewModel/Common/CalculatorButtonUser.h
+++ b/src/CalcViewModel/Common/CalculatorButtonUser.h
@@ -38,6 +38,7 @@ namespace CalculatorApp::ViewModel::Common
Radians = (int)CM::Command::CommandRAD,
Grads = (int)CM::Command::CommandGRAD,
Degrees = (int)CM::Command::CommandDegrees,
+ Engineering = (int)CM::Command::CommandENG,
OpenParenthesis = (int)CM::Command::CommandOPENP,
CloseParenthesis = (int)CM::Command::CommandCLOSEP,
Pi = (int)CM::Command::CommandPI,
diff --git a/src/CalcViewModel/StandardCalculatorViewModel.cpp b/src/CalcViewModel/StandardCalculatorViewModel.cpp
index 22554ca6..736497bd 100644
--- a/src/CalcViewModel/StandardCalculatorViewModel.cpp
+++ b/src/CalcViewModel/StandardCalculatorViewModel.cpp
@@ -448,6 +448,12 @@ void StandardCalculatorViewModel::FtoEButtonToggled()
OnButtonPressed(NumbersAndOperatorsEnum::FToE);
}
+void StandardCalculatorViewModel::EngButton()
+{
+ OnButtonPressed(NumbersAndOperatorsEnum::Engineering);
+}
+
+
void StandardCalculatorViewModel::HandleUpdatedOperandData(Command cmdenum)
{
DisplayExpressionToken ^ displayExpressionToken = ExpressionTokens->GetAt(m_TokenPosition);
diff --git a/src/CalcViewModel/StandardCalculatorViewModel.h b/src/CalcViewModel/StandardCalculatorViewModel.h
index 0af82478..187b2bf2 100644
--- a/src/CalcViewModel/StandardCalculatorViewModel.h
+++ b/src/CalcViewModel/StandardCalculatorViewModel.h
@@ -258,6 +258,7 @@ namespace CalculatorApp
void SetOpenParenthesisCountNarratorAnnouncement();
void SwitchAngleType(CalculatorApp::ViewModel::Common::NumbersAndOperatorsEnum num);
void FtoEButtonToggled();
+ void EngButton();
internal:
void OnPaste(Platform::String ^ pastedString);
diff --git a/src/Calculator/Views/CalculatorScientificAngleButtons.xaml b/src/Calculator/Views/CalculatorScientificAngleButtons.xaml
index ca30815c..ba3fe1ec 100644
--- a/src/Calculator/Views/CalculatorScientificAngleButtons.xaml
+++ b/src/Calculator/Views/CalculatorScientificAngleButtons.xaml
@@ -98,21 +98,32 @@
CommandParameter="2"
Content="GRAD"
Visibility="Collapsed"/>
-
-
- FToE
-
-
+
+
+
+
diff --git a/src/Calculator/Views/CalculatorScientificAngleButtons.xaml.cs b/src/Calculator/Views/CalculatorScientificAngleButtons.xaml.cs
index 464c9ce8..cc0a8c0e 100644
--- a/src/Calculator/Views/CalculatorScientificAngleButtons.xaml.cs
+++ b/src/Calculator/Views/CalculatorScientificAngleButtons.xaml.cs
@@ -17,15 +17,15 @@ namespace CalculatorApp
[Windows.Foundation.Metadata.WebHostHidden]
public sealed partial class CalculatorScientificAngleButtons
{
- public CalculatorScientificAngleButtons()
+ public CalculatorScientificAngleButtons() //constructor for the class
{
m_isErrorVisualState = false;
- InitializeComponent();
+ InitializeComponent(); //initializes UI components?
}
- public StandardCalculatorViewModel Model => (StandardCalculatorViewModel)this.DataContext;
+ public StandardCalculatorViewModel Model => (StandardCalculatorViewModel)this.DataContext; //Model is an expression-bodied read-only property of StandardCalculatorViewModel type
- public System.Windows.Input.ICommand ButtonPressed
+ public System.Windows.Input.ICommand ButtonPressed //ButtonPressed is the bind source for button command? ICommand is an interface
{
get
{
@@ -66,7 +66,7 @@ namespace CalculatorApp
if (buttonId == "0")
{
- Model.SwitchAngleType(NumbersAndOperatorsEnum.Radians);
+ Model.SwitchAngleType(NumbersAndOperatorsEnum.Radians); //Model gets a viewmodel object and SwitchAngleType is a method for that object?
RadianButton.Visibility = Visibility.Visible;
RadianButton.Focus(FocusState.Programmatic);
}
@@ -84,10 +84,49 @@ namespace CalculatorApp
}
}
- private void FToEButton_Toggled(object sender, RoutedEventArgs e)
+ public System.Windows.Input.ICommand NotationPressed //ButtonPressed is the bind source for button command? ICommand is an interface
{
- var viewModel = (StandardCalculatorViewModel)this.DataContext;
- viewModel.FtoEButtonToggled();
+ get
+ {
+ if (donotuse_NotationPressed == null)
+ {
+ donotuse_NotationPressed = DelegateCommandUtils.MakeDelegateCommand(this,
+ (that, param) =>
+ {
+ that.OnNotationButtonPressed(param);
+ });
+ }
+ return donotuse_NotationPressed;
+ }
+ }
+ private System.Windows.Input.ICommand donotuse_NotationPressed;
+
+ private void OnNotationButtonPressed(object commandParameter)
+ {
+ string buttonId = (string)commandParameter;
+
+ AutoButton.Visibility = Visibility.Collapsed;
+ SciButton.Visibility = Visibility.Collapsed;
+ EngButton.Visibility = Visibility.Collapsed;
+
+ if (buttonId == "0")
+ {
+ Model.FtoEButtonToggled();
+ SciButton.Visibility = Visibility.Visible;
+ SciButton.Focus(FocusState.Programmatic);
+ }
+ else if (buttonId == "1")
+ {
+ Model.EngButton(); //update this to some new method
+ EngButton.Visibility = Visibility.Visible;
+ EngButton.Focus(FocusState.Programmatic);
+ }
+ else if (buttonId == "2")
+ {
+ Model.FtoEButtonToggled();
+ AutoButton.Visibility = Visibility.Visible;
+ AutoButton.Focus(FocusState.Programmatic);
+ }
}
private bool m_isErrorVisualState;