using System; using System.Collections; using System.ComponentModel; using System.ComponentModel.Design; using System.Drawing; using System.Windows.Forms; using System.Windows.Forms.Design; using DevComponents.DotNetBarKnobControl.Design; using Microsoft.Win32; namespace DevComponents.Instrumentation.Design { /// /// KnobControlDesigner /// public class GaugeControlDesigner : ControlDesigner { #region Private variables private GaugeControl _GaugeControl; private DesignerActionListCollection _ActionLists; #endregion #region Initialize /// /// Initializes our designer /// /// public override void Initialize(IComponent component) { base.Initialize(component); if (component.Site.DesignMode == true) _GaugeControl = component as GaugeControl; #if !TRIAL IDesignerHost dh = GetService(typeof(IDesignerHost)) as IDesignerHost; if (dh != null) dh.LoadComplete += DhLoadComplete; #endif } #endregion #region InitializeNewComponent public override void InitializeNewComponent(IDictionary defaultValues) { base.InitializeNewComponent(defaultValues); GaugeStyleDialog gsd = new GaugeStyleDialog(); gsd.ShowDialog(); if (Component != null && Component.Site != null && Component.Site.DesignMode == true) { if (_GaugeControl != null) { switch (gsd.CbSelected) { case "cbCircular": SetCircularDesignTimeDefaults(); break; case "cbC2Scales": SetC2ScalesDesignTimeDefaults(); break; case "cbCInsetScale": SetCInsetScaleDesignTimeDefaults(); break; case "cbCTopMeter": SetCTopMeterDesignTimeDefaults(); break; case "cbCBottomMeter": SetCBottomMeterDesignTimeDefaults(); break; case "cbHorizontal": SetHorizontalDesignTimeDefaults(); break; case "cbH2Scales": SetH2ScalesDesignTimeDefaults(); break; case "cbHMultiBars": SetHMultiBarsDesignTimeDefaults(); break; case "cbHThermometer": SetHThermometerDesignTimeDefaults(); break; case "cbVertical": SetVerticalDesignTimeDefaults(); break; case "cbV2Scales": SetV2ScalesDesignTimeDefaults(); break; case "cbVMultiBars": SetVMultiBarsDesignTimeDefaults(); break; case "cbVThermometer": SetVThermometerDesignTimeDefaults(); break; default: SetCircularDesignTimeDefaults(); break; } } } #if !TRIAL GaugeControl gauge = Control as GaugeControl; if (gauge != null) gauge.LicenseKey = GetLicenseKey(); #endif } #endregion #region SetCircularDesignTimeDefaults private void SetCircularDesignTimeDefaults() { _GaugeControl.Frame.Style = GaugeFrameStyle.Circular; SetBaseGuageColor(); GaugeCircularScale scale = new GaugeCircularScale(_GaugeControl); scale.Name = "Scale1"; scale.Radius = .38f; _GaugeControl.CircularScales.Add(scale); GaugeSection section = new GaugeSection(scale); section.Name = "Section1"; section.FillColor = new GradientFillColor(Color.CornflowerBlue, Color.Purple); scale.Sections.Add(section); GaugeRange range = new GaugeRange(scale); range.Name = "Range1"; range.FillColor = new GradientFillColor(Color.Lime, Color.Red); range.FillColor.BorderColor = Color.DimGray; range.FillColor.BorderWidth = 1; range.ScaleOffset = .28f; range.StartValue = 70; scale.Ranges.Add(range); GaugePointer pointer = new GaugePointer(scale); pointer.Name = "Pointer1"; pointer.Style = PointerStyle.Needle; pointer.Length = 0.358F; pointer.FillColor = new GradientFillColor(Color.WhiteSmoke, Color.Red); pointer.FillColor.BorderColor = Color.DimGray; pointer.FillColor.BorderWidth = 1; pointer.CapFillColor = new GradientFillColor(Color.WhiteSmoke, Color.DimGray, 90); pointer.CapFillColor.BorderColor = Color.DimGray; pointer.CapFillColor.BorderWidth = 1; scale.Pointers.Add(pointer); } #endregion #region SetC2ScalesDesignTimeDefaults private void SetC2ScalesDesignTimeDefaults() { _GaugeControl.Frame.Style = GaugeFrameStyle.Circular; SetBaseGuageColor(); GaugeCircularScale scale1 = new GaugeCircularScale(_GaugeControl); scale1.Name = "Scale1"; scale1.Radius = .38f; _GaugeControl.CircularScales.Add(scale1); GaugeSection section = new GaugeSection(scale1); section.Name = "Section1"; section.FillColor = new GradientFillColor(Color.CornflowerBlue, Color.Purple); scale1.Sections.Add(section); GaugePointer pointer = new GaugePointer(scale1); pointer.Name = "Pointer1"; pointer.Style = PointerStyle.Needle; pointer.Length = 0.358F; pointer.FillColor = new GradientFillColor(Color.WhiteSmoke, Color.Red); pointer.FillColor.BorderColor = Color.DimGray; pointer.FillColor.BorderWidth = 1; pointer.CapFillColor = new GradientFillColor(Color.WhiteSmoke, Color.DimGray, 90); pointer.CapFillColor.BorderColor = Color.DimGray; pointer.CapFillColor.BorderWidth = 1; scale1.Pointers.Add(pointer); GaugeCircularScale scale2 = new GaugeCircularScale(_GaugeControl); scale2.Name = "Scale2"; scale2.Radius = .24f; scale2.MaxValue = 200; scale2.MajorTickMarks.Interval = 20; scale2.MaxValue = 200; scale2.MinorTickMarks.Interval = 4; scale2.Name = "Scale2"; scale2.Radius = 0.24F; _GaugeControl.CircularScales.Add(scale2); section = new GaugeSection(scale2); section.Name = "Section1"; section.FillColor.Color1 = Color.CornflowerBlue; section.Name = "Section1"; scale2.Sections.Add(section); } #endregion #region SetCInsetScaleDesignTimeDefaults private void SetCInsetScaleDesignTimeDefaults() { _GaugeControl.Frame.Style = GaugeFrameStyle.Circular; SetBaseGuageColor(); GaugeCircularScale scale1 = new GaugeCircularScale(_GaugeControl); scale1.Name = "Scale1"; scale1.Radius = 0.092F; scale1.Width = 0.139F; scale1.MaxValue = 10; scale1.Labels.Layout.RotateLabel = false; scale1.Labels.Layout.Font = new Font("Microsoft Sans Serif", 18F); GradientFillColor fillColor = new GradientFillColor(Color.White); fillColor.BorderColor = Color.DimGray; fillColor.BorderWidth = 1; scale1.MajorTickMarks.Interval = 1; scale1.MajorTickMarks.Layout.FillColor = fillColor; scale1.MajorTickMarks.Layout.Length = 0.263F; scale1.MajorTickMarks.Layout.Style = GaugeMarkerStyle.Circle; scale1.MajorTickMarks.Layout.Width = 0.263F; scale1.MinorTickMarks.Interval = 0.5; scale1.MinorTickMarks.Layout.FillColor = new GradientFillColor(Color.Black); scale1.MinorTickMarks.Layout.Length = 0.2F; scale1.PivotPoint = new PointF(.50f, .68f); GaugePointer pointer = new GaugePointer(scale1); pointer.Name = "Pointer1"; pointer.Style = PointerStyle.Needle; pointer.Length = 0.54F; pointer.Width = 0.2F; pointer.Placement = DisplayPlacement.Near; pointer.NeedleStyle = NeedlePointerStyle.Style6; pointer.CapFillColor.BorderColor = Color.DimGray; pointer.CapFillColor.BorderWidth = 1; pointer.CapFillColor.Color1 = Color.WhiteSmoke; pointer.CapFillColor.Color2 = Color.Brown; pointer.CapFillColor.GradientFillType = GradientFillType.Center; pointer.CapStyle = NeedlePointerCapStyle.Style1; pointer.CapWidth = 0.4F; pointer.FillColor.BorderColor = Color.DarkSlateGray; pointer.FillColor.BorderWidth = 1; pointer.FillColor.Color1 = Color.Turquoise; scale1.Pointers.Add(pointer); GaugeSection section = new GaugeSection(scale1); section.FillColor.Color1 = Color.CornflowerBlue; section.Name = "Section1"; scale1.Sections.Add(section); _GaugeControl.CircularScales.Add(scale1); GaugeCircularScale scale2 = new GaugeCircularScale(_GaugeControl); scale2.Name = "Scale2"; scale2.Radius = .38f; section = new GaugeSection(scale2); section.Name = "Section1"; section.FillColor = new GradientFillColor(Color.CornflowerBlue, Color.Purple); scale2.Sections.Add(section); pointer = new GaugePointer(scale2); pointer.Name = "Pointer1"; pointer.Style = PointerStyle.Needle; pointer.Length = 0.358F; pointer.FillColor = new GradientFillColor(Color.WhiteSmoke, Color.Red); pointer.FillColor.BorderColor = Color.DimGray; pointer.FillColor.BorderWidth = 1; pointer.CapFillColor = new GradientFillColor(Color.WhiteSmoke, Color.DimGray, 90); pointer.CapFillColor.BorderColor = Color.DimGray; pointer.CapFillColor.BorderWidth = 1; scale2.Pointers.Add(pointer); _GaugeControl.CircularScales.Add(scale2); } #endregion #region SetCTopMeterDesignTimeDefaults private void SetCTopMeterDesignTimeDefaults() { _GaugeControl.Frame.Style = GaugeFrameStyle.Rectangular; _GaugeControl.Size = new Size(_GaugeControl.Size.Width, _GaugeControl.Size.Width / 3); SetBaseGuageColor(); GaugeCircularScale scale = new GaugeCircularScale(_GaugeControl); scale.Name = "Scale1"; scale.Radius = 2.5F; scale.StartAngle = 60F; scale.SweepAngle = 60F; scale.Width = 0.011F; scale.MajorTickMarks.Interval = 50; scale.MajorTickMarks.Layout.Length = 0.063F; scale.MajorTickMarks.Layout.Width = 0.033F; scale.MaxPin.EndOffset = 0.01F; scale.MaxPin.Length = 0.026F; scale.MaxPin.ScaleOffset = -0.06F; scale.MaxPin.Width = 0.026F; GradientFillColor fillColor = new GradientFillColor(Color.LightYellow); fillColor.BorderColor = Color.DimGray; fillColor.BorderWidth = 1; scale.MinorTickMarks.Interval = 10; scale.MinorTickMarks.Layout.FillColor = fillColor; scale.MinorTickMarks.Layout.Length = 0.042F; scale.MinorTickMarks.Layout.Width = 0.013F; scale.MinPin.EndOffset = 0.01F; scale.MinPin.Length = 0.026F; scale.MinPin.ScaleOffset = -0.06F; scale.MinPin.Width = 0.026F; scale.PivotPoint = new PointF(.5f, -1.7f); scale.Labels.Layout.Font = new Font("Microsoft Sans Serif", 4F); scale.Labels.Layout.ScaleOffset = 0.075F; GaugeRange range = new GaugeRange(scale); range.Name = "Range1"; range.ScaleOffset = 0.033F; range.StartValue = 0; range.StartWidth = 0.07F; range.EndValue = 100; range.EndWidth = 0.07F; range.FillColor.BorderColor = Color.Gray; range.FillColor.BorderWidth = 1; range.FillColor.Color1 = Color.Yellow; range.FillColor.Color2 = Color.Lime; scale.Ranges.Add(range); GaugePointer pointer = new GaugePointer(scale); pointer.Name = "Pointer1"; pointer.Style = PointerStyle.Needle; pointer.ScaleOffset = -0.057F; pointer.Width = 0.032F; pointer.CapFillColor.BorderColor = Color.DimGray; pointer.CapFillColor.BorderWidth = 1; pointer.CapFillColor.Color1 = Color.Gainsboro; pointer.CapFillColor.Color2 = Color.Silver; pointer.FillColor.BorderColor = Color.DimGray; pointer.FillColor.BorderWidth = 1; pointer.FillColor.Color1 = Color.Black; scale.Pointers.Add(pointer); _GaugeControl.CircularScales.Add(scale); } #endregion #region SetCBottomMeterDesignTimeDefaults private void SetCBottomMeterDesignTimeDefaults() { _GaugeControl.Frame.Style = GaugeFrameStyle.Rectangular; _GaugeControl.Frame.BackColor = new GradientFillColor(Color.Gainsboro, Color.DarkGray); _GaugeControl.Frame.FrameColor = new GradientFillColor(Color.White, Color.DimGray); _GaugeControl.Frame.FrameColor.BorderColor = Color.Gainsboro; _GaugeControl.Frame.FrameColor.BorderWidth = 1; _GaugeControl.Size = new Size(_GaugeControl.Size.Width, _GaugeControl.Size.Width / 3); GaugeCircularScale scale = new GaugeCircularScale(_GaugeControl); scale.Name = "Scale1"; scale.Radius = 2.5F; scale.StartAngle = 240F; scale.SweepAngle = 60F; scale.Width = 0.011F; scale.MajorTickMarks.Interval = 50; scale.MajorTickMarks.Layout.Length = 0.063F; scale.MajorTickMarks.Layout.Width = 0.033F; scale.MaxPin.EndOffset = 0.01F; scale.MaxPin.Length = 0.026F; scale.MaxPin.ScaleOffset = -0.06F; scale.MaxPin.Width = 0.026F; GradientFillColor fillColor = new GradientFillColor(Color.LightYellow); fillColor.BorderColor = Color.DimGray; fillColor.BorderWidth = 1; scale.MinorTickMarks.Interval = 10; scale.MinorTickMarks.Layout.FillColor = fillColor; scale.MinorTickMarks.Layout.Length = 0.042F; scale.MinorTickMarks.Layout.Width = 0.013F; scale.MinPin.EndOffset = 0.01F; scale.MinPin.Length = 0.026F; scale.MinPin.ScaleOffset = -0.06F; scale.MinPin.Width = 0.026F; scale.PivotPoint = new PointF(.5f, 2.7f); scale.Labels.Layout.Font = new Font("Microsoft Sans Serif", 4F); scale.Labels.Layout.ScaleOffset = 0.075F; GaugeRange range = new GaugeRange(scale); range.Name = "Range1"; range.ScaleOffset = 0.033F; range.StartValue = 0; range.StartWidth = 0.07F; range.EndValue = 100; range.EndWidth = 0.07F; range.FillColor.BorderColor = Color.Gray; range.FillColor.BorderWidth = 1; range.FillColor.Color1 = Color.Yellow; range.FillColor.Color2 = Color.Lime; scale.Ranges.Add(range); GaugePointer pointer = new GaugePointer(scale); pointer.Name = "Pointer1"; pointer.Style = PointerStyle.Needle; pointer.ScaleOffset = -0.057F; pointer.Width = 0.032F; pointer.CapFillColor.BorderColor = Color.DimGray; pointer.CapFillColor.BorderWidth = 1; pointer.CapFillColor.Color1 = Color.Gainsboro; pointer.CapFillColor.Color2 = Color.Silver; pointer.FillColor.BorderColor = Color.DimGray; pointer.FillColor.BorderWidth = 1; pointer.FillColor.Color1 = Color.Black; scale.Pointers.Add(pointer); _GaugeControl.CircularScales.Add(scale); } #endregion #region SetHorizontalDesignTimeDefaults private void SetHorizontalDesignTimeDefaults() { _GaugeControl.Frame.Style = GaugeFrameStyle.Rectangular; SetBaseGuageColor(); GaugeLinearScale scale = new GaugeLinearScale(_GaugeControl); scale.Name = "Scale1"; scale.MaxValue = 50; scale.MinPin.Visible = false; scale.MaxPin.Visible = false; _GaugeControl.LinearScales.Add(scale); GaugeSection section = new GaugeSection(scale); section.Name = "Section1"; section.FillColor = new GradientFillColor(Color.CornflowerBlue, Color.Purple); scale.Sections.Add(section); GaugePointer pointer = new GaugePointer(scale); pointer.Name = "Pointer1"; pointer.Style = PointerStyle.Marker; pointer.Placement = DisplayPlacement.Far; pointer.ScaleOffset = .05f; pointer.FillColor = new GradientFillColor(Color.Red); pointer.FillColor.BorderColor = Color.DimGray; pointer.FillColor.BorderWidth = 1; Color color1 = Color.FromArgb(100, 60, 60, 60); pointer.ThermoBackColor = new GradientFillColor(color1); pointer.ThermoBackColor.BorderColor = Color.Black; pointer.ThermoBackColor.BorderWidth = 1; scale.Pointers.Add(pointer); } #endregion #region SetH2ScalesDesignTimeDefaults private void SetH2ScalesDesignTimeDefaults() { _GaugeControl.Frame.Style = GaugeFrameStyle.Rectangular; SetBaseGuageColor(); GaugeLinearScale scale = new GaugeLinearScale(_GaugeControl); scale.Name = "Scale1"; scale.MaxValue = 50; scale.Width = 0.14F; scale.BorderColor = Color.Gray; scale.BorderWidth = 1; scale.Location = new PointF(.5f, .53f); scale.MajorTickMarks.Layout.Style = GaugeMarkerStyle.Rectangle; scale.MajorTickMarks.Layout.Placement = DisplayPlacement.Near; scale.MajorTickMarks.Layout.Width = 0.047F; scale.MinorTickMarks.Layout.Placement = DisplayPlacement.Near; scale.MaxPin.Visible = false; scale.MinPin.Visible = false; GaugeSection section = new GaugeSection(scale); section.Name = "Section1"; section.FillColor.Color1 = Color.CornflowerBlue; scale.Sections.Add(section); GaugePointer pointer = new GaugePointer(scale); pointer.Name = "Pointer1"; pointer.Style = PointerStyle.Bar; pointer.CapFillColor.BorderColor = Color.DimGray; pointer.CapFillColor.BorderWidth = 1; pointer.CapFillColor.Color1 = Color.WhiteSmoke; pointer.CapFillColor.Color2 = Color.DimGray; pointer.FillColor.BorderColor = Color.DimGray; pointer.FillColor.BorderWidth = 1; pointer.FillColor.Color1 = Color.Red; pointer.Value = 15; scale.Pointers.Add(pointer); _GaugeControl.LinearScales.Add(scale); scale = new GaugeLinearScale(_GaugeControl); scale.Name = "Scale2"; scale.Width = 0.14F; scale.MaxValue = 25; scale.Location = new PointF(.5f, .53f); scale.Labels.Layout.Placement = DisplayPlacement.Far; scale.Labels.Layout.ScaleOffset = 0.054F; scale.MajorTickMarks.Interval = 5; scale.MajorTickMarks.Layout.Width = 0.047F; scale.MajorTickMarks.Layout.Style = GaugeMarkerStyle.Rectangle; scale.MajorTickMarks.Layout.Placement = DisplayPlacement.Far; scale.MinorTickMarks.Interval = 1.25f; scale.MinorTickMarks.Layout.Placement = DisplayPlacement.Far; scale.MaxPin.Visible = false; scale.MinPin.Visible = false; _GaugeControl.LinearScales.Add(scale); } #endregion #region SetHMultiBarsDesignTimeDefaults private void SetHMultiBarsDesignTimeDefaults() { _GaugeControl.Frame.Style = GaugeFrameStyle.Rectangular; SetBaseGuageColor(); GaugeLinearScale scale = new GaugeLinearScale(_GaugeControl); scale.Name = "Scale1"; scale.MaxValue = 50; scale.Width = 0; scale.Labels.Layout.Placement = DisplayPlacement.Far; scale.Labels.Layout.ScaleOffset = -0.016F; scale.Location = new PointF(.5f, .68f); scale.MajorTickMarks.Layout.Placement = DisplayPlacement.Far; scale.MajorTickMarks.Layout.Style = GaugeMarkerStyle.Rectangle; scale.MajorTickMarks.Layout.Width = 0.044F; scale.MinorTickMarks.Layout.Placement = DisplayPlacement.Far; scale.MaxPin.Visible = false; scale.MinPin.Visible = false; GaugePointer pointer = new GaugePointer(scale); pointer.Name = "Pointer1"; pointer.Style = PointerStyle.Bar; pointer.BarStyle = BarPointerStyle.Rounded; pointer.ScaleOffset = 0.022F; pointer.Placement = DisplayPlacement.Near; pointer.FillColor.BorderColor = Color.DimGray; pointer.FillColor.BorderWidth = 1; pointer.FillColor.Color1 = Color.Yellow; pointer.Value = 15; scale.Pointers.Add(pointer); pointer = new GaugePointer(scale); pointer.Name = "Pointer2"; pointer.Style = PointerStyle.Bar; pointer.BarStyle = BarPointerStyle.Rounded; pointer.ScaleOffset = 0.19F; pointer.Placement = DisplayPlacement.Near; pointer.FillColor.BorderColor = Color.DimGray; pointer.FillColor.BorderWidth = 1; pointer.FillColor.Color1 = Color.Gold; pointer.Value = 25; scale.Pointers.Add(pointer); pointer = new GaugePointer(scale); pointer.Name = "Pointer3"; pointer.Style = PointerStyle.Bar; pointer.BarStyle = BarPointerStyle.Rounded; pointer.ScaleOffset = 0.358F; pointer.Placement = DisplayPlacement.Near; pointer.FillColor.BorderColor = Color.DimGray; pointer.FillColor.BorderWidth = 1; pointer.FillColor.Color1 = Color.Chartreuse; pointer.Value = 35; scale.Pointers.Add(pointer); pointer = new GaugePointer(scale); pointer.Name = "Pointer4"; pointer.Style = PointerStyle.Bar; pointer.BarStyle = BarPointerStyle.Rounded; pointer.ScaleOffset = 0.526F; pointer.Placement = DisplayPlacement.Near; pointer.FillColor.BorderColor = Color.DimGray; pointer.FillColor.BorderWidth = 1; pointer.FillColor.Color1 = Color.Turquoise; pointer.Value = 50; scale.Pointers.Add(pointer); _GaugeControl.LinearScales.Add(scale); } #endregion #region SetHMThermometerDesignTimeDefaults private void SetHThermometerDesignTimeDefaults() { _GaugeControl.Frame.Style = GaugeFrameStyle.Rectangular; SetBaseGuageColor(); GaugeLinearScale scale = new GaugeLinearScale(_GaugeControl); scale.Name = "Scale1"; scale.Width = 0.1F; scale.Location = new PointF(.55f, .51f); scale.MinValue = -30; scale.MaxValue = 40; scale.Labels.FormatString = "0°"; scale.MajorTickMarks.Layout.Placement = DisplayPlacement.Near; scale.MajorTickMarks.Layout.Style = GaugeMarkerStyle.Rectangle; scale.MajorTickMarks.Layout.Width = 0.008F; scale.MinPin.Visible = false; scale.MaxPin.Visible = false; scale.MinorTickMarks.Layout.Placement = DisplayPlacement.Near; scale.MinorTickMarks.Layout.Width = 0.016F; GaugeSection section = new GaugeSection(scale); section.Name = "Section1"; section.FillColor.Color1 = Color.SteelBlue; section.FillColor.Color2 = Color.LightCyan; section.FillColor.GradientFillType = GradientFillType.HorizontalCenter; scale.Sections.Add(section); GaugePointer pointer = new GaugePointer(scale); pointer.Name = "Pointer1"; pointer.Width = 0.1F; pointer.Style = PointerStyle.Thermometer; pointer.BulbSize = 0.132F; pointer.BulbOffset = .026F; pointer.FillColor.Color1 = Color.Red; pointer.FillColor.Color2 = Color.Empty; pointer.ThermoBackColor.Color1 = Color.FromArgb(100, 60, 60, 60); pointer.Value = 12; scale.Pointers.Add(pointer); _GaugeControl.LinearScales.Add(scale); scale = new GaugeLinearScale(_GaugeControl); scale.Name = "Scale2"; scale.Width = 0.1F; scale.Location = new PointF(.55f, .51f); scale.MinValue = -22; scale.MaxValue = 104; scale.Labels.FormatString = "0°"; scale.Labels.Layout.Placement = DisplayPlacement.Far; scale.Labels.ShowMaxLabel = false; scale.Labels.ShowMinLabel = false; scale.MinPin.Visible = false; scale.MaxPin.Visible = false; scale.MajorTickMarks.Interval = 20; scale.MajorTickMarks.IntervalOffset = 2; scale.MajorTickMarks.Layout.Placement = DisplayPlacement.Far; scale.MajorTickMarks.Layout.Style = GaugeMarkerStyle.Rectangle; scale.MajorTickMarks.Layout.Width = 0.008F; scale.MinorTickMarks.Interval = 4; scale.MinorTickMarks.IntervalOffset = 2; scale.MinorTickMarks.Layout.Placement = DisplayPlacement.Far; scale.MinorTickMarks.Layout.Width = 0.016F; _GaugeControl.LinearScales.Add(scale); GaugeText text = new GaugeText(_GaugeControl); text.Location = new PointF(.08f, .28f); text.Name = "Text1"; text.Text = "C°"; _GaugeControl.GaugeItems.Add(text); text = new GaugeText(_GaugeControl); text.Location = new PointF(.08f, .73f); text.Name = "Text2"; text.Text = "F°"; _GaugeControl.GaugeItems.Add(text); } #endregion #region SetVerticalDesignTimeDefaults private void SetVerticalDesignTimeDefaults() { _GaugeControl.Frame.Style = GaugeFrameStyle.Rectangular; SetBaseGuageColor(); GaugeLinearScale scale = new GaugeLinearScale(_GaugeControl); scale.Name = "Scale1"; scale.Orientation = Orientation.Vertical; scale.MaxValue = 50; scale.Labels.Layout.ScaleOffset = .03f; scale.MinPin.Visible = false; scale.MaxPin.Visible = false; _GaugeControl.LinearScales.Add(scale); GaugeSection section = new GaugeSection(scale); section.Name = "Section1"; section.FillColor = new GradientFillColor(Color.CornflowerBlue, Color.Purple); scale.Sections.Add(section); GaugePointer pointer = new GaugePointer(scale); pointer.Name = "Pointer1"; pointer.Style = PointerStyle.Marker; pointer.Placement = DisplayPlacement.Far; pointer.ScaleOffset = .05f; pointer.FillColor = new GradientFillColor(Color.Red); pointer.FillColor.BorderColor = Color.DimGray; pointer.FillColor.BorderWidth = 1; Color color1 = Color.FromArgb(100, 60, 60, 60); pointer.ThermoBackColor = new GradientFillColor(color1); pointer.ThermoBackColor.BorderColor = Color.Black; pointer.ThermoBackColor.BorderWidth = 1; scale.Pointers.Add(pointer); } #endregion #region SetV2ScalesDesignTimeDefaults private void SetV2ScalesDesignTimeDefaults() { _GaugeControl.Frame.Style = GaugeFrameStyle.Rectangular; SetBaseGuageColor(); GaugeLinearScale scale = new GaugeLinearScale(_GaugeControl); scale.Name = "Scale1"; scale.Orientation = Orientation.Vertical; scale.MaxValue = 50; scale.Width = 0.14F; scale.BorderColor = Color.Gray; scale.BorderWidth = 1; scale.Location = new PointF(.5f, .53f); scale.MajorTickMarks.Layout.Style = GaugeMarkerStyle.Rectangle; scale.MajorTickMarks.Layout.Placement = DisplayPlacement.Near; scale.MajorTickMarks.Layout.Width = 0.047F; scale.MinorTickMarks.Layout.Placement = DisplayPlacement.Near; scale.MaxPin.Visible = false; scale.MinPin.Visible = false; GaugeSection section = new GaugeSection(scale); section.Name = "Section1"; section.FillColor.Color1 = Color.CornflowerBlue; scale.Sections.Add(section); GaugePointer pointer = new GaugePointer(scale); pointer.Name = "Pointer1"; pointer.Style = PointerStyle.Bar; pointer.CapFillColor.BorderColor = Color.DimGray; pointer.CapFillColor.BorderWidth = 1; pointer.CapFillColor.Color1 = Color.WhiteSmoke; pointer.CapFillColor.Color2 = Color.DimGray; pointer.FillColor.BorderColor = Color.DimGray; pointer.FillColor.BorderWidth = 1; pointer.FillColor.Color1 = Color.Red; pointer.Value = 15; scale.Pointers.Add(pointer); _GaugeControl.LinearScales.Add(scale); scale = new GaugeLinearScale(_GaugeControl); scale.Name = "Scale2"; scale.Orientation = Orientation.Vertical; scale.Width = 0.14F; scale.MaxValue = 25; scale.Location = new PointF(.5f, .53f); scale.Labels.Layout.Placement = DisplayPlacement.Far; scale.Labels.Layout.ScaleOffset = 0.054F; scale.MajorTickMarks.Interval = 5; scale.MajorTickMarks.Layout.Width = 0.047F; scale.MajorTickMarks.Layout.Style = GaugeMarkerStyle.Rectangle; scale.MajorTickMarks.Layout.Placement = DisplayPlacement.Far; scale.MinorTickMarks.Interval = 1.25f; scale.MinorTickMarks.Layout.Placement = DisplayPlacement.Far; scale.MaxPin.Visible = false; scale.MinPin.Visible = false; _GaugeControl.LinearScales.Add(scale); } #endregion #region SetVMultiBarsDesignTimeDefaults private void SetVMultiBarsDesignTimeDefaults() { _GaugeControl.Frame.Style = GaugeFrameStyle.Rectangular; SetBaseGuageColor(); GaugeLinearScale scale = new GaugeLinearScale(_GaugeControl); scale.Name = "Scale1"; scale.Orientation = Orientation.Vertical; scale.MaxValue = 50; scale.Width = 0; scale.Labels.Layout.Placement = DisplayPlacement.Near; scale.Location = new PointF(.38f, .5f); scale.MajorTickMarks.Layout.Placement = DisplayPlacement.Near; scale.MajorTickMarks.Layout.Style = GaugeMarkerStyle.Rectangle; scale.MajorTickMarks.Layout.Width = 0.044F; scale.MinorTickMarks.Layout.Placement = DisplayPlacement.Near; scale.MaxPin.Visible = false; scale.MinPin.Visible = false; GaugePointer pointer = new GaugePointer(scale); pointer.Name = "Pointer1"; pointer.Style = PointerStyle.Bar; pointer.BarStyle = BarPointerStyle.Rounded; pointer.Width = .12f; pointer.ScaleOffset = 0.022F; pointer.Placement = DisplayPlacement.Far; pointer.FillColor.BorderColor = Color.DimGray; pointer.FillColor.BorderWidth = 1; pointer.FillColor.Color1 = Color.Yellow; pointer.Value = 15; scale.Pointers.Add(pointer); pointer = new GaugePointer(scale); pointer.Name = "Pointer2"; pointer.Style = PointerStyle.Bar; pointer.BarStyle = BarPointerStyle.Rounded; pointer.Width = .12f; pointer.ScaleOffset = 0.17F; pointer.Placement = DisplayPlacement.Far; pointer.FillColor.BorderColor = Color.DimGray; pointer.FillColor.BorderWidth = 1; pointer.FillColor.Color1 = Color.Gold; pointer.Value = 25; scale.Pointers.Add(pointer); pointer = new GaugePointer(scale); pointer.Name = "Pointer3"; pointer.Style = PointerStyle.Bar; pointer.BarStyle = BarPointerStyle.Rounded; pointer.Width = .12f; pointer.ScaleOffset = 0.318F; pointer.Placement = DisplayPlacement.Far; pointer.FillColor.BorderColor = Color.DimGray; pointer.FillColor.BorderWidth = 1; pointer.FillColor.Color1 = Color.Chartreuse; pointer.Value = 35; scale.Pointers.Add(pointer); pointer = new GaugePointer(scale); pointer.Name = "Pointer4"; pointer.Style = PointerStyle.Bar; pointer.BarStyle = BarPointerStyle.Rounded; pointer.Width = .12f; pointer.ScaleOffset = 0.46F; pointer.Placement = DisplayPlacement.Far; pointer.FillColor.BorderColor = Color.DimGray; pointer.FillColor.BorderWidth = 1; pointer.FillColor.Color1 = Color.Turquoise; pointer.Value = 50; scale.Pointers.Add(pointer); _GaugeControl.LinearScales.Add(scale); } #endregion #region SetVMThermometerDesignTimeDefaults private void SetVThermometerDesignTimeDefaults() { _GaugeControl.Frame.Style = GaugeFrameStyle.Rectangular; SetBaseGuageColor(); GaugeLinearScale scale = new GaugeLinearScale(_GaugeControl); scale.Name = "Scale1"; scale.Orientation = Orientation.Vertical; scale.Width = 0.1F; scale.Size = new SizeF(.75f, .75f); scale.Location = new PointF(.50f, .46f); scale.MinValue = -30; scale.MaxValue = 40; scale.Labels.FormatString = "0°"; scale.MajorTickMarks.Layout.Placement = DisplayPlacement.Near; scale.MajorTickMarks.Layout.Style = GaugeMarkerStyle.Rectangle; scale.MajorTickMarks.Layout.Width = 0.008F; scale.MinPin.Visible = false; scale.MaxPin.Visible = false; scale.MinorTickMarks.Layout.Placement = DisplayPlacement.Near; scale.MinorTickMarks.Layout.Width = 0.016F; GaugeSection section = new GaugeSection(scale); section.Name = "Section1"; section.FillColor.Color1 = Color.SteelBlue; section.FillColor.Color2 = Color.LightCyan; section.FillColor.GradientFillType = GradientFillType.VerticalCenter; scale.Sections.Add(section); GaugePointer pointer = new GaugePointer(scale); pointer.Name = "Pointer1"; pointer.Width = 0.1F; pointer.Style = PointerStyle.Thermometer; pointer.BulbSize = 0.132F; pointer.BulbOffset = .026F; pointer.FillColor.Color1 = Color.Red; pointer.FillColor.Color2 = Color.Empty; pointer.FillColor.BorderColor = Color.DimGray; pointer.FillColor.BorderWidth = 1; pointer.ThermoBackColor.Color1 = Color.FromArgb(100, 60, 60, 60); pointer.FillColor.BorderColor = Color.Black; pointer.FillColor.BorderWidth = 1; pointer.Value = 12; scale.Pointers.Add(pointer); _GaugeControl.LinearScales.Add(scale); scale = new GaugeLinearScale(_GaugeControl); scale.Name = "Scale2"; scale.Orientation = Orientation.Vertical; scale.Width = 0.1F; scale.Size = new SizeF(.75f, .75f); scale.Location = new PointF(.50f, .46f); scale.MinValue = -22; scale.MaxValue = 104; scale.Labels.FormatString = "0°"; scale.Labels.Layout.Placement = DisplayPlacement.Far; scale.Labels.ShowMaxLabel = false; scale.Labels.ShowMinLabel = false; scale.MinPin.Visible = false; scale.MaxPin.Visible = false; scale.MajorTickMarks.Interval = 20; scale.MajorTickMarks.IntervalOffset = 2; scale.MajorTickMarks.Layout.Placement = DisplayPlacement.Far; scale.MajorTickMarks.Layout.Style = GaugeMarkerStyle.Rectangle; scale.MajorTickMarks.Layout.Width = 0.008F; scale.MinorTickMarks.Interval = 4; scale.MinorTickMarks.IntervalOffset = 2; scale.MinorTickMarks.Layout.Placement = DisplayPlacement.Far; scale.MinorTickMarks.Layout.Width = 0.016F; _GaugeControl.LinearScales.Add(scale); GaugeText text = new GaugeText(_GaugeControl); text.Location = new PointF(.26f, .9f); text.Name = "Text1"; text.Text = "C°"; _GaugeControl.GaugeItems.Add(text); text = new GaugeText(_GaugeControl); text.Location = new PointF(.76f, .9f); text.Name = "Text2"; text.Text = "F°"; _GaugeControl.GaugeItems.Add(text); } #endregion #region SetBaseGuageColor private void SetBaseGuageColor() { _GaugeControl.Frame.BackColor = new GradientFillColor(Color.Gainsboro, Color.DarkGray); _GaugeControl.Frame.FrameColor = new GradientFillColor(Color.White, Color.DimGray); _GaugeControl.Frame.FrameColor.BorderColor = Color.Gainsboro; _GaugeControl.Frame.FrameColor.BorderWidth = 1; } #endregion #region Verbs /// /// Creates our verb collection /// public override DesignerVerbCollection Verbs { get { DesignerVerb[] verbs = new DesignerVerb[] { new DesignerVerb("Circular Frame", SetStyleCircular), new DesignerVerb("Rectangular Frame", SetStyleRectangular), new DesignerVerb("Rectangular Round Frame", SetStyleRoundedRectangular), new DesignerVerb("No Frame", SetStyleNone), }; return (new DesignerVerbCollection(verbs)); } } #endregion #region SetStyle /// /// Sets the control to Style1 /// /// /// protected virtual void SetStyleCircular(object sender, EventArgs e) { _GaugeControl.Frame.Style = GaugeFrameStyle.Circular; } /// /// Sets the control to SetStyleRectangular /// /// /// protected virtual void SetStyleRectangular(object sender, EventArgs e) { _GaugeControl.Frame.Style = GaugeFrameStyle.Rectangular; } /// /// Sets the control to SetStyleRoundedRectangular /// /// /// protected virtual void SetStyleRoundedRectangular(object sender, EventArgs e) { _GaugeControl.Frame.Style = GaugeFrameStyle.RoundedRectangular; } /// /// Sets the control to None /// /// /// protected virtual void SetStyleNone(object sender, EventArgs e) { _GaugeControl.Frame.Style = GaugeFrameStyle.None; } #endregion #region ActionLists public override DesignerActionListCollection ActionLists { get { if (_ActionLists == null) { _ActionLists = new DesignerActionListCollection(); _ActionLists.Add(new GaugeControlActionList(_GaugeControl)); } return (_ActionLists); } } #endregion #region Licensing Stuff #if !TRIAL private string GetLicenseKey() { string key = ""; RegistryKey regkey = Registry.LocalMachine.OpenSubKey("Software\\DevComponents\\Licenses", false); if (regkey != null) { object keyValue = regkey.GetValue("DevComponents.DotNetBar.DotNetBarManager2"); if (keyValue != null) key = keyValue.ToString(); } return (key); } private void DhLoadComplete(object sender, EventArgs e) { IDesignerHost dh = GetService(typeof(IDesignerHost)) as IDesignerHost; if (dh != null) dh.LoadComplete -= DhLoadComplete; string key = GetLicenseKey(); GaugeControl gauge = Control as GaugeControl; if (key != "" && gauge != null && gauge.LicenseKey == "" && gauge.LicenseKey != key) TypeDescriptor.GetProperties(gauge)["LicenseKey"].SetValue(gauge, key); } #endif #endregion } }