# Windows Calculator ## Docs - [ApplicationViewModel](https://mintlify.wiki/microsoft/calculator/api/application-viewmodel.md): Core ViewModel that manages the calculator's application state, mode navigation, and Always-on-Top functionality - [CCalcEngine](https://mintlify.wiki/microsoft/calculator/api/calc-engine.md): Core calculation engine for Windows Calculator with support for infinite precision arithmetic - [CalculatorManager](https://mintlify.wiki/microsoft/calculator/api/calculator-manager.md): Main calculator management class that coordinates calculation engines, memory, and display callbacks - [Currency Converter](https://mintlify.wiki/microsoft/calculator/api/currency-converter.md): Currency conversion functionality with network data fetching and mock data support in development builds - [DateCalculatorViewModel](https://mintlify.wiki/microsoft/calculator/api/date-calculator-viewmodel.md): ViewModel for date difference calculations and date offset operations - [Graph Analyzer](https://mintlify.wiki/microsoft/calculator/api/graph-analyzer.md): IGraphAnalyzer interface and related types for analyzing mathematical functions - [Graphing API Interfaces](https://mintlify.wiki/microsoft/calculator/api/graphing-interfaces.md): Overview of the common graphing API interfaces used in Windows Calculator - [RatPack (Rational Pack)](https://mintlify.wiki/microsoft/calculator/api/ratpack.md): Infinite precision arithmetic library for rational number calculations - [StandardCalculatorViewModel](https://mintlify.wiki/microsoft/calculator/api/standard-calculator-viewmodel.md): ViewModel for Standard, Scientific, and Programmer calculator modes with expression handling, memory management, and number base conversions - [UnitConverter](https://mintlify.wiki/microsoft/calculator/api/unit-converter.md): Core class for unit conversion operations with support for standard units and currency conversion - [UnitConverterViewModel](https://mintlify.wiki/microsoft/calculator/api/unit-converter-viewmodel.md): ViewModel for unit conversion across multiple categories including currency, volume, length, weight, temperature, energy, and more - [Model Layer](https://mintlify.wiki/microsoft/calculator/architecture/model-layer.md): The CalcManager calculation engine including CalculatorManager, CalcEngine, and RatPack - [MVVM Design Pattern](https://mintlify.wiki/microsoft/calculator/architecture/mvvm-pattern.md): Understanding the Model-View-ViewModel architecture pattern in Windows Calculator - [Architecture Overview](https://mintlify.wiki/microsoft/calculator/architecture/overview.md): High-level architecture of Windows Calculator - a C++/CX UWP application using the MVVM design pattern - [View Layer](https://mintlify.wiki/microsoft/calculator/architecture/view-layer.md): XAML-based user interface layer including UserControls, VisualStates, and data binding - [ViewModel Layer](https://mintlify.wiki/microsoft/calculator/architecture/viewmodel-layer.md): Data binding, PropertyChanged events, and the ViewModel implementation in CalcViewModel project - [Code Style Guide](https://mintlify.wiki/microsoft/calculator/contributing/code-style.md): Coding standards and style guidelines for Windows Calculator development - [New Feature Process](https://mintlify.wiki/microsoft/calculator/contributing/feature-process.md): User-centered process for developing new features from pitch to release - [Contribution Guidelines](https://mintlify.wiki/microsoft/calculator/contributing/guidelines.md): Learn how to contribute to Windows Calculator with bug fixes, features, and improvements - [Pull Request Process](https://mintlify.wiki/microsoft/calculator/contributing/pull-requests.md): How to submit and get your pull requests reviewed and merged - [Building the Project](https://mintlify.wiki/microsoft/calculator/development/building.md): Learn how to build Windows Calculator from source using Visual Studio - [Debugging Techniques](https://mintlify.wiki/microsoft/calculator/development/debugging.md): Learn how to debug Windows Calculator effectively using Visual Studio and diagnostic tools - [Running Tests](https://mintlify.wiki/microsoft/calculator/development/testing.md): Learn how to run unit tests and UI tests for Windows Calculator - [Currency Converter](https://mintlify.wiki/microsoft/calculator/features/currency-converter.md): Real-time currency conversion with exchange rates from Bing - [Date Calculator](https://mintlify.wiki/microsoft/calculator/features/date-calculator.md): Calculate differences between dates and add/subtract time periods - [Graphing Calculator](https://mintlify.wiki/microsoft/calculator/features/graphing-mode.md): Plot mathematical functions and analyze graphs with tracing and key features - [History and Memory](https://mintlify.wiki/microsoft/calculator/features/history-memory.md): Calculation history tracking and memory storage capabilities - [Programmer Calculator](https://mintlify.wiki/microsoft/calculator/features/programmer-calculator.md): Binary, hexadecimal, octal, and decimal calculations with bitwise operations - [Scientific Calculator](https://mintlify.wiki/microsoft/calculator/features/scientific-calculator.md): Advanced mathematical operations with order of operations support - [Standard Calculator](https://mintlify.wiki/microsoft/calculator/features/standard-calculator.md): Basic arithmetic operations with immediate evaluation - [Unit Converter](https://mintlify.wiki/microsoft/calculator/features/unit-converter.md): Convert between various units of measurement across multiple categories - [Installation](https://mintlify.wiki/microsoft/calculator/installation.md): Complete installation guide for setting up your Windows Calculator development environment with all prerequisites and tools. - [Introduction](https://mintlify.wiki/microsoft/calculator/introduction.md): Windows Calculator is a modern C++ application that provides standard, scientific, and programmer calculator functionality, along with converters and date calculations. - [Quick Start](https://mintlify.wiki/microsoft/calculator/quickstart.md): Get Windows Calculator up and running on your local machine in minutes with this quick start guide.