mirror of
https://github.com/Microsoft/calculator.git
synced 2025-07-13 00:32:52 -07:00
Use only NumberBase to represent radix in CalcViewModel (#797)
This commit is contained in:
parent
b9b0e068cd
commit
1380c7ed83
8 changed files with 46 additions and 54 deletions
|
@ -79,7 +79,7 @@ StandardCalculatorViewModel::StandardCalculatorViewModel()
|
|||
, m_valueBitLength(BitLength::BitLengthQWord)
|
||||
, m_isBitFlipChecked(false)
|
||||
, m_isBinaryBitFlippingEnabled(false)
|
||||
, m_CurrentRadixType(RADIX_TYPE::DEC_RADIX)
|
||||
, m_CurrentRadixType(NumberBase::DecBase)
|
||||
, m_CurrentAngleType(NumbersAndOperatorsEnum::Degree)
|
||||
, m_Announcement(nullptr)
|
||||
, m_OpenParenthesisCount(0)
|
||||
|
@ -168,7 +168,7 @@ String ^ StandardCalculatorViewModel::CalculateNarratorDisplayValue(_In_ wstring
|
|||
}
|
||||
|
||||
// In Programmer modes using non-base10, we want the strings to be read as literal digits.
|
||||
if (IsProgrammer && CurrentRadixType != RADIX_TYPE::DEC_RADIX)
|
||||
if (IsProgrammer && CurrentRadixType != NumberBase::DecBase)
|
||||
{
|
||||
localizedValue = GetNarratorStringReadRawNumbers(localizedValue);
|
||||
}
|
||||
|
@ -681,23 +681,18 @@ void StandardCalculatorViewModel::OnButtonPressed(Object ^ parameter)
|
|||
}
|
||||
}
|
||||
|
||||
NumberBase StandardCalculatorViewModel::GetNumberBase()
|
||||
RADIX_TYPE StandardCalculatorViewModel::GetRadixTypeFromNumberBase(NumberBase base)
|
||||
{
|
||||
if (CurrentRadixType == HEX_RADIX)
|
||||
switch (base)
|
||||
{
|
||||
return NumberBase::HexBase;
|
||||
}
|
||||
else if (CurrentRadixType == DEC_RADIX)
|
||||
{
|
||||
return NumberBase::DecBase;
|
||||
}
|
||||
else if (CurrentRadixType == OCT_RADIX)
|
||||
{
|
||||
return NumberBase::OctBase;
|
||||
}
|
||||
else
|
||||
{
|
||||
return NumberBase::BinBase;
|
||||
case NumberBase::BinBase:
|
||||
return RADIX_TYPE::BIN_RADIX;
|
||||
case NumberBase::HexBase:
|
||||
return RADIX_TYPE::HEX_RADIX;
|
||||
case NumberBase::OctBase:
|
||||
return RADIX_TYPE::OCT_RADIX;
|
||||
default:
|
||||
return RADIX_TYPE::DEC_RADIX;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -713,8 +708,8 @@ void StandardCalculatorViewModel::OnPasteCommand(Object ^ parameter)
|
|||
{
|
||||
auto that(this);
|
||||
ViewMode mode;
|
||||
NumberBase numberBase = NumberBase::Unknown;
|
||||
BitLength bitLengthType = BitLength::BitLengthUnknown;
|
||||
NumberBase numberBase = NumberBase::Unknown;
|
||||
if (IsScientific)
|
||||
{
|
||||
mode = ViewMode::Scientific;
|
||||
|
@ -722,8 +717,8 @@ void StandardCalculatorViewModel::OnPasteCommand(Object ^ parameter)
|
|||
else if (IsProgrammer)
|
||||
{
|
||||
mode = ViewMode::Programmer;
|
||||
numberBase = GetNumberBase();
|
||||
bitLengthType = m_valueBitLength;
|
||||
numberBase = CurrentRadixType;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1248,7 +1243,7 @@ String ^ StandardCalculatorViewModel::GetLocalizedStringFormat(String ^ format,
|
|||
void StandardCalculatorViewModel::ResetDisplay()
|
||||
{
|
||||
AreHEXButtonsEnabled = false;
|
||||
CurrentRadixType = (int)RADIX_TYPE::DEC_RADIX;
|
||||
CurrentRadixType = NumberBase::DecBase;
|
||||
m_standardCalculatorManager.SetRadix(DEC_RADIX);
|
||||
}
|
||||
|
||||
|
@ -1257,16 +1252,16 @@ void StandardCalculatorViewModel::SetPrecision(int32_t precision)
|
|||
m_standardCalculatorManager.SetPrecision(precision);
|
||||
}
|
||||
|
||||
void StandardCalculatorViewModel::SwitchProgrammerModeBase(RADIX_TYPE radixType)
|
||||
void StandardCalculatorViewModel::SwitchProgrammerModeBase(NumberBase numberBase)
|
||||
{
|
||||
if (IsInError)
|
||||
{
|
||||
m_standardCalculatorManager.SendCommand(Command::CommandCLEAR);
|
||||
}
|
||||
|
||||
AreHEXButtonsEnabled = (radixType == RADIX_TYPE::HEX_RADIX);
|
||||
CurrentRadixType = (int)radixType;
|
||||
m_standardCalculatorManager.SetRadix(radixType);
|
||||
AreHEXButtonsEnabled = numberBase == NumberBase::HexBase;
|
||||
CurrentRadixType = numberBase;
|
||||
m_standardCalculatorManager.SetRadix(GetRadixTypeFromNumberBase(numberBase));
|
||||
}
|
||||
|
||||
void StandardCalculatorViewModel::SetMemorizedNumbersString()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue