Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Image Resizer] Accessibility - Made Edit / Remove buttons on Settings Screen associated with their presets #36900

Closed
Closed
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions src/settings-ui/Settings.UI.Library/ImageSize.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@ public ImageSize(int id, string name, ResizeFit fit, double width, double height
private double _width;
private ResizeUnit _unit;

[JsonIgnore]
public ImageSize Self { get => this; } // needed for data binding; change-notification raised when any property changes
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add cmdconfigurignore too


public int Id
{
get
Expand All @@ -62,6 +65,7 @@ public int Id
{
_id = value;
OnPropertyChanged();
OnPropertyChanged(nameof(Self));
}
}
}
Expand Down Expand Up @@ -110,6 +114,7 @@ public string Name
{
_name = value;
OnPropertyChanged();
OnPropertyChanged(nameof(Self));
}
}
}
Expand All @@ -130,6 +135,7 @@ public ResizeFit Fit
OnPropertyChanged();
OnPropertyChanged(nameof(ExtraBoxOpacity));
OnPropertyChanged(nameof(EnableEtraBoxes));
OnPropertyChanged(nameof(Self));
}
}
}
Expand Down Expand Up @@ -159,6 +165,7 @@ public double Width
{
_width = newWidth;
OnPropertyChanged();
OnPropertyChanged(nameof(Self));
}
}
}
Expand Down Expand Up @@ -188,6 +195,7 @@ public double Height
{
_height = newHeight;
OnPropertyChanged();
OnPropertyChanged(nameof(Self));
}
}
}
Expand All @@ -208,6 +216,7 @@ public ResizeUnit Unit
OnPropertyChanged();
OnPropertyChanged(nameof(ExtraBoxOpacity));
OnPropertyChanged(nameof(EnableEtraBoxes));
OnPropertyChanged(nameof(Self));
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using System;
using System.Globalization;

using Microsoft.PowerToys.Settings.UI.Library;
using Microsoft.UI.Xaml.Data;

namespace Microsoft.PowerToys.Settings.UI.Converters
Expand All @@ -13,18 +14,15 @@ public sealed partial class ImageResizerFitToStringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
var toLower = false;
if ((string)parameter == "ToLower")
{
toLower = true;
}
bool toLower = (string)parameter == "ToLower";

string targetValue = string.Empty;
switch (value)

switch (value is ResizeFit enumValue ? enumValue : value is int intValue ? (ResizeFit)intValue : default)
{
case 0: targetValue = Helpers.ResourceLoaderInstance.ResourceLoader.GetString("ImageResizer_Fit_Fill_ThirdPersonSingular"); break;
case 1: targetValue = Helpers.ResourceLoaderInstance.ResourceLoader.GetString("ImageResizer_Fit_Fit_ThirdPersonSingular"); break;
case 2: targetValue = Helpers.ResourceLoaderInstance.ResourceLoader.GetString("ImageResizer_Fit_Stretch_ThirdPersonSingular"); break;
case ResizeFit.Fill: targetValue = Helpers.ResourceLoaderInstance.ResourceLoader.GetString("ImageResizer_Fit_Fill_ThirdPersonSingular"); break;
case ResizeFit.Fit: targetValue = Helpers.ResourceLoaderInstance.ResourceLoader.GetString("ImageResizer_Fit_Fit_ThirdPersonSingular"); break;
case ResizeFit.Stretch: targetValue = Helpers.ResourceLoaderInstance.ResourceLoader.GetString("ImageResizer_Fit_Stretch_ThirdPersonSingular"); break;
}

if (toLower)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using System;
using System.Globalization;

using Microsoft.PowerToys.Settings.UI.Library;
using Microsoft.UI.Xaml.Data;

namespace Microsoft.PowerToys.Settings.UI.Converters
Expand All @@ -13,19 +14,15 @@ public sealed partial class ImageResizerUnitToStringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
var toLower = false;
if ((string)parameter == "ToLower")
{
toLower = true;
}
bool toLower = (string)parameter == "ToLower";

