Fully separate Calculator and CalcManager (#752)

This commit is contained in:
Rudy Huyn 2019-11-06 15:31:57 -08:00 committed by Eric Wong
parent be68e72a9a
commit 5df3016df6
5 changed files with 21 additions and 17 deletions

View File

@ -188,7 +188,7 @@ public:
private: \ private: \
static Windows::UI::Xaml::DependencyProperty ^ s_##n##Property; \ static Windows::UI::Xaml::DependencyProperty ^ s_##n##Property; \
\ \
public: private:
// Utilities for DependencyProperties // Utilities for DependencyProperties
namespace Utils namespace Utils

View File

@ -1860,3 +1860,11 @@ void StandardCalculatorViewModel::ValueBitLength::set(CalculatorApp::Common::Bit
SetMemorizedNumbersString(); SetMemorizedNumbersString();
} }
} }
void StandardCalculatorViewModel::SelectHistoryItem(HistoryItemViewModel ^ item)
{
SetHistoryExpressionDisplay(item->GetTokens(), item->GetCommands());
SetExpressionDisplay(item->GetTokens(), item->GetCommands());
SetPrimaryDisplay(item->Result, false);
IsFToEEnabled = false;
}

View File

@ -65,7 +65,7 @@ namespace CalculatorApp
OBSERVABLE_PROPERTY_RW(Windows::Foundation::Collections::IVector<MemoryItemViewModel ^> ^, MemorizedNumbers); OBSERVABLE_PROPERTY_RW(Windows::Foundation::Collections::IVector<MemoryItemViewModel ^> ^, MemorizedNumbers);
OBSERVABLE_NAMED_PROPERTY_RW(bool, IsMemoryEmpty); OBSERVABLE_NAMED_PROPERTY_RW(bool, IsMemoryEmpty);
OBSERVABLE_PROPERTY_RW(bool, IsFToEChecked); OBSERVABLE_PROPERTY_RW(bool, IsFToEChecked);
OBSERVABLE_PROPERTY_RW(bool, IsFToEEnabled); OBSERVABLE_PROPERTY_R(bool, IsFToEEnabled);
OBSERVABLE_PROPERTY_RW(bool, AreHEXButtonsEnabled); OBSERVABLE_PROPERTY_RW(bool, AreHEXButtonsEnabled);
OBSERVABLE_PROPERTY_RW(Platform::String ^, CalculationResultAutomationName); OBSERVABLE_PROPERTY_RW(Platform::String ^, CalculationResultAutomationName);
OBSERVABLE_PROPERTY_RW(Platform::String ^, CalculationExpressionAutomationName); OBSERVABLE_PROPERTY_RW(Platform::String ^, CalculationExpressionAutomationName);
@ -340,15 +340,7 @@ namespace CalculatorApp
void OnPinUnpinCommand(Platform::Object ^ parameter); void OnPinUnpinCommand(Platform::Object ^ parameter);
void OnInputChanged(); void OnInputChanged();
void SetPrimaryDisplay(Platform::String ^ displayString, _In_ bool isError);
void DisplayPasteError(); void DisplayPasteError();
void SetTokens(_Inout_ std::shared_ptr<std::vector<std::pair<std::wstring, int>>> const& tokens);
void SetExpressionDisplay(
_Inout_ std::shared_ptr<std::vector<std::pair<std::wstring, int>>> const& tokens,
_Inout_ std::shared_ptr<std::vector<std::shared_ptr<IExpressionCommand>>> const& commands);
void SetHistoryExpressionDisplay(
_Inout_ std::shared_ptr<std::vector<std::pair<std::wstring, int>>> const& tokens,
_Inout_ std::shared_ptr<std::vector<std::shared_ptr<IExpressionCommand>>> const& commands);
void SetParenthesisCount(_In_ unsigned int parenthesisCount); void SetParenthesisCount(_In_ unsigned int parenthesisCount);
void SetOpenParenthesisCountNarratorAnnouncement(); void SetOpenParenthesisCountNarratorAnnouncement();
void OnNoRightParenAdded(); void OnNoRightParenAdded();
@ -382,11 +374,19 @@ namespace CalculatorApp
{ {
return m_CurrentAngleType; return m_CurrentAngleType;
} }
void SelectHistoryItem(HistoryItemViewModel ^ item);
private: private:
void SetMemorizedNumbers(const std::vector<std::wstring>& memorizedNumbers); void SetMemorizedNumbers(const std::vector<std::wstring>& memorizedNumbers);
void UpdateProgrammerPanelDisplay(); void UpdateProgrammerPanelDisplay();
void HandleUpdatedOperandData(CalculationManager::Command cmdenum); void HandleUpdatedOperandData(CalculationManager::Command cmdenum);
void SetPrimaryDisplay(_In_ Platform::String ^ displayStringValue, _In_ bool isError);
void SetExpressionDisplay(
_Inout_ std::shared_ptr<std::vector<std::pair<std::wstring, int>>> const& tokens,
_Inout_ std::shared_ptr<std::vector<std::shared_ptr<IExpressionCommand>>> const& commands);
void SetHistoryExpressionDisplay(
_Inout_ std::shared_ptr<std::vector<std::pair<std::wstring, int>>> const& tokens,
_Inout_ std::shared_ptr<std::vector<std::shared_ptr<IExpressionCommand>>> const& commands);
void SetTokens(_Inout_ std::shared_ptr<std::vector<std::pair<std::wstring, int>>> const& tokens);
NumbersAndOperatorsEnum ConvertIntegerToNumbersAndOperatorsEnum(unsigned int parameter); NumbersAndOperatorsEnum ConvertIntegerToNumbersAndOperatorsEnum(unsigned int parameter);
NumbersAndOperatorsEnum m_CurrentAngleType; NumbersAndOperatorsEnum m_CurrentAngleType;
wchar_t m_decimalSeparator; wchar_t m_decimalSeparator;

View File

@ -470,11 +470,7 @@ void Calculator::OnHideHistoryClicked()
void Calculator::OnHistoryItemClicked(_In_ HistoryItemViewModel ^ e) void Calculator::OnHistoryItemClicked(_In_ HistoryItemViewModel ^ e)
{ {
assert(e->GetTokens() != nullptr); Model->SelectHistoryItem(e);
Model->SetHistoryExpressionDisplay(e->GetTokens(), e->GetCommands());
Model->SetExpressionDisplay(e->GetTokens(), e->GetCommands());
Model->SetPrimaryDisplay(e->Result, false);
Model->IsFToEEnabled = false;
CloseHistoryFlyout(); CloseHistoryFlyout();
this->Focus(::FocusState::Programmatic); this->Focus(::FocusState::Programmatic);
@ -717,3 +713,4 @@ void Calculator::Calculator_SizeChanged(Object ^ /*sender*/, SizeChangedEventArg
AlwaysOnTopResults->UpdateScrollButtons(); AlwaysOnTopResults->UpdateScrollButtons();
} }
} }

View File

@ -69,7 +69,6 @@ public
void CloseMemoryFlyout(); void CloseMemoryFlyout();
void SetDefaultFocus(); void SetDefaultFocus();
private: private:
void OnLoaded(Platform::Object ^ sender, Windows::UI::Xaml::RoutedEventArgs ^ e); void OnLoaded(Platform::Object ^ sender, Windows::UI::Xaml::RoutedEventArgs ^ e);