.NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

356 lines
8.0 KiB

// Copyright (c) 2011 AlphaSierraPapa for the SharpDevelop Team
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this
// software and associated documentation files (the "Software"), to deal in the Software
// without restriction, including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
// to whom the Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all copies or
// substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Windows.Media;
using ICSharpCode.ILSpy.Themes;
namespace ICSharpCode.ILSpy.Options
{
/// <summary>
/// Description of DisplaySettings.
/// </summary>
public class DisplaySettings : INotifyPropertyChanged
{
public DisplaySettings()
{
this.theme = ThemeManager.Current.DefaultTheme;
this.selectedFont = new FontFamily("Consolas");
this.selectedFontSize = 10.0 * 4 / 3;
this.sortResults = true;
this.indentationUseTabs = true;
this.indentationSize = 4;
this.indentationTabSize = 4;
this.highlightMatchingBraces = true;
}
#region INotifyPropertyChanged implementation
public event PropertyChangedEventHandler? PropertyChanged;
protected virtual void OnPropertyChanged(PropertyChangedEventArgs e)
{
PropertyChanged?.Invoke(this, e);
}
protected void OnPropertyChanged([CallerMemberName] string? propertyName = null)
{
OnPropertyChanged(new PropertyChangedEventArgs(propertyName));
}
#endregion
string theme;
public string Theme {
get { return theme; }
set {
if (theme != value)
{
theme = value;
OnPropertyChanged();
}
}
}
FontFamily selectedFont;
public FontFamily SelectedFont {
get { return selectedFont; }
set {
if (selectedFont != value)
{
selectedFont = value;
OnPropertyChanged();
}
}
}
double selectedFontSize;
public double SelectedFontSize {
get { return selectedFontSize; }
set {
if (selectedFontSize != value)
{
selectedFontSize = value;
OnPropertyChanged();
}
}
}
bool showLineNumbers;
public bool ShowLineNumbers {
get { return showLineNumbers; }
set {
if (showLineNumbers != value)
{
showLineNumbers = value;
OnPropertyChanged();
}
}
}
bool showMetadataTokens;
public bool ShowMetadataTokens {
get { return showMetadataTokens; }
set {
if (showMetadataTokens != value)
{
showMetadataTokens = value;
OnPropertyChanged();
}
}
}
bool showMetadataTokensInBase10;
public bool ShowMetadataTokensInBase10 {
get { return showMetadataTokensInBase10; }
set {
if (showMetadataTokensInBase10 != value)
{
showMetadataTokensInBase10 = value;
OnPropertyChanged();
}
}
}
bool enableWordWrap;
public bool EnableWordWrap {
get { return enableWordWrap; }
set {
if (enableWordWrap != value)
{
enableWordWrap = value;
OnPropertyChanged();
}
}
}
bool sortResults = true;
public bool SortResults {
get { return sortResults; }
set {
if (sortResults != value)
{
sortResults = value;
OnPropertyChanged();
}
}
}
bool foldBraces = false;
public bool FoldBraces {
get { return foldBraces; }
set {
if (foldBraces != value)
{
foldBraces = value;
OnPropertyChanged();
}
}
}
bool expandMemberDefinitions = false;
public bool ExpandMemberDefinitions {
get { return expandMemberDefinitions; }
set {
if (expandMemberDefinitions != value)
{
expandMemberDefinitions = value;
OnPropertyChanged();
}
}
}
bool expandUsingDeclarations = false;
public bool ExpandUsingDeclarations {
get { return expandUsingDeclarations; }
set {
if (expandUsingDeclarations != value)
{
expandUsingDeclarations = value;
OnPropertyChanged();
}
}
}
bool showDebugInfo;
public bool ShowDebugInfo {
get { return showDebugInfo; }
set {
if (showDebugInfo != value)
{
showDebugInfo = value;
OnPropertyChanged();
}
}
}
bool indentationUseTabs = true;
public bool IndentationUseTabs {
get { return indentationUseTabs; }
set {
if (indentationUseTabs != value)
{
indentationUseTabs = value;
OnPropertyChanged();
}
}
}
int indentationTabSize = 4;
public int IndentationTabSize {
get { return indentationTabSize; }
set {
if (indentationTabSize != value)
{
indentationTabSize = value;
OnPropertyChanged();
}
}
}
int indentationSize = 4;
public int IndentationSize {
get { return indentationSize; }
set {
if (indentationSize != value)
{
indentationSize = value;
OnPropertyChanged();
}
}
}
bool highlightMatchingBraces = true;
public bool HighlightMatchingBraces {
get { return highlightMatchingBraces; }
set {
if (highlightMatchingBraces != value)
{
highlightMatchingBraces = value;
OnPropertyChanged();
}
}
}
bool highlightCurrentLine = false;
public bool HighlightCurrentLine {
get { return highlightCurrentLine; }
set {
if (highlightCurrentLine != value)
{
highlightCurrentLine = value;
OnPropertyChanged();
}
}
}
bool hideEmptyMetadataTables = true;
public bool HideEmptyMetadataTables {
get { return hideEmptyMetadataTables; }
set {
if (hideEmptyMetadataTables != value)
{
hideEmptyMetadataTables = value;
OnPropertyChanged();
}
}
}
bool useNestedNamespaceNodes = true;
public bool UseNestedNamespaceNodes {
get { return useNestedNamespaceNodes; }
set {
if (useNestedNamespaceNodes != value)
{
useNestedNamespaceNodes = value;
OnPropertyChanged();
}
}
}
private bool styleWindowTitleBar;
public bool StyleWindowTitleBar {
get { return styleWindowTitleBar; }
set {
if (styleWindowTitleBar != value)
{
styleWindowTitleBar = value;
OnPropertyChanged();
}
}
}
private bool showRawOffsetsAndBytesBeforeInstruction;
public bool ShowRawOffsetsAndBytesBeforeInstruction {
get { return showRawOffsetsAndBytesBeforeInstruction; }
set {
if (showRawOffsetsAndBytesBeforeInstruction != value)
{
showRawOffsetsAndBytesBeforeInstruction = value;
OnPropertyChanged();
}
}
}
public void CopyValues(DisplaySettings s)
{
this.Theme = s.Theme;
this.SelectedFont = s.selectedFont;
this.SelectedFontSize = s.selectedFontSize;
this.ShowLineNumbers = s.showLineNumbers;
this.ShowMetadataTokens = s.showMetadataTokens;
this.ShowMetadataTokensInBase10 = s.showMetadataTokensInBase10;
this.ShowDebugInfo = s.showDebugInfo;
this.EnableWordWrap = s.enableWordWrap;
this.SortResults = s.sortResults;
this.FoldBraces = s.foldBraces;
this.ExpandMemberDefinitions = s.expandMemberDefinitions;
this.ExpandUsingDeclarations = s.expandUsingDeclarations;
this.IndentationUseTabs = s.indentationUseTabs;
this.IndentationTabSize = s.indentationTabSize;
this.IndentationSize = s.indentationSize;
this.HighlightMatchingBraces = s.highlightMatchingBraces;
this.HighlightCurrentLine = s.highlightCurrentLine;
this.HideEmptyMetadataTables = s.hideEmptyMetadataTables;
this.UseNestedNamespaceNodes = s.useNestedNamespaceNodes;
this.ShowRawOffsetsAndBytesBeforeInstruction = s.showRawOffsetsAndBytesBeforeInstruction;
this.StyleWindowTitleBar = s.styleWindowTitleBar;
}
}
}