public override GH_ObjectResponse RespondToMouseUp(GH_Canvas sender, GH_CanvasMouseEvent e)
        {
            if (e.Button == MouseButtons.Left)
            {
                if (_mouseDownElement != null)
                {
                    var pt = new Point((int)e.CanvasLocation.X, (int)e.CanvasLocation.Y);
                    if (_mouseDownElement.Bounds.Contains(pt))
                    {
                        _mouseDownElement.InvokeAction();
                    }
                    _mouseDownElement.OnMouseUp();
                    _mouseDownElement = null;
                    Owner.OnDisplayExpired(true);
                    return(GH_ObjectResponse.Release);
                }
            }

            return(base.RespondToMouseUp(sender, e));
        }
        public override GH_ObjectResponse RespondToMouseDown(GH_Canvas sender, GH_CanvasMouseEvent e)
        {
            _mouseDownElement = null;
            var pt = new Point((int)e.CanvasLocation.X, (int)e.CanvasLocation.Y);

            if (e.Button == MouseButtons.Left)
            {
                if (_innerBounds.Contains(pt))
                {
                    if (_calcBtn.Bounds.Contains(pt))
                    {
                        _mouseDownElement = _calcBtn;
                    }
                    else if (_checkBoxPanelBounds.Contains(pt))
                    {
                        if (_cbStream.Bounds.Contains(pt))
                        {
                            _mouseDownElement = _cbStream;
                        }
                        else if (_cbSilent.Bounds.Contains(pt))
                        {
                            _mouseDownElement = _cbSilent;
                        }
                    }
                    else if (_buttonPanelBounds.Contains(pt))
                    {
                        if (_btnOpenExplorer.Bounds.Contains(pt))
                        {
                            _mouseDownElement = _btnOpenExplorer;
                        }
                        if (_btnTeddy.Bounds.Contains(pt))
                        {
                            _mouseDownElement = _btnTeddy;
                        }
                        else if (_btnAnimator.Bounds.Contains(pt))
                        {
                            _mouseDownElement = _btnAnimator;
                        }
                        else if (_btnGraphic.Bounds.Contains(pt))
                        {
                            _mouseDownElement = _btnGraphic;
                        }
                        else if (_btnResult.Bounds.Contains(pt))
                        {
                            _mouseDownElement = _btnResult;
                        }
                        else if (_btnReport.Bounds.Contains(pt))
                        {
                            _mouseDownElement = _btnReport;
                        }
                    }
                }
            }
            if (_mouseDownElement != null)
            {
                _mouseDownElement.OnMouseDown();
                Owner.OnDisplayExpired(true);
                return(GH_ObjectResponse.Capture);
            }
            else
            {
                return(base.RespondToMouseDown(sender, e));
            }
        }