Exemplo n.º 1
0
        public override bool CanClosePopup(RadPopupCloseReason reason)
        {
            if (reason == RadPopupCloseReason.Mouse)
            {
                if (this.OwnerPopup == null && this.OwnerElement != null && this.RootTreeHandler != null)
                {
                    RadMenuItemBase menuItem    = this.OwnerElement as RadMenuItemBase;
                    Control         rootControl = this.RootTreeHandler as Control;

                    Point currentMousePoint = rootControl.PointToClient(MousePosition);

                    RadElement itemUnderMouse = this.RootTreeHandler.ElementTree.GetElementAtPoint(currentMousePoint);

                    if ((menuItem != null && itemUnderMouse != null &&
                         object.ReferenceEquals(itemUnderMouse, menuItem) &&
                         rootControl.Focused) || (menuItem != null && menuItem.IsMouseDown))
                    {
                        return(false);
                    }
                }

                if (this.OwnerElement != null)
                {
                    this.OwnerElement.UpdateContainsMouse();
                    if (this.OwnerElement.ContainsMouse || this.OwnerElement.IsMouseDown)
                    {
                        return(false);
                    }
                }
            }

            return(base.CanClosePopup(reason));
        }
Exemplo n.º 2
0
 public RadAutoCompleteDropDownClosedEventArgs(
     RadPopupCloseReason reason,
     EventArgs inputArguments)
     : base(reason)
 {
     this.inputArguments = inputArguments;
 }
        public override bool CanClosePopup(RadPopupCloseReason reason)
        {
            //added by ittodorov, requested by stefanov
            if (this.OwnerElement != null && this.OwnerElement.IsInValidState(true))
            {
                RadRibbonBar ownerRibbonBar = (this.OwnerElement.ElementTree.Control as RadRibbonBar);
                if (ownerRibbonBar != null && ownerRibbonBar.IsDesignMode)
                {
                    Point screenLocation = ownerRibbonBar.Parent.PointToScreen(ownerRibbonBar.Location);
                    if (new Rectangle(screenLocation, ownerRibbonBar.Size).Contains(MousePosition))
                    {
                        Point appButtonLocation = screenLocation;
                        appButtonLocation.Offset(ownerRibbonBar.RibbonBarElement.ApplicationButtonElement.ControlBoundingRectangle.Location);
                        Rectangle appButtonRect = new Rectangle(appButtonLocation, ownerRibbonBar.RibbonBarElement.ApplicationButtonElement.ControlBoundingRectangle.Size);
                        return(!appButtonRect.Contains(MousePosition));
                    }
                }
            }

            if (this.OwnerElement != null && this.OwnerElement.IsInValidState(true) &&
                (this.OwnerElement.ElementTree.Control is RadApplicationMenu) &&
                (this.OwnerElement.ElementTree.Control as RadApplicationMenu).IsDesignMode)
            {
                Point screenLocation = this.OwnerElement.ElementTree.Control.Parent.PointToScreen(this.OwnerElement.ElementTree.Control.Location);
                if (new Rectangle(screenLocation, this.OwnerElement.ElementTree.Control.Size).Contains(MousePosition))
                {
                    return(false);
                }
            }
            return(base.CanClosePopup(reason));
        }
Exemplo n.º 4
0
 public override bool CanClosePopup(RadPopupCloseReason reason)
 {
     if (reason == RadPopupCloseReason.Mouse)
     {
         if (this.OwnerPopup == null && this.OwnerElement != null && this.RootTreeHandler != null)
         {
             RadMenuItemBase ownerElement    = this.OwnerElement as RadMenuItemBase;
             Control         rootTreeHandler = this.RootTreeHandler as Control;
             RadElement      elementAtPoint  = this.RootTreeHandler.ElementTree.GetElementAtPoint(rootTreeHandler.PointToClient(Control.MousePosition));
             if (ownerElement != null && elementAtPoint != null && (object.ReferenceEquals((object)elementAtPoint, (object)ownerElement) && rootTreeHandler.Focused) || ownerElement != null && ownerElement.IsMouseDown)
             {
                 return(false);
             }
         }
         if (this.OwnerElement != null)
         {
             this.OwnerElement.UpdateContainsMouse();
             if (this.OwnerElement.ContainsMouse || this.OwnerElement.IsMouseDown)
             {
                 return(false);
             }
         }
     }
     return(base.CanClosePopup(reason));
 }
