[FancyZones] Use accent color and theme (#14158)

* use accent color and theme

* typo

* Updated FZ color UX (#14171)

Co-authored-by: Laute <Niels.Laute@philips.com>

* fix resources

* rebase fix

* label updated

Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Laute <Niels.Laute@philips.com>
This commit is contained in:
Davide Giacometti
2021-11-04 15:30:06 +01:00
committed by GitHub
parent 3ead98a770
commit e19ecd2ba1
12 changed files with 172 additions and 57 deletions

View File

@@ -46,6 +46,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library
FancyzonesExcludedApps = new StringProperty();
FancyzonesInActiveColor = new StringProperty(ConfigDefaults.DefaultFancyZonesInActiveColor);
FancyzonesBorderColor = new StringProperty(ConfigDefaults.DefaultFancyzonesBorderColor);
FancyzonesSystemTheme = new BoolProperty(true);
}
[JsonPropertyName("fancyzones_shiftDrag")]
@@ -126,6 +127,9 @@ namespace Microsoft.PowerToys.Settings.UI.Library
[JsonPropertyName("fancyzones_zoneColor")]
public StringProperty FancyzonesInActiveColor { get; set; }
[JsonPropertyName("fancyzones_systemTheme")]
public BoolProperty FancyzonesSystemTheme { get; set; }
// converts the current to a json string.
public string ToJsonString()
{

View File

@@ -88,6 +88,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
_makeDraggedWindowTransparent = Settings.Properties.FancyzonesMakeDraggedWindowTransparent.Value;
_highlightOpacity = Settings.Properties.FancyzonesHighlightOpacity.Value;
_excludedApps = Settings.Properties.FancyzonesExcludedApps.Value;
_systemTheme = Settings.Properties.FancyzonesSystemTheme.Value;
EditorHotkey = Settings.Properties.FancyzonesEditorHotkey.Value;
_windowSwitching = Settings.Properties.FancyzonesWindowSwitching.Value;
NextTabHotkey = Settings.Properties.FancyzonesNextTabHotkey.Value;
@@ -126,6 +127,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
private bool _useCursorPosEditorStartupScreen;
private bool _showOnAllMonitors;
private bool _makeDraggedWindowTransparent;
private bool _systemTheme;
private int _highlightOpacity;
private string _excludedApps;
@@ -520,6 +522,24 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
}
}
public bool SystemTheme
{
get
{
return _systemTheme;
}
set
{
if (value != _systemTheme)
{
_systemTheme = value;
Settings.Properties.FancyzonesSystemTheme.Value = value;
NotifyPropertyChanged();
}
}
}
// For the following setters we use OrdinalIgnoreCase string comparison since
// we expect value to be a hex code.
public string ZoneHighlightColor

View File

@@ -408,7 +408,7 @@
<data name="PowerLauncher_UseCentralizedKeyboardHook.Header" xml:space="preserve">
<value>Use centralized keyboard hook</value>
</data>
<data name="PowerLauncher_UseCentralizedKeyboardHook.Description" xml:space="preserve">
<data name="PowerLauncher_UseCentralizedKeyboardHook.Description" xml:space="preserve">
<value>Try this if there are issues with the shortcut</value>
</data>
<data name="PowerLauncher_ClearInputOnLaunch.Content" xml:space="preserve">
@@ -444,13 +444,13 @@
<value>Excludes an application from snapping to zones and will only react to Windows Snap - add one application name per line</value>
</data>
<data name="FancyZones_HighlightOpacity.Header" xml:space="preserve">
<value>Zone opacity</value>
<value>Opacity</value>
</data>
<data name="FancyZones_HotkeyEditorControl.Header" xml:space="preserve">
<value>Open layout editor</value>
<comment>Shortcut to launch the FancyZones layout editor application</comment>
</data>
<data name="FancyZones_WindowSwitching_GroupSettings.Header" xml:space="preserve">
<data name="FancyZones_WindowSwitching_GroupSettings.Header" xml:space="preserve">
<value>Window switching</value>
</data>
<data name="FancyZones_WindowSwitching_GroupSettings.Description" xml:space="preserve">
@@ -520,10 +520,10 @@
<data name="FancyZones_UseCursorPosEditorStartupScreen.Description" xml:space="preserve">
<value>When using multiple displays</value>
</data>
<data name="FancyZones_LaunchPositionMouse.Content" xml:space="preserve">
<data name="FancyZones_LaunchPositionMouse.Content" xml:space="preserve">
<value>Where the mouse pointer is</value>
</data>
<data name="FancyZones_LaunchPositionScreen.Content" xml:space="preserve">
<data name="FancyZones_LaunchPositionScreen.Content" xml:space="preserve">
<value>With active focus</value>
</data>
<data name="FancyZones_ZoneBehavior_GroupSettings.Header" xml:space="preserve">
@@ -536,7 +536,7 @@
<value>Zones</value>
</data>
<data name="FancyZones_ZoneHighlightColor.Header" xml:space="preserve">
<value>Zone highlight color</value>
<value>Highlight color</value>
</data>
<data name="FancyZones_ZoneSetChangeMoveWindows.Content" xml:space="preserve">
<value>During zone layout changes, windows assigned to a zone will match new size/positions</value>
@@ -595,13 +595,13 @@
<data name="PowerRename_Toggle_ContextMenu.Header" xml:space="preserve">
<value>Show PowerRename in</value>
</data>
<data name="PowerRename_Toggle_ContextMenu.Description" xml:space="preserve">
<data name="PowerRename_Toggle_ContextMenu.Description" xml:space="preserve">
<value>Press shift + right-click on files to open the extended menu</value>
</data>
<data name="PowerRename_Toggle_StandardContextMenu.Content" xml:space="preserve">
<data name="PowerRename_Toggle_StandardContextMenu.Content" xml:space="preserve">
<value>Default and extended context menu</value>
</data>
<data name="PowerRename_Toggle_ExtendedContextMenu.Content" xml:space="preserve">
<data name="PowerRename_Toggle_ExtendedContextMenu.Content" xml:space="preserve">
<value>Extended context menu only</value>
</data>
<data name="PowerRename_Toggle_EnableOnExtendedContextMenu.Description" xml:space="preserve">
@@ -646,10 +646,10 @@
<value>Enable auto-complete for the search and replace fields</value>
</data>
<data name="FancyZones_BorderColor.Header" xml:space="preserve">
<value>Zone border color</value>
<value>Border color</value>
</data>
<data name="FancyZones_InActiveColor.Header" xml:space="preserve">
<value>Zone inactive color</value>
<value>Inactive color</value>
</data>
<data name="ShortcutGuide.ModuleDescription" xml:space="preserve">
<value>Shows a help overlay with Windows shortcuts.</value>
@@ -939,10 +939,10 @@
<data name="ImageResizer_FileModifiedDate.Description" xml:space="preserve">
<value>Used as the 'modified timestamp' in the file properties</value>
</data>
<data name="ImageResizer_UseOriginalDate.Content" xml:space="preserve">
<data name="ImageResizer_UseOriginalDate.Content" xml:space="preserve">
<value>Original file timestamp</value>
</data>
<data name="ImageResizer_UseResizeDate.Content" xml:space="preserve">
<data name="ImageResizer_UseResizeDate.Content" xml:space="preserve">
<value>Timestamp of resize action</value>
</data>
<data name="Encoding.Header" xml:space="preserve">
@@ -1015,9 +1015,6 @@ Made with 💗 by Microsoft and the PowerToys community.</value>
<data name="ImageResizer_FilenameParameters.AutomationProperties.Name" xml:space="preserve">
<value>Filename parameters</value>
</data>
<data name="ColorModeHeader.Header" xml:space="preserve">
<value>App theme</value>
</data>
<data name="Radio_Theme_Dark.Content" xml:space="preserve">
<value>Dark</value>
<comment>Dark refers to color, not weight</comment>
@@ -1724,4 +1721,19 @@ From there, simply click on a Markdown file, PDF file or SVG icon in the File Ex
<value>Do not activate when Game Mode is on</value>
<comment>"Game mode" is the Windows feature to prevent notification when playing a game.</comment>
</data>
<data name="FancyZones_Radio_Custom_Colors.Content" xml:space="preserve">
<value>Custom colors</value>
</data>
<data name="FancyZones_Radio_Default_Theme.Content" xml:space="preserve">
<value>Windows default</value>
</data>
<data name="ColorModeHeader.Header" xml:space="preserve">
<value>App theme</value>
</data>
<data name="FancyZones_Zone_Appearance.Description" xml:space="preserve">
<value>Customize the way zones look</value>
</data>
<data name="FancyZones_Zone_Appearance.Header" xml:space="preserve">
<value>Zone appearance</value>
</data>
</root>

View File

