/// <summary> /// Hides a form, calls a provided function, and then shows the form. This works for /// modal forms. Useful for selecting objects or getting points while a modal dialog /// is running. /// </summary> /// <param name="form">A form window.</param> /// <param name="pickFunction">A picking delegate.</param> public static void PushPickButton(System.Windows.Forms.Form form, System.EventHandler <EventArgs> pickFunction) { if (form == null || pickFunction == null) { return; } IntPtr handle = form.Handle; if (IntPtr.Zero == handle) { return; } if (form.Modal) { IntPtr pList = UnsafeNativeMethods.RHC_PushPickButtonHide(handle); if (IntPtr.Zero != pList) { RhinoApp.Wait(); RhinoApp.SetFocusToMainWindow(); pickFunction(form, EventArgs.Empty); UnsafeNativeMethods.RHC_PushPickButtonShow(pList); } } else { form.Visible = false; RhinoApp.Wait(); RhinoApp.SetFocusToMainWindow(); pickFunction(form, EventArgs.Empty); form.Visible = true; } }
void IDisposable.Dispose() { EnableWindow(Revit.MainWindowHandle, WasEnabled); if (ActiveForm != null) { ActiveForm.Visible = WasVisible; } if (WasExposed) { Rhino.UI.RhinoEtoApp.MainWindow.Visible = WasExposed; } if (WasVisible) { ShowOwnedPopups(true); } var activePopup = GetEnabledPopup(); if (activePopup == IntPtr.Zero || WasExposed) { RhinoApp.SetFocusToMainWindow(); } else { BringWindowToTop(activePopup); } }
void IDisposable.Dispose() { EnableWindow(MWHBricscad, WasEnabled); if (ActiveForm != null) { ActiveForm.Visible = WasVisible; } if (WasExposed) { Rhinoceros.WindowVisible = WasExposed; } if (WasVisible) { ShowOwnedPopups(true); } var activePopup = GetEnabledPopup(); if (activePopup == IntPtr.Zero || WasExposed) { RhinoApp.SetFocusToMainWindow(); } else { BringWindowToTop(activePopup); } }
private static void On_Initialized(object sender, EventArgs e) { IsAppInitialized = true; RhinoApp.SetFocusToMainWindow(); if (DEBUG) { log.debug(g._RhinoDoc, "On_Initialized"); } if (Initialized == null) { return; } Shared.TryCatchAction(() => Initialized(sender, e), g._RhinoDoc, "exception in Initialized event"); }
private void Button_Close_Click(object sender, RoutedEventArgs e) { ButtonStateCheck(ButtonState.None); endWhileLoop = true; RhinoApp.SetFocusToMainWindow(); string manualPlotArea = this.manualPlotArea.Text; List <char> manualPlotAreaList = manualPlotArea.ToList(); string manualPlotAreaValue = manualPlotArea; TuringAndCorbusierPlugIn.InstanceClass.page1Settings = new Settings_Page1(this.projectName.Text, this.address.Text, this.plotType, double.Parse(manualPlotAreaValue), double.Parse(this.maxFloorAreaRatio.Text), double.Parse(this.maxBuildingCoverage.Text), int.Parse(this.maxFloors.Text)); ((Rhino.UI.Panels.GetPanel(TuringHost.PanelId) as RhinoWindows.Controls.WpfElementHost).Child as Turing).RefreshProjectInfo(); /// <summary> /// 0518 민호 close 클릭시 currnetnewprojectwindow 초기화 /// </summary> TuringAndCorbusierPlugIn.InstanceClass.currentNewProjectWindow = null; UIManager.getInstance().HideWindow(this, UIManager.WindowType.Basic); }
/// <summary> /// 0518 민호 클릭하지 않아도 닫는 함수 생성. 종료 전 currentnewprojectwindow 변수 초기화 /// </summary> public bool CloseWithoutOkClick() { ButtonStateCheck(ButtonState.None); if (TuringAndCorbusierPlugIn.InstanceClass.kdgInfoSet == null) { return(false); } if (points.Count == 0) { var result = MessageBox.Show("대지의 경사 정보가 설정되지 않았습니다. 평평한 대지로 계속 하시겠습니까?", "경사 정보 없음", MessageBoxButton.YesNo); if (result == MessageBoxResult.No) { return(false); } } else { var result = MessageBox.Show("정보 입력을 마치고 설계를 시작합니다.", "창 닫기", MessageBoxButton.YesNo); if (result == MessageBoxResult.No) { return(false); } } RhinoDoc.SelectObjects -= SelectSlopePoint; endWhileLoop = true; TuringAndCorbusierPlugIn.InstanceClass.kdgInfoSet.Getdir(points); foreach (var gggg in spguids) { RhinoDoc.ActiveDoc.Objects.Hide(gggg, true); } if (NorthCheck.IsChecked == true) { TuringAndCorbusierPlugIn.InstanceClass.plot.ignoreNorth = true; } else { TuringAndCorbusierPlugIn.InstanceClass.plot.ignoreNorth = false; } if (SpecialCase.IsChecked == true) { TuringAndCorbusierPlugIn.InstanceClass.plot.isSpecialCase = true; } else { TuringAndCorbusierPlugIn.InstanceClass.plot.isSpecialCase = false; } if (TuringAndCorbusierPlugIn.InstanceClass.regSettings != null) { double result = double.NaN; if (double.TryParse(fromRoad.Text, out result)) { TuringAndCorbusierPlugIn.InstanceClass.regSettings.DistanceEase[0] = result; result = double.NaN; } if (double.TryParse(fromSurr.Text, out result)) { TuringAndCorbusierPlugIn.InstanceClass.regSettings.DistanceEase[1] = result; result = double.NaN; } if (double.TryParse(fromLighting.Text, out result)) { TuringAndCorbusierPlugIn.InstanceClass.regSettings.DistanceLighting = result; result = double.NaN; } if (double.TryParse(fromOtherBuilding.Text, out result)) { TuringAndCorbusierPlugIn.InstanceClass.regSettings.DistanceIndentation = result; result = double.NaN; } if (double.TryParse(easeFloor.Text, out result)) { TuringAndCorbusierPlugIn.InstanceClass.regSettings.EaseFloor = result; result = double.NaN; } } RhinoApp.SetFocusToMainWindow(); //System.Windows.Forms.SendKeys.SendWait("{ESC}"); string manualPlotArea = this.manualPlotArea.Text; List <char> manualPlotAreaList = manualPlotArea.ToList(); string manualPlotAreaValue = manualPlotArea; TuringAndCorbusierPlugIn.InstanceClass.page1Settings = new Settings_Page1(this.projectName.Text, this.address.Text, this.plotType, double.Parse(manualPlotAreaValue), double.Parse(this.maxFloorAreaRatio.Text), double.Parse(this.maxBuildingCoverage.Text), int.Parse(this.maxFloors.Text)); if (TuringAndCorbusierPlugIn.InstanceClass.plot != null) { TuringAndCorbusierPlugIn.InstanceClass.plot.PlotType = this.plotType2; } ((Rhino.UI.Panels.GetPanel(TuringHost.PanelId) as RhinoWindows.Controls.WpfElementHost).Child as Turing).RefreshProjectInfo(); TuringAndCorbusierPlugIn.InstanceClass.currentNewProjectWindow = null; TuringAndCorbusierPlugIn.InstanceClass.turing.Calculate.Content = "설계 시작"; TuringAndCorbusierPlugIn.InstanceClass.turing.Calculate.Click -= TuringAndCorbusierPlugIn.InstanceClass.turing.Btn_SetInputValues; TuringAndCorbusierPlugIn.InstanceClass.turing.Calculate.Click += TuringAndCorbusierPlugIn.InstanceClass.turing.Calculate_Click; UIManager.getInstance().HideWindow(this, UIManager.WindowType.Basic); return(true); }