Exemplo n.º 5
0
        public override bool CanClosePopup(RadPopupCloseReason reason)
        {
            RadRibbonBar ribbonBar = this.RibbonBarElement.ElementTree.Control as RadRibbonBar;

            Point pointInRibbon = ribbonBar.PointToClient(System.Windows.Forms.Cursor.Position);

            if (this.RibbonBarElement.TabStripElement.ItemContainer.ControlBoundingRectangle.Contains(pointInRibbon))
            {
                return(false);
            }

            NativeMethods.POINTSTRUCT point = new NativeMethods.POINTSTRUCT();
            point.x = Cursor.Position.X;
            point.y = Cursor.Position.Y;
            IntPtr handle = NativeMethods._WindowFromPoint(point);

            Control controlUnderMouse = Control.FromHandle(handle);

            if (controlUnderMouse is ZoomPopup)
            {
                return(false);
            }

            if (controlUnderMouse is RadDropDownMenu)
            {
                return(false);
            }



            return(base.CanClosePopup(reason));
        }
Exemplo n.º 6
0
 public override bool CanClosePopup(RadPopupCloseReason reason)
 {
     if (this.PopupElement is RadGalleryPopupElement && this.Bounds.Contains(Control.MousePosition))
     {
         return(false);
     }
     return(base.CanClosePopup(reason));
 }
Exemplo n.º 7
0
 protected internal override bool CanClosePopUp(RadPopupCloseReason reason, MouseButtons buttons)
 {
     if (!this.PopupForm.Bounds.Contains(Cursor.Position))
     {
         return(true);
     }
     return(reason != RadPopupCloseReason.Mouse);
 }
Exemplo n.º 8
0
 public override void CloseDropDown(RadPopupCloseReason reason)
 {
     if (reason == RadPopupCloseReason.CloseCalled && this.ListElement.SuggestedText != null && (this.ListElement.PatternText != null && this.ListElement.IsSuggestionMatched))
     {
         return;
     }
     base.CloseDropDown(reason);
 }
Exemplo n.º 9
0
 public override bool CanClosePopup(RadPopupCloseReason reason)
 {
     if (this.OwnerElement.IsDesignMode && new Rectangle(this.OwnerElement.ElementTree.Control.Parent.PointToScreen(this.OwnerElement.ElementTree.Control.Location), this.OwnerElement.ElementTree.Control.Size).Contains(Control.MousePosition))
     {
         return(false);
     }
     return(base.CanClosePopup(reason));
 }
Exemplo n.º 10
0
 public override void ClosePopup(RadPopupCloseReason reason)
 {
     if (base.EditorControl.GridViewElement.ContainsMouse)
     {
         return;
     }
     base.ClosePopup(reason);
 }
 public override bool CanClosePopup(RadPopupCloseReason reason)
 {
     if (reason == RadPopupCloseReason.Mouse)
     {
         Point client = this.PointToClient(Control.MousePosition);
         if (this.RootElement.ControlBoundingRectangle.Contains(client) && this.ListElement.GetVisualItemAtPoint(client) == null)
         {
             return(false);
         }
     }
     return(base.CanClosePopup(reason));
 }
Exemplo n.º 12
0
        protected virtual bool CanClosePopupCore(MouseButtons mouseButtons, RadPopupCloseReason reason)
        {
            if (reason == RadPopupCloseReason.Mouse &&
                this.ownerDropDownListElement != null &&
                !this.ownerDropDownListElement.IsDisposed &&
                !this.ownerDropDownListElement.IsDisposing &&
                this.ownerDropDownListElement.ElementTree != null &&
                this.ownerDropDownListElement.ElementTree.Control != null &&
                this.ownerDropDownListElement.ListElement != null &&
                this.ownerDropDownListElement.ListElement.ElementTree != null &&
                this.ownerDropDownListElement.ListElement.ElementTree.Control != null &&
                this.ownerDropDownListElement.ArrowButton != null)
            {
                Point     relativeMousePosition        = this.ownerDropDownListElement.ElementTree.Control.PointToClient(Control.MousePosition);
                Point     relativeMousePositionInPopup = this.ownerDropDownListElement.ListElement.ElementTree.Control.PointToClient(Control.MousePosition);
                Rectangle arrowButtonRectangle         = this.ownerDropDownListElement.ArrowButton.ControlBoundingRectangle;

                if (this.ownerDropDownListElement.DropDownStyle == RadDropDownStyle.DropDownList &&
                    (this.ownerDropDownListElement.ContainsMouse || this.ownerDropDownListElement.Bounds.Contains(relativeMousePosition)))
                {
                    return(false);
                }

                if (mouseButtons != MouseButtons.Left)
                {
                    return(true);
                }

                if (arrowButtonRectangle.Contains(relativeMousePosition))
                {
                    return(false);
                }

                if (this.ownerDropDownListElement.ListElement.HScrollBar != null && this.ownerDropDownListElement.ListElement.HScrollBar.ContainsMouse)
                {
                    return(false);
                }

                if (this.ownerDropDownListElement.ListElement.VScrollBar != null && this.ownerDropDownListElement.ListElement.VScrollBar.ContainsMouse)
                {
                    return(false);
                }

                if (this.SizingGrip != null && this.SizingGrip.ControlBoundingRectangle.Contains(relativeMousePositionInPopup))
                {
                    return(false);
                }
            }

            return(true);
        }
Exemplo n.º 13
0
 public override bool CanClosePopup(RadPopupCloseReason reason)
 {
     if (reason == RadPopupCloseReason.Mouse && this.OwnerComboItem != null && (!this.OwnerComboItem.IsDisposed && !this.OwnerComboItem.IsDisposing))
     {
         Point      client            = this.OwnerComboItem.ElementTree.Control.PointToClient(Control.MousePosition);
         Rectangle  boundingRectangle = this.OwnerComboItem.ArrowButton.ControlBoundingRectangle;
         RadElement elementAtPoint    = this.OwnerComboItem.EditorControl.ElementTree.GetElementAtPoint(this.OwnerComboItem.EditorControl.ElementTree.Control.PointToClient(Control.MousePosition));
         if (Control.MouseButtons == MouseButtons.Left && boundingRectangle.Contains(client) || this.OwnerComboItem.DropDownStyle == RadDropDownStyle.DropDownList && this.OwnerComboItem.ControlBoundingRectangle.Contains(client) || (elementAtPoint is GridSearchCellButtonElement || !this.OwnerComboItem.EditorControl.ReadOnly && elementAtPoint is RadCheckmark))
         {
             return(false);
         }
     }
     return(true);
 }
        protected override void OnMouseUp(MouseEventArgs e)
        {
            if (!PopupManager.Default.ContainsPopup((IPopupControl)this))
            {
                return;
            }
            base.OnMouseUp(e);
            RadPopupCloseReason popupCloseReason = RadPopupCloseReason.Mouse;

            if (!this.CanClosePopup(popupCloseReason))
            {
                return;
            }
            this.ClosePopup(new PopupCloseInfo(popupCloseReason, (object)e));
        }
Exemplo n.º 15
0
		private void HideControl(RadPopupCloseReason reason)
		{
            if (this.Visible)
			{
				if (Closing != null)
				{
					RadPopupClosingEventArgs args = new RadPopupClosingEventArgs(reason);
					Closing(this, args);
					if (args.Cancel == true)
						return;
				}
				this.closeReason = reason;
				this.Hide();
			}
		}
