### Updated `KeyVisual` and `Shortcut` control
- Refactoring `KeyVisual` to remove redundant properties and UI
elements, and using Styles for better customization.
- Shortcut control now shows a "Configure shortcut" label when there's
no shortcut configured.
### Other changes
- Consolidated converters that were used across pages in `App.xaml.cs`
with consistent naming.
- Renamed templated controls (from `.cs` to `.xaml.cs`) and moving those
to the `Controls` root folder vs. individual folders for a better
overview.
<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist
Closes#39520Closes#32944
---------
Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>
Co-authored-by: Jaylyn Barbee <51131738+Jaylyn-Barbee@users.noreply.github.com>
* Allow custom preset's dimensions to be blank in the UI while still persisted as 0.
* XAML formatting - reorder namespaces.
* Add "(auto)" text to zero-value Width/Height in Settings. Ensure Width and Height fields in flyout are formatted to empty when their value is 0.
* Fix issue with missing Image Resizer unit and fit information in settings description.
* Fix accessibility issues on Edit and Remove buttons. Fix various issues and refactor view model and ImageSize. New resources for accessibility text formats.
* Fix unit test because of change to new preset width and height. Fix 2 unit tests having incorrect expected/actual orderings.
* Post-review update: accessibility strings now formatted within the converter, instead of via format strings; simplified encoder GUID collection declaration and retrieval.
* Minor example text fix.
* ZoomIt initial code dump
* Change vcxproj to normalize dependency versions
* Fix code quality to build
* Add to PowerToys solution
* Clean out C-style casts
* Fix some more analyzer errors
* Constexpr a function
* Disable some warnings locally that it seemed better not to touch
* Add ZoomIt module interface
* Add GPO
* Add Settings page with Enable button
* Output as PowerToys.ZoomIt.exe
* Extract ZoomIt Settings definition to its own header
* Make ZoomItModuleInterface build with ZoomItSettings too
* WinRT C++ interop for ZoomItSettings
* From Registry To PowerToys Json
* Properly fix const_cast analyzer error
* Initial Settings page loading from registry
* Zoom mode settings
* Save settings
* Add file picker and DemoType file support
* Remaining DemoType settings
* Have ZoomIt properly reloading Settings and exiting
* Remove context menu entries for Options and Exit
* ZoomIt simple Break Options
* Break advanced options
* Simple Record settings
* Record Microphone setting
* Fix break background file picker title
* Font setting
* Fix build issues after merge
* Add ZoomIt conflict warning to Settings
* Exclude Eula from spell checking
* Fix spellcheck errors
* Fix spell check for accelerated menu items
* Remove cursor files from spellcheck. They're binary
* Fix forbidden patterns
* Fix XAML style
* Fix C# analyzers
* Fix signing
* Also sign module interface dll
* Use actual ZoomIt icon
* Add OOBE page for ZoomIt
* ZoomIt image for Settings
* Flyout and Dashboard entries
* Fix type speed slider labels
* Correctly load default Font
* Correctly register shortcuts on ZoomIt startup first run
* Fix modifier keys not changing until restart
* Show MsgBox on taken shortcut
* Start PowerToys Settings
* Normalize ZoomIt file properties with rest of PowerToys
* Add attribution
* Add ZoomIt team to Community.md
* More copyright adjustments
* Fix spellcheck
* Fix MsgBox simultaneous instance to the front
* Add mention of capturevideosample code use
* Add ZoomIt to process lists
* Add telemetry
* Add logging
* React to gpo
* Normalize code to space identation
* Fix installer build
* Localize percent setting
* Fix XAML styling
* Update src/settings-ui/Settings.UI/Strings/en-us/Resources.resw
Co-authored-by: Stefan Markovic <57057282+stefansjfw@users.noreply.github.com>
* Fix spellcheck
* One more spellcheck fix
* Integrate LiveDraw feature changes from upstream
* Fix name reuse in same scope
* Fix c-style casts
* Also register LIVEDRAW_HOTKEY
* Fix newLiveZoomToggleKey
* Update LiveZoom description in Settings to take LiveDraw into account
* Fix spellcheck
* Fix more spellcheck
* Fix Sysinternals capitalization
* Fix ARM64 Debug build
* Support Sysinternals build (#36873)
* Remove unneeded files
* Make build compatible with Sysinternals
* Separate PowerToys ZoomIt product name (#36887)
* Separate PowerToys ZoomIt product name
To help maintain the Sysinternals branding in the standalone version.
* Clarify branding-related includes
* Remove ZoomIt.sln
* Add foxmsft to spell-check names
* Add ZoomIt to README
* Add ZoomIt to GH templates
* Add ZoomIt events to DATA_AND_PRIVACY.md
* Remove publish_config.json
* Remove publish_config.json from vcxproj too
---------
Co-authored-by: Mark Russinovich <markruss@microsoft.com>
Co-authored-by: Alex Mihaiuc <69110671+foxmsft@users.noreply.github.com>
Co-authored-by: John Stephens <johnstep@microsoft.com>
Co-authored-by: Stefan Markovic <57057282+stefansjfw@users.noreply.github.com>
* upgrade time!
* looks like two got orphaned :/
* Fix Measure Tool window style to remove title bar and borders
* Fix spellchecker
* was tab :(
* Update src/modules/MeasureTool/MeasureToolUI/MeasureToolXAML/MainWindow.xaml.cs
Co-authored-by: Dustin L. Howett <duhowett@microsoft.com>
* added comment about CsWinRT upgrade to verify on next upgrade
---------
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
Co-authored-by: Dustin L. Howett <duhowett@microsoft.com>
Add support for ImageresizerSizes property
- do not use ints for enums in ImageSize struct
- add required converters
- extend setAdditional functionality
- add samples
Co-authored-by: Andrey Nekrasov <1828123+yuyoyuppe@users.noreply.github.com>
* Working UI update with just runProgram Path and isRunProgram
* First working, basic. no args or path, or setting change detections.
* Revert and fixed.
* Some clean up, working with config file monitor
* Args and Start-in should be working.
* File monitor, quotes, xaml screens one
* Fixed enable/disable toogle from XAML
* Code cleanup.
* Betting logging.
* Cleanup, start of RunProgramDescriptor and usage of run_non_elevated/run_elevated
* Code moved to KeyboardEventHandlers, but not enabled since it won't build as is, needs elevation.h. Other testing..
* Key chords working, pretty much
* Added gui for elevation level, need to refresh on change...
* f: include shellapi.h and reference wil in KBMEL
* run_elevated/run_non_elevated sorted out. Working!
* Removed lots of old temp code.
* Fix some speling errors.
* Cleanup before trying to add a UI for the chord
* Added "DifferentUser" option
* Closer on UI for chords.
* Better UI, lots working.
* Clean up
* Text for “Allow chords” – needs to look better…
* Bugs and clean-up
* Cleanup
* Refactor and clean up.
* More clean up
* Some localization.
* Don’t show “Allow chords“ to the “to” shortcut
* Maybe better foreground after opening new app
* Better chord matching.
* Runprogram fix for stealing existing shortcut.
* Better runProgram stuff
* Temp commit
* Working well
* Toast test
* More toast
* Added File and Folder picker UI
* Pre-check on run program file exists.
* Refactor to SetupRunProgramControls
* Open URI UI is going.
* Open URI working well
* Open URI stuff working well
* Allowed AppSpecific shortcut and fixed backup/restore shortcut dups
* Fixed settings screen
* Start of code to find by name...
* UI fixed
* Small fixes
* Some single edit code working.
* UI getting better.
* Fixes
* Fixed and merge from main
* UI updates
* UI updates.
* UI stuff
* Fixed crash from move ui item locations.
* Fixed crash from move ui item locations.
* Added delete confirm
* Basic sound working.
* Localized some stuff
* Added sounds
* Better experiance when shortcut is in use.
* UI tweaks
* Fixed KBM ui for unicode shortcut not having ","
* Some clean up
* Cleanup
* Cleanup
* Fixed applyXamlStyling
* Added back stuff lost in merge
* applyXamlStyling, again
* Fixed crash on change from non shortcut to shortcut
* Update src/modules/keyboardmanager/KeyboardManagerEngineTest/KeyboardManagerEngineTest.vcxproj
* Fixed some spelling type issues.
* ImplementationLibrary 231216
* Comment bump to see if the Microsoft.Windows.ImplementationLibrary version thing gets picked up
* Correct, Microsoft.Windows.ImplementationLibrary, finally?
* Fixed two test that failed because we now allow key-chords.
* Removed shortcut sounds.
* use original behavior when "allow chords" is off in shortcut window
* fix crash when editing a shortcut that has apps specified for it
* split KBM chords with comma on dashboard page
* Fix some spelling items.
* More "spelling"
* Fix XAML styling
* align TextBlock and ToggleSwitch
* fix cutoff issue at the top
* increase ComboBox width
* Added *Unsupported* for backwards compat on config of KBM
* fix spellcheck
* Fix crash on Remap key screen
* Fixed Remap Keys ComboBox width too short.
* Removed KBM Single Edit mode, fixed crash.
* Fix Xaml with xaml cops
* Fix crash on setting "target app" for some types of shortcuts.
* Space to toggle chord, combobox back
* fix spellcheck
* fix some code nits
* Code review updates.
* Add exclusions to the bug report tool
* Code review and kill CloseAndEndTask
* Fix alignment / 3 comboboxes per row
* Fix daily telemetry events to exclude start app and open URI
* Add chords and remove app start and open uri from config telemetry
* comma instead of plus in human readable shortcut telemetry data
* Code review, restore default-old state when new row added in KBM
* Code review, restore default-old state when new row added in KBM, part 2
* Still show target app on Settings
* Only allow enabling chords for origin shortcuts
---------
Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
* Dashboard: modifying page content + adding SW version button.
* Visual tweaks and minor viewmodel changes
* Updated spacing
* Adding Settings icon
* Settiing the Dashboard page as the default one. Adding functionality to switch to settings pages from the Dashboard page. Localizing texts.
* fixing csproj file
* Reimplementing Active modules handling, showing only the active modules (and not having invisible inactive modules).
* Removing unneccessary binding
* Fix text wrapping
* Adding Registry previewer launch, adding activation mode for FindMyMouse and QuickAccent, modify File Locksmith description.
* Spell checker fix typo
* Adding GPO-blocked state, modifying buttons: adding description, icon.
* Modifying dashboard button layout
* Use SettingsCard instead of button
* Restructuring the dashboard panel
* Removing togglebuttons from the left panel. Showing only active modules. Adding key remappings (to KBM)
* Removing settings buttons, removing descriptions, icons from buttons. Add update of remapped keys, shortcuts.
* Refactoring dashboard
* Making list always visible and fixing scrolling behavior
* Adding background gradient to cards
* Removing keyboard manager's key mappings, minor changes in texts, fixing enabled state when GPO-enabled.
* Use ListView instead of ItemsRepeater
* Updates
* removing right panel with all modules. Extending "left" panel with toggleswitches, showing all modules.
* Separate lists
* Adding Flyout with key remappings for KBM module, adding IsLocked property, icons
* Visual tweaks
* Tweaks
* Fixing lock icon margin
* Minor fixes.
* Removing unused resources
* Make Dashboard default when coming from the OOBE General
* Removed the Previous, Next Layout buttons from FancyZones. Added activation information
---------
Co-authored-by: Niels Laute <niels.laute@live.nl>
* Flatten everything and succeed build
* Figure out Settings assets
* Remove UseCommonOutputDirectory tag
* Proper settings app path
* [VCM] Fix assets location
* Fix some runtime paths
* [RegistryPreview]Use MRTCore specific pri file
* [Hosts]Use MRTCore specific pri file
* [Settings]Use MRTCore specific pri file
* [Peek]Use MRTCore specific pri file
* [FileLocksmith]Use MRTCore specific pri file
* [ScreenRuler]Use MRTCore specific pri file
* [PowerRename]Use MRTCore specific pri file
* [Peek]Move assets to own folder
* [FileLocksmith] Use own Assets path
* [Hosts]Use own assets folder
* [PowerRename]Use own assets dir
* [MeasureTool] Use its own assets folder
* [ImageResizer]Use its own assets path
* Fix spellcheck
* Fix tab instead of space in project files
* Normalize target frameworks and platforms
* Remove WINRT_NO_MAKE_DETECTION flag. No longer needed?
* Fix AOT and Hosts locations
* Fix Dll version differences on dependency
* Add Common.UI.csproj as refernce to fix dll versions
* Update ControlzEx to normalize dll versions
* Update System.Management version to 7.0.2
* Add GPOWrapper to Registry Preview to fix dll versions
* [PTRun]Reference Microsoft.Extensions.Hosting to fix dll versions
* Fix remaining output paths / dll version conflicts
* [KeyboardManager]Executables still on their own directories
* Fix Monaco paths
* WinAppSDK apps get to play outside again
* Enable VCM settings again
* Fix KBM Editor path again
* [Monaco]Set to own Assets dir
* Fix installer preamble; Fix publish. remove unneeded publishes
* Remove Hardlink functions
* Installer builds again (still needs work to work)
* Readd Monaco to spellcheck excludes
* Fix spellcheck and call publish.cmd again
* [Installer] Remove components that don't need own dirs
* [Installer] Refactor Power Launcher
* [Installer] Refactor Color Picker
* [Installer] Refactor Monaco assets
* [Installer]Generate File script no longer needs to remove files
* [Installer]Refactor FileLocksmith
* [Installer] Refactor Hosts
* [Installer]Refactor Image Resizer
* [Installer]Refactor MouseUtils
* [Installer]Refactor MWB
* [Installer]Refactor MeasureTool
* [Installer]Refactor Peek
* [Installer]Refactor PowerRename and registry fixes
* [Installer]Refactor RegistryPreview
* [Installer]Refactor ShortcutGuide
* [Installer]Refactor Settings
* [Installer]Clean up some unused stuff
* [Installer]Clean up stuff for user install
* [Installer]Fix WinUi3Apps wxs
* [Installer]Fix misplaced folders
* [Installer]Move x86 VCM dll to right path
* Fix monaco language list location
* [Installer]Fix VCM directory reference
* [CI]Fix signing
* [Installer] Fix resources folder for release CI
* [ci]Looks like we still ship NLog on PowerToys Run
* [Settings]Add dependency to avoid dll collision with Experimentation
* [RegistryPreview]Move XAML files to own path
* [RegistryPreview]Fix app icon
* [Hosts]Move XAML files to their own path
* [FileLocksmith]Move XAML files to their own path
* [Peek]Move XAML files to own path
* [ScreenRuler]Move XAML files to its own path
* [Settings]Move XAML to its own path
* [ColorPicker]Move Resources to Assets
* [ShortcutGuide]Move svgs to own Assets path
* [Awake]Move images to assets path
* [Runner]Remove debug checks for PowerToys Run assets
* [PTRun]Move images to its own assets path
* [ImageResizer]Icon for context menu on own assets path
* [PowerRename]Move ico to its own path
* Remove unneeded intermediary directories
* Remove further int dirs
* Move tests to its own output path
* Fix spellcheck
* spellcheck: remove warnings
* [CppAnalyzers]Ignore rule in a tool
* [CI]Check if all deps.json files reference same versions
* fix spellcheck
* [ci]Fix task identation
* [ci]Add script to guard against asset conflicts
* [ci]Add more deps.json audit steps in the release build
* Add xbf to spellcheck expects
* Fix typo in asset conflict check scripts
* Fix some more dependency conflicts
* Downgrade CsWinRT to have the same dll version as sdk
* [ci]Do a recursive check for every deps.json
* Fix spellcheck error inside comment
* [ci]Fix asset script error
* [ci]Name deps.json verify tasks a bit better
* [ci]Improve deps json verify script output
* [ci]Update WinRT version to the same running in CI
* Also upgrade CsWinRT in NOTICE.MD
* [PowerRename]Move XAML files to own path
* [Common]Fix Settings executable path
* [ci]Verify there's no xbf files in app directories
* [installer]Fix firewall path
* [Monaco]Move new files to their proper assets path
* [Monaco]Fix paths for new files after merge
* [Feedback]Removed unneeded build conditions
* [Feedback]Clear vcxproj direct reference to frameworks
* [Feedback]RunPlugins name to hold PTRun plugins
* [Feedback]Remove unneeded foreach
* [Feedback]Shortcut Guide svgs with ** in project file
* [Feedback]Fix spellcheck
* [ColorPicker] Restructure to have color names localized
* [ColorPicker] Restrucure code to have localised color names
* Fix analyzer errors
* [ColorPicker] add comments
* Custom color format tweaks
* Delete vs. remove
* Update expect.txt
* [ColorPicker]Support BGR and RGB decimal value formats (#22771)
* ColorPicker add both decimal value formats
* ColorPicker, custom format dialog, resizing columns
* Custom color format tweaks
* Delete vs. remove
* Update expect.txt
* Fix rebase
* Fix error