using System; using System.Collections.Generic; using System.ComponentModel; using System.Runtime.CompilerServices; using System.Text; namespace ICSharpCode.Decompiler.IL { public class ILAstWritingOptions : INotifyPropertyChanged { private bool useLogicOperationSugar; private bool useFieldSugar; private bool showILRanges; /// /// Sugar for logic.not/and/or. /// public bool UseLogicOperationSugar { get { return useLogicOperationSugar; } set { if (useLogicOperationSugar != value) { useLogicOperationSugar = value; OnPropertyChanged(); } } } /// /// Sugar for ldfld/stfld. /// public bool UseFieldSugar { get { return useFieldSugar; } set { if (useFieldSugar != value) { useFieldSugar = value; OnPropertyChanged(); } } } /// /// Show IL ranges in ILAst output. /// public bool ShowILRanges { get { return showILRanges; } set { if (showILRanges != value) { showILRanges = value; OnPropertyChanged(); } } } protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) { OnPropertyChanged(new PropertyChangedEventArgs(propertyName)); } protected virtual void OnPropertyChanged(PropertyChangedEventArgs e) { PropertyChanged?.Invoke(this, e); } public event PropertyChangedEventHandler PropertyChanged; } }