string targetValue = string.Empty;
switch (value)
switch (value is ResizeUnit enumValue ? enumValue : value is int intValue ? (ResizeUnit)intValue : default)
{
case 0: targetValue = Helpers.ResourceLoaderInstance.ResourceLoader.GetString("ImageResizer_Unit_Centimeter"); break;
case 1: targetValue = Helpers.ResourceLoaderInstance.ResourceLoader.GetString("ImageResizer_Unit_Inch"); break;
case 2: targetValue = Helpers.ResourceLoaderInstance.ResourceLoader.GetString("ImageResizer_Unit_Percent"); break;
case 3: targetValue = Helpers.ResourceLoaderInstance.ResourceLoader.GetString("ImageResizer_Unit_Pixel"); break;
case ResizeUnit.Centimeter: targetValue = Helpers.ResourceLoaderInstance.ResourceLoader.GetString("ImageResizer_Unit_Centimeter"); break;
case ResizeUnit.Inch: targetValue = Helpers.ResourceLoaderInstance.ResourceLoader.GetString("ImageResizer_Unit_Inch"); break;
case ResizeUnit.Percent: targetValue = Helpers.ResourceLoaderInstance.ResourceLoader.GetString("ImageResizer_Unit_Percent"); break;
case ResizeUnit.Pixel: targetValue = Helpers.ResourceLoaderInstance.ResourceLoader.GetString("ImageResizer_Unit_Pixel"); break;
}

if (toLower)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
// Copyright (c) Microsoft Corporation
// The Microsoft Corporation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.

using System;

using Microsoft.PowerToys.Settings.UI.Library;
using Microsoft.UI.Xaml.Data;

namespace Microsoft.PowerToys.Settings.UI.Converters;

public sealed partial class ImageSizeToHelpTextConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
if (value is not ImageSize imageSize)
{
return string.Empty;
}

var fit = new ImageResizerFitToStringConverter().Convert(imageSize.Fit, targetType, parameter, language);
var unit = new ImageResizerUnitToStringConverter().Convert(imageSize.Unit, targetType, parameter, language);
const string timesSymbol = "\u00D7";

return imageSize.EnableEtraBoxes
? $"{imageSize.Name} - {fit} {imageSize.Width} {timesSymbol} {imageSize.Height} {unit}"
: $"{imageSize.Name} - {fit} {imageSize.Width} {unit}";
}

public object ConvertBack(object value, Type targetType, object parameter, string language) => throw new NotImplementedException();
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
<converters:ImageResizerFitToIntConverter x:Key="ImageResizerFitToIntConverter" />
<converters:ImageResizerUnitToStringConverter x:Key="ImageResizerUnitToStringConverter" />
<converters:ImageResizerUnitToIntConverter x:Key="ImageResizerUnitToIntConverter" />
<converters:ImageSizeToHelpTextConverter x:Key="ImageSizeToHelpTextConverter" />
<toolkitconverters:BoolToObjectConverter
x:Key="BoolToComboBoxIndexConverter"
FalseValue="1"
Expand Down Expand Up @@ -103,6 +104,7 @@
x:Uid="EditButton"
Width="40"
Height="36"
AutomationProperties.HelpText="{x:Bind Self, Mode=OneWay, Converter={StaticResource ImageSizeToHelpTextConverter}}"
Content="&#xE70F;"
FontFamily="{ThemeResource SymbolThemeFontFamily}"
Style="{StaticResource SubtleButtonStyle}">
Expand Down Expand Up @@ -164,6 +166,7 @@
x:Uid="RemoveButton"
Width="40"
Height="36"
AutomationProperties.HelpText="{x:Bind Self, Mode=OneWay, Converter={StaticResource ImageSizeToHelpTextConverter}}"
Click="DeleteCustomSize"
CommandParameter="{Binding Id}"
Content="&#xE74D;"
Expand Down
Loading