Esempio n. 1
0
        public override GH_ObjectResponse RespondToMouseDoubleClick(GH_Canvas sender, GH_CanvasMouseEvent e)
        {
            RectangleF rec = GrabBound;

            if (rec.Contains(e.CanvasLocation))
            {
                Grasshopper.Kernel.Special.GH_NumberSlider hiddenSlider = new Grasshopper.Kernel.Special.GH_NumberSlider();
                hiddenSlider.Slider.Maximum       = (decimal)MaxValue;
                hiddenSlider.Slider.Minimum       = (decimal)MinValue;
                hiddenSlider.Slider.DecimalPlaces = noDigits;
                hiddenSlider.Slider.Type          = noDigits == 0 ? Grasshopper.GUI.Base.GH_SliderAccuracy.Integer : Grasshopper.GUI.Base.GH_SliderAccuracy.Float;
                hiddenSlider.Name         = Owner.Name + " Slider";
                hiddenSlider.Slider.Value = (decimal)CurrentValue;
                Grasshopper.GUI.GH_NumberSliderPopup gH_MenuSliderForm = new Grasshopper.GUI.GH_NumberSliderPopup();
                GH_WindowsFormUtil.CenterFormOnCursor(gH_MenuSliderForm, true);
                gH_MenuSliderForm.Setup(hiddenSlider);
                //hiddenSlider.PopupEditor();
                var res = gH_MenuSliderForm.ShowDialog();
                if (res == DialogResult.OK)
                {
                    first        = true;
                    MaxValue     = (double)hiddenSlider.Slider.Maximum;
                    MinValue     = (double)hiddenSlider.Slider.Minimum;
                    CurrentValue = (double)hiddenSlider.Slider.Value;
                    noDigits     = hiddenSlider.Slider.Type == Grasshopper.GUI.Base.GH_SliderAccuracy.Integer ? 0 : hiddenSlider.Slider.DecimalPlaces;
                    ChangeMaxMin(MaxValue, MinValue);
                    Owner.OnDisplayExpired(false);
                    Owner.ExpireSolution(true);
                    return(GH_ObjectResponse.Handled);
                }
            }
            return(GH_ObjectResponse.Ignore);
        }
Esempio n. 2
0
        // Display Form: Displays the NSGA-II Editor Form
        public void DisplayEditor()
        {
            if (editor == null || editor.IsDisposed)
            {
                editor = new NSGAII_Editor(this);
            }

            GH_WindowsFormUtil.CenterFormOnCursor(editor, true);
            editor.Show();
        }
Esempio n. 3
0
 void OpenForm(object sender, EventArgs e)
 {
     if (form.Visible)
     {
         form.Hide();
     }
     else
     {
         form.Show(Instances.DocumentEditor);
         GH_WindowsFormUtil.CenterFormOnCursor(form, true);
     }
 }
Esempio n. 4
0
        public void ShowOptimizationWindow()
        {
            var owner = Grasshopper.Instances.DocumentEditor;

            if (_optimizationWindow == null || _optimizationWindow.IsDisposed)
            {
                _optimizationWindow = new BackgroundForm(this)
                {
                    StartPosition = FormStartPosition.Manual
                };

                GH_WindowsFormUtil.CenterFormOnWindow(_optimizationWindow, owner, true);
                owner.FormShepard.RegisterForm(_optimizationWindow);
            }
            _optimizationWindow.Show(owner);
        }
Esempio n. 5
0
        private void Canvas_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Oemtilde)
            {
                GH_Canvas         gH_Canvas         = Instances.ActiveCanvas;
                ImportPackageForm importPackageForm = new ImportPackageForm();

                GH_WindowsFormUtil.CenterFormOnCursor(importPackageForm, limitToScreen: true);
                Form form = gH_Canvas.FindForm();
                if (form != null && form is GH_DocumentEditor)
                {
                    ((GH_DocumentEditor)form).FormShepard.RegisterForm(importPackageForm);
                }

                importPackageForm.Show(Instances.ActiveCanvas.FindForm());
            }
        }
Esempio n. 6
0
        public void DisplayForm()
        {
            var owner = Grasshopper.Instances.DocumentEditor;

            if (window == null || window.IsDisposed)
            {
                if (!HasBeenLinked)
                {
                    window = new TrainerWindow();
                }
                else
                {
                    window = new TrainerWindow(this);// (this) { StartPosition = FormStartPosition.Manual };
                }
                GH_WindowsFormUtil.CenterFormOnWindow(window, owner, true);
                owner.FormShepard.RegisterForm(window);
            }
            window.Show(owner);
            AddRuntimeMessage(GH_RuntimeMessageLevel.Remark, "Window opened");
        }
Esempio n. 7
0
            public override GH_ObjectResponse RespondToMouseDoubleClick(GH_Canvas sender, GH_CanvasMouseEvent e)
            {
                if (base.Owner.Graph == null)
                {
                    return((GH_ObjectResponse)3);
                }
                GH_GraphEditor val = new GH_GraphEditor();

                val.SetGraph(base.Owner.Container);
                GH_WindowsFormUtil.CenterFormOnCursor((Form)(object)val, true);
                DialogResult dialogResult = val.ShowDialog(Instances.DocumentEditor);

                if (dialogResult == DialogResult.OK)
                {
                    val.Graph.LockGrips  = base.Owner.Container.LockGrips;
                    base.Owner.Container = val.Graph;
                }
                ((Component)(object)val).Dispose();
                return((GH_ObjectResponse)3);
            }
Esempio n. 8
0
        public void ShowOptimizationWindow()
        {
            if (SolverList.PresetNames.Count == 0)
            {
                MessageBox.Show("No solvers found!", "FrOG Error");
                return;
            }

            var owner = Grasshopper.Instances.DocumentEditor;

            if (OptimizationWindow == null || OptimizationWindow.IsDisposed)
            {
                OptimizationWindow = new OptimizationWindow(this)
                {
                    StartPosition = FormStartPosition.Manual
                };

                GH_WindowsFormUtil.CenterFormOnWindow(OptimizationWindow, owner, true);
                owner.FormShepard.RegisterForm(OptimizationWindow);
            }
            OptimizationWindow.Show(owner);
        }
Esempio n. 9
0
        void Menu_DeleteElements(object sender, EventArgs args)
        {
            var doc        = Revit.ActiveUIDocument?.Document;
            var elementIds = ToElementIds(VolatileData).
                             Where(x => x.Document.Equals(doc)).
                             Select(x => x.Id);

            if (elementIds.Any())
            {
                using (new External.EditScope())
                {
                    using
                    (
                        var taskDialog = new TaskDialog(MethodBase.GetCurrentMethod().DeclaringType.FullName)
                    {
                        MainIcon = External.UI.TaskDialogIcons.IconWarning,
                        TitleAutoPrefix = false,
                        Title = "Delete Elements",
                        MainInstruction = "Are you sure you want to delete those elements?",
                        CommonButtons = TaskDialogCommonButtons.Yes | TaskDialogCommonButtons.No,
                        DefaultButton = TaskDialogResult.Yes,
                        AllowCancellation = true,
#if REVIT_2020
                        EnableMarqueeProgressBar = true
#endif
                    }
                    )
                    {
                        taskDialog.AddCommandLink(TaskDialogCommandLinkId.CommandLink1, "Show elements");
                        taskDialog.AddCommandLink(TaskDialogCommandLinkId.CommandLink2, "Manage element collection");

                        var  result    = TaskDialogResult.None;
                        bool highlight = false;
                        do
                        {
                            var elements = elementIds.ToArray();
                            taskDialog.ExpandedContent = $"{elements.Length} elements and its depending elements will be deleted.";

                            if (highlight)
                            {
                                Revit.ActiveUIDocument?.Selection.SetElementIds(elements);
                            }

                            switch (result = taskDialog.Show())
                            {
                            case TaskDialogResult.CommandLink1:
                                Revit.ActiveUIDocument?.ShowElements(elements);
                                highlight = true;
                                break;

                            case TaskDialogResult.CommandLink2:
                                using (var dataManager = new GH_PersistentDataEditor())
                                {
                                    var elementCollection = new GH_Structure <IGH_Goo>();
                                    elementCollection.AppendRange(elementIds.Select(x => Types.Element.FromElementId(doc, x)));
                                    dataManager.SetData(elementCollection, new Types.Element());

                                    GH_WindowsFormUtil.CenterFormOnCursor(dataManager, true);
                                    if (dataManager.ShowDialog(Revit.MainWindowHandle) == System.Windows.Forms.DialogResult.OK)
                                    {
                                        elementIds = dataManager.GetData <IGH_Goo>().AllData(true).OfType <Types.Element>().Select(x => x.Value);
                                    }
                                }
                                break;

                            case TaskDialogResult.Yes:
                                try
                                {
                                    using (var transaction = new DB.Transaction(doc, "Delete elements"))
                                    {
                                        transaction.Start();
                                        doc.Delete(elements);
                                        transaction.Commit();
                                    }

                                    ClearData();
                                    ExpireDownStreamObjects();
                                    OnPingDocument().NewSolution(false);
                                }
                                catch (Autodesk.Revit.Exceptions.ArgumentException)
                                {
                                    TaskDialog.Show("Delete elements", $"One or more of the {TypeName} cannot be deleted.");
                                }
                                break;
                            }
                        }while (result == TaskDialogResult.CommandLink1 || result == TaskDialogResult.CommandLink2);
                    }
                }
            }
        }
