CPF/CPF.ReoGrid/Actions/StepRangeFontSizeAction.cs

45 lines
1.2 KiB
C#
Raw Normal View History

2024-06-24 10:15:59 +08:00
using System;
using System.Linq;
using CPF.ReoGrid.Common;
namespace CPF.ReoGrid.Actions
{
public class StepRangeFontSizeAction : WorksheetReusableAction
{
public bool Enlarge { get; set; }
public StepRangeFontSizeAction(RangePosition range, bool enlarge) : base(range)
{
this.Enlarge = enlarge;
}
public override void Do()
{
base.Worksheet.StepRangeFont(base.Range, (float size) => this.Enlarge ? ((size >= Toolkit.FontSizeList.Max()) ? size : (from f in Toolkit.FontSizeList
where f > size
select f).Min()) : ((size <= Toolkit.FontSizeList.Min()) ? size : (from f in Toolkit.FontSizeList
where f < size
select f).Max()));
}
public override void Undo()
{
base.Worksheet.StepRangeFont(base.Range, (float size) => (!this.Enlarge) ? ((size >= Toolkit.FontSizeList.Max()) ? size : (from f in Toolkit.FontSizeList
where f > size
select f).Min()) : ((size <= Toolkit.FontSizeList.Min()) ? size : (from f in Toolkit.FontSizeList
where f < size
select f).Max()));
}
public override string GetName()
{
return this.Enlarge ? "Make Text Bigger" : "Make Text Smaller";
}
public override WorksheetReusableAction Clone(RangePosition range)
{
return new StepRangeFontSizeAction(range, this.Enlarge);
}
}
}