|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System.ComponentModel;
using System.Drawing;
namespace System.Windows.Forms.Design;
/// <summary>
/// Provides access to get and set option values for a designer.
/// </summary>
public class DesignerOptions
{
private const int MinGridSize = 2;
private const int MaxGridSize = 200;
private Size _gridSize = new(8, 8);
/// <summary>
/// Public GridSize property.
/// </summary>
[SRCategory(nameof(SR.DesignerOptions_LayoutSettings))]
[SRDisplayName(nameof(SR.DesignerOptions_GridSizeDisplayName))]
[SRDescription(nameof(SR.DesignerOptions_GridSizeDesc))]
public virtual Size GridSize
{
get => _gridSize;
set
{
// do some validation checking here
if (value.Width < MinGridSize)
{
value.Width = MinGridSize;
}
if (value.Height < MinGridSize)
{
value.Height = MinGridSize;
}
if (value.Width > MaxGridSize)
{
value.Width = MaxGridSize;
}
if (value.Height > MaxGridSize)
{
value.Height = MaxGridSize;
}
_gridSize = value;
}
}
/// <summary>
/// Public ShowGrid property.
/// </summary>
[SRCategory(nameof(SR.DesignerOptions_LayoutSettings))]
[SRDisplayName(nameof(SR.DesignerOptions_ShowGridDisplayName))]
[SRDescription(nameof(SR.DesignerOptions_ShowGridDesc))]
public virtual bool ShowGrid { get; set; } = true;
/// <summary>
/// Public SnapToGrid property.
/// </summary>
[SRCategory(nameof(SR.DesignerOptions_LayoutSettings))]
[SRDisplayName(nameof(SR.DesignerOptions_SnapToGridDisplayName))]
[SRDescription(nameof(SR.DesignerOptions_SnapToGridDesc))]
public virtual bool SnapToGrid { get; set; } = true;
/// <summary>
/// This property enables or disables snaplines in the designer.
/// </summary>
[SRCategory(nameof(SR.DesignerOptions_LayoutSettings))]
[SRDescription(nameof(SR.DesignerOptions_UseSnapLines))]
public virtual bool UseSnapLines { get; set; }
/// <summary>
/// This property enables or disables smart tags in the designer.
/// </summary>
[SRCategory(nameof(SR.DesignerOptions_LayoutSettings))]
[SRDescription(nameof(SR.DesignerOptions_UseSmartTags))]
public virtual bool UseSmartTags { get; set; }
/// <summary>
/// This property enables or disables smart tags in the designer.
/// </summary>
[SRDisplayName(nameof(SR.DesignerOptions_ObjectBoundSmartTagAutoShowDisplayName))]
[SRCategory(nameof(SR.DesignerOptions_ObjectBoundSmartTagSettings))]
[SRDescription(nameof(SR.DesignerOptions_ObjectBoundSmartTagAutoShow))]
public virtual bool ObjectBoundSmartTagAutoShow { get; set; } = true;
/// <summary>
/// This property enables or disables the component cache
/// </summary>
[SRDisplayName(nameof(SR.DesignerOptions_CodeGenDisplay))]
[SRCategory(nameof(SR.DesignerOptions_CodeGenSettings))]
[SRDescription(nameof(SR.DesignerOptions_OptimizedCodeGen))]
public virtual bool UseOptimizedCodeGeneration { get; set; }
/// <summary>
/// This property enables or disables the InSitu Editing for ToolStrips
/// </summary>
[SRDisplayName(nameof(SR.DesignerOptions_EnableInSituEditingDisplay))]
[SRCategory(nameof(SR.DesignerOptions_EnableInSituEditingCat))]
[SRDescription(nameof(SR.DesignerOptions_EnableInSituEditingDesc))]
[Browsable(false)]
public virtual bool EnableInSituEditing { get; set; } = true;
}
|