mirror of
https://github.com/Microsoft/calculator.git
synced 2025-08-22 06:13:14 -07:00
Merge branch 'master' into master
This commit is contained in:
commit
4bca901c38
52 changed files with 122 additions and 134 deletions
|
@ -1,4 +1,4 @@
|
||||||
## IDE-independent coding style via EditorConfig: http://editorconfig.org/
|
## IDE-independent coding style via EditorConfig: https://editorconfig.org/
|
||||||
|
|
||||||
root = true
|
root = true
|
||||||
|
|
||||||
|
@ -8,4 +8,4 @@ indent_size = 4
|
||||||
end_of_line = crlf
|
end_of_line = crlf
|
||||||
charset = utf-8
|
charset = utf-8
|
||||||
trim_trailing_whitespace = true
|
trim_trailing_whitespace = true
|
||||||
insert_final_newline = true
|
insert_final_newline = true
|
||||||
|
|
|
@ -41,7 +41,7 @@ To learn how to build the code and run tests, follow the instructions in the [RE
|
||||||
### Style guidelines
|
### Style guidelines
|
||||||
The code in this project uses several different coding styles, depending on the age and history of
|
The code in this project uses several different coding styles, depending on the age and history of
|
||||||
the code. Please attempt to match the style of surrounding code as much as possible. In new
|
the code. Please attempt to match the style of surrounding code as much as possible. In new
|
||||||
components, prefer the patterns described in the [C++ core guidelines](http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines)
|
components, prefer the patterns described in the [C++ core guidelines](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines)
|
||||||
and the [modern C++/WinRT language projections](https://docs.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis/).
|
and the [modern C++/WinRT language projections](https://docs.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis/).
|
||||||
|
|
||||||
### Testing
|
### Testing
|
||||||
|
@ -91,4 +91,4 @@ You don't need to sign a CLA until you're ready to create a pull request. When y
|
||||||
created, it is classified by a bot. If the change is trivial (i.e. you just fixed a typo) then the
|
created, it is classified by a bot. If the change is trivial (i.e. you just fixed a typo) then the
|
||||||
bot will label the PR `cla-not-required`. Otherwise, it's classified as `cla-required`. In that
|
bot will label the PR `cla-not-required`. Otherwise, it's classified as `cla-required`. In that
|
||||||
case, the system will also tell you how you can sign the CLA. Once you have signed a CLA, the
|
case, the system will also tell you how you can sign the CLA. Once you have signed a CLA, the
|
||||||
current and all future pull requests will be labeled as `cla-signed`.
|
current and all future pull requests will be labeled as `cla-signed`.
|
||||||
|
|
|
@ -2,7 +2,7 @@ THIRD PARTY SOFTWARE NOTICES AND INFORMATION
|
||||||
Do Not Translate or Localize
|
Do Not Translate or Localize
|
||||||
|
|
||||||
This software incorporates material from third parties. Microsoft makes certain
|
This software incorporates material from third parties. Microsoft makes certain
|
||||||
open source code available at http://3rdpartysource.microsoft.com, or you may
|
open source code available at https://3rdpartysource.microsoft.com, or you may
|
||||||
send a check or money order for US $5.00, including the product name, the open
|
send a check or money order for US $5.00, including the product name, the open
|
||||||
source component name, and version number, to:
|
source component name, and version number, to:
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ For information regarding Windows Calculator plans and release schedule, please
|
||||||
|
|
||||||
## Data / Telemetry
|
## Data / Telemetry
|
||||||
This project collects usage data and sends it to Microsoft to help improve our products and services.
|
This project collects usage data and sends it to Microsoft to help improve our products and services.
|
||||||
Read our [privacy statement](http://go.microsoft.com/fwlink/?LinkId=521839) to learn more.
|
Read our [privacy statement](https://go.microsoft.com/fwlink/?LinkId=521839) to learn more.
|
||||||
Telemetry is disabled in development builds by default, and can be enabled with the `SEND_TELEMETRY`
|
Telemetry is disabled in development builds by default, and can be enabled with the `SEND_TELEMETRY`
|
||||||
build flag.
|
build flag.
|
||||||
|
|
||||||
|
|
|
@ -124,7 +124,7 @@ Steps:
|
||||||
m. “( )" Parenthesis
|
m. “( )" Parenthesis
|
||||||
|
|
||||||
|
|
||||||
**All Calulators Test: Verify memory functions**
|
**All Calculators Test: Verify memory functions**
|
||||||
Steps:
|
Steps:
|
||||||
1. Launch the "Calculator" app.
|
1. Launch the "Calculator" app.
|
||||||
2. Navigate to "Standard" Calculator.
|
2. Navigate to "Standard" Calculator.
|
||||||
|
|
|
@ -131,9 +131,9 @@ new features, the Microsoft team considers at least these items:
|
||||||
- [ ] Microsoft must plan to keep these dependencies secure and functional for the lifetime of
|
- [ ] Microsoft must plan to keep these dependencies secure and functional for the lifetime of
|
||||||
the app (which might be several years).
|
the app (which might be several years).
|
||||||
- [ ] The app should be fully functional if some network requests are slow or fail. Tools like
|
- [ ] The app should be fully functional if some network requests are slow or fail. Tools like
|
||||||
[Fiddler](http://docs.telerik.com/fiddler/knowledgebase/fiddlerscript/perftesting)
|
[Fiddler](https://docs.telerik.com/fiddler/knowledgebase/fiddlerscript/perftesting)
|
||||||
can be used to simulate slow or failed requests.
|
can be used to simulate slow or failed requests.
|
||||||
|
|
||||||
## Step 4: Final product review and merge to master
|
## Step 4: Final product review and merge to master
|
||||||
After the technical review is complete, the product team will review the finished product to make
|
After the technical review is complete, the product team will review the finished product to make
|
||||||
sure the final implementation is ready to [release to Windows customers](Roadmap.md#Releases).
|
sure the final implementation is ready to [release to Windows customers](Roadmap.md#Releases).
|
||||||
|
|
|
@ -20,7 +20,7 @@ namespace Calculator.UIAutomationLibrary
|
||||||
{
|
{
|
||||||
public const string CoreWindowClassName = "Windows.UI.Core.CoreWindow";
|
public const string CoreWindowClassName = "Windows.UI.Core.CoreWindow";
|
||||||
|
|
||||||
// This doesn't actually work right now becaue popup will disappear
|
// This doesn't actually work right now because popup will disappear
|
||||||
// Bug 13713223: ContentDialog/Popup does not show up in the UIA tree when Windows.Current.Content has an AutomationName set.
|
// Bug 13713223: ContentDialog/Popup does not show up in the UIA tree when Windows.Current.Content has an AutomationName set.
|
||||||
// public static readonly UICondition TopLevelWindowUICondition = UICondition.CreateFromId(Constants.TopLevelWindowAutomationId);
|
// public static readonly UICondition TopLevelWindowUICondition = UICondition.CreateFromId(Constants.TopLevelWindowAutomationId);
|
||||||
public static readonly UICondition CoreWindowUICondition = UICondition.CreateFromClassName(CoreWindowClassName)
|
public static readonly UICondition CoreWindowUICondition = UICondition.CreateFromClassName(CoreWindowClassName)
|
||||||
|
|
|
@ -36,6 +36,6 @@ namespace Calculator.UIAutomationLibrary
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// These are uses with the DataSource test property to specify iteration info.
|
/// These are uses with the DataSource test property to specify iteration info.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string AppLifecycleInterationsSource = "Table:" + ConfigDirectory + "AppLifecycle.Iterations.xml#PerformanceConfigurations";
|
public const string AppLifecycleIterationsSource = "Table:" + ConfigDirectory + "AppLifecycle.Iterations.xml#PerformanceConfigurations";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
This file defines a table of preformance configuration for use with
|
This file defines a table of performance configuration for use with
|
||||||
TAEF Table Based Data-driven Testing.
|
TAEF Table Based Data-driven Testing.
|
||||||
|
|
||||||
This table specifies we will run the test three times (each iteration has a
|
This table specifies we will run the test three times (each iteration has a
|
||||||
|
|
|
@ -64,7 +64,7 @@
|
||||||
<Buffers Value="15" />
|
<Buffers Value="15" />
|
||||||
</EventCollector>
|
</EventCollector>
|
||||||
|
|
||||||
<EventCollector Id="EC_Responsiveness.HighCost.Verbose" Name="User Session Logger Higcost Verbose">
|
<EventCollector Id="EC_Responsiveness.HighCost.Verbose" Name="User Session Logger HighCost Verbose">
|
||||||
<BufferSize Value="1024" />
|
<BufferSize Value="1024" />
|
||||||
<Buffers Value="3" PercentageOfTotalMemory="true" MaximumBufferSpace="60" />
|
<Buffers Value="3" PercentageOfTotalMemory="true" MaximumBufferSpace="60" />
|
||||||
</EventCollector>
|
</EventCollector>
|
||||||
|
|
|
@ -34,7 +34,7 @@ namespace Calculator.PerfTests
|
||||||
/// The test launches the application, suspend and resumes it and then terminates the app.
|
/// The test launches the application, suspend and resumes it and then terminates the app.
|
||||||
///
|
///
|
||||||
/// A TAEF data source is used to specify the Windows Performance Recorder profile and
|
/// A TAEF data source is used to specify the Windows Performance Recorder profile and
|
||||||
/// regions of interest file to use and defines threee different configurations to execute this test with.
|
/// regions of interest file to use and defines three different configurations to execute this test with.
|
||||||
/// Cold: The initial run to get dlls loaded into memory and to execute any first-run app logic.
|
/// Cold: The initial run to get dlls loaded into memory and to execute any first-run app logic.
|
||||||
/// Warm: The run that will produce consistent results and that would be used for measures.
|
/// Warm: The run that will produce consistent results and that would be used for measures.
|
||||||
/// Memory: A run that is focused on collecting more info on allocations.
|
/// Memory: A run that is focused on collecting more info on allocations.
|
||||||
|
@ -42,7 +42,7 @@ namespace Calculator.PerfTests
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
[TestProperty("RunAs", "User")]
|
[TestProperty("RunAs", "User")]
|
||||||
[TestProperty("Category", "Performance")]
|
[TestProperty("Category", "Performance")]
|
||||||
[TestProperty(WinperfConstants.DataSource, PerfConstants.AppLifecycleInterationsSource)]
|
[TestProperty(WinperfConstants.DataSource, PerfConstants.AppLifecycleIterationsSource)]
|
||||||
public void AppLifecycleTest()
|
public void AppLifecycleTest()
|
||||||
{
|
{
|
||||||
AppLifecycle.Run(Constants.PackageAppUserModelId);
|
AppLifecycle.Run(Constants.PackageAppUserModelId);
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<add key="disableSourceControlIntegration" value="true" />
|
<add key="disableSourceControlIntegration" value="true" />
|
||||||
</solution>
|
</solution>
|
||||||
<packageSources>
|
<packageSources>
|
||||||
<add key="NuGet official package source" value="https://nuget.org/api/v2/" />
|
<add key="NuGet official package source" value="https://api.nuget.org/v3/index.json" />
|
||||||
<add key="MitaLite" value="https://microsoft.pkgs.visualstudio.com/DefaultCollection/_packaging/MitaLite/nuget/v3/index.json" />
|
<add key="MitaLite" value="https://microsoft.pkgs.visualstudio.com/DefaultCollection/_packaging/MitaLite/nuget/v3/index.json" />
|
||||||
<add key="Taef" value="https://microsoft.pkgs.visualstudio.com/DefaultCollection/_packaging/Taef/nuget/v3/index.json" />
|
<add key="Taef" value="https://microsoft.pkgs.visualstudio.com/DefaultCollection/_packaging/Taef/nuget/v3/index.json" />
|
||||||
<add key="Test.Net" value="https://microsoft.pkgs.visualstudio.com/DefaultCollection/_packaging/Test.Net/nuget/v3/index.json" />
|
<add key="Test.Net" value="https://microsoft.pkgs.visualstudio.com/DefaultCollection/_packaging/Test.Net/nuget/v3/index.json" />
|
||||||
|
|
|
@ -136,7 +136,7 @@ void CHistoryCollector::ChangeLastBinOp(int nOpCode, bool fPrecInvToHigher)
|
||||||
TruncateEquationSzFromIch(m_lastBinOpStartIndex);
|
TruncateEquationSzFromIch(m_lastBinOpStartIndex);
|
||||||
if (fPrecInvToHigher)
|
if (fPrecInvToHigher)
|
||||||
{
|
{
|
||||||
EnclosePrecInvertionBrackets();
|
EnclosePrecInversionBrackets();
|
||||||
}
|
}
|
||||||
AddBinOpToHistory(nOpCode);
|
AddBinOpToHistory(nOpCode);
|
||||||
}
|
}
|
||||||
|
@ -180,7 +180,7 @@ void CHistoryCollector::AddCloseBraceToHistory()
|
||||||
m_bLastOpndBrace = true;
|
m_bLastOpndBrace = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CHistoryCollector::EnclosePrecInvertionBrackets()
|
void CHistoryCollector::EnclosePrecInversionBrackets()
|
||||||
{
|
{
|
||||||
// Top of the Opnd starts index or 0 is nothing is in top
|
// Top of the Opnd starts index or 0 is nothing is in top
|
||||||
int ichStart = (m_curOperandIndex > 0) ? m_operandIndices[m_curOperandIndex - 1] : 0;
|
int ichStart = (m_curOperandIndex > 0) ? m_operandIndices[m_curOperandIndex - 1] : 0;
|
||||||
|
@ -401,9 +401,9 @@ int CHistoryCollector::AddCommand(_In_ const std::shared_ptr<IExpressionCommand>
|
||||||
throw(CALC_E_OUTOFMEMORY);
|
throw(CALC_E_OUTOFMEMORY);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int nCommmands = 0;
|
unsigned int nCommands = 0;
|
||||||
m_spCommands->GetSize(&nCommmands);
|
m_spCommands->GetSize(&nCommands);
|
||||||
return nCommmands - 1;
|
return nCommands - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//To Update the operands in the Expression according to the current Radix
|
//To Update the operands in the Expression according to the current Radix
|
||||||
|
|
|
@ -271,7 +271,7 @@ void CCalcEngine::ProcessCommandWorker(WPARAM wParam)
|
||||||
// 1 + (2 Or 3)
|
// 1 + (2 Or 3)
|
||||||
if (ni <= nx)
|
if (ni <= nx)
|
||||||
{
|
{
|
||||||
m_HistoryCollector.EnclosePrecInvertionBrackets();
|
m_HistoryCollector.EnclosePrecInversionBrackets();
|
||||||
}
|
}
|
||||||
m_HistoryCollector.PopLastOpndStart();
|
m_HistoryCollector.PopLastOpndStart();
|
||||||
goto DoPrecedenceCheckAgain;
|
goto DoPrecedenceCheckAgain;
|
||||||
|
@ -507,7 +507,7 @@ void CCalcEngine::ProcessCommandWorker(WPARAM wParam)
|
||||||
nx = NPrecedenceOfOp(m_nOpCode);
|
nx = NPrecedenceOfOp(m_nOpCode);
|
||||||
if (ni <= nx)
|
if (ni <= nx)
|
||||||
{
|
{
|
||||||
m_HistoryCollector.EnclosePrecInvertionBrackets();
|
m_HistoryCollector.EnclosePrecInversionBrackets();
|
||||||
}
|
}
|
||||||
m_HistoryCollector.PopLastOpndStart();
|
m_HistoryCollector.PopLastOpndStart();
|
||||||
|
|
||||||
|
@ -600,7 +600,7 @@ void CCalcEngine::ProcessCommandWorker(WPARAM wParam)
|
||||||
nx = NPrecedenceOfOp(m_nOpCode);
|
nx = NPrecedenceOfOp(m_nOpCode);
|
||||||
if (ni <= nx)
|
if (ni <= nx)
|
||||||
{
|
{
|
||||||
m_HistoryCollector.EnclosePrecInvertionBrackets();
|
m_HistoryCollector.EnclosePrecInversionBrackets();
|
||||||
}
|
}
|
||||||
m_HistoryCollector.PopLastOpndStart();
|
m_HistoryCollector.PopLastOpndStart();
|
||||||
|
|
||||||
|
|
|
@ -99,7 +99,7 @@ namespace CalculationManager
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Callback from the CalculatorControll
|
/// Callback from the CalculatorControl
|
||||||
/// Passed in string representations of memorized numbers get passed to the client
|
/// Passed in string representations of memorized numbers get passed to the client
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="memorizedNumber">vector containing wstring values of memorized numbers</param>
|
/// <param name="memorizedNumber">vector containing wstring values of memorized numbers</param>
|
||||||
|
@ -437,7 +437,7 @@ namespace CalculationManager
|
||||||
*commandItr <= MEMORY_COMMAND_TO_UNSIGNED_CHAR(MemoryCommand::MemorizedNumberClearAll))
|
*commandItr <= MEMORY_COMMAND_TO_UNSIGNED_CHAR(MemoryCommand::MemorizedNumberClearAll))
|
||||||
{
|
{
|
||||||
//MemoryCommands(which have values above 255) are pushed on m_savedCommands upon casting to unsigned char.
|
//MemoryCommands(which have values above 255) are pushed on m_savedCommands upon casting to unsigned char.
|
||||||
//SerializeCommands uses m_savedCommands, which is then used in DeSerializeCommnds.
|
//SerializeCommands uses m_savedCommands, which is then used in DeSerializeCommands.
|
||||||
//Hence, a simple cast to MemoryCommand is not sufficient.
|
//Hence, a simple cast to MemoryCommand is not sufficient.
|
||||||
MemoryCommand memoryCommand = static_cast<MemoryCommand>(*commandItr + UCHAR_MAX + 1);
|
MemoryCommand memoryCommand = static_cast<MemoryCommand>(*commandItr + UCHAR_MAX + 1);
|
||||||
unsigned int indexOfMemory = 0;
|
unsigned int indexOfMemory = 0;
|
||||||
|
@ -513,7 +513,7 @@ namespace CalculationManager
|
||||||
/// Recall the memorized number.
|
/// Recall the memorized number.
|
||||||
/// The memorized number gets loaded to the primary display
|
/// The memorized number gets loaded to the primary display
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="indexOfMemeory">Index of the target memory</param>
|
/// <param name="indexOfMemory">Index of the target memory</param>
|
||||||
void CalculatorManager::MemorizedNumberLoad(_In_ unsigned int indexOfMemory)
|
void CalculatorManager::MemorizedNumberLoad(_In_ unsigned int indexOfMemory)
|
||||||
{
|
{
|
||||||
SaveMemoryCommand(MemoryCommand::MemorizedNumberLoad, indexOfMemory);
|
SaveMemoryCommand(MemoryCommand::MemorizedNumberLoad, indexOfMemory);
|
||||||
|
@ -529,7 +529,7 @@ namespace CalculationManager
|
||||||
/// It adds primary display value to the selected memory
|
/// It adds primary display value to the selected memory
|
||||||
/// Notify the client with new the new memorize value vector
|
/// Notify the client with new the new memorize value vector
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="indexOfMemeory">Index of the target memory</param>
|
/// <param name="indexOfMemory">Index of the target memory</param>
|
||||||
void CalculatorManager::MemorizedNumberAdd(_In_ unsigned int indexOfMemory)
|
void CalculatorManager::MemorizedNumberAdd(_In_ unsigned int indexOfMemory)
|
||||||
{
|
{
|
||||||
SaveMemoryCommand(MemoryCommand::MemorizedNumberAdd, indexOfMemory);
|
SaveMemoryCommand(MemoryCommand::MemorizedNumberAdd, indexOfMemory);
|
||||||
|
@ -567,7 +567,7 @@ namespace CalculationManager
|
||||||
/// It adds primary display value to the selected memory
|
/// It adds primary display value to the selected memory
|
||||||
/// Notify the client with new the new memorize value vector
|
/// Notify the client with new the new memorize value vector
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="indexOfMemeory">Index of the target memory</param>
|
/// <param name="indexOfMemory">Index of the target memory</param>
|
||||||
void CalculatorManager::MemorizedNumberSubtract(_In_ unsigned int indexOfMemory)
|
void CalculatorManager::MemorizedNumberSubtract(_In_ unsigned int indexOfMemory)
|
||||||
{
|
{
|
||||||
SaveMemoryCommand(MemoryCommand::MemorizedNumberSubtract, indexOfMemory);
|
SaveMemoryCommand(MemoryCommand::MemorizedNumberSubtract, indexOfMemory);
|
||||||
|
@ -611,7 +611,7 @@ namespace CalculationManager
|
||||||
/// Helper function that selects a memory from the vector and set it to CCalcEngine
|
/// Helper function that selects a memory from the vector and set it to CCalcEngine
|
||||||
/// Saved RAT number needs to be copied and passed in, as CCalcEngine destroyed the passed in RAT
|
/// Saved RAT number needs to be copied and passed in, as CCalcEngine destroyed the passed in RAT
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="indexOfMemeory">Index of the target memory</param>
|
/// <param name="indexOfMemory">Index of the target memory</param>
|
||||||
void CalculatorManager::MemorizedNumberSelect(_In_ unsigned int indexOfMemory)
|
void CalculatorManager::MemorizedNumberSelect(_In_ unsigned int indexOfMemory)
|
||||||
{
|
{
|
||||||
if (!(m_currentCalculatorEngine->FInErrorState()))
|
if (!(m_currentCalculatorEngine->FInErrorState()))
|
||||||
|
@ -625,7 +625,7 @@ namespace CalculationManager
|
||||||
/// Helper function that needs to be executed when memory is modified
|
/// Helper function that needs to be executed when memory is modified
|
||||||
/// When memory is modified, destroy the old RAT and put the new RAT in vector
|
/// When memory is modified, destroy the old RAT and put the new RAT in vector
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="indexOfMemeory">Index of the target memory</param>
|
/// <param name="indexOfMemory">Index of the target memory</param>
|
||||||
void CalculatorManager::MemorizedNumberChanged(_In_ unsigned int indexOfMemory)
|
void CalculatorManager::MemorizedNumberChanged(_In_ unsigned int indexOfMemory)
|
||||||
{
|
{
|
||||||
if (!(m_currentCalculatorEngine->FInErrorState()))
|
if (!(m_currentCalculatorEngine->FInErrorState()))
|
||||||
|
|
|
@ -15,7 +15,7 @@ namespace CalculationManager
|
||||||
// and the ids to define them with can be seen in EngineStrings.h
|
// and the ids to define them with can be seen in EngineStrings.h
|
||||||
// with SIDS prefix. Additionally it must provide values for string
|
// with SIDS prefix. Additionally it must provide values for string
|
||||||
// ids "sDecimal", "sThousand" and "sGrouping". See
|
// ids "sDecimal", "sThousand" and "sGrouping". See
|
||||||
// http://technet.microsoft.com/en-us/library/cc782655(v=ws.10).aspx
|
// https://technet.microsoft.com/en-us/library/cc782655(v=ws.10).aspx
|
||||||
// for what these values refer to.
|
// for what these values refer to.
|
||||||
virtual std::wstring GetCEngineString(const std::wstring& id) = 0;
|
virtual std::wstring GetCEngineString(const std::wstring& id) = 0;
|
||||||
};
|
};
|
||||||
|
|
|
@ -14,7 +14,7 @@ public:
|
||||||
{
|
{
|
||||||
*item = m_vector.at(index);
|
*item = m_vector.at(index);
|
||||||
}
|
}
|
||||||
catch (std::out_of_range /*ex*/)
|
catch (const std::out_of_range& /*ex*/)
|
||||||
{
|
{
|
||||||
hr = E_BOUNDS;
|
hr = E_BOUNDS;
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ public:
|
||||||
{
|
{
|
||||||
m_vector[index] = item;
|
m_vector[index] = item;
|
||||||
}
|
}
|
||||||
catch (std::out_of_range /*ex*/)
|
catch (const std::out_of_range& /*ex*/)
|
||||||
{
|
{
|
||||||
hr = E_BOUNDS;
|
hr = E_BOUNDS;
|
||||||
}
|
}
|
||||||
|
@ -63,7 +63,7 @@ public:
|
||||||
auto iter = m_vector.begin() + index;
|
auto iter = m_vector.begin() + index;
|
||||||
m_vector.insert(iter, item);
|
m_vector.insert(iter, item);
|
||||||
}
|
}
|
||||||
catch (std::bad_alloc /*ex*/)
|
catch (const std::bad_alloc& /*ex*/)
|
||||||
{
|
{
|
||||||
hr = E_OUTOFMEMORY;
|
hr = E_OUTOFMEMORY;
|
||||||
}
|
}
|
||||||
|
@ -92,7 +92,7 @@ public:
|
||||||
{
|
{
|
||||||
m_vector.push_back(item);
|
m_vector.push_back(item);
|
||||||
}
|
}
|
||||||
catch (std::bad_alloc /*ex*/)
|
catch (const std::bad_alloc& /*ex*/)
|
||||||
{
|
{
|
||||||
hr = E_OUTOFMEMORY;
|
hr = E_OUTOFMEMORY;
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,7 +26,7 @@ public:
|
||||||
void AddCloseBraceToHistory();
|
void AddCloseBraceToHistory();
|
||||||
void PushLastOpndStart(int ichOpndStart = -1);
|
void PushLastOpndStart(int ichOpndStart = -1);
|
||||||
void PopLastOpndStart();
|
void PopLastOpndStart();
|
||||||
void EnclosePrecInvertionBrackets();
|
void EnclosePrecInversionBrackets();
|
||||||
bool FOpndAddedToHistory();
|
bool FOpndAddedToHistory();
|
||||||
void CompleteHistoryLine(std::wstring_view numStr);
|
void CompleteHistoryLine(std::wstring_view numStr);
|
||||||
void ClearHistoryLine(std::wstring_view errStr);
|
void ClearHistoryLine(std::wstring_view errStr);
|
||||||
|
|
|
@ -183,7 +183,7 @@ void divrat( PRAT *pa, PRAT b, int32_t precision)
|
||||||
// RETURN: None, changes first pointer.
|
// RETURN: None, changes first pointer.
|
||||||
//
|
//
|
||||||
// DESCRIPTION: Does the rational equivalent of *pa += b.
|
// DESCRIPTION: Does the rational equivalent of *pa += b.
|
||||||
// Assumes base is internal througought.
|
// Assumes base is internal throughout.
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -204,7 +204,7 @@ void subrat( PRAT *pa, PRAT b, int32_t precision)
|
||||||
// RETURN: None, changes first pointer.
|
// RETURN: None, changes first pointer.
|
||||||
//
|
//
|
||||||
// DESCRIPTION: Does the rational equivalent of *pa += b.
|
// DESCRIPTION: Does the rational equivalent of *pa += b.
|
||||||
// Assumes base is internal througought.
|
// Assumes base is internal throughout.
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
|
@ -402,7 +402,7 @@
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see https://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Error Condition="!Exists('..\..\packages\Microsoft.UI.Xaml.2.0.181018003.1\build\native\Microsoft.UI.Xaml.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.UI.Xaml.2.0.181018003.1\build\native\Microsoft.UI.Xaml.targets'))" />
|
<Error Condition="!Exists('..\..\packages\Microsoft.UI.Xaml.2.0.181018003.1\build\native\Microsoft.UI.Xaml.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.UI.Xaml.2.0.181018003.1\build\native\Microsoft.UI.Xaml.targets'))" />
|
||||||
</Target>
|
</Target>
|
||||||
|
|
|
@ -275,7 +275,7 @@ namespace CalculatorApp { namespace Common
|
||||||
return Windows::UI::Xaml::DependencyProperty::UnsetValue; // Can't convert
|
return Windows::UI::Xaml::DependencyProperty::UnsetValue; // Can't convert
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual Platform::Object^ ConverBack(
|
virtual Platform::Object^ ConvertBack(
|
||||||
Platform::Object^ /*value*/,
|
Platform::Object^ /*value*/,
|
||||||
Windows::UI::Xaml::Interop::TypeName /*targetType*/,
|
Windows::UI::Xaml::Interop::TypeName /*targetType*/,
|
||||||
Platform::Object^ /*parameter*/,
|
Platform::Object^ /*parameter*/,
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
namespace CalculatorApp::Common::Automation
|
namespace CalculatorApp::Common::Automation
|
||||||
{
|
{
|
||||||
// This class exists so that the app can run on RS2 and use LiveRegions
|
// This class exists so that the app can run on RS2 and use LiveRegions
|
||||||
// to host notifiactions on those builds.
|
// to host notifications on those builds.
|
||||||
// When the app switches to min version RS3, this class can be removed
|
// When the app switches to min version RS3, this class can be removed
|
||||||
// and the app will switch to using the Notification API.
|
// and the app will switch to using the Notification API.
|
||||||
// TODO - MSFT 12735088
|
// TODO - MSFT 12735088
|
||||||
|
|
|
@ -199,7 +199,7 @@ CategoryGroupType NavCategory::GetGroupType(ViewMode mode)
|
||||||
: CategoryGroupType::None;
|
: CategoryGroupType::None;
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetIndex is 0-based, GetPostion is 1-based
|
// GetIndex is 0-based, GetPosition is 1-based
|
||||||
int NavCategory::GetIndex(ViewMode mode)
|
int NavCategory::GetIndex(ViewMode mode)
|
||||||
{
|
{
|
||||||
int position = NavCategory::GetPosition(mode);
|
int position = NavCategory::GetPosition(mode);
|
||||||
|
@ -228,7 +228,7 @@ int NavCategory::GetFlatIndex(ViewMode mode)
|
||||||
: -1;
|
: -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetIndex is 0-based, GetPostion is 1-based
|
// GetIndex is 0-based, GetPosition is 1-based
|
||||||
int NavCategory::GetIndexInGroup(ViewMode mode, CategoryGroupType type)
|
int NavCategory::GetIndexInGroup(ViewMode mode, CategoryGroupType type)
|
||||||
{
|
{
|
||||||
int index = -1;
|
int index = -1;
|
||||||
|
@ -249,7 +249,7 @@ int NavCategory::GetIndexInGroup(ViewMode mode, CategoryGroupType type)
|
||||||
: -1;
|
: -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetIndex is 0-based, GetPostion is 1-based
|
// GetIndex is 0-based, GetPosition is 1-based
|
||||||
int NavCategory::GetPosition(ViewMode mode)
|
int NavCategory::GetPosition(ViewMode mode)
|
||||||
{
|
{
|
||||||
int position = 0;
|
int position = 0;
|
||||||
|
|
|
@ -170,7 +170,7 @@ namespace CalculatorApp
|
||||||
static Platform::String^ GetNameResourceKey(ViewMode mode);
|
static Platform::String^ GetNameResourceKey(ViewMode mode);
|
||||||
static CategoryGroupType GetGroupType(ViewMode mode);
|
static CategoryGroupType GetGroupType(ViewMode mode);
|
||||||
|
|
||||||
// GetIndex is 0-based, GetPostion is 1-based
|
// GetIndex is 0-based, GetPosition is 1-based
|
||||||
static int GetIndex(ViewMode mode);
|
static int GetIndex(ViewMode mode);
|
||||||
static int GetFlatIndex(ViewMode mode);
|
static int GetFlatIndex(ViewMode mode);
|
||||||
static int GetIndexInGroup(ViewMode mode, CategoryGroupType type);
|
static int GetIndexInGroup(ViewMode mode, CategoryGroupType type);
|
||||||
|
|
|
@ -23,7 +23,7 @@ namespace CalculatorApp { namespace Common
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual Platform::Object^ ConverBack(
|
virtual Platform::Object^ ConvertBack(
|
||||||
Platform::Object^ value,
|
Platform::Object^ value,
|
||||||
Windows::UI::Xaml::Interop::TypeName /*targetType*/,
|
Windows::UI::Xaml::Interop::TypeName /*targetType*/,
|
||||||
Platform::Object^ /*parameter*/,
|
Platform::Object^ /*parameter*/,
|
||||||
|
@ -56,7 +56,7 @@ namespace CalculatorApp { namespace Common
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual Platform::Object^ ConverBack(
|
virtual Platform::Object^ ConvertBack(
|
||||||
Platform::Object^ value,
|
Platform::Object^ value,
|
||||||
Windows::UI::Xaml::Interop::TypeName /*targetType*/,
|
Windows::UI::Xaml::Interop::TypeName /*targetType*/,
|
||||||
Platform::Object^ /*parameter*/,
|
Platform::Object^ /*parameter*/,
|
||||||
|
|
|
@ -588,7 +588,7 @@ bool CurrencyDataLoader::TryParseAllRatiosData(_In_ String^ rawJson, _Inout_ Cur
|
||||||
//
|
//
|
||||||
// There are a few ways we can get the data needed for Currency Converter, including from cache or from web.
|
// There are a few ways we can get the data needed for Currency Converter, including from cache or from web.
|
||||||
// This function accepts the data from any source, and acts as a 'last-steps' for the converter to be ready.
|
// This function accepts the data from any source, and acts as a 'last-steps' for the converter to be ready.
|
||||||
// This includes identifying which units will be selected and building the map of curreny ratios.
|
// This includes identifying which units will be selected and building the map of currency ratios.
|
||||||
#pragma optimize("", off) // Turn off optimizations to work around DevDiv 393321
|
#pragma optimize("", off) // Turn off optimizations to work around DevDiv 393321
|
||||||
task<void> CurrencyDataLoader::FinalizeUnits(_In_ const vector<UCM::CurrencyStaticData>& staticData, _In_ const CurrencyRatioMap& ratioMap)
|
task<void> CurrencyDataLoader::FinalizeUnits(_In_ const vector<UCM::CurrencyStaticData>& staticData, _In_ const CurrencyRatioMap& ratioMap)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
// Licensed under the MIT License.
|
// Licensed under the MIT License.
|
||||||
|
|
||||||
#include "pch.h"
|
#include "pch.h"
|
||||||
|
@ -156,27 +156,34 @@ void UnitConverterDataLoader::GetCategories(_In_ shared_ptr<vector<UCM::Category
|
||||||
|
|
||||||
void UnitConverterDataLoader::GetUnits(_In_ unordered_map<ViewMode, vector<OrderedUnit>>& unitMap)
|
void UnitConverterDataLoader::GetUnits(_In_ unordered_map<ViewMode, vector<OrderedUnit>>& unitMap)
|
||||||
{
|
{
|
||||||
bool USSource, USTarget;
|
// US + Federated States of Micronesia, Marshall Islands, Palau
|
||||||
bool UKSource, UKTarget;
|
bool useUSCustomaryAndFahrenheit = m_currentRegionCode == L"US" ||
|
||||||
bool Source, Target;
|
m_currentRegionCode == L"PW" ||
|
||||||
|
m_currentRegionCode == L"FM" ||
|
||||||
|
m_currentRegionCode == L"MH" ||
|
||||||
|
m_currentRegionCode == L"PW";
|
||||||
|
|
||||||
USSource = (GetRegion() == L"US") ? true : false;
|
// useUSCustomaryAndFahrenheit + Liberia
|
||||||
USTarget = USSource;
|
// Source: https://en.wikipedia.org/wiki/Metrication
|
||||||
|
bool useUSCustomary = useUSCustomaryAndFahrenheit || m_currentRegionCode == L"LR";
|
||||||
|
|
||||||
UKSource = (GetRegion() == L"UK") ? true : false;
|
// Use 'Système International' (International System of Units - Metrics)
|
||||||
UKTarget = UKSource;
|
bool useSI = !useUSCustomary;
|
||||||
|
|
||||||
Source = (GetRegion() == L"Others") ? true : false;
|
// useUSCustomaryAndFahrenheit + the Bahamas, the Cayman Islands and Liberia
|
||||||
Target = Source;
|
// Source: http://en.wikipedia.org/wiki/Fahrenheit
|
||||||
|
bool useFahrenheit = useUSCustomaryAndFahrenheit || m_currentRegionCode == "BS" || m_currentRegionCode == "KY" || m_currentRegionCode == "LR";
|
||||||
|
|
||||||
|
bool useWattInsteadOfKilowatt = m_currentRegionCode == "GB";
|
||||||
|
|
||||||
vector<OrderedUnit> areaUnits;
|
vector<OrderedUnit> areaUnits;
|
||||||
areaUnits.push_back(OrderedUnit{ UnitConverterUnits::Area_Acre, GetLocalizedStringName(L"UnitName_Acre"), GetLocalizedStringName(L"UnitAbbreviation_Acre"), 9 });
|
areaUnits.push_back(OrderedUnit{ UnitConverterUnits::Area_Acre, GetLocalizedStringName(L"UnitName_Acre"), GetLocalizedStringName(L"UnitAbbreviation_Acre"), 9 });
|
||||||
areaUnits.push_back(OrderedUnit{ UnitConverterUnits::Area_Hectare, GetLocalizedStringName(L"UnitName_Hectare"), GetLocalizedStringName(L"UnitAbbreviation_Hectare"), 4 });
|
areaUnits.push_back(OrderedUnit{ UnitConverterUnits::Area_Hectare, GetLocalizedStringName(L"UnitName_Hectare"), GetLocalizedStringName(L"UnitAbbreviation_Hectare"), 4 });
|
||||||
areaUnits.push_back(OrderedUnit{ UnitConverterUnits::Area_SquareCentimeter, GetLocalizedStringName(L"UnitName_SquareCentimeter"), GetLocalizedStringName(L"UnitAbbreviation_SquareCentimeter"), 2 });
|
areaUnits.push_back(OrderedUnit{ UnitConverterUnits::Area_SquareCentimeter, GetLocalizedStringName(L"UnitName_SquareCentimeter"), GetLocalizedStringName(L"UnitAbbreviation_SquareCentimeter"), 2 });
|
||||||
areaUnits.push_back(OrderedUnit{ UnitConverterUnits::Area_SquareFoot, GetLocalizedStringName(L"UnitName_SquareFoot"), GetLocalizedStringName(L"UnitAbbreviation_SquareFoot"), 7, (UKSource || Source), USTarget, false });
|
areaUnits.push_back(OrderedUnit{ UnitConverterUnits::Area_SquareFoot, GetLocalizedStringName(L"UnitName_SquareFoot"), GetLocalizedStringName(L"UnitAbbreviation_SquareFoot"), 7, useSI, useUSCustomary, false });
|
||||||
areaUnits.push_back(OrderedUnit{ UnitConverterUnits::Area_SquareInch, GetLocalizedStringName(L"UnitName_SquareInch"), GetLocalizedStringName(L"UnitAbbreviation_SquareInch"), 6 });
|
areaUnits.push_back(OrderedUnit{ UnitConverterUnits::Area_SquareInch, GetLocalizedStringName(L"UnitName_SquareInch"), GetLocalizedStringName(L"UnitAbbreviation_SquareInch"), 6 });
|
||||||
areaUnits.push_back(OrderedUnit{ UnitConverterUnits::Area_SquareKilometer, GetLocalizedStringName(L"UnitName_SquareKilometer"), GetLocalizedStringName(L"UnitAbbreviation_SquareKilometer"), 5 });
|
areaUnits.push_back(OrderedUnit{ UnitConverterUnits::Area_SquareKilometer, GetLocalizedStringName(L"UnitName_SquareKilometer"), GetLocalizedStringName(L"UnitAbbreviation_SquareKilometer"), 5 });
|
||||||
areaUnits.push_back(OrderedUnit{ UnitConverterUnits::Area_SquareMeter, GetLocalizedStringName(L"UnitName_SquareMeter"), GetLocalizedStringName(L"UnitAbbreviation_SquareMeter"), 3, USSource, (UKTarget || Target), false});
|
areaUnits.push_back(OrderedUnit{ UnitConverterUnits::Area_SquareMeter, GetLocalizedStringName(L"UnitName_SquareMeter"), GetLocalizedStringName(L"UnitAbbreviation_SquareMeter"), 3, useUSCustomary, useSI, false});
|
||||||
areaUnits.push_back(OrderedUnit{ UnitConverterUnits::Area_SquareMile, GetLocalizedStringName(L"UnitName_SquareMile"), GetLocalizedStringName(L"UnitAbbreviation_SquareMile"), 10 });
|
areaUnits.push_back(OrderedUnit{ UnitConverterUnits::Area_SquareMile, GetLocalizedStringName(L"UnitName_SquareMile"), GetLocalizedStringName(L"UnitAbbreviation_SquareMile"), 10 });
|
||||||
areaUnits.push_back(OrderedUnit{ UnitConverterUnits::Area_SquareMillimeter, GetLocalizedStringName(L"UnitName_SquareMillimeter"), GetLocalizedStringName(L"UnitAbbreviation_SquareMillimeter"), 1 });
|
areaUnits.push_back(OrderedUnit{ UnitConverterUnits::Area_SquareMillimeter, GetLocalizedStringName(L"UnitName_SquareMillimeter"), GetLocalizedStringName(L"UnitAbbreviation_SquareMillimeter"), 1 });
|
||||||
areaUnits.push_back(OrderedUnit{ UnitConverterUnits::Area_SquareYard, GetLocalizedStringName(L"UnitName_SquareYard"), GetLocalizedStringName(L"UnitAbbreviation_SquareYard"), 8 });
|
areaUnits.push_back(OrderedUnit{ UnitConverterUnits::Area_SquareYard, GetLocalizedStringName(L"UnitName_SquareYard"), GetLocalizedStringName(L"UnitAbbreviation_SquareYard"), 8 });
|
||||||
|
@ -240,9 +247,9 @@ void UnitConverterDataLoader::GetUnits(_In_ unordered_map<ViewMode, vector<Order
|
||||||
unitMap.emplace(ViewMode::Energy, energyUnits);
|
unitMap.emplace(ViewMode::Energy, energyUnits);
|
||||||
|
|
||||||
vector<OrderedUnit> lengthUnits;
|
vector<OrderedUnit> lengthUnits;
|
||||||
lengthUnits.push_back(OrderedUnit{ UnitConverterUnits::Length_Centimeter, GetLocalizedStringName(L"UnitName_Centimeter"), GetLocalizedStringName(L"UnitAbbreviation_Centimeter"), 4 , USSource, (Target || UKTarget), false});
|
lengthUnits.push_back(OrderedUnit{ UnitConverterUnits::Length_Centimeter, GetLocalizedStringName(L"UnitName_Centimeter"), GetLocalizedStringName(L"UnitAbbreviation_Centimeter"), 4, useUSCustomary, useSI, false});
|
||||||
lengthUnits.push_back(OrderedUnit{ UnitConverterUnits::Length_Foot, GetLocalizedStringName(L"UnitName_Foot"), GetLocalizedStringName(L"UnitAbbreviation_Foot"), 8 });
|
lengthUnits.push_back(OrderedUnit{ UnitConverterUnits::Length_Foot, GetLocalizedStringName(L"UnitName_Foot"), GetLocalizedStringName(L"UnitAbbreviation_Foot"), 8 });
|
||||||
lengthUnits.push_back(OrderedUnit{ UnitConverterUnits::Length_Inch, GetLocalizedStringName(L"UnitName_Inch"), GetLocalizedStringName(L"UnitAbbreviation_Inch"), 7 , (Source|| UKSource), USTarget, false });
|
lengthUnits.push_back(OrderedUnit{ UnitConverterUnits::Length_Inch, GetLocalizedStringName(L"UnitName_Inch"), GetLocalizedStringName(L"UnitAbbreviation_Inch"), 7 , useSI, useUSCustomary, false });
|
||||||
lengthUnits.push_back(OrderedUnit{ UnitConverterUnits::Length_Kilometer, GetLocalizedStringName(L"UnitName_Kilometer"), GetLocalizedStringName(L"UnitAbbreviation_Kilometer"), 6 });
|
lengthUnits.push_back(OrderedUnit{ UnitConverterUnits::Length_Kilometer, GetLocalizedStringName(L"UnitName_Kilometer"), GetLocalizedStringName(L"UnitAbbreviation_Kilometer"), 6 });
|
||||||
lengthUnits.push_back(OrderedUnit{ UnitConverterUnits::Length_Meter, GetLocalizedStringName(L"UnitName_Meter"), GetLocalizedStringName(L"UnitAbbreviation_Meter"), 5 });
|
lengthUnits.push_back(OrderedUnit{ UnitConverterUnits::Length_Meter, GetLocalizedStringName(L"UnitName_Meter"), GetLocalizedStringName(L"UnitAbbreviation_Meter"), 5 });
|
||||||
lengthUnits.push_back(OrderedUnit{ UnitConverterUnits::Length_Micron, GetLocalizedStringName(L"UnitName_Micron"), GetLocalizedStringName(L"UnitAbbreviation_Micron"), 2 });
|
lengthUnits.push_back(OrderedUnit{ UnitConverterUnits::Length_Micron, GetLocalizedStringName(L"UnitName_Micron"), GetLocalizedStringName(L"UnitAbbreviation_Micron"), 2 });
|
||||||
|
@ -260,16 +267,16 @@ void UnitConverterDataLoader::GetUnits(_In_ unordered_map<ViewMode, vector<Order
|
||||||
powerUnits.push_back(OrderedUnit{ UnitConverterUnits::Power_BritishThermalUnitPerMinute, GetLocalizedStringName(L"UnitName_BTUPerMinute"), GetLocalizedStringName(L"UnitAbbreviation_BTUPerMinute"), 5 });
|
powerUnits.push_back(OrderedUnit{ UnitConverterUnits::Power_BritishThermalUnitPerMinute, GetLocalizedStringName(L"UnitName_BTUPerMinute"), GetLocalizedStringName(L"UnitAbbreviation_BTUPerMinute"), 5 });
|
||||||
powerUnits.push_back(OrderedUnit{ UnitConverterUnits::Power_FootPoundPerMinute, GetLocalizedStringName(L"UnitName_Foot-PoundPerMinute"), GetLocalizedStringName(L"UnitAbbreviation_Foot-PoundPerMinute"), 4 });
|
powerUnits.push_back(OrderedUnit{ UnitConverterUnits::Power_FootPoundPerMinute, GetLocalizedStringName(L"UnitName_Foot-PoundPerMinute"), GetLocalizedStringName(L"UnitAbbreviation_Foot-PoundPerMinute"), 4 });
|
||||||
powerUnits.push_back(OrderedUnit{ UnitConverterUnits::Power_Horsepower, GetLocalizedStringName(L"UnitName_Horsepower"), GetLocalizedStringName(L"UnitAbbreviation_Horsepower") , 3 , false, true, false });
|
powerUnits.push_back(OrderedUnit{ UnitConverterUnits::Power_Horsepower, GetLocalizedStringName(L"UnitName_Horsepower"), GetLocalizedStringName(L"UnitAbbreviation_Horsepower") , 3 , false, true, false });
|
||||||
powerUnits.push_back(OrderedUnit{ UnitConverterUnits::Power_Kilowatt, GetLocalizedStringName(L"UnitName_Kilowatt"), GetLocalizedStringName(L"UnitAbbreviation_Kilowatt"), 2 , (Source|| USSource), false, false});
|
powerUnits.push_back(OrderedUnit{ UnitConverterUnits::Power_Kilowatt, GetLocalizedStringName(L"UnitName_Kilowatt"), GetLocalizedStringName(L"UnitAbbreviation_Kilowatt"), 2 , !useWattInsteadOfKilowatt});
|
||||||
powerUnits.push_back(OrderedUnit{ UnitConverterUnits::Power_Watt, GetLocalizedStringName(L"UnitName_Watt"), GetLocalizedStringName(L"UnitAbbreviation_Watt"), 1, UKSource });
|
powerUnits.push_back(OrderedUnit{ UnitConverterUnits::Power_Watt, GetLocalizedStringName(L"UnitName_Watt"), GetLocalizedStringName(L"UnitAbbreviation_Watt"), 1, useWattInsteadOfKilowatt});
|
||||||
powerUnits.push_back(OrderedUnit{ UnitConverterUnits::Power_LightBulb, GetLocalizedStringName(L"UnitName_LightBulb"), GetLocalizedStringName(L"UnitAbbreviation_LightBulb"), 6 ,false, false, true});
|
powerUnits.push_back(OrderedUnit{ UnitConverterUnits::Power_LightBulb, GetLocalizedStringName(L"UnitName_LightBulb"), GetLocalizedStringName(L"UnitAbbreviation_LightBulb"), 6 ,false, false, true});
|
||||||
powerUnits.push_back(OrderedUnit{ UnitConverterUnits::Power_Horse, GetLocalizedStringName(L"UnitName_Horse"), GetLocalizedStringName(L"UnitAbbreviation_Horse"), 7 ,false, false, true});
|
powerUnits.push_back(OrderedUnit{ UnitConverterUnits::Power_Horse, GetLocalizedStringName(L"UnitName_Horse"), GetLocalizedStringName(L"UnitAbbreviation_Horse"), 7 ,false, false, true});
|
||||||
powerUnits.push_back(OrderedUnit{ UnitConverterUnits::Power_TrainEngine, GetLocalizedStringName(L"UnitName_TrainEngine"), GetLocalizedStringName(L"UnitAbbreviation_TrainEngine"), 8 ,false, false, true });
|
powerUnits.push_back(OrderedUnit{ UnitConverterUnits::Power_TrainEngine, GetLocalizedStringName(L"UnitName_TrainEngine"), GetLocalizedStringName(L"UnitAbbreviation_TrainEngine"), 8 ,false, false, true });
|
||||||
unitMap.emplace(ViewMode::Power, powerUnits);
|
unitMap.emplace(ViewMode::Power, powerUnits);
|
||||||
|
|
||||||
vector<OrderedUnit> tempUnits;
|
vector<OrderedUnit> tempUnits;
|
||||||
tempUnits.push_back(OrderedUnit{ UnitConverterUnits::Temperature_DegreesCelsius, GetLocalizedStringName(L"UnitName_DegreesCelsius"), GetLocalizedStringName(L"UnitAbbreviation_DegreesCelsius"), 1, USSource, (Target || UKTarget), false });
|
tempUnits.push_back(OrderedUnit{ UnitConverterUnits::Temperature_DegreesCelsius, GetLocalizedStringName(L"UnitName_DegreesCelsius"), GetLocalizedStringName(L"UnitAbbreviation_DegreesCelsius"), 1, useFahrenheit, !useFahrenheit, false });
|
||||||
tempUnits.push_back(OrderedUnit{ UnitConverterUnits::Temperature_DegreesFahrenheit, GetLocalizedStringName(L"UnitName_DegreesFahrenheit"), GetLocalizedStringName(L"UnitAbbreviation_DegreesFahrenheit"), 2 , (Source || UKSource), USTarget, false });
|
tempUnits.push_back(OrderedUnit{ UnitConverterUnits::Temperature_DegreesFahrenheit, GetLocalizedStringName(L"UnitName_DegreesFahrenheit"), GetLocalizedStringName(L"UnitAbbreviation_DegreesFahrenheit"), 2 , !useFahrenheit, useFahrenheit, false });
|
||||||
tempUnits.push_back(OrderedUnit{ UnitConverterUnits::Temperature_Kelvin, GetLocalizedStringName(L"UnitName_Kelvin"), GetLocalizedStringName(L"UnitAbbreviation_Kelvin"), 3 });
|
tempUnits.push_back(OrderedUnit{ UnitConverterUnits::Temperature_Kelvin, GetLocalizedStringName(L"UnitName_Kelvin"), GetLocalizedStringName(L"UnitAbbreviation_Kelvin"), 3 });
|
||||||
unitMap.emplace(ViewMode::Temperature, tempUnits);
|
unitMap.emplace(ViewMode::Temperature, tempUnits);
|
||||||
|
|
||||||
|
@ -287,11 +294,11 @@ void UnitConverterDataLoader::GetUnits(_In_ unordered_map<ViewMode, vector<Order
|
||||||
vector<OrderedUnit> speedUnits;
|
vector<OrderedUnit> speedUnits;
|
||||||
speedUnits.push_back(OrderedUnit{ UnitConverterUnits::Speed_CentimetersPerSecond, GetLocalizedStringName(L"UnitName_CentimetersPerSecond"), GetLocalizedStringName(L"UnitAbbreviation_CentimetersPerSecond"), 1 });
|
speedUnits.push_back(OrderedUnit{ UnitConverterUnits::Speed_CentimetersPerSecond, GetLocalizedStringName(L"UnitName_CentimetersPerSecond"), GetLocalizedStringName(L"UnitAbbreviation_CentimetersPerSecond"), 1 });
|
||||||
speedUnits.push_back(OrderedUnit{ UnitConverterUnits::Speed_FeetPerSecond, GetLocalizedStringName(L"UnitName_FeetPerSecond"), GetLocalizedStringName(L"UnitAbbreviation_FeetPerSecond"), 4 });
|
speedUnits.push_back(OrderedUnit{ UnitConverterUnits::Speed_FeetPerSecond, GetLocalizedStringName(L"UnitName_FeetPerSecond"), GetLocalizedStringName(L"UnitAbbreviation_FeetPerSecond"), 4 });
|
||||||
speedUnits.push_back(OrderedUnit{ UnitConverterUnits::Speed_KilometersPerHour, GetLocalizedStringName(L"UnitName_KilometersPerHour"), GetLocalizedStringName(L"UnitAbbreviation_KilometersPerHour"), 3 ,(USSource || UKSource), Target, false });
|
speedUnits.push_back(OrderedUnit{ UnitConverterUnits::Speed_KilometersPerHour, GetLocalizedStringName(L"UnitName_KilometersPerHour"), GetLocalizedStringName(L"UnitAbbreviation_KilometersPerHour"), 3 , useUSCustomary, useSI, false });
|
||||||
speedUnits.push_back(OrderedUnit{ UnitConverterUnits::Speed_Knot, GetLocalizedStringName(L"UnitName_Knot"), GetLocalizedStringName(L"UnitAbbreviation_Knot"), 6 });
|
speedUnits.push_back(OrderedUnit{ UnitConverterUnits::Speed_Knot, GetLocalizedStringName(L"UnitName_Knot"), GetLocalizedStringName(L"UnitAbbreviation_Knot"), 6 });
|
||||||
speedUnits.push_back(OrderedUnit{ UnitConverterUnits::Speed_Mach, GetLocalizedStringName(L"UnitName_Mach"), GetLocalizedStringName(L"UnitAbbreviation_Mach"), 7 });
|
speedUnits.push_back(OrderedUnit{ UnitConverterUnits::Speed_Mach, GetLocalizedStringName(L"UnitName_Mach"), GetLocalizedStringName(L"UnitAbbreviation_Mach"), 7 });
|
||||||
speedUnits.push_back(OrderedUnit{ UnitConverterUnits::Speed_MetersPerSecond, GetLocalizedStringName(L"UnitName_MetersPerSecond"), GetLocalizedStringName(L"UnitAbbreviation_MetersPerSecond"), 2 });
|
speedUnits.push_back(OrderedUnit{ UnitConverterUnits::Speed_MetersPerSecond, GetLocalizedStringName(L"UnitName_MetersPerSecond"), GetLocalizedStringName(L"UnitAbbreviation_MetersPerSecond"), 2 });
|
||||||
speedUnits.push_back(OrderedUnit{ UnitConverterUnits::Speed_MilesPerHour, GetLocalizedStringName(L"UnitName_MilesPerHour"), GetLocalizedStringName(L"UnitAbbreviation_MilesPerHour"), 5, Source, (UKTarget || USTarget), false });
|
speedUnits.push_back(OrderedUnit{ UnitConverterUnits::Speed_MilesPerHour, GetLocalizedStringName(L"UnitName_MilesPerHour"), GetLocalizedStringName(L"UnitAbbreviation_MilesPerHour"), 5, useSI, useUSCustomary, false });
|
||||||
speedUnits.push_back(OrderedUnit{ UnitConverterUnits::Speed_Turtle, GetLocalizedStringName(L"UnitName_Turtle"), GetLocalizedStringName(L"UnitAbbreviation_Turtle"), 8 ,false, false, true });
|
speedUnits.push_back(OrderedUnit{ UnitConverterUnits::Speed_Turtle, GetLocalizedStringName(L"UnitName_Turtle"), GetLocalizedStringName(L"UnitAbbreviation_Turtle"), 8 ,false, false, true });
|
||||||
speedUnits.push_back(OrderedUnit{ UnitConverterUnits::Speed_Horse, GetLocalizedStringName(L"UnitName_Horse"), GetLocalizedStringName(L"UnitAbbreviation_Horse"),9 , false, false, true });
|
speedUnits.push_back(OrderedUnit{ UnitConverterUnits::Speed_Horse, GetLocalizedStringName(L"UnitName_Horse"), GetLocalizedStringName(L"UnitAbbreviation_Horse"),9 , false, false, true });
|
||||||
speedUnits.push_back(OrderedUnit{ UnitConverterUnits::Speed_Jet, GetLocalizedStringName(L"UnitName_Jet"), GetLocalizedStringName(L"UnitAbbreviation_Jet"), 10, false, false, true });
|
speedUnits.push_back(OrderedUnit{ UnitConverterUnits::Speed_Jet, GetLocalizedStringName(L"UnitName_Jet"), GetLocalizedStringName(L"UnitAbbreviation_Jet"), 10, false, false, true });
|
||||||
|
@ -309,14 +316,14 @@ void UnitConverterDataLoader::GetUnits(_In_ unordered_map<ViewMode, vector<Order
|
||||||
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_GallonUK, GetLocalizedStringName(L"UnitName_GallonUK"), GetLocalizedStringName(L"UnitAbbreviation_GallonUK"), 20 });
|
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_GallonUK, GetLocalizedStringName(L"UnitName_GallonUK"), GetLocalizedStringName(L"UnitAbbreviation_GallonUK"), 20 });
|
||||||
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_GallonUS, GetLocalizedStringName(L"UnitName_GallonUS"), GetLocalizedStringName(L"UnitAbbreviation_GallonUS"), 11 });
|
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_GallonUS, GetLocalizedStringName(L"UnitName_GallonUS"), GetLocalizedStringName(L"UnitAbbreviation_GallonUS"), 11 });
|
||||||
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_Liter, GetLocalizedStringName(L"UnitName_Liter"), GetLocalizedStringName(L"UnitAbbreviation_Liter"), 3 });
|
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_Liter, GetLocalizedStringName(L"UnitName_Liter"), GetLocalizedStringName(L"UnitAbbreviation_Liter"), 3 });
|
||||||
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_Milliliter, GetLocalizedStringName(L"UnitName_Milliliter"), GetLocalizedStringName(L"UnitAbbreviation_Milliliter"), 1 , USSource, (Target || UKTarget), false});
|
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_Milliliter, GetLocalizedStringName(L"UnitName_Milliliter"), GetLocalizedStringName(L"UnitAbbreviation_Milliliter"), 1, useUSCustomary, useSI});
|
||||||
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_PintUK, GetLocalizedStringName(L"UnitName_PintUK"), GetLocalizedStringName(L"UnitAbbreviation_PintUK"), 18 });
|
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_PintUK, GetLocalizedStringName(L"UnitName_PintUK"), GetLocalizedStringName(L"UnitAbbreviation_PintUK"), 18 });
|
||||||
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_PintUS, GetLocalizedStringName(L"UnitName_PintUS"), GetLocalizedStringName(L"UnitAbbreviation_PintUS"), 9 });
|
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_PintUS, GetLocalizedStringName(L"UnitName_PintUS"), GetLocalizedStringName(L"UnitAbbreviation_PintUS"), 9 });
|
||||||
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_TablespoonUS, GetLocalizedStringName(L"UnitName_TablespoonUS"), GetLocalizedStringName(L"UnitAbbreviation_TablespoonUS"), 6 });
|
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_TablespoonUS, GetLocalizedStringName(L"UnitName_TablespoonUS"), GetLocalizedStringName(L"UnitAbbreviation_TablespoonUS"), 6 });
|
||||||
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_TeaspoonUS, GetLocalizedStringName(L"UnitName_TeaspoonUS"), GetLocalizedStringName(L"UnitAbbreviation_TeaspoonUS"), 5 ,Source, USTarget, false });
|
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_TeaspoonUS, GetLocalizedStringName(L"UnitName_TeaspoonUS"), GetLocalizedStringName(L"UnitAbbreviation_TeaspoonUS"), 5, useSI, useUSCustomary && m_currentRegionCode != "GB" });
|
||||||
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_QuartUK, GetLocalizedStringName(L"UnitName_QuartUK"), GetLocalizedStringName(L"UnitAbbreviation_QuartUK"), 19 });
|
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_QuartUK, GetLocalizedStringName(L"UnitName_QuartUK"), GetLocalizedStringName(L"UnitAbbreviation_QuartUK"), 19 });
|
||||||
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_QuartUS, GetLocalizedStringName(L"UnitName_QuartUS"), GetLocalizedStringName(L"UnitAbbreviation_QuartUS"), 10 });
|
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_QuartUS, GetLocalizedStringName(L"UnitName_QuartUS"), GetLocalizedStringName(L"UnitAbbreviation_QuartUS"), 10 });
|
||||||
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_TeaspoonUK, GetLocalizedStringName(L"UnitName_TeaspoonUK"), GetLocalizedStringName(L"UnitAbbreviation_TeaspoonUK"), 15, UKSource });
|
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_TeaspoonUK, GetLocalizedStringName(L"UnitName_TeaspoonUK"), GetLocalizedStringName(L"UnitAbbreviation_TeaspoonUK"), 15, false, useUSCustomary && m_currentRegionCode == "GB"});
|
||||||
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_TablespoonUK, GetLocalizedStringName(L"UnitName_TablespoonUK"), GetLocalizedStringName(L"UnitAbbreviation_TablespoonUK"), 16 });
|
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_TablespoonUK, GetLocalizedStringName(L"UnitName_TablespoonUK"), GetLocalizedStringName(L"UnitAbbreviation_TablespoonUK"), 16 });
|
||||||
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_CoffeeCup, GetLocalizedStringName(L"UnitName_CoffeeCup"), GetLocalizedStringName(L"UnitAbbreviation_CoffeeCup"), 22 ,false, false, true });
|
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_CoffeeCup, GetLocalizedStringName(L"UnitName_CoffeeCup"), GetLocalizedStringName(L"UnitAbbreviation_CoffeeCup"), 22 ,false, false, true });
|
||||||
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_Bathtub, GetLocalizedStringName(L"UnitName_Bathtub"), GetLocalizedStringName(L"UnitAbbreviation_Bathtub"), 23 ,false, false, true});
|
volumeUnits.push_back(OrderedUnit{ UnitConverterUnits::Volume_Bathtub, GetLocalizedStringName(L"UnitName_Bathtub"), GetLocalizedStringName(L"UnitAbbreviation_Bathtub"), 23 ,false, false, true});
|
||||||
|
@ -330,11 +337,11 @@ void UnitConverterDataLoader::GetUnits(_In_ unordered_map<ViewMode, vector<Order
|
||||||
weightUnits.push_back(OrderedUnit{ UnitConverterUnits::Weight_Decagram, GetLocalizedStringName(L"UnitName_Decagram"), GetLocalizedStringName(L"UnitAbbreviation_Decagram"), 6 });
|
weightUnits.push_back(OrderedUnit{ UnitConverterUnits::Weight_Decagram, GetLocalizedStringName(L"UnitName_Decagram"), GetLocalizedStringName(L"UnitAbbreviation_Decagram"), 6 });
|
||||||
weightUnits.push_back(OrderedUnit{ UnitConverterUnits::Weight_Gram, GetLocalizedStringName(L"UnitName_Gram"), GetLocalizedStringName(L"UnitAbbreviation_Gram"), 5 });
|
weightUnits.push_back(OrderedUnit{ UnitConverterUnits::Weight_Gram, GetLocalizedStringName(L"UnitName_Gram"), GetLocalizedStringName(L"UnitAbbreviation_Gram"), 5 });
|
||||||
weightUnits.push_back(OrderedUnit{ UnitConverterUnits::Weight_Hectogram, GetLocalizedStringName(L"UnitName_Hectogram"), GetLocalizedStringName(L"UnitAbbreviation_Hectogram"), 7 });
|
weightUnits.push_back(OrderedUnit{ UnitConverterUnits::Weight_Hectogram, GetLocalizedStringName(L"UnitName_Hectogram"), GetLocalizedStringName(L"UnitAbbreviation_Hectogram"), 7 });
|
||||||
weightUnits.push_back(OrderedUnit{ UnitConverterUnits::Weight_Kilogram, GetLocalizedStringName(L"UnitName_Kilogram"), GetLocalizedStringName(L"UnitAbbreviation_Kilogram"), 8 ,(USSource || UKSource), Target, false});
|
weightUnits.push_back(OrderedUnit{ UnitConverterUnits::Weight_Kilogram, GetLocalizedStringName(L"UnitName_Kilogram"), GetLocalizedStringName(L"UnitAbbreviation_Kilogram"), 8 , useUSCustomary, useSI});
|
||||||
weightUnits.push_back(OrderedUnit{ UnitConverterUnits::Weight_LongTon, GetLocalizedStringName(L"UnitName_LongTon"), GetLocalizedStringName(L"UnitAbbreviation_LongTon"), 14 });
|
weightUnits.push_back(OrderedUnit{ UnitConverterUnits::Weight_LongTon, GetLocalizedStringName(L"UnitName_LongTon"), GetLocalizedStringName(L"UnitAbbreviation_LongTon"), 14 });
|
||||||
weightUnits.push_back(OrderedUnit{ UnitConverterUnits::Weight_Milligram, GetLocalizedStringName(L"UnitName_Milligram"), GetLocalizedStringName(L"UnitAbbreviation_Milligram"), 2 });
|
weightUnits.push_back(OrderedUnit{ UnitConverterUnits::Weight_Milligram, GetLocalizedStringName(L"UnitName_Milligram"), GetLocalizedStringName(L"UnitAbbreviation_Milligram"), 2 });
|
||||||
weightUnits.push_back(OrderedUnit{ UnitConverterUnits::Weight_Ounce, GetLocalizedStringName(L"UnitName_Ounce"), GetLocalizedStringName(L"UnitAbbreviation_Ounce"), 10 });
|
weightUnits.push_back(OrderedUnit{ UnitConverterUnits::Weight_Ounce, GetLocalizedStringName(L"UnitName_Ounce"), GetLocalizedStringName(L"UnitAbbreviation_Ounce"), 10 });
|
||||||
weightUnits.push_back(OrderedUnit{ UnitConverterUnits::Weight_Pound, GetLocalizedStringName(L"UnitName_Pound"), GetLocalizedStringName(L"UnitAbbreviation_Pound"), 11 , Source, (USTarget ||UKTarget), false });
|
weightUnits.push_back(OrderedUnit{ UnitConverterUnits::Weight_Pound, GetLocalizedStringName(L"UnitName_Pound"), GetLocalizedStringName(L"UnitAbbreviation_Pound"), 11 , useSI, useUSCustomary });
|
||||||
weightUnits.push_back(OrderedUnit{ UnitConverterUnits::Weight_ShortTon, GetLocalizedStringName(L"UnitName_ShortTon"), GetLocalizedStringName(L"UnitAbbreviation_ShortTon"), 13 });
|
weightUnits.push_back(OrderedUnit{ UnitConverterUnits::Weight_ShortTon, GetLocalizedStringName(L"UnitName_ShortTon"), GetLocalizedStringName(L"UnitAbbreviation_ShortTon"), 13 });
|
||||||
weightUnits.push_back(OrderedUnit{ UnitConverterUnits::Weight_Stone, GetLocalizedStringName(L"UnitName_Stone"), GetLocalizedStringName(L"UnitAbbreviation_Stone"), 12 });
|
weightUnits.push_back(OrderedUnit{ UnitConverterUnits::Weight_Stone, GetLocalizedStringName(L"UnitName_Stone"), GetLocalizedStringName(L"UnitAbbreviation_Stone"), 12 });
|
||||||
weightUnits.push_back(OrderedUnit{ UnitConverterUnits::Weight_Tonne, GetLocalizedStringName(L"UnitName_Tonne"), GetLocalizedStringName(L"UnitAbbreviation_Tonne"), 9 });
|
weightUnits.push_back(OrderedUnit{ UnitConverterUnits::Weight_Tonne, GetLocalizedStringName(L"UnitName_Tonne"), GetLocalizedStringName(L"UnitAbbreviation_Tonne"), 9 });
|
||||||
|
@ -469,8 +476,8 @@ void UnitConverterDataLoader::GetConversionData(_In_ unordered_map<ViewMode, uno
|
||||||
{ ViewMode::Volume, UnitConverterUnits::Volume_GallonUS, 3785.411784 },
|
{ ViewMode::Volume, UnitConverterUnits::Volume_GallonUS, 3785.411784 },
|
||||||
{ ViewMode::Volume, UnitConverterUnits::Volume_GallonUK, 4546.09 },
|
{ ViewMode::Volume, UnitConverterUnits::Volume_GallonUK, 4546.09 },
|
||||||
{ ViewMode::Volume, UnitConverterUnits::Volume_Liter, 1000 },
|
{ ViewMode::Volume, UnitConverterUnits::Volume_Liter, 1000 },
|
||||||
{ ViewMode::Volume, UnitConverterUnits::Volume_TeaspoonUS, 4.928922 },
|
{ ViewMode::Volume, UnitConverterUnits::Volume_TeaspoonUS, 4.92892159375 },
|
||||||
{ ViewMode::Volume, UnitConverterUnits::Volume_TablespoonUS, 14.786765 },
|
{ ViewMode::Volume, UnitConverterUnits::Volume_TablespoonUS, 14.78676478125 },
|
||||||
{ ViewMode::Volume, UnitConverterUnits::Volume_CubicCentimeter, 1 },
|
{ ViewMode::Volume, UnitConverterUnits::Volume_CubicCentimeter, 1 },
|
||||||
{ ViewMode::Volume, UnitConverterUnits::Volume_CubicYard, 764554.857984 },
|
{ ViewMode::Volume, UnitConverterUnits::Volume_CubicYard, 764554.857984 },
|
||||||
{ ViewMode::Volume, UnitConverterUnits::Volume_CubicMeter, 1000000 },
|
{ ViewMode::Volume, UnitConverterUnits::Volume_CubicMeter, 1000000 },
|
||||||
|
@ -548,24 +555,6 @@ void UnitConverterDataLoader::GetConversionData(_In_ unordered_map<ViewMode, uno
|
||||||
return AppResourceProvider::GetInstance().GetResourceString(stringId)->Data();
|
return AppResourceProvider::GetInstance().GetResourceString(stringId)->Data();
|
||||||
}
|
}
|
||||||
|
|
||||||
wstring UnitConverterDataLoader::GetRegion()
|
|
||||||
{
|
|
||||||
if ((m_currentRegionCode == L"US") ||
|
|
||||||
(m_currentRegionCode == L"LR") ||
|
|
||||||
(m_currentRegionCode == L"MM"))
|
|
||||||
{
|
|
||||||
return L"US";
|
|
||||||
}
|
|
||||||
else if (m_currentRegionCode == L"GB")
|
|
||||||
{
|
|
||||||
return L"UK";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return L"Others";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void UnitConverterDataLoader::GetExplicitConversionData(_In_ unordered_map<int, unordered_map<int, UCM::ConversionData>>& unitToUnitConversionList)
|
void UnitConverterDataLoader::GetExplicitConversionData(_In_ unordered_map<int, unordered_map<int, UCM::ConversionData>>& unitToUnitConversionList)
|
||||||
{
|
{
|
||||||
/* categoryId, ParentUnitId, UnitId, ratio, offset, offsetfirst*/
|
/* categoryId, ParentUnitId, UnitId, ratio, offset, offsetfirst*/
|
||||||
|
|
|
@ -64,7 +64,6 @@ namespace CalculatorApp
|
||||||
void GetExplicitConversionData(_In_ std::unordered_map<int, std::unordered_map<int, UnitConversionManager::ConversionData>>& unitToUnitConversionList);
|
void GetExplicitConversionData(_In_ std::unordered_map<int, std::unordered_map<int, UnitConversionManager::ConversionData>>& unitToUnitConversionList);
|
||||||
|
|
||||||
std::wstring GetLocalizedStringName(_In_ Platform::String^ stringId);
|
std::wstring GetLocalizedStringName(_In_ Platform::String^ stringId);
|
||||||
std::wstring GetRegion();
|
|
||||||
|
|
||||||
std::shared_ptr<std::vector<UnitConversionManager::Category>> m_categoryList;
|
std::shared_ptr<std::vector<UnitConversionManager::Category>> m_categoryList;
|
||||||
std::shared_ptr<UnitConversionManager::CategoryToUnitVectorMap> m_categoryToUnits;
|
std::shared_ptr<UnitConversionManager::CategoryToUnitVectorMap> m_categoryToUnits;
|
||||||
|
|
|
@ -87,7 +87,7 @@ DateCalculatorViewModel::DateCalculatorViewModel() :
|
||||||
}
|
}
|
||||||
|
|
||||||
/* In the ClipTime function, we used to change timezone to UTC before clipping the time.
|
/* In the ClipTime function, we used to change timezone to UTC before clipping the time.
|
||||||
The comment from the previous delopers said this was done to eliminate the effects of
|
The comment from the previous developers said this was done to eliminate the effects of
|
||||||
Daylight Savings Time. We can't think of a good reason why this change in timezone is
|
Daylight Savings Time. We can't think of a good reason why this change in timezone is
|
||||||
necessary and did find bugs related to the change, therefore, we have removed the
|
necessary and did find bugs related to the change, therefore, we have removed the
|
||||||
change. Just in case, we will see if the clipped time is ever a different day from the
|
change. Just in case, we will see if the clipped time is ever a different day from the
|
||||||
|
|
|
@ -98,7 +98,7 @@ namespace CalculatorApp
|
||||||
void UpdateDisplayResult();
|
void UpdateDisplayResult();
|
||||||
void UpdateStrDateDiffResultAutomationName();
|
void UpdateStrDateDiffResultAutomationName();
|
||||||
void UpdateStrDateResultAutomationName();
|
void UpdateStrDateResultAutomationName();
|
||||||
void InitializeDateOutputFormats(Platform::String^ calendarIdentifer);
|
void InitializeDateOutputFormats(Platform::String^ calendarIdentifier);
|
||||||
Platform::String^ GetDateDiffString() const;
|
Platform::String^ GetDateDiffString() const;
|
||||||
Platform::String^ GetDateDiffStringInDays() const;
|
Platform::String^ GetDateDiffStringInDays() const;
|
||||||
Platform::String^ GetLocalizedNumberString(int value) const;
|
Platform::String^ GetLocalizedNumberString(int value) const;
|
||||||
|
|
|
@ -674,7 +674,7 @@ void UnitConverterViewModel::Deserialize(Platform::String^ state)
|
||||||
RaisePropertyChanged(nullptr); // Update since all props have been updated.
|
RaisePropertyChanged(nullptr); // Update since all props have been updated.
|
||||||
}
|
}
|
||||||
|
|
||||||
//Saving User Prefernces of Category and Associated-Units across Sessions.
|
//Saving User Preferences of Category and Associated-Units across Sessions.
|
||||||
void UnitConverterViewModel::SaveUserPreferences()
|
void UnitConverterViewModel::SaveUserPreferences()
|
||||||
{
|
{
|
||||||
if (UnitsAreValid())
|
if (UnitsAreValid())
|
||||||
|
@ -695,7 +695,7 @@ void UnitConverterViewModel::SaveUserPreferences()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Restoring User Prefernces of Category and Associated-Units.
|
//Restoring User Preferences of Category and Associated-Units.
|
||||||
void UnitConverterViewModel::RestoreUserPreferences()
|
void UnitConverterViewModel::RestoreUserPreferences()
|
||||||
{
|
{
|
||||||
if (!IsCurrencyCurrentCategory)
|
if (!IsCurrencyCurrentCategory)
|
||||||
|
|
|
@ -74,7 +74,7 @@ namespace CalculatorApp
|
||||||
Platform::String^ get() { return ref new Platform::String(m_original.abbreviation.c_str()); }
|
Platform::String^ get() { return ref new Platform::String(m_original.abbreviation.c_str()); }
|
||||||
}
|
}
|
||||||
|
|
||||||
// This method is used to return the desired automation name for default unit in UnitConveter combo box.
|
// This method is used to return the desired automation name for default unit in UnitConverter combo box.
|
||||||
Platform::String^ ToString() override
|
Platform::String^ ToString() override
|
||||||
{
|
{
|
||||||
return AccessibleName;
|
return AccessibleName;
|
||||||
|
@ -243,7 +243,7 @@ namespace CalculatorApp
|
||||||
Platform::String^ Serialize();
|
Platform::String^ Serialize();
|
||||||
void Deserialize(Platform::String^ state);
|
void Deserialize(Platform::String^ state);
|
||||||
|
|
||||||
//Saving And Restoring User Prefernces of Category and Associated-Units across Sessions.
|
//Saving And Restoring User Preferences of Category and Associated-Units across Sessions.
|
||||||
void SaveUserPreferences();
|
void SaveUserPreferences();
|
||||||
void RestoreUserPreferences();
|
void RestoreUserPreferences();
|
||||||
|
|
||||||
|
@ -333,7 +333,7 @@ namespace CalculatorApp
|
||||||
std::wstring m_valueFromUnlocalized;
|
std::wstring m_valueFromUnlocalized;
|
||||||
std::wstring m_valueToUnlocalized;
|
std::wstring m_valueToUnlocalized;
|
||||||
bool m_relocalizeStringOnSwitch;
|
bool m_relocalizeStringOnSwitch;
|
||||||
// For Saving the User Preferences only if the Unit convertyer ViewModel is initialised for the first time
|
// For Saving the User Preferences only if the Unit converter ViewModel is initialised for the first time
|
||||||
bool m_IsFirstTime;
|
bool m_IsFirstTime;
|
||||||
|
|
||||||
Platform::String^ m_localizedValueFromFormat;
|
Platform::String^ m_localizedValueFromFormat;
|
||||||
|
|
|
@ -844,7 +844,7 @@
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see https://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Error Condition="!Exists('..\..\packages\Microsoft.WindowsCalculator.PGO.1.0.2\build\native\Microsoft.WindowsCalculator.PGO.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.WindowsCalculator.PGO.1.0.2\build\native\Microsoft.WindowsCalculator.PGO.props'))" />
|
<Error Condition="!Exists('..\..\packages\Microsoft.WindowsCalculator.PGO.1.0.2\build\native\Microsoft.WindowsCalculator.PGO.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.WindowsCalculator.PGO.1.0.2\build\native\Microsoft.WindowsCalculator.PGO.props'))" />
|
||||||
<Error Condition="!Exists('..\..\packages\Microsoft.WindowsCalculator.PGO.1.0.2\build\native\Microsoft.WindowsCalculator.PGO.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.WindowsCalculator.PGO.1.0.2\build\native\Microsoft.WindowsCalculator.PGO.targets'))" />
|
<Error Condition="!Exists('..\..\packages\Microsoft.WindowsCalculator.PGO.1.0.2\build\native\Microsoft.WindowsCalculator.PGO.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.WindowsCalculator.PGO.1.0.2\build\native\Microsoft.WindowsCalculator.PGO.targets'))" />
|
||||||
|
|
|
@ -275,7 +275,7 @@ namespace CalculatorApp { namespace Common
|
||||||
return Windows::UI::Xaml::DependencyProperty::UnsetValue; // Can't convert
|
return Windows::UI::Xaml::DependencyProperty::UnsetValue; // Can't convert
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual Platform::Object^ ConverBack(
|
virtual Platform::Object^ ConvertBack(
|
||||||
Platform::Object^ /*value*/,
|
Platform::Object^ /*value*/,
|
||||||
Windows::UI::Xaml::Interop::TypeName /*targetType*/,
|
Windows::UI::Xaml::Interop::TypeName /*targetType*/,
|
||||||
Platform::Object^ /*parameter*/,
|
Platform::Object^ /*parameter*/,
|
||||||
|
|
|
@ -22,7 +22,7 @@ namespace Numbers
|
||||||
OBSERVABLE_PROPERTY_RW(Platform::String^, SlotValue);
|
OBSERVABLE_PROPERTY_RW(Platform::String^, SlotValue);
|
||||||
};
|
};
|
||||||
|
|
||||||
// This class is to be consumbed exclusively by Blend and the VS designer
|
// This class is to be consumed exclusively by Blend and the VS designer
|
||||||
// with this class Blend will be able to populate the controls, the CalculationResults control for example,
|
// with this class Blend will be able to populate the controls, the CalculationResults control for example,
|
||||||
// with the hardcoded strings so whoever is working on the UI can actually see how the app would look like
|
// with the hardcoded strings so whoever is working on the UI can actually see how the app would look like
|
||||||
// with semi-realistic data.
|
// with semi-realistic data.
|
||||||
|
|
|
@ -2601,7 +2601,7 @@
|
||||||
</data>
|
</data>
|
||||||
<data name="xorButton.[using:CalculatorApp.Controls]CalculatorButton.AuditoryFeedback" xml:space="preserve">
|
<data name="xorButton.[using:CalculatorApp.Controls]CalculatorButton.AuditoryFeedback" xml:space="preserve">
|
||||||
<value>x or</value>
|
<value>x or</value>
|
||||||
<comment>Auditory feedback for Screen Reader users. Users will hear "Display is 7 x or" when the button is pressed. XOR is a mathematical operation on two binary values. Here the feedback is "x or" in order to get the correct pronounciation.</comment>
|
<comment>Auditory feedback for Screen Reader users. Users will hear "Display is 7 x or" when the button is pressed. XOR is a mathematical operation on two binary values. Here the feedback is "x or" in order to get the correct pronunciation.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="andButton.[using:CalculatorApp.Controls]CalculatorButton.AuditoryFeedback" xml:space="preserve">
|
<data name="andButton.[using:CalculatorApp.Controls]CalculatorButton.AuditoryFeedback" xml:space="preserve">
|
||||||
<value>and</value>
|
<value>and</value>
|
||||||
|
|
|
@ -3085,7 +3085,7 @@
|
||||||
</data>
|
</data>
|
||||||
<data name="xorButton.[using:CalculatorApp.Controls]CalculatorButton.AuditoryFeedback" xml:space="preserve">
|
<data name="xorButton.[using:CalculatorApp.Controls]CalculatorButton.AuditoryFeedback" xml:space="preserve">
|
||||||
<value>x or</value>
|
<value>x or</value>
|
||||||
<comment>Auditory feedback for Screen Reader users. Users will hear "Display is 7 x or" when the button is pressed. XOR is a mathematical operation on two binary values. Here the feedback is "x or" in order to get the correct pronounciation.</comment>
|
<comment>Auditory feedback for Screen Reader users. Users will hear "Display is 7 x or" when the button is pressed. XOR is a mathematical operation on two binary values. Here the feedback is "x or" in order to get the correct pronunciation.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="andButton.[using:CalculatorApp.Controls]CalculatorButton.AuditoryFeedback" xml:space="preserve">
|
<data name="andButton.[using:CalculatorApp.Controls]CalculatorButton.AuditoryFeedback" xml:space="preserve">
|
||||||
<value>and</value>
|
<value>and</value>
|
||||||
|
|
|
@ -23,7 +23,7 @@ using namespace Windows::UI::Xaml::Controls;
|
||||||
using namespace Windows::UI::Xaml::Data;
|
using namespace Windows::UI::Xaml::Data;
|
||||||
using namespace Windows::UI::Xaml::Input;
|
using namespace Windows::UI::Xaml::Input;
|
||||||
|
|
||||||
// The User Control item template is documented at http://go.microsoft.com/fwlink/?LinkId=234236
|
// The User Control item template is documented at https://go.microsoft.com/fwlink/?LinkId=234236
|
||||||
|
|
||||||
CalculatorProgrammerBitFlipPanel::CalculatorProgrammerBitFlipPanel() :
|
CalculatorProgrammerBitFlipPanel::CalculatorProgrammerBitFlipPanel() :
|
||||||
m_updatingCheckedStates(false)
|
m_updatingCheckedStates(false)
|
||||||
|
|
|
@ -27,7 +27,7 @@ using namespace Windows::UI::Xaml::Navigation;
|
||||||
using namespace Windows::UI::ViewManagement;
|
using namespace Windows::UI::ViewManagement;
|
||||||
using namespace Windows::UI::Core;
|
using namespace Windows::UI::Core;
|
||||||
|
|
||||||
// The User Control item template is documented at http://go.microsoft.com/fwlink/?LinkId=234236
|
// The User Control item template is documented at https://go.microsoft.com/fwlink/?LinkId=234236
|
||||||
|
|
||||||
CalculatorScientificAngleButtons::CalculatorScientificAngleButtons() :
|
CalculatorScientificAngleButtons::CalculatorScientificAngleButtons() :
|
||||||
m_isErrorVisualState(false)
|
m_isErrorVisualState(false)
|
||||||
|
|
|
@ -22,7 +22,7 @@ using namespace Windows::UI::Xaml::Input;
|
||||||
using namespace Windows::UI::Xaml::Media;
|
using namespace Windows::UI::Xaml::Media;
|
||||||
using namespace Windows::UI::Xaml::Navigation;
|
using namespace Windows::UI::Xaml::Navigation;
|
||||||
|
|
||||||
// The User Control item template is documented at http://go.microsoft.com/fwlink/?LinkId=234236
|
// The User Control item template is documented at https://go.microsoft.com/fwlink/?LinkId=234236
|
||||||
|
|
||||||
CalculatorStandardOperators::CalculatorStandardOperators() :
|
CalculatorStandardOperators::CalculatorStandardOperators() :
|
||||||
m_isErrorVisualState(false)
|
m_isErrorVisualState(false)
|
||||||
|
|
|
@ -36,7 +36,7 @@ using namespace Windows::UI::Xaml::Input;
|
||||||
using namespace Windows::UI::Xaml::Media;
|
using namespace Windows::UI::Xaml::Media;
|
||||||
using namespace Windows::UI::Xaml::Navigation;
|
using namespace Windows::UI::Xaml::Navigation;
|
||||||
|
|
||||||
// The User Control item template is documented at http://go.microsoft.com/fwlink/?LinkId=234236
|
// The User Control item template is documented at https://go.microsoft.com/fwlink/?LinkId=234236
|
||||||
|
|
||||||
DateCalculator::DateCalculator()
|
DateCalculator::DateCalculator()
|
||||||
{
|
{
|
||||||
|
|
|
@ -29,7 +29,7 @@ using namespace Windows::UI::ViewManagement;
|
||||||
|
|
||||||
namespace MUXC = Microsoft::UI::Xaml::Controls;
|
namespace MUXC = Microsoft::UI::Xaml::Controls;
|
||||||
|
|
||||||
// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=390556
|
// The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=390556
|
||||||
|
|
||||||
DEPENDENCY_PROPERTY_INITIALIZATION(HistoryList, RowHeight);
|
DEPENDENCY_PROPERTY_INITIALIZATION(HistoryList, RowHeight);
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ using namespace Windows::UI::Xaml::Media;
|
||||||
using namespace Windows::UI::Xaml::Navigation;
|
using namespace Windows::UI::Xaml::Navigation;
|
||||||
using namespace Windows::UI::ViewManagement;
|
using namespace Windows::UI::ViewManagement;
|
||||||
|
|
||||||
// The User Control item template is documented at http://go.microsoft.com/fwlink/?LinkId=234236
|
// The User Control item template is documented at https://go.microsoft.com/fwlink/?LinkId=234236
|
||||||
|
|
||||||
DEPENDENCY_PROPERTY_INITIALIZATION(Memory, RowHeight);
|
DEPENDENCY_PROPERTY_INITIALIZATION(Memory, RowHeight);
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ using namespace Windows::UI::Xaml::Media;
|
||||||
using namespace Windows::UI::Xaml::Navigation;
|
using namespace Windows::UI::Xaml::Navigation;
|
||||||
using namespace CalculatorApp::Common;
|
using namespace CalculatorApp::Common;
|
||||||
|
|
||||||
// The User Control item template is documented at http://go.microsoft.com/fwlink/?LinkId=234236
|
// The User Control item template is documented at https://go.microsoft.com/fwlink/?LinkId=234236
|
||||||
|
|
||||||
DEPENDENCY_PROPERTY_INITIALIZATION(NumberPad, ButtonStyle);
|
DEPENDENCY_PROPERTY_INITIALIZATION(NumberPad, ButtonStyle);
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ using namespace Windows::UI::Xaml::Interop;
|
||||||
using namespace Windows::UI::Xaml::Media;
|
using namespace Windows::UI::Xaml::Media;
|
||||||
using namespace Windows::UI::Xaml::Navigation;
|
using namespace Windows::UI::Xaml::Navigation;
|
||||||
|
|
||||||
// The User Control item template is documented at http://go.microsoft.com/fwlink/?LinkId=234236
|
// The User Control item template is documented at https://go.microsoft.com/fwlink/?LinkId=234236
|
||||||
|
|
||||||
Object^ DelighterUnitToStyleConverter::Convert(Object^ value, TypeName /*targetType*/, Object^ /*parameter*/, String^ /*language*/)
|
Object^ DelighterUnitToStyleConverter::Convert(Object^ value, TypeName /*targetType*/, Object^ /*parameter*/, String^ /*language*/)
|
||||||
{
|
{
|
||||||
|
|
|
@ -38,7 +38,7 @@ using namespace Windows::UI::Xaml::Media;
|
||||||
using namespace Windows::UI::Xaml::Navigation;
|
using namespace Windows::UI::Xaml::Navigation;
|
||||||
using namespace Windows::UI::ViewManagement;
|
using namespace Windows::UI::ViewManagement;
|
||||||
|
|
||||||
// The User Control item template is documented at http://go.microsoft.com/fwlink/?LinkId=234236
|
// The User Control item template is documented at https://go.microsoft.com/fwlink/?LinkId=234236
|
||||||
|
|
||||||
// Calculate number of 100-nanosecond intervals in 500 milliseconds.
|
// Calculate number of 100-nanosecond intervals in 500 milliseconds.
|
||||||
// There are 10,000 intervals in 1 ms.
|
// There are 10,000 intervals in 1 ms.
|
||||||
|
|
|
@ -260,7 +260,7 @@ namespace CalculatorManagerTest
|
||||||
VERIFY_IS_LESS_THAN(0, pCalculatorDisplay->GetMaxDigitsCalledCount());
|
VERIFY_IS_LESS_THAN(0, pCalculatorDisplay->GetMaxDigitsCalledCount());
|
||||||
}
|
}
|
||||||
|
|
||||||
void SerialzieAndDeSerialize()
|
void SerializeAndDeSerialize()
|
||||||
{
|
{
|
||||||
auto serializedCommands = m_calculatorManager->SerializeCommands();
|
auto serializedCommands = m_calculatorManager->SerializeCommands();
|
||||||
auto serializedMemory = m_calculatorManager->GetSerializedMemory();
|
auto serializedMemory = m_calculatorManager->GetSerializedMemory();
|
||||||
|
@ -278,7 +278,7 @@ namespace CalculatorManagerTest
|
||||||
auto savedPrimary = m_calculatorDisplayTester->GetPrimaryDisplay();
|
auto savedPrimary = m_calculatorDisplayTester->GetPrimaryDisplay();
|
||||||
auto savedExpression = m_calculatorDisplayTester->GetExpression();
|
auto savedExpression = m_calculatorDisplayTester->GetExpression();
|
||||||
auto savedMemory = m_calculatorDisplayTester->GetMemorizedNumbers();
|
auto savedMemory = m_calculatorDisplayTester->GetMemorizedNumbers();
|
||||||
SerialzieAndDeSerialize();
|
SerializeAndDeSerialize();
|
||||||
VERIFY_ARE_EQUAL(savedPrimary, m_calculatorDisplayTester->GetPrimaryDisplay());
|
VERIFY_ARE_EQUAL(savedPrimary, m_calculatorDisplayTester->GetPrimaryDisplay());
|
||||||
VERIFY_ARE_EQUAL(savedExpression, m_calculatorDisplayTester->GetExpression());
|
VERIFY_ARE_EQUAL(savedExpression, m_calculatorDisplayTester->GetExpression());
|
||||||
auto loadedMemory = m_calculatorDisplayTester->GetMemorizedNumbers();
|
auto loadedMemory = m_calculatorDisplayTester->GetMemorizedNumbers();
|
||||||
|
@ -889,7 +889,7 @@ namespace CalculatorManagerTest
|
||||||
VerifyPersistence();
|
VerifyPersistence();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 1 + 2 then serialize and deserialze 3 times
|
// 1 + 2 then serialize and deserialize 3 times
|
||||||
// Check if the values are persisted correctly
|
// Check if the values are persisted correctly
|
||||||
void CalculatorManagerTest::CalculatorManagerTestSerializeMultiple()
|
void CalculatorManagerTest::CalculatorManagerTestSerializeMultiple()
|
||||||
{
|
{
|
||||||
|
@ -915,7 +915,7 @@ namespace CalculatorManagerTest
|
||||||
Command commands[] = { Command::Command1, Command::CommandDIV, Command::Command3, Command::CommandEQU, Command::CommandNULL };
|
Command commands[] = { Command::Command1, Command::CommandDIV, Command::Command3, Command::CommandEQU, Command::CommandNULL };
|
||||||
ExecuteCommands(commands);
|
ExecuteCommands(commands);
|
||||||
|
|
||||||
SerialzieAndDeSerialize();
|
SerializeAndDeSerialize();
|
||||||
|
|
||||||
Command commands2[] = { Command::CommandMUL, Command::Command3, Command::CommandEQU, Command::CommandNULL };
|
Command commands2[] = { Command::CommandMUL, Command::Command3, Command::CommandEQU, Command::CommandNULL };
|
||||||
ExecuteCommands(commands2);
|
ExecuteCommands(commands2);
|
||||||
|
@ -944,7 +944,7 @@ namespace CalculatorManagerTest
|
||||||
wstring primaryDisplay = pCalculatorDisplay->GetPrimaryDisplay();
|
wstring primaryDisplay = pCalculatorDisplay->GetPrimaryDisplay();
|
||||||
wstring expressionDisplay = pCalculatorDisplay->GetExpression();
|
wstring expressionDisplay = pCalculatorDisplay->GetExpression();
|
||||||
|
|
||||||
SerialzieAndDeSerialize();
|
SerializeAndDeSerialize();
|
||||||
|
|
||||||
vector<wstring> memorizedNumbersAfterDeSerialize = pCalculatorDisplay->GetMemorizedNumbers();
|
vector<wstring> memorizedNumbersAfterDeSerialize = pCalculatorDisplay->GetMemorizedNumbers();
|
||||||
wstring primaryDisplayAfterDeSerialize = pCalculatorDisplay->GetPrimaryDisplay();
|
wstring primaryDisplayAfterDeSerialize = pCalculatorDisplay->GetPrimaryDisplay();
|
||||||
|
@ -975,7 +975,7 @@ namespace CalculatorManagerTest
|
||||||
primaryDisplay = pCalculatorDisplay->GetPrimaryDisplay();
|
primaryDisplay = pCalculatorDisplay->GetPrimaryDisplay();
|
||||||
expressionDisplay = pCalculatorDisplay->GetExpression();
|
expressionDisplay = pCalculatorDisplay->GetExpression();
|
||||||
|
|
||||||
SerialzieAndDeSerialize();
|
SerializeAndDeSerialize();
|
||||||
|
|
||||||
memorizedNumbersAfterDeSerialize = pCalculatorDisplay->GetMemorizedNumbers();
|
memorizedNumbersAfterDeSerialize = pCalculatorDisplay->GetMemorizedNumbers();
|
||||||
primaryDisplayAfterDeSerialize = pCalculatorDisplay->GetPrimaryDisplay();
|
primaryDisplayAfterDeSerialize = pCalculatorDisplay->GetPrimaryDisplay();
|
||||||
|
@ -1016,7 +1016,7 @@ namespace CalculatorManagerTest
|
||||||
primaryDisplay = pCalculatorDisplay->GetPrimaryDisplay();
|
primaryDisplay = pCalculatorDisplay->GetPrimaryDisplay();
|
||||||
expressionDisplay = pCalculatorDisplay->GetExpression();
|
expressionDisplay = pCalculatorDisplay->GetExpression();
|
||||||
|
|
||||||
SerialzieAndDeSerialize();
|
SerializeAndDeSerialize();
|
||||||
|
|
||||||
memorizedNumbersAfterDeSerialize = pCalculatorDisplay->GetMemorizedNumbers();
|
memorizedNumbersAfterDeSerialize = pCalculatorDisplay->GetMemorizedNumbers();
|
||||||
primaryDisplayAfterDeSerialize = pCalculatorDisplay->GetPrimaryDisplay();
|
primaryDisplayAfterDeSerialize = pCalculatorDisplay->GetPrimaryDisplay();
|
||||||
|
|
|
@ -439,7 +439,7 @@ namespace CalculatorUnitTests
|
||||||
12. octal numbers
|
12. octal numbers
|
||||||
13. very large number
|
13. very large number
|
||||||
14. number with some escape characters in b/w like ",/. \n\r ", '"
|
14. number with some escape characters in b/w like ",/. \n\r ", '"
|
||||||
15. expression involving sin, cos or other mathematic functions
|
15. expression involving sin, cos or other mathematical functions
|
||||||
16. expression having more than one operator in b/w operands
|
16. expression having more than one operator in b/w operands
|
||||||
17. expression involving open and close parenthesis (, )
|
17. expression involving open and close parenthesis (, )
|
||||||
|
|
||||||
|
@ -483,25 +483,25 @@ namespace CalculatorUnitTests
|
||||||
void CopyPasteManagerTest::ValidateProgrammerHexPasteExpressionTest()
|
void CopyPasteManagerTest::ValidateProgrammerHexPasteExpressionTest()
|
||||||
{
|
{
|
||||||
String^ qwordPositiveInput[] = { L"123", L"123+456", L"1,234", L"1 2 3", L"1'2'3'4", L"1_2_3_4", L"12345e-23"/*note: here is considered as E of hex*/, L"\n\r1,234\n", L"\f\n1+2\t\r\v\x85", L"\f\n1+2\t\r\v\x85", L"\n 1+\n2 ", L"e+234", L"1\"2", L"(123)+(456)", L"abcdef", L"ABab", L"ABCDF21abc41a"/*within boundary*/, L"0x1234", L"0xab12", L"0X1234", L"AB12h", L"BC34H", L"1234u", L"1234ul", L"1234ULL", L"2+2=", L"2+2= " };
|
String^ qwordPositiveInput[] = { L"123", L"123+456", L"1,234", L"1 2 3", L"1'2'3'4", L"1_2_3_4", L"12345e-23"/*note: here is considered as E of hex*/, L"\n\r1,234\n", L"\f\n1+2\t\r\v\x85", L"\f\n1+2\t\r\v\x85", L"\n 1+\n2 ", L"e+234", L"1\"2", L"(123)+(456)", L"abcdef", L"ABab", L"ABCDF21abc41a"/*within boundary*/, L"0x1234", L"0xab12", L"0X1234", L"AB12h", L"BC34H", L"1234u", L"1234ul", L"1234ULL", L"2+2=", L"2+2= " };
|
||||||
String^ qwordNegativeInput[] = { L"+123", L"1.23"/*floating number*/, L"1''2", L"'123", L"123'", L"1__2", L"_123", L"123_", L"-133", L"1.2e+023", L"1.2e23"/*unsigned exponent*/, L"xyz", L"ABCDEF21abc41abc7"/*outside boundary of 16 digitis*/, L"SIN(2)", L"123+-234", L"1234x", L"A0x1234", L"0xx1234", L"1234uu", L"1234ulll", L"2+2==", L"2=+2" };
|
String^ qwordNegativeInput[] = { L"+123", L"1.23"/*floating number*/, L"1''2", L"'123", L"123'", L"1__2", L"_123", L"123_", L"-133", L"1.2e+023", L"1.2e23"/*unsigned exponent*/, L"xyz", L"ABCDEF21abc41abc7"/*outside boundary of 16 digits*/, L"SIN(2)", L"123+-234", L"1234x", L"A0x1234", L"0xx1234", L"1234uu", L"1234ulll", L"2+2==", L"2=+2" };
|
||||||
|
|
||||||
ASSERT_POSITIVE_TESTCASES(ValidateProgrammerHexQwordPasteExpression, qwordPositiveInput);
|
ASSERT_POSITIVE_TESTCASES(ValidateProgrammerHexQwordPasteExpression, qwordPositiveInput);
|
||||||
ASSERT_NEGATIVE_TESTCASES(ValidateProgrammerHexQwordPasteExpression, qwordNegativeInput);
|
ASSERT_NEGATIVE_TESTCASES(ValidateProgrammerHexQwordPasteExpression, qwordNegativeInput);
|
||||||
|
|
||||||
String^ dwordPositiveInput[] = { L"123", L"123+456", L"1,234", L"1 2 3", L"1'2'3'4", L"1_2_3_4", L"12345e-23"/*note: here is considered as E of hex*/, L"\n\r1,234\n", L"\f\n1+2\t\r\v\x85", L"\n 1+\n2 ", L"e+234", L"1\"2", L"(123)+(456)", L"abcdef", L"ABab", L"ABCD123a"/*within boundary*/, L"0x1234", L"0xab12", L"0X1234", L"AB12h", L"BC34H", L"1234u", L"1234ul", L"1234ULL" };
|
String^ dwordPositiveInput[] = { L"123", L"123+456", L"1,234", L"1 2 3", L"1'2'3'4", L"1_2_3_4", L"12345e-23"/*note: here is considered as E of hex*/, L"\n\r1,234\n", L"\f\n1+2\t\r\v\x85", L"\n 1+\n2 ", L"e+234", L"1\"2", L"(123)+(456)", L"abcdef", L"ABab", L"ABCD123a"/*within boundary*/, L"0x1234", L"0xab12", L"0X1234", L"AB12h", L"BC34H", L"1234u", L"1234ul", L"1234ULL" };
|
||||||
String^ dwordNegativeInput[] = { L"+123", L"1.23"/*floating number*/, L"1''2", L"'123", L"123'", L"1__2", L"_123", L"123_", L"-133", L"1.2e+023", L"1.2e23"/*unsigned exponent*/, L"xyz", L"ABCD123ab"/*outside boundary of 8 digitis*/, L"SIN(2)", L"123+-234", L"1234x", L"A0x1234", L"0xx1234", L"1234uu", L"1234ulll" };
|
String^ dwordNegativeInput[] = { L"+123", L"1.23"/*floating number*/, L"1''2", L"'123", L"123'", L"1__2", L"_123", L"123_", L"-133", L"1.2e+023", L"1.2e23"/*unsigned exponent*/, L"xyz", L"ABCD123ab"/*outside boundary of 8 digits*/, L"SIN(2)", L"123+-234", L"1234x", L"A0x1234", L"0xx1234", L"1234uu", L"1234ulll" };
|
||||||
|
|
||||||
ASSERT_POSITIVE_TESTCASES(ValidateProgrammerHexDwordPasteExpression, dwordPositiveInput);
|
ASSERT_POSITIVE_TESTCASES(ValidateProgrammerHexDwordPasteExpression, dwordPositiveInput);
|
||||||
ASSERT_NEGATIVE_TESTCASES(ValidateProgrammerHexDwordPasteExpression, dwordNegativeInput);
|
ASSERT_NEGATIVE_TESTCASES(ValidateProgrammerHexDwordPasteExpression, dwordNegativeInput);
|
||||||
|
|
||||||
String^ wordPositiveInput[] = { L"123", L"13+456", L"1,34", L"12 3", L"1'2'3'4", L"1_2_3_4", L"15e-23"/*note: here is considered as E of hex*/, L"\r1", L"\n\r1,4", L"\n1,4\n", L"\f\n1+2\t\r\v", L"\n 1+\n2 ", L"e+24", L"1\"2", L"(23)+(4)", L"aef", L"ABab", L"A1a3"/*within boundary*/, L"0x1234", L"0xab12", L"0X1234", L"AB12h", L"BC34H", L"1234u", L"1234ul", L"1234ULL" };
|
String^ wordPositiveInput[] = { L"123", L"13+456", L"1,34", L"12 3", L"1'2'3'4", L"1_2_3_4", L"15e-23"/*note: here is considered as E of hex*/, L"\r1", L"\n\r1,4", L"\n1,4\n", L"\f\n1+2\t\r\v", L"\n 1+\n2 ", L"e+24", L"1\"2", L"(23)+(4)", L"aef", L"ABab", L"A1a3"/*within boundary*/, L"0x1234", L"0xab12", L"0X1234", L"AB12h", L"BC34H", L"1234u", L"1234ul", L"1234ULL" };
|
||||||
String^ wordNegativeInput[] = { L"+123", L"1.23"/*floating number*/, L"1''2", L"'123", L"123'", L"1__2", L"_123", L"123_", L"-133", L"1.2e+023", L"1.2e23"/*unsigned exponent*/, L"xyz", L"A1a3b"/*outside boundary of 4 digitis*/, L"SIN(2)", L"123+-234", L"1234x", L"A0x1234", L"0xx1234", L"1234uu", L"1234ulll" };
|
String^ wordNegativeInput[] = { L"+123", L"1.23"/*floating number*/, L"1''2", L"'123", L"123'", L"1__2", L"_123", L"123_", L"-133", L"1.2e+023", L"1.2e23"/*unsigned exponent*/, L"xyz", L"A1a3b"/*outside boundary of 4 digits*/, L"SIN(2)", L"123+-234", L"1234x", L"A0x1234", L"0xx1234", L"1234uu", L"1234ulll" };
|
||||||
|
|
||||||
ASSERT_POSITIVE_TESTCASES(ValidateProgrammerHexWordPasteExpression, wordPositiveInput);
|
ASSERT_POSITIVE_TESTCASES(ValidateProgrammerHexWordPasteExpression, wordPositiveInput);
|
||||||
ASSERT_NEGATIVE_TESTCASES(ValidateProgrammerHexWordPasteExpression, wordNegativeInput);
|
ASSERT_NEGATIVE_TESTCASES(ValidateProgrammerHexWordPasteExpression, wordNegativeInput);
|
||||||
|
|
||||||
String^ bytePositiveInput[] = { L"13", L"13+6", L"1,4", L"2 3", L"1'2", L"1_2", L"5e-3"/*note: here is considered as E of hex*/, L"\r1", L"a", L"ab", L"A1"/*within boundary*/, L"0x12", L"0xab", L"0X12", L"A9h", L"B8H", L"12u", L"12ul", L"12ULL" };
|
String^ bytePositiveInput[] = { L"13", L"13+6", L"1,4", L"2 3", L"1'2", L"1_2", L"5e-3"/*note: here is considered as E of hex*/, L"\r1", L"a", L"ab", L"A1"/*within boundary*/, L"0x12", L"0xab", L"0X12", L"A9h", L"B8H", L"12u", L"12ul", L"12ULL" };
|
||||||
String^ byteNegativeInput[] = { L"+3", L"1.2"/*floating number*/, L"1''2", L"'12", L"12'", L"1__2", L"_12", L"12_", L"-3", L"1.1e+02", L"1.2e3"/*unsigned exponent*/, L"xz", L"A3a"/*outside boundary of 2 digitis*/, L"SIN(2)", L"13+-23", L"12x", L"A0x1", L"0xx12", L"12uu", L"12ulll" };
|
String^ byteNegativeInput[] = { L"+3", L"1.2"/*floating number*/, L"1''2", L"'12", L"12'", L"1__2", L"_12", L"12_", L"-3", L"1.1e+02", L"1.2e3"/*unsigned exponent*/, L"xz", L"A3a"/*outside boundary of 2 digits*/, L"SIN(2)", L"13+-23", L"12x", L"A0x1", L"0xx12", L"12uu", L"12ulll" };
|
||||||
|
|
||||||
ASSERT_POSITIVE_TESTCASES(ValidateProgrammerHexBytePasteExpression, bytePositiveInput);
|
ASSERT_POSITIVE_TESTCASES(ValidateProgrammerHexBytePasteExpression, bytePositiveInput);
|
||||||
ASSERT_NEGATIVE_TESTCASES(ValidateProgrammerHexBytePasteExpression, byteNegativeInput);
|
ASSERT_NEGATIVE_TESTCASES(ValidateProgrammerHexBytePasteExpression, byteNegativeInput);
|
||||||
|
|
|
@ -79,7 +79,7 @@ namespace CalculatorUnitTests
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create 3 separate instances of Calulator in different modes
|
// Create 3 separate instances of Calculator in different modes
|
||||||
TEST_METHOD(InitializeMultipleModeInstancesTest)
|
TEST_METHOD(InitializeMultipleModeInstancesTest)
|
||||||
{
|
{
|
||||||
std::vector<StandardCalculatorViewModel^> viewModels(3);
|
std::vector<StandardCalculatorViewModel^> viewModels(3);
|
||||||
|
@ -584,7 +584,7 @@ namespace CalculatorUnitTests
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Perform calculations on 3 separate instances of Calcuator and verify that their Memory List items are maintained separately
|
// Perform calculations on 3 separate instances of Calculator and verify that their Memory List items are maintained separately
|
||||||
TEST_METHOD(MultipleModesMemoryAddItemTest)
|
TEST_METHOD(MultipleModesMemoryAddItemTest)
|
||||||
{
|
{
|
||||||
std::vector<StandardCalculatorViewModel^> viewModels(3);
|
std::vector<StandardCalculatorViewModel^> viewModels(3);
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
developers. However, you can modify these parameters to modify the behavior of the .NET Native
|
developers. However, you can modify these parameters to modify the behavior of the .NET Native
|
||||||
optimizer.
|
optimizer.
|
||||||
|
|
||||||
Runtime Directives are documented at http://go.microsoft.com/fwlink/?LinkID=391919
|
Runtime Directives are documented at https://go.microsoft.com/fwlink/?LinkID=391919
|
||||||
|
|
||||||
To fully enable reflection for App1.MyClass and all of its public/private members
|
To fully enable reflection for App1.MyClass and all of its public/private members
|
||||||
<Type Name="App1.MyClass" Dynamic="Required All"/>
|
<Type Name="App1.MyClass" Dynamic="Required All"/>
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
<TypeInstantiation Name="App1.AppClass" Arguments="System.Int32" Activate="Required Public" />
|
<TypeInstantiation Name="App1.AppClass" Arguments="System.Int32" Activate="Required Public" />
|
||||||
|
|
||||||
Using the Namespace directive to apply reflection policy to all the types in a particular namespace
|
Using the Namespace directive to apply reflection policy to all the types in a particular namespace
|
||||||
<Namespace Name="DataClasses.ViewModels" Seralize="All" />
|
<Namespace Name="DataClasses.ViewModels" Serialize="All" />
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
|
<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
|
||||||
|
|
|
@ -25,7 +25,7 @@ using namespace Windows::UI::Xaml::Interop;
|
||||||
using namespace Windows::UI::Xaml::Media;
|
using namespace Windows::UI::Xaml::Media;
|
||||||
using namespace Windows::UI::Xaml::Navigation;
|
using namespace Windows::UI::Xaml::Navigation;
|
||||||
|
|
||||||
// The Blank Application template is documented at http://go.microsoft.com/fwlink/?LinkId=402347&clcid=0x409
|
// The Blank Application template is documented at https://go.microsoft.com/fwlink/?LinkId=402347&clcid=0x409
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Initializes the singleton application object. This is the first line of authored code
|
/// Initializes the singleton application object. This is the first line of authored code
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<add key="disableSourceControlIntegration" value="true" />
|
<add key="disableSourceControlIntegration" value="true" />
|
||||||
</solution>
|
</solution>
|
||||||
<packageSources>
|
<packageSources>
|
||||||
<add key="NuGet official package source" value="https://nuget.org/api/v2/" />
|
<add key="NuGet official package source" value="https://api.nuget.org/v3/index.json" />
|
||||||
<add key="EEApps" value="https://eeapps.blob.core.windows.net/eeapps/index.json" />
|
<add key="EEApps" value="https://eeapps.blob.core.windows.net/eeapps/index.json" />
|
||||||
</packageSources>
|
</packageSources>
|
||||||
<config>
|
<config>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue