コード例 #1
0
            /// <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;
                }
            }
コード例 #2
0
            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);
                }
            }
コード例 #3
0
            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);
                }
            }
コード例 #4
0
 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");
 }
コード例 #5
0
        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);
        }
コード例 #6
0
        /// <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);
        }