CPF/CPF.ReoGrid/Views/LeadHeaderView.cs

61 lines
1.9 KiB
C#
Raw Normal View History

2024-06-24 10:15:59 +08:00
using System;
using CPF.Drawing;
using CPF.Input;
using CPF.ReoGrid.Graphics;
using CPF.ReoGrid.Interaction;
using CPF.ReoGrid.Rendering;
namespace CPF.ReoGrid.Views
{
internal class LeadHeaderView : View
{
public LeadHeaderView(ViewportController vc) : base(vc)
{
this.sheet = vc.worksheet;
}
public override void Draw(CellDrawingContext dc)
{
bool flag = this.bounds.Width <= 0f || this.bounds.Height <= 0f || this.sheet.controlAdapter == null;
if (!flag)
{
IGraphics graphics = dc.Graphics;
ControlAppearanceStyle controlStyle = this.sheet.workbook.controlAdapter.ControlStyle;
graphics.FillRectangle(this.bounds, controlStyle.Colors[ControlAppearanceColors.LeadHeadNormal]);
Color startColor = this.sheet.isLeadHeadSelected ? controlStyle.Colors[ControlAppearanceColors.LeadHeadIndicatorStart] : controlStyle.Colors[ControlAppearanceColors.LeadHeadSelected];
Color endColor = controlStyle.Colors[ControlAppearanceColors.LeadHeadIndicatorEnd];
dc.Renderer.DrawLeadHeadArrow(this.bounds, startColor, endColor);
}
}
public override bool OnMouseDown(Point location, MouseButtons buttons, InputModifiers modifiers)
{
OperationStatus operationStatus = this.sheet.operationStatus;
OperationStatus operationStatus2 = operationStatus;
if (operationStatus2 == OperationStatus.Default)
{
bool flag = this.sheet.selectionMode > WorksheetSelectionMode.None;
if (flag)
{
this.sheet.SelectRange(RangePosition.EntireRange);
bool flag2 = buttons == MouseButtons.Right;
if (flag2)
{
this.sheet.controlAdapter.ShowContextMenuStrip(ViewTypes.LeadHeader, location);
}
return true;
}
}
return false;
}
public override bool OnMouseMove(Point location, MouseButtons buttons)
{
this.sheet.controlAdapter.ChangeCursor(CursorStyle.Selection);
return false;
}
protected Worksheet sheet;
}
}