mirror of
https://github.com/Microsoft/calculator.git
synced 2025-07-13 00:32:52 -07:00
Fix the project code style, as it is not consistent. (#236)
Fixes #202 This PR fixes code style for the project files. The Problem Different files in the project use different code style. That is not consistent and leads to harder maintenance of the project. Description of the changes: Have investigated and determined the most used code style across the given codebase Have configured IDE and applied code style to all project files. Have crafted clang-formatter config. see https://clang.llvm.org/docs/ClangFormat.html https://clang.llvm.org/docs/ClangFormatStyleOptions.html Some cases were fixed manually How changes were validated: manual/ad-hoc testing, automated testing All tests pass as before because these are only code style changes. Additional Please review, and let me know if I have any mistake in the code style. In case of any mistake, I will change the configuration and re-apply it to the project.
This commit is contained in:
parent
c77f1de84c
commit
2826d37056
237 changed files with 12824 additions and 11843 deletions
|
@ -59,45 +59,46 @@ namespace CalculatorResourceKeys
|
|||
StringReference DisplayCopied(L"Display_Copied");
|
||||
}
|
||||
|
||||
StandardCalculatorViewModel::StandardCalculatorViewModel() :
|
||||
m_DisplayValue(L"0"),
|
||||
m_DecimalDisplayValue(L"0"),
|
||||
m_HexDisplayValue(L"0"),
|
||||
m_BinaryDisplayValue(L"0"),
|
||||
m_OctalDisplayValue(L"0"),
|
||||
m_standardCalculatorManager(&m_calculatorDisplay, &m_resourceProvider),
|
||||
m_ExpressionTokens(ref new Vector<DisplayExpressionToken^>()),
|
||||
m_MemorizedNumbers(ref new Vector<MemoryItemViewModel^>()),
|
||||
m_IsMemoryEmpty(true),
|
||||
m_IsFToEChecked(false),
|
||||
m_isShiftChecked(false),
|
||||
m_IsShiftProgrammerChecked(false),
|
||||
m_IsQwordEnabled(true),
|
||||
m_IsDwordEnabled(true),
|
||||
m_IsWordEnabled(true),
|
||||
m_IsByteEnabled(true),
|
||||
m_isBitFlipChecked(false),
|
||||
m_isBinaryBitFlippingEnabled(false),
|
||||
m_CurrentRadixType(RADIX_TYPE::DEC_RADIX),
|
||||
m_CurrentAngleType(NumbersAndOperatorsEnum::Degree),
|
||||
m_Announcement(nullptr),
|
||||
m_OpenParenthesisCount(0),
|
||||
m_feedbackForButtonPress(nullptr),
|
||||
m_isRtlLanguage(false),
|
||||
m_localizedMaxDigitsReachedAutomationFormat(nullptr),
|
||||
m_localizedButtonPressFeedbackAutomationFormat(nullptr),
|
||||
m_localizedMemorySavedAutomationFormat(nullptr),
|
||||
m_localizedMemoryItemChangedAutomationFormat(nullptr),
|
||||
m_localizedMemoryItemClearedAutomationFormat(nullptr),
|
||||
m_localizedMemoryCleared(nullptr),
|
||||
m_localizedOpenParenthesisCountChangedAutomationFormat(nullptr),
|
||||
m_localizedNoRightParenthesisAddedFormat(nullptr)
|
||||
StandardCalculatorViewModel::StandardCalculatorViewModel()
|
||||
: m_DisplayValue(L"0")
|
||||
, m_DecimalDisplayValue(L"0")
|
||||
, m_HexDisplayValue(L"0")
|
||||
, m_BinaryDisplayValue(L"0")
|
||||
, m_OctalDisplayValue(L"0")
|
||||
, m_standardCalculatorManager(&m_calculatorDisplay, &m_resourceProvider)
|
||||
, m_ExpressionTokens(ref new Vector<DisplayExpressionToken ^>())
|
||||
, m_MemorizedNumbers(ref new Vector<MemoryItemViewModel ^>())
|
||||
, m_IsMemoryEmpty(true)
|
||||
, m_IsFToEChecked(false)
|
||||
, m_isShiftChecked(false)
|
||||
, m_IsShiftProgrammerChecked(false)
|
||||
, m_IsQwordEnabled(true)
|
||||
, m_IsDwordEnabled(true)
|
||||
, m_IsWordEnabled(true)
|
||||
, m_IsByteEnabled(true)
|
||||
, m_isBitFlipChecked(false)
|
||||
, m_isBinaryBitFlippingEnabled(false)
|
||||
, m_CurrentRadixType(RADIX_TYPE::DEC_RADIX)
|
||||
, m_CurrentAngleType(NumbersAndOperatorsEnum::Degree)
|
||||
, m_Announcement(nullptr)
|
||||
, m_OpenParenthesisCount(0)
|
||||
, m_feedbackForButtonPress(nullptr)
|
||||
, m_isRtlLanguage(false)
|
||||
, m_localizedMaxDigitsReachedAutomationFormat(nullptr)
|
||||
, m_localizedButtonPressFeedbackAutomationFormat(nullptr)
|
||||
, m_localizedMemorySavedAutomationFormat(nullptr)
|
||||
, m_localizedMemoryItemChangedAutomationFormat(nullptr)
|
||||
, m_localizedMemoryItemClearedAutomationFormat(nullptr)
|
||||
, m_localizedMemoryCleared(nullptr)
|
||||
, m_localizedOpenParenthesisCountChangedAutomationFormat(nullptr)
|
||||
, m_localizedNoRightParenthesisAddedFormat(nullptr)
|
||||
{
|
||||
WeakReference calculatorViewModel(this);
|
||||
m_calculatorDisplay.SetCallback(calculatorViewModel);
|
||||
m_expressionAutomationNameFormat = AppResourceProvider::GetInstance().GetResourceString(CalculatorResourceKeys::CalculatorExpression);
|
||||
m_localizedCalculationResultAutomationFormat = AppResourceProvider::GetInstance().GetResourceString(CalculatorResourceKeys::CalculatorResults);
|
||||
m_localizedCalculationResultDecimalAutomationFormat = AppResourceProvider::GetInstance().GetResourceString(CalculatorResourceKeys::CalculatorResults_DecimalSeparator_Announced);
|
||||
m_localizedCalculationResultDecimalAutomationFormat =
|
||||
AppResourceProvider::GetInstance().GetResourceString(CalculatorResourceKeys::CalculatorResults_DecimalSeparator_Announced);
|
||||
m_localizedHexaDecimalAutomationFormat = AppResourceProvider::GetInstance().GetResourceString(CalculatorResourceKeys::HexButton);
|
||||
m_localizedDecimalAutomationFormat = AppResourceProvider::GetInstance().GetResourceString(CalculatorResourceKeys::DecButton);
|
||||
m_localizedOctalAutomationFormat = AppResourceProvider::GetInstance().GetResourceString(CalculatorResourceKeys::OctButton);
|
||||
|
@ -132,7 +133,7 @@ StandardCalculatorViewModel::StandardCalculatorViewModel() :
|
|||
m_isLastOperationHistoryLoad = false;
|
||||
}
|
||||
|
||||
String^ StandardCalculatorViewModel::LocalizeDisplayValue(_In_ wstring const &displayValue, _In_ bool isError)
|
||||
String ^ StandardCalculatorViewModel::LocalizeDisplayValue(_In_ wstring const& displayValue, _In_ bool isError)
|
||||
{
|
||||
wstring result(displayValue);
|
||||
|
||||
|
@ -148,10 +149,10 @@ String^ StandardCalculatorViewModel::LocalizeDisplayValue(_In_ wstring const &di
|
|||
return ref new Platform::String(result.c_str());
|
||||
}
|
||||
|
||||
String^ StandardCalculatorViewModel::CalculateNarratorDisplayValue(_In_ wstring const &displayValue, _In_ String^ localizedDisplayValue, _In_ bool isError)
|
||||
String ^ StandardCalculatorViewModel::CalculateNarratorDisplayValue(_In_ wstring const& displayValue, _In_ String ^ localizedDisplayValue, _In_ bool isError)
|
||||
{
|
||||
String^ localizedValue = localizedDisplayValue;
|
||||
String^ automationFormat = m_localizedCalculationResultAutomationFormat;
|
||||
String ^ localizedValue = localizedDisplayValue;
|
||||
String ^ automationFormat = m_localizedCalculationResultAutomationFormat;
|
||||
|
||||
// The narrator doesn't read the decimalSeparator if it's the last character
|
||||
if (Utils::IsLastCharacterTarget(displayValue, m_decimalSeparator))
|
||||
|
@ -173,7 +174,7 @@ String^ StandardCalculatorViewModel::CalculateNarratorDisplayValue(_In_ wstring
|
|||
return GetLocalizedStringFormat(automationFormat, localizedValue);
|
||||
}
|
||||
|
||||
String^ StandardCalculatorViewModel::GetNarratorStringReadRawNumbers(_In_ String^ localizedDisplayValue)
|
||||
String ^ StandardCalculatorViewModel::GetNarratorStringReadRawNumbers(_In_ String ^ localizedDisplayValue)
|
||||
{
|
||||
wstringstream wss;
|
||||
auto& locSettings = LocalizationSettings::GetInstance();
|
||||
|
@ -192,9 +193,9 @@ String^ StandardCalculatorViewModel::GetNarratorStringReadRawNumbers(_In_ String
|
|||
return ref new String(wss.str().c_str());
|
||||
}
|
||||
|
||||
void StandardCalculatorViewModel::SetPrimaryDisplay(_In_ wstring const &displayStringValue, _In_ bool isError)
|
||||
void StandardCalculatorViewModel::SetPrimaryDisplay(_In_ wstring const& displayStringValue, _In_ bool isError)
|
||||
{
|
||||
String^ localizedDisplayStringValue = LocalizeDisplayValue(displayStringValue, isError);
|
||||
String ^ localizedDisplayStringValue = LocalizeDisplayValue(displayStringValue, isError);
|
||||
|
||||
// Set this variable before the DisplayValue is modified, Otherwise the DisplayValue will
|
||||
// not match what the narrator is saying
|
||||
|
@ -234,10 +235,9 @@ void StandardCalculatorViewModel::SetOpenParenthesisCountNarratorAnnouncement()
|
|||
wstring localizedParenthesisCount = to_wstring(m_OpenParenthesisCount).c_str();
|
||||
LocalizationSettings::GetInstance().LocalizeDisplayValue(&localizedParenthesisCount);
|
||||
|
||||
String^ announcement = LocalizationStringUtil::GetLocalizedNarratorAnnouncement(
|
||||
CalculatorResourceKeys::OpenParenthesisCountAutomationFormat,
|
||||
m_localizedOpenParenthesisCountChangedAutomationFormat,
|
||||
localizedParenthesisCount.c_str());
|
||||
String ^ announcement =
|
||||
LocalizationStringUtil::GetLocalizedNarratorAnnouncement(CalculatorResourceKeys::OpenParenthesisCountAutomationFormat,
|
||||
m_localizedOpenParenthesisCountChangedAutomationFormat, localizedParenthesisCount.c_str());
|
||||
|
||||
Announcement = CalculatorAnnouncement::GetOpenParenthesisCountChangedAnnouncement(announcement);
|
||||
}
|
||||
|
@ -249,9 +249,8 @@ void StandardCalculatorViewModel::OnNoRightParenAdded()
|
|||
|
||||
void StandardCalculatorViewModel::SetNoParenAddedNarratorAnnouncement()
|
||||
{
|
||||
String^ announcement = LocalizationStringUtil::GetLocalizedNarratorAnnouncement(
|
||||
CalculatorResourceKeys::NoParenthesisAdded,
|
||||
m_localizedNoRightParenthesisAddedFormat);
|
||||
String ^ announcement =
|
||||
LocalizationStringUtil::GetLocalizedNarratorAnnouncement(CalculatorResourceKeys::NoParenthesisAdded, m_localizedNoRightParenthesisAddedFormat);
|
||||
|
||||
Announcement = CalculatorAnnouncement::GetNoRightParenthesisAddedAnnouncement(announcement);
|
||||
}
|
||||
|
@ -284,7 +283,8 @@ void StandardCalculatorViewModel::DisableButtons(CommandType selectedExpressionC
|
|||
}
|
||||
}
|
||||
|
||||
void StandardCalculatorViewModel::SetExpressionDisplay(_Inout_ shared_ptr<CalculatorVector<pair<wstring, int>>> const &tokens, _Inout_ shared_ptr<CalculatorVector <shared_ptr<IExpressionCommand>>> const &commands)
|
||||
void StandardCalculatorViewModel::SetExpressionDisplay(_Inout_ shared_ptr<CalculatorVector<pair<wstring, int>>> const& tokens,
|
||||
_Inout_ shared_ptr<CalculatorVector<shared_ptr<IExpressionCommand>>> const& commands)
|
||||
{
|
||||
m_tokens = tokens;
|
||||
m_commands = commands;
|
||||
|
@ -298,10 +298,11 @@ void StandardCalculatorViewModel::SetExpressionDisplay(_Inout_ shared_ptr<Calcul
|
|||
AreTokensUpdated = true;
|
||||
}
|
||||
|
||||
void StandardCalculatorViewModel::SetHistoryExpressionDisplay(_Inout_ shared_ptr<CalculatorVector<pair<wstring, int>>> const &tokens, _Inout_ shared_ptr<CalculatorVector <shared_ptr<IExpressionCommand>>> const &commands)
|
||||
void StandardCalculatorViewModel::SetHistoryExpressionDisplay(_Inout_ shared_ptr<CalculatorVector<pair<wstring, int>>> const& tokens,
|
||||
_Inout_ shared_ptr<CalculatorVector<shared_ptr<IExpressionCommand>>> const& commands)
|
||||
{
|
||||
m_tokens = make_shared<CalculatorVector<pair<wstring, int>>>(*tokens);
|
||||
m_commands = make_shared<CalculatorVector <shared_ptr<IExpressionCommand>>>(*commands);
|
||||
m_commands = make_shared<CalculatorVector<shared_ptr<IExpressionCommand>>>(*commands);
|
||||
IsEditingEnabled = false;
|
||||
|
||||
// Setting the History Item Load Mode so that UI does not get updated with recalculation of every token
|
||||
|
@ -311,7 +312,7 @@ void StandardCalculatorViewModel::SetHistoryExpressionDisplay(_Inout_ shared_ptr
|
|||
m_isLastOperationHistoryLoad = true;
|
||||
}
|
||||
|
||||
void StandardCalculatorViewModel::SetTokens(_Inout_ shared_ptr<CalculatorVector<pair<wstring, int>>> const &tokens)
|
||||
void StandardCalculatorViewModel::SetTokens(_Inout_ shared_ptr<CalculatorVector<pair<wstring, int>>> const& tokens)
|
||||
{
|
||||
AreTokensUpdated = false;
|
||||
|
||||
|
@ -324,7 +325,7 @@ void StandardCalculatorViewModel::SetTokens(_Inout_ shared_ptr<CalculatorVector<
|
|||
return;
|
||||
}
|
||||
|
||||
pair <wstring, int> currentToken;
|
||||
pair<wstring, int> currentToken;
|
||||
const auto& localizer = LocalizationSettings::GetInstance();
|
||||
|
||||
const wstring separator = L" ";
|
||||
|
@ -362,7 +363,6 @@ void StandardCalculatorViewModel::SetTokens(_Inout_ shared_ptr<CalculatorVector<
|
|||
auto expressionToken = ref new DisplayExpressionToken(currentTokenString, i, isEditable, type);
|
||||
m_ExpressionTokens->InsertAt(i, expressionToken);
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -378,9 +378,9 @@ void StandardCalculatorViewModel::SetTokens(_Inout_ shared_ptr<CalculatorVector<
|
|||
}
|
||||
}
|
||||
|
||||
String^ StandardCalculatorViewModel::GetCalculatorExpressionAutomationName()
|
||||
String ^ StandardCalculatorViewModel::GetCalculatorExpressionAutomationName()
|
||||
{
|
||||
String^ expression = L"";
|
||||
String ^ expression = L"";
|
||||
for (auto&& token : m_ExpressionTokens)
|
||||
{
|
||||
expression += LocalizationService::GetNarratorReadableToken(token->Token);
|
||||
|
@ -405,7 +405,7 @@ void StandardCalculatorViewModel::SetMemorizedNumbers(const vector<wstring>& new
|
|||
size_t newValuePosition = newMemorizedNumbers.size() - MemorizedNumbers->Size - 1;
|
||||
auto stringValue = newMemorizedNumbers.at(newValuePosition);
|
||||
|
||||
MemoryItemViewModel^ memorySlot = ref new MemoryItemViewModel(this);
|
||||
MemoryItemViewModel ^ memorySlot = ref new MemoryItemViewModel(this);
|
||||
memorySlot->Position = 0;
|
||||
localizer.LocalizeDisplayValue(&stringValue);
|
||||
memorySlot->Value = Utils::LRO + ref new String(stringValue.c_str()) + Utils::PDF;
|
||||
|
@ -432,7 +432,6 @@ void StandardCalculatorViewModel::SetMemorizedNumbers(const vector<wstring>& new
|
|||
{
|
||||
MemorizedNumbers->GetAt(i)->Value = Utils::LRO + ref new String(newStringValue.c_str()) + Utils::PDF;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -444,7 +443,7 @@ void StandardCalculatorViewModel::FtoEButtonToggled()
|
|||
|
||||
void StandardCalculatorViewModel::HandleUpdatedOperandData(Command cmdenum)
|
||||
{
|
||||
DisplayExpressionToken^ displayExpressionToken = ExpressionTokens->GetAt(m_tokenPosition);
|
||||
DisplayExpressionToken ^ displayExpressionToken = ExpressionTokens->GetAt(m_tokenPosition);
|
||||
if (displayExpressionToken == nullptr)
|
||||
{
|
||||
return;
|
||||
|
@ -571,7 +570,7 @@ void StandardCalculatorViewModel::HandleUpdatedOperandData(Command cmdenum)
|
|||
}
|
||||
}
|
||||
|
||||
String^ updatedData = ref new String(temp);
|
||||
String ^ updatedData = ref new String(temp);
|
||||
UpdateOperand(m_tokenPosition, updatedData);
|
||||
displayExpressionToken->Token = updatedData;
|
||||
IsOperandUpdatedUsingViewModel = true;
|
||||
|
@ -581,8 +580,9 @@ void StandardCalculatorViewModel::HandleUpdatedOperandData(Command cmdenum)
|
|||
bool StandardCalculatorViewModel::IsOperator(Command cmdenum)
|
||||
{
|
||||
if ((cmdenum >= Command::Command0 && cmdenum <= Command::Command9) || (cmdenum == Command::CommandPNT) || (cmdenum == Command::CommandBACK)
|
||||
|| (cmdenum == Command::CommandEXP) || (cmdenum == Command::CommandFE) || (cmdenum == Command::ModeBasic) || (cmdenum == Command::ModeProgrammer) || (cmdenum == Command::ModeScientific)
|
||||
|| (cmdenum == Command::CommandINV) || (cmdenum == Command::CommandCENTR) || (cmdenum == Command::CommandDEG) || (cmdenum == Command::CommandRAD) || (cmdenum == Command::CommandGRAD)
|
||||
|| (cmdenum == Command::CommandEXP) || (cmdenum == Command::CommandFE) || (cmdenum == Command::ModeBasic) || (cmdenum == Command::ModeProgrammer)
|
||||
|| (cmdenum == Command::ModeScientific) || (cmdenum == Command::CommandINV) || (cmdenum == Command::CommandCENTR) || (cmdenum == Command::CommandDEG)
|
||||
|| (cmdenum == Command::CommandRAD) || (cmdenum == Command::CommandGRAD)
|
||||
|| ((cmdenum >= Command::CommandBINEDITSTART) && (cmdenum <= Command::CommandBINEDITEND)))
|
||||
{
|
||||
return false;
|
||||
|
@ -590,7 +590,7 @@ bool StandardCalculatorViewModel::IsOperator(Command cmdenum)
|
|||
return true;
|
||||
}
|
||||
|
||||
void StandardCalculatorViewModel::OnButtonPressed(Object^ parameter)
|
||||
void StandardCalculatorViewModel::OnButtonPressed(Object ^ parameter)
|
||||
{
|
||||
m_feedbackForButtonPress = CalculatorButtonPressedEventArgs::GetAuditoryFeedbackFromCommandParameter(parameter);
|
||||
NumbersAndOperatorsEnum numOpEnum = CalculatorButtonPressedEventArgs::GetOperationFromCommandParameter(parameter);
|
||||
|
@ -608,12 +608,9 @@ void StandardCalculatorViewModel::OnButtonPressed(Object^ parameter)
|
|||
}
|
||||
}
|
||||
|
||||
if (IsEditingEnabled &&
|
||||
numOpEnum != NumbersAndOperatorsEnum::IsScientificMode &&
|
||||
numOpEnum != NumbersAndOperatorsEnum::IsStandardMode &&
|
||||
numOpEnum != NumbersAndOperatorsEnum::IsProgrammerMode &&
|
||||
numOpEnum != NumbersAndOperatorsEnum::FToE &&
|
||||
(numOpEnum != NumbersAndOperatorsEnum::Degree) && (numOpEnum != NumbersAndOperatorsEnum::Radians) && (numOpEnum != NumbersAndOperatorsEnum::Grads))
|
||||
if (IsEditingEnabled && numOpEnum != NumbersAndOperatorsEnum::IsScientificMode && numOpEnum != NumbersAndOperatorsEnum::IsStandardMode
|
||||
&& numOpEnum != NumbersAndOperatorsEnum::IsProgrammerMode && numOpEnum != NumbersAndOperatorsEnum::FToE
|
||||
&& (numOpEnum != NumbersAndOperatorsEnum::Degree) && (numOpEnum != NumbersAndOperatorsEnum::Radians) && (numOpEnum != NumbersAndOperatorsEnum::Grads))
|
||||
{
|
||||
if (!m_keyPressed)
|
||||
{
|
||||
|
@ -622,9 +619,8 @@ void StandardCalculatorViewModel::OnButtonPressed(Object^ parameter)
|
|||
}
|
||||
else
|
||||
{
|
||||
if (numOpEnum == NumbersAndOperatorsEnum::IsStandardMode ||
|
||||
numOpEnum == NumbersAndOperatorsEnum::IsScientificMode ||
|
||||
numOpEnum == NumbersAndOperatorsEnum::IsProgrammerMode)
|
||||
if (numOpEnum == NumbersAndOperatorsEnum::IsStandardMode || numOpEnum == NumbersAndOperatorsEnum::IsScientificMode
|
||||
|| numOpEnum == NumbersAndOperatorsEnum::IsProgrammerMode)
|
||||
{
|
||||
IsEditingEnabled = false;
|
||||
}
|
||||
|
@ -634,10 +630,8 @@ void StandardCalculatorViewModel::OnButtonPressed(Object^ parameter)
|
|||
}
|
||||
else
|
||||
{
|
||||
if (numOpEnum == NumbersAndOperatorsEnum::Clear ||
|
||||
numOpEnum == NumbersAndOperatorsEnum::ClearEntry ||
|
||||
numOpEnum == NumbersAndOperatorsEnum::IsStandardMode ||
|
||||
numOpEnum == NumbersAndOperatorsEnum::IsProgrammerMode)
|
||||
if (numOpEnum == NumbersAndOperatorsEnum::Clear || numOpEnum == NumbersAndOperatorsEnum::ClearEntry
|
||||
|| numOpEnum == NumbersAndOperatorsEnum::IsStandardMode || numOpEnum == NumbersAndOperatorsEnum::IsProgrammerMode)
|
||||
{
|
||||
// On Clear('C') the F-E button needs to be UnChecked if it in Checked state.
|
||||
// Also, the Primary Display Value should not show in exponential format.
|
||||
|
@ -653,7 +647,8 @@ void StandardCalculatorViewModel::OnButtonPressed(Object^ parameter)
|
|||
{
|
||||
m_CurrentAngleType = numOpEnum;
|
||||
}
|
||||
if ((cmdenum >= Command::Command0 && cmdenum <= Command::Command9) || (cmdenum == Command::CommandPNT) || (cmdenum == Command::CommandBACK) || (cmdenum == Command::CommandEXP))
|
||||
if ((cmdenum >= Command::Command0 && cmdenum <= Command::Command9) || (cmdenum == Command::CommandPNT) || (cmdenum == Command::CommandBACK)
|
||||
|| (cmdenum == Command::CommandEXP))
|
||||
{
|
||||
IsOperatorCommand = false;
|
||||
}
|
||||
|
@ -662,8 +657,9 @@ void StandardCalculatorViewModel::OnButtonPressed(Object^ parameter)
|
|||
IsOperatorCommand = true;
|
||||
}
|
||||
|
||||
if (m_isLastOperationHistoryLoad &&
|
||||
((numOpEnum != NumbersAndOperatorsEnum::Degree) && (numOpEnum != NumbersAndOperatorsEnum::Radians) && (numOpEnum != NumbersAndOperatorsEnum::Grads)))
|
||||
if (m_isLastOperationHistoryLoad
|
||||
&& ((numOpEnum != NumbersAndOperatorsEnum::Degree) && (numOpEnum != NumbersAndOperatorsEnum::Radians)
|
||||
&& (numOpEnum != NumbersAndOperatorsEnum::Grads)))
|
||||
{
|
||||
IsFToEEnabled = true;
|
||||
m_isLastOperationHistoryLoad = false;
|
||||
|
@ -712,18 +708,17 @@ int StandardCalculatorViewModel::GetNumberBase()
|
|||
{
|
||||
return BinBase;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void StandardCalculatorViewModel::OnCopyCommand(Object^ parameter)
|
||||
void StandardCalculatorViewModel::OnCopyCommand(Object ^ parameter)
|
||||
{
|
||||
CopyPasteManager::CopyToClipboard(GetRawDisplayValue());
|
||||
|
||||
String^ announcement = AppResourceProvider::GetInstance().GetResourceString(CalculatorResourceKeys::DisplayCopied);
|
||||
String ^ announcement = AppResourceProvider::GetInstance().GetResourceString(CalculatorResourceKeys::DisplayCopied);
|
||||
Announcement = CalculatorAnnouncement::GetDisplayCopiedAnnouncement(announcement);
|
||||
}
|
||||
|
||||
void StandardCalculatorViewModel::OnPasteCommand(Object^ parameter)
|
||||
void StandardCalculatorViewModel::OnPasteCommand(Object ^ parameter)
|
||||
{
|
||||
ViewMode mode;
|
||||
int NumberBase = -1;
|
||||
|
@ -749,11 +744,8 @@ void StandardCalculatorViewModel::OnPasteCommand(Object^ parameter)
|
|||
}
|
||||
|
||||
// Ensure that the paste happens on the UI thread
|
||||
CopyPasteManager::GetStringToPaste(mode, NavCategory::GetGroupType(mode), NumberBase, bitLengthType).then(
|
||||
[this, mode](String^ pastedString)
|
||||
{
|
||||
OnPaste(pastedString, mode);
|
||||
}, concurrency::task_continuation_context::use_current());
|
||||
CopyPasteManager::GetStringToPaste(mode, NavCategory::GetGroupType(mode), NumberBase, bitLengthType)
|
||||
.then([this, mode](String ^ pastedString) { OnPaste(pastedString, mode); }, concurrency::task_continuation_context::use_current());
|
||||
}
|
||||
|
||||
CalculationManager::Command StandardCalculatorViewModel::ConvertToOperatorsEnum(NumbersAndOperatorsEnum operation)
|
||||
|
@ -761,7 +753,7 @@ CalculationManager::Command StandardCalculatorViewModel::ConvertToOperatorsEnum(
|
|||
return safe_cast<Command>(operation);
|
||||
}
|
||||
|
||||
void StandardCalculatorViewModel::OnPaste(String^ pastedString, ViewMode mode)
|
||||
void StandardCalculatorViewModel::OnPaste(String ^ pastedString, ViewMode mode)
|
||||
{
|
||||
// If pastedString is invalid("NoOp") then display pasteError else process the string
|
||||
if (pastedString == StringReference(CopyPasteManager::PasteErrorString))
|
||||
|
@ -901,19 +893,18 @@ void StandardCalculatorViewModel::OnPaste(String^ pastedString, ViewMode mode)
|
|||
}
|
||||
}
|
||||
|
||||
void StandardCalculatorViewModel::OnClearMemoryCommand(
|
||||
Object^ parameter)
|
||||
void StandardCalculatorViewModel::OnClearMemoryCommand(Object ^ parameter)
|
||||
{
|
||||
m_standardCalculatorManager.MemorizedNumberClearAll();
|
||||
|
||||
int windowId = Utils::GetWindowId();
|
||||
TraceLogger::GetInstance().LogMemoryClearAll(windowId);
|
||||
|
||||
String^ announcement = LocalizationStringUtil::GetLocalizedNarratorAnnouncement(CalculatorResourceKeys::MemoryCleared, m_localizedMemoryCleared);
|
||||
String ^ announcement = LocalizationStringUtil::GetLocalizedNarratorAnnouncement(CalculatorResourceKeys::MemoryCleared, m_localizedMemoryCleared);
|
||||
Announcement = CalculatorAnnouncement::GetMemoryClearedAnnouncement(announcement);
|
||||
}
|
||||
|
||||
void StandardCalculatorViewModel::OnPinUnpinCommand(Object^ parameter)
|
||||
void StandardCalculatorViewModel::OnPinUnpinCommand(Object ^ parameter)
|
||||
{
|
||||
SetViewPinnedState(!IsViewPinned());
|
||||
}
|
||||
|
@ -923,15 +914,12 @@ bool StandardCalculatorViewModel::IsViewPinned()
|
|||
return m_IsCurrentViewPinned;
|
||||
}
|
||||
|
||||
void StandardCalculatorViewModel::SetViewPinnedState(
|
||||
bool pinned)
|
||||
void StandardCalculatorViewModel::SetViewPinnedState(bool pinned)
|
||||
{
|
||||
IsCurrentViewPinned = pinned;
|
||||
}
|
||||
|
||||
NumbersAndOperatorsEnum StandardCalculatorViewModel::MapCharacterToButtonId(
|
||||
const wchar_t ch,
|
||||
bool& canSendNegate)
|
||||
NumbersAndOperatorsEnum StandardCalculatorViewModel::MapCharacterToButtonId(const wchar_t ch, bool& canSendNegate)
|
||||
{
|
||||
NumbersAndOperatorsEnum mappedValue = NumbersAndOperatorsEnum::None;
|
||||
canSendNegate = false;
|
||||
|
@ -1025,7 +1013,8 @@ NumbersAndOperatorsEnum StandardCalculatorViewModel::MapCharacterToButtonId(
|
|||
{
|
||||
if (LocalizationSettings::GetInstance().IsLocalizedDigit(ch))
|
||||
{
|
||||
mappedValue = NumbersAndOperatorsEnum::Zero + static_cast<NumbersAndOperatorsEnum>(ch - LocalizationSettings::GetInstance().GetDigitSymbolFromEnUsDigit('0'));
|
||||
mappedValue =
|
||||
NumbersAndOperatorsEnum::Zero + static_cast<NumbersAndOperatorsEnum>(ch - LocalizationSettings::GetInstance().GetDigitSymbolFromEnUsDigit('0'));
|
||||
canSendNegate = true;
|
||||
}
|
||||
}
|
||||
|
@ -1046,10 +1035,8 @@ void StandardCalculatorViewModel::OnMemoryButtonPressed()
|
|||
int windowId = Utils::GetWindowId();
|
||||
TraceLogger::GetInstance().InsertIntoMemoryMap(windowId, IsStandard, IsScientific, IsProgrammer);
|
||||
|
||||
String^ announcement = LocalizationStringUtil::GetLocalizedNarratorAnnouncement(
|
||||
CalculatorResourceKeys::MemorySave,
|
||||
m_localizedMemorySavedAutomationFormat,
|
||||
m_DisplayValue->Data());
|
||||
String ^ announcement = LocalizationStringUtil::GetLocalizedNarratorAnnouncement(CalculatorResourceKeys::MemorySave, m_localizedMemorySavedAutomationFormat,
|
||||
m_DisplayValue->Data());
|
||||
|
||||
Announcement = CalculatorAnnouncement::GetMemoryItemAddedAnnouncement(announcement);
|
||||
}
|
||||
|
@ -1058,27 +1045,24 @@ void StandardCalculatorViewModel::OnMemoryItemChanged(unsigned int indexOfMemory
|
|||
{
|
||||
if (indexOfMemory < MemorizedNumbers->Size)
|
||||
{
|
||||
MemoryItemViewModel^ memSlot = MemorizedNumbers->GetAt(indexOfMemory);
|
||||
String^ localizedValue = memSlot->Value;
|
||||
MemoryItemViewModel ^ memSlot = MemorizedNumbers->GetAt(indexOfMemory);
|
||||
String ^ localizedValue = memSlot->Value;
|
||||
|
||||
wstring localizedIndex = to_wstring(indexOfMemory + 1);
|
||||
LocalizationSettings::GetInstance().LocalizeDisplayValue(&localizedIndex);
|
||||
|
||||
String^ announcement = LocalizationStringUtil::GetLocalizedNarratorAnnouncement(
|
||||
CalculatorResourceKeys::MemoryItemChanged,
|
||||
m_localizedMemoryItemChangedAutomationFormat,
|
||||
localizedIndex.c_str(),
|
||||
localizedValue->Data());
|
||||
String ^ announcement = LocalizationStringUtil::GetLocalizedNarratorAnnouncement(
|
||||
CalculatorResourceKeys::MemoryItemChanged, m_localizedMemoryItemChangedAutomationFormat, localizedIndex.c_str(), localizedValue->Data());
|
||||
|
||||
Announcement = CalculatorAnnouncement::GetMemoryItemChangedAnnouncement(announcement);
|
||||
}
|
||||
}
|
||||
|
||||
void StandardCalculatorViewModel::OnMemoryItemPressed(Object^ memoryItemPosition)
|
||||
void StandardCalculatorViewModel::OnMemoryItemPressed(Object ^ memoryItemPosition)
|
||||
{
|
||||
if (MemorizedNumbers && MemorizedNumbers->Size > 0)
|
||||
{
|
||||
auto boxedPosition = safe_cast<Box<int>^>(memoryItemPosition);
|
||||
auto boxedPosition = safe_cast<Box<int> ^>(memoryItemPosition);
|
||||
m_standardCalculatorManager.MemorizedNumberLoad(boxedPosition->Value);
|
||||
HideMemoryClicked();
|
||||
int windowId = Utils::GetWindowId();
|
||||
|
@ -1086,14 +1070,14 @@ void StandardCalculatorViewModel::OnMemoryItemPressed(Object^ memoryItemPosition
|
|||
}
|
||||
}
|
||||
|
||||
void StandardCalculatorViewModel::OnMemoryAdd(Object^ memoryItemPosition)
|
||||
void StandardCalculatorViewModel::OnMemoryAdd(Object ^ memoryItemPosition)
|
||||
{
|
||||
// M+ will add display to memorylist if memory list is empty.
|
||||
int windowId = Utils::GetWindowId();
|
||||
|
||||
if (MemorizedNumbers)
|
||||
{
|
||||
auto boxedPosition = safe_cast<Box<int>^>(memoryItemPosition);
|
||||
auto boxedPosition = safe_cast<Box<int> ^>(memoryItemPosition);
|
||||
if (MemorizedNumbers->Size > 0)
|
||||
{
|
||||
TraceLogger::GetInstance().LogMemoryUsed(windowId, boxedPosition->Value, IsStandard, IsScientific, IsProgrammer, MemorizedNumbers->Size);
|
||||
|
@ -1107,14 +1091,14 @@ void StandardCalculatorViewModel::OnMemoryAdd(Object^ memoryItemPosition)
|
|||
}
|
||||
}
|
||||
|
||||
void StandardCalculatorViewModel::OnMemorySubtract(Object^ memoryItemPosition)
|
||||
void StandardCalculatorViewModel::OnMemorySubtract(Object ^ memoryItemPosition)
|
||||
{
|
||||
int windowId = Utils::GetWindowId();
|
||||
|
||||
// M- will add negative of displayed number to memorylist if memory list is empty.
|
||||
if (MemorizedNumbers)
|
||||
{
|
||||
auto boxedPosition = safe_cast<Box<int>^>(memoryItemPosition);
|
||||
auto boxedPosition = safe_cast<Box<int> ^>(memoryItemPosition);
|
||||
if (MemorizedNumbers->Size > 0)
|
||||
{
|
||||
TraceLogger::GetInstance().LogMemoryUsed(windowId, boxedPosition->Value, IsStandard, IsScientific, IsProgrammer, MemorizedNumbers->Size);
|
||||
|
@ -1128,12 +1112,12 @@ void StandardCalculatorViewModel::OnMemorySubtract(Object^ memoryItemPosition)
|
|||
}
|
||||
}
|
||||
|
||||
void StandardCalculatorViewModel::OnMemoryClear(_In_ Object^ memoryItemPosition)
|
||||
void StandardCalculatorViewModel::OnMemoryClear(_In_ Object ^ memoryItemPosition)
|
||||
{
|
||||
if (MemorizedNumbers && MemorizedNumbers->Size > 0)
|
||||
{
|
||||
int windowId = Utils::GetWindowId();
|
||||
auto boxedPosition = safe_cast<Box<int>^>(memoryItemPosition);
|
||||
auto boxedPosition = safe_cast<Box<int> ^>(memoryItemPosition);
|
||||
|
||||
if (boxedPosition->Value >= 0)
|
||||
{
|
||||
|
@ -1157,19 +1141,17 @@ void StandardCalculatorViewModel::OnMemoryClear(_In_ Object^ memoryItemPosition)
|
|||
wstring localizedIndex = to_wstring(boxedPosition->Value + 1);
|
||||
LocalizationSettings::GetInstance().LocalizeDisplayValue(&localizedIndex);
|
||||
|
||||
String^ announcement = LocalizationStringUtil::GetLocalizedNarratorAnnouncement(
|
||||
CalculatorResourceKeys::MemoryItemCleared,
|
||||
m_localizedMemoryItemClearedAutomationFormat,
|
||||
localizedIndex.c_str());
|
||||
String ^ announcement = LocalizationStringUtil::GetLocalizedNarratorAnnouncement(
|
||||
CalculatorResourceKeys::MemoryItemCleared, m_localizedMemoryItemClearedAutomationFormat, localizedIndex.c_str());
|
||||
|
||||
Announcement = CalculatorAnnouncement::GetMemoryClearedAnnouncement(announcement);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Array<unsigned char>^ StandardCalculatorViewModel::Serialize()
|
||||
Array<unsigned char> ^ StandardCalculatorViewModel::Serialize()
|
||||
{
|
||||
DataWriter^ writer = ref new DataWriter();
|
||||
DataWriter ^ writer = ref new DataWriter();
|
||||
writer->WriteUInt32(static_cast<UINT32>(m_CurrentAngleType));
|
||||
writer->WriteBoolean(IsFToEChecked);
|
||||
writer->WriteBoolean(IsCurrentViewPinned);
|
||||
|
@ -1207,26 +1189,26 @@ Array<unsigned char>^ StandardCalculatorViewModel::Serialize()
|
|||
}
|
||||
|
||||
// Convert viewmodel data in writer to bytes
|
||||
IBuffer^ buffer = writer->DetachBuffer();
|
||||
DataReader^ reader = DataReader::FromBuffer(buffer);
|
||||
Platform::Array<unsigned char>^ viewModelDataAsBytes = ref new Array<unsigned char>(buffer->Length);
|
||||
IBuffer ^ buffer = writer->DetachBuffer();
|
||||
DataReader ^ reader = DataReader::FromBuffer(buffer);
|
||||
Platform::Array<unsigned char> ^ viewModelDataAsBytes = ref new Array<unsigned char>(buffer->Length);
|
||||
reader->ReadBytes(viewModelDataAsBytes);
|
||||
|
||||
// Return byte array
|
||||
return viewModelDataAsBytes;
|
||||
}
|
||||
|
||||
void StandardCalculatorViewModel::Deserialize(Array<unsigned char>^ state)
|
||||
void StandardCalculatorViewModel::Deserialize(Array<unsigned char> ^ state)
|
||||
{
|
||||
// Read byte array into a buffer
|
||||
DataWriter^ writer = ref new DataWriter();
|
||||
DataWriter ^ writer = ref new DataWriter();
|
||||
writer->WriteBytes(state);
|
||||
IBuffer^ buffer = writer->DetachBuffer();
|
||||
IBuffer ^ buffer = writer->DetachBuffer();
|
||||
|
||||
// Read view model data
|
||||
if (buffer->Length != 0)
|
||||
{
|
||||
DataReader^ reader = DataReader::FromBuffer(buffer);
|
||||
DataReader ^ reader = DataReader::FromBuffer(buffer);
|
||||
m_CurrentAngleType = ConvertIntegerToNumbersAndOperatorsEnum(reader->ReadUInt32());
|
||||
|
||||
IsFToEChecked = reader->ReadBoolean();
|
||||
|
@ -1256,7 +1238,7 @@ void StandardCalculatorViewModel::Deserialize(Array<unsigned char>^ state)
|
|||
CurrentRadixType = reader->ReadUInt32();
|
||||
// Read command data and Deserialize
|
||||
UINT32 modeldatalength = reader->ReadUInt32();
|
||||
Array<unsigned char>^ modelDataAsBytes = ref new Array<unsigned char>(modeldatalength);
|
||||
Array<unsigned char> ^ modelDataAsBytes = ref new Array<unsigned char>(modeldatalength);
|
||||
reader->ReadBytes(modelDataAsBytes);
|
||||
m_standardCalculatorManager.DeSerializeCommands(vector<unsigned char>(modelDataAsBytes->begin(), modelDataAsBytes->end()));
|
||||
|
||||
|
@ -1265,13 +1247,13 @@ void StandardCalculatorViewModel::Deserialize(Array<unsigned char>^ state)
|
|||
if (IsInError)
|
||||
{
|
||||
shared_ptr<CalculatorVector<shared_ptr<IExpressionCommand>>> commandVector = Utils::DeserializeCommands(reader);
|
||||
shared_ptr<CalculatorVector <pair<wstring, int>>> tokenVector = Utils::DeserializeTokens(reader);
|
||||
shared_ptr<CalculatorVector<pair<wstring, int>>> tokenVector = Utils::DeserializeTokens(reader);
|
||||
SetExpressionDisplay(tokenVector, commandVector);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void StandardCalculatorViewModel::OnPropertyChanged(String^ propertyname)
|
||||
void StandardCalculatorViewModel::OnPropertyChanged(String ^ propertyname)
|
||||
{
|
||||
if (propertyname == IsScientificPropertyName)
|
||||
{
|
||||
|
@ -1331,7 +1313,7 @@ void StandardCalculatorViewModel::SetCalculatorType(ViewMode targetState)
|
|||
}
|
||||
}
|
||||
|
||||
Platform::String^ StandardCalculatorViewModel::GetRawDisplayValue()
|
||||
Platform::String ^ StandardCalculatorViewModel::GetRawDisplayValue()
|
||||
{
|
||||
wstring rawValue;
|
||||
|
||||
|
@ -1343,13 +1325,12 @@ Platform::String^ StandardCalculatorViewModel::GetRawDisplayValue()
|
|||
// Given a format string, returns a string with the input display value inserted.
|
||||
// 'format' is a localized string containing a %1 formatting mark where the display value should be inserted.
|
||||
// 'displayValue' is a localized string containing a numerical value to be displayed to the user.
|
||||
String^ StandardCalculatorViewModel::GetLocalizedStringFormat(String^ format, String^ displayValue)
|
||||
String ^ StandardCalculatorViewModel::GetLocalizedStringFormat(String ^ format, String ^ displayValue)
|
||||
{
|
||||
String^ localizedString = ref new String(LocalizationStringUtil::GetLocalizedString(format->Data(), displayValue->Data()).c_str());
|
||||
String ^ localizedString = ref new String(LocalizationStringUtil::GetLocalizedString(format->Data(), displayValue->Data()).c_str());
|
||||
return localizedString;
|
||||
}
|
||||
|
||||
|
||||
void StandardCalculatorViewModel::ResetDisplay()
|
||||
{
|
||||
AreHEXButtonsEnabled = false;
|
||||
|
@ -1427,29 +1408,29 @@ void StandardCalculatorViewModel::SaveEditedCommand(_In_ unsigned int tokenPosit
|
|||
|
||||
switch (nOpCode)
|
||||
{
|
||||
case static_cast<int>(Command::CommandASIN) :
|
||||
updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast<int>(Command::CommandSIN), true, angleType);
|
||||
break;
|
||||
case static_cast<int>(Command::CommandACOS) :
|
||||
updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast<int>(Command::CommandCOS), true, angleType);
|
||||
break;
|
||||
case static_cast<int>(Command::CommandATAN) :
|
||||
updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast<int>(Command::CommandTAN), true, angleType);
|
||||
break;
|
||||
case static_cast<int>(Command::CommandASINH) :
|
||||
updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast<int>(Command::CommandSINH), true, angleType);
|
||||
break;
|
||||
case static_cast<int>(Command::CommandACOSH) :
|
||||
updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast<int>(Command::CommandCOSH), true, angleType);
|
||||
break;
|
||||
case static_cast<int>(Command::CommandATANH) :
|
||||
updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast<int>(Command::CommandTANH), true, angleType);
|
||||
break;
|
||||
case static_cast<int>(Command::CommandPOWE) :
|
||||
updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast<int>(Command::CommandLN), true, angleType);
|
||||
break;
|
||||
default:
|
||||
updatedToken = CCalcEngine::OpCodeToUnaryString(nOpCode, false, angleType);
|
||||
case static_cast<int>(Command::CommandASIN):
|
||||
updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast<int>(Command::CommandSIN), true, angleType);
|
||||
break;
|
||||
case static_cast<int>(Command::CommandACOS):
|
||||
updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast<int>(Command::CommandCOS), true, angleType);
|
||||
break;
|
||||
case static_cast<int>(Command::CommandATAN):
|
||||
updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast<int>(Command::CommandTAN), true, angleType);
|
||||
break;
|
||||
case static_cast<int>(Command::CommandASINH):
|
||||
updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast<int>(Command::CommandSINH), true, angleType);
|
||||
break;
|
||||
case static_cast<int>(Command::CommandACOSH):
|
||||
updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast<int>(Command::CommandCOSH), true, angleType);
|
||||
break;
|
||||
case static_cast<int>(Command::CommandATANH):
|
||||
updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast<int>(Command::CommandTANH), true, angleType);
|
||||
break;
|
||||
case static_cast<int>(Command::CommandPOWE):
|
||||
updatedToken = CCalcEngine::OpCodeToUnaryString(static_cast<int>(Command::CommandLN), true, angleType);
|
||||
break;
|
||||
default:
|
||||
updatedToken = CCalcEngine::OpCodeToUnaryString(nOpCode, false, angleType);
|
||||
}
|
||||
if ((token.first.length() > 0) && (token.first[token.first.length() - 1] == L'('))
|
||||
{
|
||||
|
@ -1488,12 +1469,12 @@ void StandardCalculatorViewModel::SaveEditedCommand(_In_ unsigned int tokenPosit
|
|||
{
|
||||
IFTPlatformException(m_commands->SetAt(tokenCommandIndex, tokenCommand));
|
||||
|
||||
pair < wstring, int> selectedToken;
|
||||
pair<wstring, int> selectedToken;
|
||||
IFTPlatformException(m_tokens->GetAt(tokenPosition, &selectedToken));
|
||||
selectedToken.first = updatedToken;
|
||||
IFTPlatformException(m_tokens->SetAt(tokenPosition, selectedToken));
|
||||
|
||||
DisplayExpressionToken^ displayExpressionToken = ExpressionTokens->GetAt(tokenPosition);
|
||||
DisplayExpressionToken ^ displayExpressionToken = ExpressionTokens->GetAt(tokenPosition);
|
||||
displayExpressionToken->Token = ref new Platform::String(updatedToken.c_str());
|
||||
|
||||
// Special casing
|
||||
|
@ -1509,7 +1490,7 @@ void StandardCalculatorViewModel::Recalculate(bool fromHistory)
|
|||
{
|
||||
// Recalculate
|
||||
Command currentDegreeMode = m_standardCalculatorManager.GetCurrentDegreeMode();
|
||||
shared_ptr <CalculatorVector<shared_ptr<IExpressionCommand>>> savedCommands = make_shared <CalculatorVector<shared_ptr<IExpressionCommand>>>();
|
||||
shared_ptr<CalculatorVector<shared_ptr<IExpressionCommand>>> savedCommands = make_shared<CalculatorVector<shared_ptr<IExpressionCommand>>>();
|
||||
|
||||
vector<int> currentCommands;
|
||||
unsigned int commandListCount;
|
||||
|
@ -1601,7 +1582,7 @@ void StandardCalculatorViewModel::Recalculate(bool fromHistory)
|
|||
m_standardCalculatorManager.SendCommand(static_cast<CalculationManager::Command>(currentCommands[i]));
|
||||
}
|
||||
|
||||
if (fromHistory) // This is for the cases where the expression is loaded from history
|
||||
if (fromHistory) // This is for the cases where the expression is loaded from history
|
||||
{
|
||||
// To maintain F-E state of the engine, as the last operand hasn't reached engine by now
|
||||
m_standardCalculatorManager.SendCommand(Command::CommandFE);
|
||||
|
@ -1618,7 +1599,7 @@ void StandardCalculatorViewModel::Recalculate(bool fromHistory)
|
|||
|
||||
CommandType StandardCalculatorViewModel::GetSelectedTokenType(_In_ unsigned int tokenPosition)
|
||||
{
|
||||
pair<wstring, int>token;
|
||||
pair<wstring, int> token;
|
||||
shared_ptr<IExpressionCommand> tokenCommand;
|
||||
IFTPlatformException(m_tokens->GetAt(tokenPosition, &token));
|
||||
|
||||
|
@ -1630,20 +1611,8 @@ CommandType StandardCalculatorViewModel::GetSelectedTokenType(_In_ unsigned int
|
|||
|
||||
bool StandardCalculatorViewModel::IsOpnd(int nOpCode)
|
||||
{
|
||||
|
||||
static Command opnd[] = {
|
||||
Command::Command0,
|
||||
Command::Command1,
|
||||
Command::Command2,
|
||||
Command::Command3,
|
||||
Command::Command4,
|
||||
Command::Command5,
|
||||
Command::Command6,
|
||||
Command::Command7,
|
||||
Command::Command8,
|
||||
Command::Command9,
|
||||
Command::CommandPNT
|
||||
};
|
||||
static Command opnd[] = { Command::Command0, Command::Command1, Command::Command2, Command::Command3, Command::Command4, Command::Command5,
|
||||
Command::Command6, Command::Command7, Command::Command8, Command::Command9, Command::CommandPNT };
|
||||
|
||||
for (unsigned int i = 0; i < size(opnd); i++)
|
||||
{
|
||||
|
@ -1657,24 +1626,10 @@ bool StandardCalculatorViewModel::IsOpnd(int nOpCode)
|
|||
|
||||
bool StandardCalculatorViewModel::IsUnaryOp(int nOpCode)
|
||||
{
|
||||
static Command unaryOp[] = {
|
||||
Command::CommandSQRT,
|
||||
Command::CommandFAC,
|
||||
Command::CommandSQR,
|
||||
Command::CommandLOG,
|
||||
Command::CommandPOW10,
|
||||
Command::CommandPOWE,
|
||||
Command::CommandLN,
|
||||
Command::CommandREC,
|
||||
Command::CommandSIGN,
|
||||
Command::CommandSINH,
|
||||
Command::CommandASINH,
|
||||
Command::CommandCOSH,
|
||||
Command::CommandACOSH,
|
||||
Command::CommandTANH,
|
||||
Command::CommandATANH,
|
||||
Command::CommandCUB
|
||||
};
|
||||
static Command unaryOp[] = { Command::CommandSQRT, Command::CommandFAC, Command::CommandSQR, Command::CommandLOG,
|
||||
Command::CommandPOW10, Command::CommandPOWE, Command::CommandLN, Command::CommandREC,
|
||||
Command::CommandSIGN, Command::CommandSINH, Command::CommandASINH, Command::CommandCOSH,
|
||||
Command::CommandACOSH, Command::CommandTANH, Command::CommandATANH, Command::CommandCUB };
|
||||
|
||||
for (unsigned int i = 0; i < size(unaryOp); i++)
|
||||
{
|
||||
|
@ -1695,12 +1650,7 @@ bool StandardCalculatorViewModel::IsUnaryOp(int nOpCode)
|
|||
bool StandardCalculatorViewModel::IsTrigOp(int nOpCode)
|
||||
{
|
||||
static Command trigOp[] = {
|
||||
Command::CommandSIN,
|
||||
Command::CommandCOS,
|
||||
Command::CommandTAN,
|
||||
Command::CommandASIN,
|
||||
Command::CommandACOS,
|
||||
Command::CommandATAN
|
||||
Command::CommandSIN, Command::CommandCOS, Command::CommandTAN, Command::CommandASIN, Command::CommandACOS, Command::CommandATAN
|
||||
};
|
||||
|
||||
for (unsigned int i = 0; i < size(trigOp); i++)
|
||||
|
@ -1715,16 +1665,8 @@ bool StandardCalculatorViewModel::IsTrigOp(int nOpCode)
|
|||
|
||||
bool StandardCalculatorViewModel::IsBinOp(int nOpCode)
|
||||
{
|
||||
static Command binOp[] = {
|
||||
Command::CommandADD,
|
||||
Command::CommandSUB,
|
||||
Command::CommandMUL,
|
||||
Command::CommandDIV,
|
||||
Command::CommandEXP,
|
||||
Command::CommandROOT,
|
||||
Command::CommandMOD,
|
||||
Command::CommandPWR
|
||||
};
|
||||
static Command binOp[] = { Command::CommandADD, Command::CommandSUB, Command::CommandMUL, Command::CommandDIV,
|
||||
Command::CommandEXP, Command::CommandROOT, Command::CommandMOD, Command::CommandPWR };
|
||||
|
||||
for (unsigned int i = 0; i < size(binOp); i++)
|
||||
{
|
||||
|
@ -1751,14 +1693,7 @@ bool StandardCalculatorViewModel::IsRecoverableCommand(int nOpCode)
|
|||
return true;
|
||||
}
|
||||
|
||||
static Command recoverableCommands[] = {
|
||||
Command::CommandA,
|
||||
Command::CommandB,
|
||||
Command::CommandC,
|
||||
Command::CommandD,
|
||||
Command::CommandE,
|
||||
Command::CommandF
|
||||
};
|
||||
static Command recoverableCommands[] = { Command::CommandA, Command::CommandB, Command::CommandC, Command::CommandD, Command::CommandE, Command::CommandF };
|
||||
|
||||
for (unsigned int i = 0; i < size(recoverableCommands); i++)
|
||||
{
|
||||
|
@ -1870,12 +1805,12 @@ NumbersAndOperatorsEnum StandardCalculatorViewModel::ConvertIntegerToNumbersAndO
|
|||
return angletype;
|
||||
}
|
||||
|
||||
void StandardCalculatorViewModel::UpdateOperand(int pos, String^ text)
|
||||
void StandardCalculatorViewModel::UpdateOperand(int pos, String ^ text)
|
||||
{
|
||||
pair<wstring, int> p;
|
||||
m_tokens->GetAt(pos, &p);
|
||||
|
||||
String^ englishString = LocalizationSettings::GetInstance().GetEnglishValueFromLocalizedDigits(text->Data());
|
||||
String ^ englishString = LocalizationSettings::GetInstance().GetEnglishValueFromLocalizedDigits(text->Data());
|
||||
p.first = englishString->Data();
|
||||
|
||||
int commandPos = p.second;
|
||||
|
@ -1934,7 +1869,7 @@ void StandardCalculatorViewModel::UpdateOperand(int pos, String^ text)
|
|||
}
|
||||
}
|
||||
|
||||
void StandardCalculatorViewModel::UpdatecommandsInRecordingMode()
|
||||
void StandardCalculatorViewModel::UpdatecommandsInRecordingMode()
|
||||
{
|
||||
vector<unsigned char> savedCommands = m_standardCalculatorManager.GetSavedCommands();
|
||||
shared_ptr<CalculatorVector<int>> commands = make_shared<CalculatorVector<int>>();
|
||||
|
@ -2002,10 +1937,8 @@ void StandardCalculatorViewModel::UpdatecommandsInRecordingMode()
|
|||
|
||||
void StandardCalculatorViewModel::OnMaxDigitsReached()
|
||||
{
|
||||
String^ announcement = LocalizationStringUtil::GetLocalizedNarratorAnnouncement(
|
||||
CalculatorResourceKeys::MaxDigitsReachedFormat,
|
||||
m_localizedMaxDigitsReachedAutomationFormat,
|
||||
m_CalculationResultAutomationName->Data());
|
||||
String ^ announcement = LocalizationStringUtil::GetLocalizedNarratorAnnouncement(
|
||||
CalculatorResourceKeys::MaxDigitsReachedFormat, m_localizedMaxDigitsReachedAutomationFormat, m_CalculationResultAutomationName->Data());
|
||||
|
||||
Announcement = CalculatorAnnouncement::GetMaxDigitsReachedAnnouncement(announcement);
|
||||
}
|
||||
|
@ -2015,20 +1948,18 @@ void StandardCalculatorViewModel::OnBinaryOperatorReceived()
|
|||
Announcement = GetDisplayUpdatedNarratorAnnouncement();
|
||||
}
|
||||
|
||||
NarratorAnnouncement^ StandardCalculatorViewModel::GetDisplayUpdatedNarratorAnnouncement()
|
||||
NarratorAnnouncement ^ StandardCalculatorViewModel::GetDisplayUpdatedNarratorAnnouncement()
|
||||
{
|
||||
String^ announcement;
|
||||
String ^ announcement;
|
||||
if (m_feedbackForButtonPress == nullptr || m_feedbackForButtonPress->IsEmpty())
|
||||
{
|
||||
announcement = m_CalculationResultAutomationName;
|
||||
}
|
||||
else
|
||||
{
|
||||
announcement = LocalizationStringUtil::GetLocalizedNarratorAnnouncement(
|
||||
CalculatorResourceKeys::ButtonPressFeedbackFormat,
|
||||
m_localizedButtonPressFeedbackAutomationFormat,
|
||||
m_CalculationResultAutomationName->Data(),
|
||||
m_feedbackForButtonPress->Data());
|
||||
announcement = LocalizationStringUtil::GetLocalizedNarratorAnnouncement(CalculatorResourceKeys::ButtonPressFeedbackFormat,
|
||||
m_localizedButtonPressFeedbackAutomationFormat,
|
||||
m_CalculationResultAutomationName->Data(), m_feedbackForButtonPress->Data());
|
||||
}
|
||||
|
||||
// Make sure we don't accidentally repeat an announcement.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue