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: \
static Windows::UI::Xaml::DependencyProperty ^ s_##n##Property; \
\
public:
private:
// Utilities for DependencyProperties
namespace Utils

View File

@ -1860,3 +1860,11 @@ void StandardCalculatorViewModel::ValueBitLength::set(CalculatorApp::Common::Bit
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_NAMED_PROPERTY_RW(bool, IsMemoryEmpty);
OBSERVABLE_PROPERTY_RW(bool, IsFToEChecked);
OBSERVABLE_PROPERTY_RW(bool, IsFToEEnabled);
OBSERVABLE_PROPERTY_R(bool, IsFToEEnabled);
OBSERVABLE_PROPERTY_RW(bool, AreHEXButtonsEnabled);
OBSERVABLE_PROPERTY_RW(Platform::String ^, CalculationResultAutomationName);
OBSERVABLE_PROPERTY_RW(Platform::String ^, CalculationExpressionAutomationName);
@ -340,15 +340,7 @@ namespace CalculatorApp
void OnPinUnpinCommand(Platform::Object ^ parameter);
void OnInputChanged();
void SetPrimaryDisplay(Platform::String ^ displayString, _In_ bool isError);
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 SetOpenParenthesisCountNarratorAnnouncement();
void OnNoRightParenAdded();
@ -382,11 +374,19 @@ namespace CalculatorApp
{
return m_CurrentAngleType;
}
void SelectHistoryItem(HistoryItemViewModel ^ item);
private:
void SetMemorizedNumbers(const std::vector<std::wstring>& memorizedNumbers);
void UpdateProgrammerPanelDisplay();
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 m_CurrentAngleType;
wchar_t m_decimalSeparator;

View File

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

View File

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