From f06ae0e33e33f1ed5f198827b9b5a53e765b3eee Mon Sep 17 00:00:00 2001
From: patrick.xu <patrick.xu@broconcentric.com>
Date: 星期一, 11 一月 2021 10:58:26 +0800
Subject: [PATCH] 1. 来料检测添加线体代码 2. 添加检测数据区间压缩配置和功能

---
 src/Bro.M071.Process/UI/KeyIndicator.cs |   85 +++++++++++++++++++++++++++++++++---------
 1 files changed, 66 insertions(+), 19 deletions(-)

diff --git a/src/Bro.M071.Process/UI/KeyIndicator.cs b/src/Bro.M071.Process/UI/KeyIndicator.cs
index 3e66348..6a0b128 100644
--- a/src/Bro.M071.Process/UI/KeyIndicator.cs
+++ b/src/Bro.M071.Process/UI/KeyIndicator.cs
@@ -20,7 +20,7 @@
         [Browsable(false)]
         public override string Name { get => base.Name; set => base.Name = value; }
         [Browsable(false)]
-        public override Font Font { get => base.Font; set => base.Font = value; }
+        public override Font Font { get; set; } = new Font(new FontFamily("Tahoma"), 12, FontStyle.Bold, GraphicsUnit.World);
         [Browsable(false)]
         public override int FontDistance { get => base.FontDistance; set => base.FontDistance = value; }
         [Browsable(false)]
@@ -29,20 +29,6 @@
         public override bool IsShowRemark { get => base.IsShowRemark; set => base.IsShowRemark = value; }
         [Browsable(false)]
         public override bool IsEnabled { get => base.IsEnabled; set => base.IsEnabled = value; }
-
-
-        //[Category("鏄剧ず璁剧疆")]
-        //[Description("宸︿笂/寮�濮嬬偣浣�")]
-        //[TypeConverter(typeof(ComplexObjectConvert))]
-        //[Editor(typeof(PropertyObjectEditor), typeof(UITypeEditor))]
-        //[Browsable(false)]
-        //public CustomizedPoint StartPoint { get; set; } = new CustomizedPoint();
-
-        //[Category("鏄剧ず璁剧疆")]
-        //[Description("鏄剧ず鍖哄煙澶у皬")]
-        //[TypeConverter(typeof(ComplexObjectConvert))]
-        //[Editor(typeof(PropertyObjectEditor), typeof(UITypeEditor))]
-        //public CustomizedPoint Size { get; set; } = new CustomizedPoint();
 
         [Category("鏄剧ず璁剧疆")]
         [Description("鏍囩鏄剧ず鍖哄煙")]
@@ -70,9 +56,17 @@
             };
         }
 
+        protected override void SetSelectedPen()
+        {
+            Pen = new Pen(Color.Red, 3);
+        }
+
         public override void Draw(Graphics g)
         {
-            g.DrawRectangle(Pen, DisplayRect);
+            if (ResultState == null)
+            {
+                g.DrawRectangle(Pen, DisplayRect);
+            }
             RectangleF rectFill = new RectangleF(DisplayRect.X + 1, DisplayRect.Y + 1, DisplayRect.Width - 2, DisplayRect.Height - 2);
             if (ResultState != null)
             {
@@ -83,11 +77,12 @@
                 if (!ResultState.Value)
                 {
                     backColor = Color.Red;
-                    foreColor = Color.White;
+                    //foreColor = Color.White;
                 }
 
+                g.FillRectangle(new SolidBrush(Color.FromArgb(85, backColor)), rectFill);
+
                 g.DrawString(Text, Font, new SolidBrush(foreColor), (float)(DisplayRect.X + DisplayRect.Width / 2.0 - txtSize.Width / 2.0), (float)(DisplayRect.Y + DisplayRect.Height / 2.0 - txtSize.Height / 2.0));
-                g.FillRectangle(new SolidBrush(Color.FromArgb(55, backColor)), rectFill);
             }
         }
 
@@ -108,7 +103,12 @@
 
         public override bool IsMouseInSide(Point p)
         {
-            return false;
+            return p.X >= DisplayRect.X && p.X <= DisplayRect.X + DisplayRect.Width && p.Y >= DisplayRect.Y && p.Y <= DisplayRect.Y + DisplayRect.Height;
+        }
+
+        public override bool IsMouseCanMoveElement(Point p)
+        {
+            return IsMouseInSide(p);
         }
 
         public override void OnKeyDown(object sender, KeyEventArgs e)
@@ -133,6 +133,53 @@
 
         public override void Translate(int x, int y)
         {
+            DisplayRect = new Rectangle(DisplayRect.X + x, DisplayRect.Y + y, DisplayRect.Width, DisplayRect.Height);
+        }
+
+        public override void Relocate(Point point)
+        {
+            DisplayRect = new Rectangle(point.X - DisplayRect.Width / 2, point.Y - DisplayRect.Height / 2, DisplayRect.Width, DisplayRect.Height);
+        }
+
+        public override bool IsMouseCanStretchBottom(Point p)
+        {
+
+            return Math.Abs(p.X - (DisplayRect.X + DisplayRect.Width / 2)) < (DisplayRect.Width / 3) && Math.Abs(p.Y - DisplayRect.Y - DisplayRect.Height) < (DisplayRect.Height / 3);
+        }
+
+        public override bool IsMouseCanStretchRight(Point p)
+        {
+            return Math.Abs(p.X - (DisplayRect.X + DisplayRect.Width)) < (DisplayRect.Width / 3) && Math.Abs(p.Y - (DisplayRect.Y + DisplayRect.Height / 2)) < (DisplayRect.Height / 3);
+        }
+
+        public override bool IsMouseCanStretchRightLowerCorner(Point p)
+        {
+            return Math.Abs(p.X - (DisplayRect.X + DisplayRect.Width)) < (DisplayRect.Width / 3) && Math.Abs(p.Y - (DisplayRect.Y + DisplayRect.Height)) < (DisplayRect.Height / 3);
+        }
+
+        //int x, y = 0;
+        public override void StretchBottom(Point p)
+        {
+            if (p.Y > DisplayRect.Y)
+            {
+                DisplayRect = new Rectangle(DisplayRect.X, DisplayRect.Y, DisplayRect.Width, p.Y - DisplayRect.Y);
+            }
+        }
+
+        public override void StretchRight(Point p)
+        {
+            if (p.X > DisplayRect.X)
+            {
+                DisplayRect = new Rectangle(DisplayRect.X, DisplayRect.Y, p.X - DisplayRect.X, DisplayRect.Height);
+            }
+        }
+
+        public override void StretchRightLowerCorner(Point p)
+        {
+            if (p.X > DisplayRect.X && p.Y > DisplayRect.Y)
+            {
+                DisplayRect = new Rectangle(DisplayRect.X, DisplayRect.Y, p.X - DisplayRect.X, p.Y - DisplayRect.Y);
+            }
         }
 
         protected override void DrawResult(Graphics g)

--
Gitblit v1.8.0