Initial commit
This commit is contained in:
		
							
								
								
									
										125
									
								
								Handler/Project_form2/UIControl/CtlTowerLamp.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										125
									
								
								Handler/Project_form2/UIControl/CtlTowerLamp.cs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,125 @@ | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.ComponentModel; | ||||
| using System.Data; | ||||
| using System.Drawing; | ||||
| using System.Linq; | ||||
| using System.Text; | ||||
| using System.Windows.Forms; | ||||
|  | ||||
| namespace UIControl | ||||
| { | ||||
|     public partial class CtlTowerLamp : CtlBase | ||||
|     { | ||||
|         [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] | ||||
|         public PinInfo arPinRed { get { return PinList[0]; } set { PinList[0] = value; } } | ||||
|         [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] | ||||
|         public PinInfo arPinYel { get { return PinList[1]; } set { PinList[1] = value; } } | ||||
|         [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] | ||||
|         public PinInfo arPinGrn { get { return PinList[2]; } set { PinList[2] = value; } } | ||||
|         [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] | ||||
|         public PinInfo arPinBuz { get { return PinList[3]; } set { PinList[3] = value; } } | ||||
|  | ||||
|  | ||||
|  | ||||
|         public CtlTowerLamp() | ||||
|         { | ||||
|             InitializeComponent(); | ||||
|  | ||||
|             SetPinCount(4); | ||||
|             this.MinimumSize = new Size(4, 4); | ||||
|         } | ||||
|  | ||||
|         public override void MakeRect() | ||||
|         { | ||||
|  | ||||
|         } | ||||
|         public override void UpdateValue() | ||||
|         { | ||||
|  | ||||
|         } | ||||
|         protected override void OnPaint(PaintEventArgs pe) | ||||
|         { | ||||
|             base.OnPaint(pe); | ||||
|             pe.Graphics.DrawRectangle(Pens.Gray, DisplayRectangle.Left, DisplayRectangle.Top, DisplayRectangle.Width - 1, DisplayRectangle.Height - 1); | ||||
|  | ||||
|             var baseRect = new Rectangle(DisplayRectangle.Left + Padding.Left, | ||||
|                 DisplayRectangle.Top + Padding.Top, | ||||
|                 DisplayRectangle.Width - Padding.Left - Padding.Right, | ||||
|                 DisplayRectangle.Height - Padding.Top - Padding.Bottom); | ||||
|  | ||||
|  | ||||
|             //상위 80% 영역을 표시영역으로 사용한ㄷ | ||||
|             var term = 3; | ||||
|             var DispRect = new Rectangle(baseRect.Left, baseRect.Top, baseRect.Width, (int)(baseRect.Height * 0.8f)); | ||||
|             var LampHeight = arPinBuz.PinIndex == -1 ? (DispRect.Height - 3 * term) / 3.0f : (DispRect.Height - 4 * term) / 4.0f; | ||||
|  | ||||
|             var rectR = new RectangleF(DispRect.Left, DispRect.Top + term, DispRect.Width, LampHeight); | ||||
|             var rectY = new RectangleF(DispRect.Left, rectR.Bottom + term, DispRect.Width, LampHeight); | ||||
|             var rectG = new RectangleF(DispRect.Left, rectY.Bottom + term, DispRect.Width, LampHeight); | ||||
|             var rectB = RectangleF.Empty; | ||||
|             if (arPinBuz.PinIndex != -1) | ||||
|             { | ||||
|                 rectB = new RectangleF(DispRect.Left, rectG.Bottom + term, DispRect.Width, LampHeight); | ||||
|             } | ||||
|  | ||||
|             var rectCT = new RectangleF(DispRect.Left + (DispRect.Width - 20) / 2.0f, DispRect.Top, 20, baseRect.Height); | ||||
|             pe.Graphics.FillRectangle(Brushes.DimGray, rectCT); | ||||
|             pe.Graphics.DrawRectangle(Pens.Black, rectCT); | ||||
|  | ||||
|             if(this.PinList[0].Value) | ||||
|                 pe.Graphics.FillRectangle(Brushes.Red, rectR); | ||||
|             else | ||||
|                 pe.Graphics.FillRectangle(Brushes.Gray, rectR); | ||||
|  | ||||
|             if (this.PinList[1].Value) | ||||
|                 pe.Graphics.FillRectangle(Brushes.Gold, rectY); | ||||
|             else | ||||
|                 pe.Graphics.FillRectangle(Brushes.Gray, rectY); | ||||
|  | ||||
|             if (this.PinList[2].Value) | ||||
|                 pe.Graphics.FillRectangle(Brushes.Green, rectG); | ||||
|             else | ||||
|                 pe.Graphics.FillRectangle(Brushes.Gray, rectG); | ||||
|  | ||||
|             pe.Graphics.DrawRectangle(Pens.Black, rectR); | ||||
|             pe.Graphics.DrawRectangle(Pens.Black, rectY); | ||||
|             pe.Graphics.DrawRectangle(Pens.Black, rectG); | ||||
|  | ||||
|             pe.Graphics.DrawString("RED", | ||||
|                 this.Font, | ||||
|                 Brushes.Black, | ||||
|                 rectR, | ||||
|                 new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); | ||||
|  | ||||
|             pe.Graphics.DrawString("YEL", | ||||
|                   this.Font, | ||||
|                   Brushes.Black, | ||||
|                   rectY, | ||||
|                   new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); | ||||
|  | ||||
|             pe.Graphics.DrawString("GRN", | ||||
|                   this.Font, | ||||
|                   Brushes.Black, | ||||
|                   rectG, | ||||
|                   new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); | ||||
|  | ||||
|             if (rectB.IsEmpty == false) | ||||
|             { | ||||
|                 if (this.PinList[3].Value) | ||||
|                     pe.Graphics.FillRectangle(Brushes.Magenta, rectB); | ||||
|                 else | ||||
|                     pe.Graphics.FillRectangle(Brushes.Gray, rectB); | ||||
|  | ||||
|                 pe.Graphics.DrawRectangle(Pens.Black, rectB); | ||||
|  | ||||
|                 pe.Graphics.DrawString("BUZ", | ||||
|             this.Font, | ||||
|             Brushes.Black, | ||||
|             rectB, | ||||
|             new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); | ||||
|             } | ||||
|  | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 ChiKyun Kim
					ChiKyun Kim