PowerToys/doc/devdocs/settingsv2/project-overview.md
Alekhya 18eb6b4ffd
Dev documentation of SettingsV2 (#7335)
* created a folder for settings and added an overview, hotkey information

* basic structure for communication between settings and runner

* Added information about the IPC communication between settings and runner

* Added information about the communication between the settings process and modules

* Added details on backward compatibility

* brief overview on settings utils

* added an overview of the viewmodels and anomalies

* minor modifications

* Settings v2 dev docs (#7334)

* Added settings architecture and tech stack dev docs

* Added telemetry and updated architecture docs for settings v2

* Fix image link in ui_architecture markdown

* Added table of contents for settings v2

* Correct file path for ui architecture image

* nit fix in table of contents heading

* Add doc for xaml island tweaks

Co-authored-by: Divyansh Srivastava <somm14divi@gmail.com>
2020-10-20 14:28:06 -07:00

1.2 KiB

Overview

Settingsv2 is WPF .net core desktop application. It uses the WindowsXamlHost control from the Windows Community Toolkit to host UWP controls from WinUI3 library. More details about WinUI can be found here.

Settings V2 Project structure

The Settings project is a XAML island based project which follows the MVVM architectural pattern where the graphical user interface is separated from the view models.

UI Components:

The Settings.UI project contains the xaml files for each of the UI components. It also contains the Hotkey logic for the settings control.

Viewmodels:

The Settings.UI.Lib project contains the data that is to be rendered by the UI components.

Settings Runner:

The function of the settings runner project is to communicate all changes that the user makes in the user interface, to the runner so that it can be dispatched and reflected in all the modules.