Exemplo n.º 16
0
 /// <summary>
 /// Closes the popup with the provided reason for closing.
 /// </summary>
 /// <param name="reason">the reason for the close operation as specified through RadPopupCloseReason enumeration.</param>
 protected internal virtual void ClosePopup(RadPopupCloseReason reason)
 {
     if (reason != RadPopupCloseReason.CloseCalled)
     {
         CancelEventArgs e = new CancelEventArgs();
         this.OnQueryValue(e);
         if (e.Cancel)
         {
             return;
         }
     }
     if (this.popupForm != null)
     {
         this.popupForm.ClosePopup(reason);
     }
 }
Exemplo n.º 17
0
        /// <summary>
        /// Closes all popups from a leaf to the root.
        /// </summary>
        /// <param name="reason">The reason why popups are closed.</param>
        /// <param name="leaf">The leaf popup from which to start closing the hierarchy.</param>
        public void CloseAllToRoot(RadPopupCloseReason reason, IPopupControl leaf)
        {
            if (leaf.Children.Count > 0)
            {
                throw new InvalidOperationException("The provided IPopupControl is not a leaf");
            }

            bool finished = false;


            if (leaf.CanClosePopup(reason))
            {
                PopupCloseInfo info = new PopupCloseInfo(reason, null);
                leaf.ClosePopup(info);

                if (!info.Closed)
                {
                    return;
                }
            }
            else
            {
                return;
            }

            IPopupControl parent = leaf.OwnerPopup;

            while (!finished)
            {
                if (parent != null && parent.CanClosePopup(reason))
                {
                    PopupCloseInfo info = new PopupCloseInfo(reason, null);
                    parent.ClosePopup(info);

                    if (!info.Closed)
                    {
                        finished = true;
                    }

                    parent = parent.OwnerPopup;
                }
                else
                {
                    finished = true;
                }
            }
        }
Exemplo n.º 18
0
        public override bool CanClosePopup(RadPopupCloseReason reason)
        {
            if (this.RibbonBarElement.TabStripElement.ItemContainer.ControlBoundingRectangle.Contains((this.RibbonBarElement.ElementTree.Control as RadRibbonBar).PointToClient(Cursor.Position)) && reason != RadPopupCloseReason.AppFocusChange)
            {
                return(false);
            }
            Control control = Control.FromHandle(Telerik.WinControls.NativeMethods._WindowFromPoint(new Telerik.WinControls.NativeMethods.POINTSTRUCT()
            {
                x = Cursor.Position.X, y = Cursor.Position.Y
            }));

            if (control is ZoomPopup || control is RadDropDownMenu)
            {
                return(false);
            }
            return(base.CanClosePopup(reason));
        }
Exemplo n.º 19
0
        public override bool CanClosePopup(RadPopupCloseReason reason)
        {
            if (reason != RadPopupCloseReason.Mouse)
            {
                return(base.CanClosePopup(reason));
            }
            if (!this.OwnerElement.IsInValidState(true) || !(this.OwnerElement is RadDateTimePickerElement))
            {
                return(base.CanClosePopup(reason));
            }
            RadDateTimePickerElement ownerElement = this.OwnerElement as RadDateTimePickerElement;

            if (ownerElement.ArrowButton == null)
            {
                return(base.CanClosePopup(reason));
            }
            return(!ownerElement.ArrowButton.IsMouseOver);
        }
Exemplo n.º 20
0
 public void CloseAll(RadPopupCloseReason reason)
 {
     while (this.popups.Count > 0)
     {
         this.lastActivatedPopup = this.popups[this.popups.Count - 1];
         if (!this.lastActivatedPopup.CanClosePopup(reason))
         {
             return;
         }
         PopupCloseInfo closeInfo = new PopupCloseInfo(reason, (object)null);
         this.lastActivatedPopup.ClosePopup(closeInfo);
         if (!closeInfo.Closed)
         {
             return;
         }
     }
     this.lastActivatedPopup = (IPopupControl)null;
 }
