using System; using System.Drawing; using System.Windows.Forms; using Uestc.Auto6.Dso.Core; using Uni_Trend.MSO7000X.UserControls; using Uni_Trend.MSO7000X.UserControls.Style; namespace Uestc.Auto6.Dso.U2 { public partial class MeasureMenuForm : FloatForm, IMeasView, ICymometerView, IVoltmeterView { private readonly MeasureMenuPage _MeasureMenuPage; public MeasureMenuForm() { InitializeComponent(); _MeasureMenuPage = new MeasureMenuPage(); Controls.Add(_MeasureMenuPage); Controls.SetChildIndex(_MeasureMenuPage, 0); _MeasureMenuPage.Anchor = AnchorStyles.Top | AnchorStyles.Left; _MeasureMenuPage.Location = new Point(0, HeadHeight); this.HelpClick += (_, _) => { var res = Int32.TryParse(HelpLabel, out var index); if (!res) { HelpProcessManager.SendCommand(); EventBus.EventBroker.Instance.GetEvent().Publish(this, new EventBus.LogEventArgs($"Failed to obtain help index information({HelpLabel})!", EventBus.LogLevel.Debug)); return; } HelpProcessManager.SendCommand(HelpDocumentManager.Default.GetCommand(index)); }; } protected new Boolean DesignMode { get { Boolean rtnflag = false; #if DEBUG rtnflag = DesignTimeHelper.InDesignMode(this); #endif return rtnflag; } } protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle |= 0x02000000; // Turn on WS_EX_COMPOSITED return cp; } } public MeasPrsnt Presenter { get; set; } IMeasPrsnt IView.Presenter { get => Presenter; set => Presenter = (MeasPrsnt)value; } public CymometerPrsnt CymometerPresenter { get; set; } ICymometerPrsnt IView.Presenter { get => CymometerPresenter; set => CymometerPresenter = (CymometerPrsnt)value; } public VoltmeterPrsnt VoltmeterPresenter { get; set; } IBadge IView.Presenter { get => VoltmeterPresenter; set => VoltmeterPresenter = (VoltmeterPrsnt)value; } public void UpdateView(Object prsnt, String propertyName) { if (InvokeRequired) { BeginInvoke(new Action(Update), new[] { prsnt, propertyName }); } else { Update(prsnt, propertyName); } } protected void Update(Object prsnt, String propertyName) { _MeasureMenuPage.UpdateView(prsnt, propertyName); } protected override void OnFormClosed(FormClosedEventArgs e) { Presenter.TryRemoveView(this); CymometerPresenter.TryRemoveView(this); VoltmeterPresenter.TryRemoveView(this); base.OnFormClosed(e); } protected override void OnLoad(EventArgs e) { //this.AdjustSize(new(_MeasureMenuPage.Size.Width, _MeasureMenuPage.Size.Height + HeadHeight)); Size = new Size(_MeasureMenuPage.Size.Width, _MeasureMenuPage.Size.Height + HeadHeight); Style(); base.OnLoad(e); } private void Style() { _MeasureMenuPage.StylizeFlag = true; DefaultStyleManager.Instance.RegisterControlRecursion(this, StyleFlag.FontSize); this.IsShowPin = false; this.IsShowClose = false; this.HeadBackColor = AppStyleConfig.DefaultTitleBackColor; } } }