@@ -13,6 +13,7 @@
<Page.Resources>
<converters:BoolToObjectConverter x:Key="BoolToComboBoxIndexConverter" TrueValue="1" FalseValue="0"/>
<converters:StringFormatConverter x:Key="StringFormatConverter"/>
<converters:BoolToVisibilityConverter x:Key="FalseToVisibleConverter" TrueValue="Collapsed" FalseValue="Visible"/>
</Page.Resources>
<controls:SettingsPageControl x:Uid="FancyZones"
@@ -89,6 +90,47 @@
</controls:Setting.ActionContent>
</controls:Setting>
</StackPanel>
</controls:SettingExpander.Content>
</controls:SettingExpander>
<controls:SettingExpander IsExpanded="True">
<controls:SettingExpander.Header>
<controls:Setting x:Uid="FancyZones_Zone_Appearance" Icon="&#xE790;" Style="{StaticResource ExpanderHeaderSettingStyle}" >
<controls:Setting.ActionContent>
<ComboBox SelectedIndex="{x:Bind Mode=TwoWay, Path=ViewModel.SystemTheme, Converter={StaticResource BoolToComboBoxIndexConverter}}" MinWidth="{StaticResource SettingActionControlMinWidth}">
<ComboBoxItem x:Uid="FancyZones_Radio_Custom_Colors"/>
<ComboBoxItem x:Uid="FancyZones_Radio_Default_Theme"/>
</ComboBox>
</controls:Setting.ActionContent>
</controls:Setting>
</controls:SettingExpander.Header>
<controls:SettingExpander.Content>
<StackPanel>
<StackPanel Visibility="{x:Bind Mode=OneWay, Path=ViewModel.SystemTheme, Converter={StaticResource FalseToVisibleConverter}}" >
<controls:Setting x:Uid="FancyZones_ZoneHighlightColor" Style="{StaticResource ExpanderContentSettingStyle}">
<controls:Setting.ActionContent>
<controls:ColorPickerButton SelectedColor="{x:Bind Path=ViewModel.ZoneHighlightColor, Mode=TwoWay}" />
</controls:Setting.ActionContent>
</controls:Setting>
<Rectangle Style="{StaticResource ExpanderSeparatorStyle}" />
<controls:Setting x:Uid="FancyZones_InActiveColor" Style="{StaticResource ExpanderContentSettingStyle}">
<controls:Setting.ActionContent>
<controls:ColorPickerButton SelectedColor="{x:Bind Path=ViewModel.ZoneInActiveColor, Mode=TwoWay}" />
</controls:Setting.ActionContent>
</controls:Setting>
<Rectangle Style="{StaticResource ExpanderSeparatorStyle}" />
<controls:Setting x:Uid="FancyZones_BorderColor" Style="{StaticResource ExpanderContentSettingStyle}">
<controls:Setting.ActionContent>
<controls:ColorPickerButton SelectedColor="{x:Bind Path=ViewModel.ZoneBorderColor, Mode=TwoWay}" />
</controls:Setting.ActionContent>
</controls:Setting>
<Rectangle Style="{StaticResource ExpanderSeparatorStyle}" />
</StackPanel>
<controls:Setting x:Uid="FancyZones_HighlightOpacity" Style="{StaticResource ExpanderContentSettingStyle}">
<controls:Setting.ActionContent>
<Slider Minimum="0"
@@ -98,31 +140,10 @@
HorizontalAlignment="Right"/>
</controls:Setting.ActionContent>
</controls:Setting>
<controls:Setting x:Uid="FancyZones_ZoneHighlightColor" Style="{StaticResource ExpanderContentSettingStyle}">
<controls:Setting.ActionContent>
<controls:ColorPickerButton SelectedColor="{x:Bind Path=ViewModel.ZoneHighlightColor, Mode=TwoWay}" />
</controls:Setting.ActionContent>
</controls:Setting>
<controls:Setting x:Uid="FancyZones_InActiveColor" Style="{StaticResource ExpanderContentSettingStyle}">
<controls:Setting.ActionContent>
<controls:ColorPickerButton SelectedColor="{x:Bind Path=ViewModel.ZoneInActiveColor, Mode=TwoWay}" />
</controls:Setting.ActionContent>
</controls:Setting>
<controls:Setting x:Uid="FancyZones_BorderColor" Style="{StaticResource ExpanderContentSettingStyle}">
<controls:Setting.ActionContent>
<controls:ColorPickerButton SelectedColor="{x:Bind Path=ViewModel.ZoneBorderColor, Mode=TwoWay}" />
</controls:Setting.ActionContent>
</controls:Setting>
</StackPanel>
</controls:SettingExpander.Content>
</controls:SettingExpander>
</controls:SettingsGroup>
<controls:SettingsGroup x:Uid="FancyZones_Windows" IsEnabled="{x:Bind Mode=OneWay, Path=ViewModel.IsEnabled}">
@@ -235,11 +256,6 @@
</controls:SettingExpander>
</controls:SettingsGroup>
<controls:SettingsGroup x:Uid="ExcludedApps" IsEnabled="{x:Bind Mode=OneWay, Path=ViewModel.IsEnabled}">
<controls:SettingExpander IsExpanded="True">
<controls:SettingExpander.Header>

View File

@@ -19,5 +19,10 @@ namespace Microsoft.PowerToys.Settings.UI.Views
ViewModel = new FancyZonesViewModel(settingsUtils, SettingsRepository<GeneralSettings>.GetInstance(settingsUtils), SettingsRepository<FancyZonesSettings>.GetInstance(settingsUtils), ShellPage.SendDefaultIPCMessage);
DataContext = ViewModel;
}
private void OpenColorsSettings_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
Helpers.StartProcessHelper.Start(Helpers.StartProcessHelper.ColorsSettings);
}
}
}