Exemplo n.º 21
0
        /// <summary>
        /// Closes all popups managed by the PopupManager.
        /// </summary>
        /// <param name="reason">Clarification why all popups need to be closed.</param>
        public void CloseAll(RadPopupCloseReason reason)
        {
            while (this.popups.Count > 0)
            {
                this.lastActivatedPopup = this.popups[this.popups.Count - 1];
                if (!this.lastActivatedPopup.CanClosePopup(reason))
                {
                    return;
                }
                PopupCloseInfo info = new PopupCloseInfo(reason, null);
                this.lastActivatedPopup.ClosePopup(info);

                if (!info.Closed)
                {
                    return;
                }
            }

            this.lastActivatedPopup = null;
        }
Exemplo n.º 22
0
        public override bool CanClosePopup(RadPopupCloseReason reason)
        {
            if (reason == RadPopupCloseReason.Mouse &&
                this.OwnerComboItem != null &&
                this.OwnerComboItem.ElementState == ElementState.Loaded)
            {
                Point     relativeMousePosition = this.OwnerComboItem.ElementTree.Control.PointToClient(Control.MousePosition);
                Rectangle arrowButtonRectangle  = this.OwnerComboItem.ArrowButton.ControlBoundingRectangle;

                if (arrowButtonRectangle.Contains(relativeMousePosition))
                {
                    return(false);
                }

                if (this.OwnerComboItem.DropDownStyle == RadDropDownStyle.DropDownList &&
                    this.OwnerComboItem.Bounds.Contains(relativeMousePosition))
                {
                    return(false);
                }
            }
            return(true);
        }
Exemplo n.º 23
0
        public void CloseAllToRoot(RadPopupCloseReason reason, IPopupControl leaf)
        {
            if (leaf.Children.Count > 0)
            {
                return;
            }
            bool flag = false;

            if (!leaf.CanClosePopup(reason))
            {
                return;
            }
            PopupCloseInfo closeInfo1 = new PopupCloseInfo(reason, (object)null);

            leaf.ClosePopup(closeInfo1);
            if (!closeInfo1.Closed)
            {
                return;
            }
            IPopupControl ownerPopup = leaf.OwnerPopup;

            while (!flag)
            {
                if (ownerPopup != null && ownerPopup.CanClosePopup(reason))
                {
                    PopupCloseInfo closeInfo2 = new PopupCloseInfo(reason, (object)null);
                    ownerPopup.ClosePopup(closeInfo2);
                    if (!closeInfo2.Closed)
                    {
                        flag = true;
                    }
                    ownerPopup = ownerPopup.OwnerPopup;
                }
                else
                {
                    flag = true;
                }
            }
        }