Esempio n. 10
0
        private void SelectFontHandler(object sender, EventArgs e)
        {
            var form = GH_FontPicker.CreateFontPickerWindow(Settings.Font);

            form.CreateControl();
            var picker = form.Controls.OfType <GH_FontPicker>().FirstOrDefault();

            if (picker == null)
            {
                return;
            }
            var panel = form.Controls.OfType <Panel>().FirstOrDefault();

            if (panel == null)
            {
                return;
            }

            var pickerType    = typeof(GH_FontPicker);
            var sizeScroller  = pickerType.GetField("_SizeScroller", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(picker) as GH_DigitScroller;
            var boldChecker   = pickerType.GetField("_BoldCheck", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(picker) as CheckBox;
            var italicChecker = pickerType.GetField("_ItalicCheck", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(picker) as CheckBox;
            var fontScroller  = pickerType.GetField("_FontList", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(picker) as GH_FontList;

            sizeScroller.ValueChanged    += PreviewFontChangedHandler;
            boldChecker.CheckedChanged   += PreviewFontChangedHandler;
            italicChecker.CheckedChanged += PreviewFontChangedHandler;
            fontScroller.MouseClick      += PreviewFontChangedHandler;

            var defaultButton = new Button()
            {
                Text         = "Default",
                Width        = Grasshopper.Global_Proc.UiAdjust(80),
                Dock         = DockStyle.Right,
                DialogResult = DialogResult.Yes
            };

            defaultButton.Click += DefaultFontHandler;
            panel.Controls.Add(defaultButton);

            var editor = Grasshopper.Instances.DocumentEditor;

            GH_WindowsFormUtil.CenterFormOnWindow(form, editor, true);
            var result = form.ShowDialog(editor);

            if (result == DialogResult.OK)
            {
                var font = form.Tag as Font;
                if (font != null)
                {
                    Settings.ResetFonts();
                    Settings.Font = font;
                }
            }
            else if (result == DialogResult.Yes)
            {
                Settings.ResetFonts();
                Settings.Font = GH_FontServer.StandardItalic;
            }
            Grasshopper.Instances.ActiveCanvas?.Refresh();
            sizeScroller.ValueChanged    -= PreviewFontChangedHandler;
            boldChecker.CheckedChanged   -= PreviewFontChangedHandler;
            italicChecker.CheckedChanged -= PreviewFontChangedHandler;
            fontScroller.MouseClick      -= PreviewFontChangedHandler;
            defaultButton.Click          -= DefaultFontHandler;

            void PreviewFontChangedHandler(object s, EventArgs args)
            {
                var font = picker.SelectedFont;

                if (font != null)
                {
                    var currentFont = Settings.Font;
                    Settings.Font = font;
                    Grasshopper.Instances.ActiveCanvas?.Refresh();
                    Settings.Font = currentFont;
                }
            }

            void DefaultFontHandler(object s, EventArgs args)
            {
            }
        }