2021-02-26 13:21:58 +02:00
|
|
|
|
// 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.
|
|
|
|
|
|
|
2023-09-11 13:54:06 +03:00
|
|
|
|
using System.Collections.Generic;
|
2021-02-26 13:21:58 +02:00
|
|
|
|
using System.ComponentModel;
|
|
|
|
|
|
using System.Runtime.CompilerServices;
|
2022-10-26 14:02:31 +01:00
|
|
|
|
using Microsoft.PowerToys.Settings.UI.Library;
|
2021-02-26 13:21:58 +02:00
|
|
|
|
|
2022-10-26 14:02:31 +01:00
|
|
|
|
namespace Microsoft.PowerToys.Settings.UI.ViewModels
|
2021-02-26 13:21:58 +02:00
|
|
|
|
{
|
|
|
|
|
|
public class PluginAdditionalOptionViewModel : INotifyPropertyChanged
|
|
|
|
|
|
{
|
|
|
|
|
|
private PluginAdditionalOption _additionalOption;
|
|
|
|
|
|
|
|
|
|
|
|
internal PluginAdditionalOptionViewModel(PluginAdditionalOption additionalOption)
|
|
|
|
|
|
{
|
|
|
|
|
|
_additionalOption = additionalOption;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-09-11 13:54:06 +03:00
|
|
|
|
public string DisplayLabel => _additionalOption.DisplayLabel;
|
2021-02-26 13:21:58 +02:00
|
|
|
|
|
2023-09-11 13:54:06 +03:00
|
|
|
|
public string DisplayDescription => _additionalOption.DisplayDescription;
|
2022-03-21 13:47:09 +01:00
|
|
|
|
|
2021-02-26 13:21:58 +02:00
|
|
|
|
public bool Value
|
|
|
|
|
|
{
|
|
|
|
|
|
get => _additionalOption.Value;
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
if (value != _additionalOption.Value)
|
|
|
|
|
|
{
|
|
|
|
|
|
_additionalOption.Value = value;
|
|
|
|
|
|
NotifyPropertyChanged();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-09-11 13:54:06 +03:00
|
|
|
|
public List<string> ComboBoxOptions => _additionalOption.ComboBoxOptions;
|
|
|
|
|
|
|
|
|
|
|
|
public int Option
|
|
|
|
|
|
{
|
|
|
|
|
|
get => _additionalOption.Option;
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
if (value != _additionalOption.Option)
|
|
|
|
|
|
{
|
|
|
|
|
|
_additionalOption.Option = value;
|
|
|
|
|
|
NotifyPropertyChanged();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public bool ShowComboBox => _additionalOption.SelectionTypeValue == (int)PluginAdditionalOption.SelectionType.Combobox && _additionalOption.ComboBoxOptions != null && _additionalOption.ComboBoxOptions.Count > 0;
|
|
|
|
|
|
|
|
|
|
|
|
public bool ShowCheckBox => _additionalOption.SelectionTypeValue == (int)PluginAdditionalOption.SelectionType.Checkbox;
|
|
|
|
|
|
|
2021-02-26 13:21:58 +02:00
|
|
|
|
public event PropertyChangedEventHandler PropertyChanged;
|
|
|
|
|
|
|
|
|
|
|
|
private void NotifyPropertyChanged([CallerMemberName] string propertyName = "")
|
|
|
|
|
|
{
|
|
|
|
|
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|