You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kev/Drawer/Module/GeoSigmaViewer/RectangularCSGridDialog.cs

132 lines
4.7 KiB
C#

1 month ago
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using SigmaDrawerStyle;
namespace GeoSigmaViewer
{
public partial class RectangularCSGridDialog : Form, IRectangularCSGridPropertyChange
{
private SigmaDrawerStyle.RectangularCSGridProperty property;
private Drawer drawer;
public RectangularCSGridDialog(ref Drawer drawer)
{
InitializeComponent();
this.drawer = drawer;
property = new SigmaDrawerStyle.RectangularCSGridProperty(this);
}
private void RectangularCSGridDialog_Load(object sender, EventArgs e)
{
RectangularCSGridData data = new RectangularCSGridData();
fillData(ref data);
drawer.Geo.RectangularCSGrid_GetStepAndRange(ref data);
fillProperty(ref data);
propertyGrid.SelectedObject = property;
}
private void OKButton_Click(object sender, EventArgs e)
{
RectangularCSGridData data = new RectangularCSGridData();
fillData(ref data);
drawer.Geo.RectangularCSGrid_Create(ref data);
drawer.Geo.EnableRedraw(true);
drawer.ReDraw();
drawer.ActiveTool = DrawToolType.Select;
Close();
}
private void cancelButton_Click(object sender, EventArgs e)
{
drawer.ActiveTool = DrawToolType.Select;
Close();
}
private void fillData(ref RectangularCSGridData data)
{
data.baseX = property.BaseNumber.X;
data.baseY = property.BaseNumber.Y;
data.blackOutterBorder = (int)property.BlackOutterBorder;
data.borderColorR = property.BorderColor.R;
data.borderColorG = property.BorderColor.G;
data.borderColorB = property.BorderColor.B;
data.borderThickness = property.BorderThickness;
data.left = property.CoordRange.Left;
data.top = property.CoordRange.Top;
data.right = property.CoordRange.Right;
data.bottom = property.CoordRange.Bottom;
data.coefficientX = property.Coefficient.X;
data.coefficientY = property.Coefficient.Y;
data.gridColorR = property.GridColor.R;
data.gridColorG = property.GridColor.G;
data.gridColorB = property.GridColor.B;
data.isShowOutBorder = (int)property.OuterBorder;
data.notatioinMode = (int)property.NotatioinMode;
data.showMode = (int)property.ShowMode;
data.stepX = property.Step.X;
data.stepY = property.Step.Y;
data.textHeight = property.TextHeight;
data.textScale = (int)property.TextScale;
}
private void fillProperty(ref RectangularCSGridData data)
{
property.BaseNumber.X = data.baseX;
property.BaseNumber.Y = data.baseY;
if (data.blackOutterBorder != -1)
property.BlackOutterBorder = (RectangularCSGridProperty.BLACK_BORDER)data.blackOutterBorder;
property.BorderColor = Color.FromArgb(data.borderColorR, data.borderColorG, data.borderColorB);
property.BorderThickness = data.borderThickness;
property.CoordRange.Left = data.left;
property.CoordRange.Top = data.top;
property.CoordRange.Right = data.right;
property.CoordRange.Bottom = data.bottom;
property.Coefficient.X = data.coefficientX;
property.Coefficient.Y =data.coefficientY;
property.GridColor = Color.FromArgb(data.gridColorR, data.gridColorG, data.gridColorB);
if (data.isShowOutBorder != -1)
property.OuterBorder = (RectangularCSGridProperty.OUTER_BORDER)data.isShowOutBorder;
if (data.notatioinMode != -1)
property.NotatioinMode = (RectangularCSGridProperty.NOTATION_MODE)data.notatioinMode;
if (data.showMode != -1)
property.ShowMode = (RectangularCSGridProperty.SHOWMODE)data.showMode;
property.Step.X = data.stepX;
property.Step.Y = data.stepY;
property.TextHeight = data.textHeight;
if (data.textScale != -1)
property.TextScale = (RectangularCSGridProperty.SCALE)data.textScale;
}
private void RectangularCSGridDialog_FormClosed(object sender, FormClosedEventArgs e)
{
drawer.ActiveTool = DrawToolType.Select;
}
public void RCSGridPropertyChange()
{
propertyGrid.SelectedObject = property;
}
}
}