Exemplo n.º 24
0
 protected virtual bool CanClosePopupCore(MouseButtons mouseButtons, RadPopupCloseReason reason)
 {
     if (reason == RadPopupCloseReason.Mouse && this.ownerDropDownListElement != null && (!this.ownerDropDownListElement.IsDisposed && !this.ownerDropDownListElement.IsDisposing) && (this.ownerDropDownListElement.ElementTree != null && this.ownerDropDownListElement.ElementTree.Control != null && (this.ownerDropDownListElement.ListElement != null && this.ownerDropDownListElement.ListElement.ElementTree != null)) && (this.ownerDropDownListElement.ListElement.ElementTree.Control != null && this.ownerDropDownListElement.ArrowButton != null))
     {
         Point     client1           = this.ownerDropDownListElement.ElementTree.Control.PointToClient(Control.MousePosition);
         Point     client2           = this.ownerDropDownListElement.ListElement.ElementTree.Control.PointToClient(Control.MousePosition);
         Rectangle boundingRectangle = this.ownerDropDownListElement.ArrowButton.ControlBoundingRectangle;
         if (this.ownerDropDownListElement.DropDownStyle == RadDropDownStyle.DropDownList && (this.ownerDropDownListElement.ContainsMouse || this.ownerDropDownListElement.Bounds.Contains(client1)))
         {
             return(false);
         }
         if (mouseButtons != MouseButtons.Left)
         {
             return(this.ownerDropDownListElement.CanClosePopUp(reason, mouseButtons));
         }
         if (this.ownerDropDownListElement.ListElement.VScrollBar != null && (this.ownerDropDownListElement.ListElement.VScrollBar.ThumbElement.Capture || (bool)this.ownerDropDownListElement.ListElement.VScrollBar.SecondButton.GetValue(RadButtonItem.IsPressedProperty) || (bool)this.ownerDropDownListElement.ListElement.VScrollBar.FirstButton.GetValue(RadButtonItem.IsPressedProperty)) || boundingRectangle.Contains(client1) || this.ownerDropDownListElement.ListElement.HScrollBar != null && this.ownerDropDownListElement.ListElement.HScrollBar.ControlBoundingRectangle.Contains(client2) || (this.ownerDropDownListElement.ListElement.VScrollBar != null && this.ownerDropDownListElement.ListElement.VScrollBar.ControlBoundingRectangle.Contains(client2) || this.SizingGrip != null && this.SizingGrip.ControlBoundingRectangle.Contains(client2)) || !this.ownerDropDownListElement.CanClosePopUp(reason, mouseButtons))
         {
             return(false);
         }
     }
     return(true);
 }
Exemplo n.º 25
0
 public override bool CanClosePopup(RadPopupCloseReason reason)
 {
     if (this.OwnerElement != null && this.OwnerElement.IsInValidState(true))
     {
         RadRibbonBar control = this.OwnerElement.ElementTree.Control as RadRibbonBar;
         if (control != null && control.IsDesignMode)
         {
             Point screen = control.Parent.PointToScreen(control.Location);
             if (new Rectangle(screen, control.Size).Contains(Control.MousePosition))
             {
                 Point location = screen;
                 location.Offset(control.RibbonBarElement.ApplicationButtonElement.ControlBoundingRectangle.Location);
                 return(!new Rectangle(location, control.RibbonBarElement.ApplicationButtonElement.ControlBoundingRectangle.Size).Contains(Control.MousePosition));
             }
         }
     }
     if (this.OwnerElement != null && this.OwnerElement.IsInValidState(true) && (this.OwnerElement.ElementTree.Control is RadApplicationMenu && (this.OwnerElement.ElementTree.Control as RadApplicationMenu).IsDesignMode) && new Rectangle(this.OwnerElement.ElementTree.Control.Parent.PointToScreen(this.OwnerElement.ElementTree.Control.Location), this.OwnerElement.ElementTree.Control.Size).Contains(Control.MousePosition))
     {
         return(false);
     }
     return(base.CanClosePopup(reason));
 }
Exemplo n.º 26
0
 public override void ClosePopup(RadPopupCloseReason reason)
 {
     base.ClosePopup(reason);
     this.ownerDropDownListElement.CallClosePopupCore();
 }
Exemplo n.º 27
0
 public override void ClosePopup(RadPopupCloseReason reason)
 {
     base.ClosePopup(reason);
     this.isPopupShown = false;
 }
Exemplo n.º 28
0
 public override bool CanClosePopup(RadPopupCloseReason reason)
 {
     return(true);
 }
Exemplo n.º 29
0
 public override bool CanClosePopup(RadPopupCloseReason reason)
 {
     return(this.CanClosePopupCore(Control.MouseButtons, reason));
 }
Exemplo n.º 30
0
 public PopupCloseInfo(RadPopupCloseReason closeReason, object context)
 {
     this.closeReason = closeReason;
     this.context     = context;
     this.closed      = true;
 }