internal void OnMouseDown(Point cursorPos) { int num = this.popups.Count - 1; bool flag1 = false; while (num > -1 && this.popups.Count > 0) { IPopupControl popup = this.popups[num--]; bool flag2 = popup.Bounds.Contains(cursorPos); if (!flag1 && !flag2) { if (popup.CanClosePopup(RadPopupCloseReason.Mouse)) { PopupCloseInfo closeInfo = new PopupCloseInfo(RadPopupCloseReason.Mouse, (object)null); popup.ClosePopup(closeInfo); flag1 = !closeInfo.Closed; } else { flag1 = true; } } else if (popup.OwnerPopup == null) { flag1 = false; } else if (flag2) { flag1 = true; } } }
/// <summary> /// Removes the provided popup from the popups of the PopupManager and unregisters the message hook /// if there are no more popups. /// </summary> /// <param name="form">The popup to remove.</param> public void RemovePopup(IPopupControl form) { if (popups.Contains(form)) { while (form.Children.Count > 0) { IPopupControl child = form.Children[form.Children.Count - 1]; child.ClosePopup(RadPopupCloseReason.ParentClosed); } IPopupControl ownerPopup = form.OwnerPopup; if (ownerPopup != null) { System.Diagnostics.Debug.Assert( ownerPopup.Children.Contains(form), "Not contained in owner's Children collection!"); ownerPopup.Children.Remove(form); } popups.Remove(form); } if (popups.Count == 0) { this.lastActivatedPopup = null; RadMessageFilter.Instance.RemoveListener(this); this.hooked = false; } else { this.lastActivatedPopup = this.popups[this.popups.Count - 1]; } }
protected void CheckMouseDown(Control control, Point mousePosition) { Control popup = Popup as Control; IPopupControl pc = Popup; if (pc == null || !popup.Created || !popup.Visible || pc.PopupWindow == null || !pc.PopupWindow.Visible) { return; } Control parent = GetParent(pc.PopupWindow); if (parent.Contains(control) || parent == control || popup == control || popup.Contains(control)) { return; } if (IsPopupMenu(control)) { return; } if (!pc.AllowMouseClick(control, mousePosition)) { pc.ClosePopup(); } }
private void AddNewButtonChangeCaption_Popup(object sender, EventArgs e) { IPopupControl popupControl = sender as IPopupControl; LayoutControl layoutControl = popupControl.PopupWindow.Controls[2].Controls[0] as LayoutControl; SimpleButton AddNewButton = ((LayoutControlItem)layoutControl.Items.FindByName("lciAddNew")).Control as SimpleButton; AddNewButton.Text = "OK"; }
protected override void OnLostKeyboardFocus(KeyboardFocusChangedEventArgs e) { IPopupControl popupMenu = BarManager.GetDXContextMenu(this); if(popupMenu != null && popupMenu.IsPopupOpen) { e.Handled = true; return; } base.OnLostKeyboardFocus(e); }
/// <summary> /// searchLookUpEdit_Popup /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private static void searchLookUpEdit_Popup(object sender, EventArgs e) { IPopupControl popupControl = sender as IPopupControl; LayoutControl layoutControl = popupControl.PopupWindow.Controls[2].Controls[0] as LayoutControl; SimpleButton AddNewButton = ((LayoutControlItem)layoutControl.Items.FindByName("lciAddNew")).Control as SimpleButton; AddNewButton.Text = "OK"; }
public override void PopupClosed(IPopupControl popup) { FAHookPopup ppp = FindPopup(popup); if (ppp != null) { Popups.Remove(ppp); ppp.Dispose(); } }
protected virtual void OnBindingPopupControl(BindPopupControlEventArgs e) { if (BindPopupControl != null) { BindPopupControl(this, e); } bindedControl = e.BindedControl; }
protected virtual FAHookPopup FindPopup(IPopupControl popup) { for (int n = 0; n < Popups.Count; n++) { FAHookPopup ppp = Popups[n] as FAHookPopup; if (ppp.Popup == popup) return ppp; } return null; }
public bool ClosePopup(IPopupControl popup) { if (!this.ContainsPopup(popup) || !popup.CanClosePopup(RadPopupCloseReason.CloseCalled)) { return(false); } PopupCloseInfo closeInfo = new PopupCloseInfo(RadPopupCloseReason.CloseCalled, (object)null); popup.ClosePopup(closeInfo); return(closeInfo.Closed); }
protected virtual FAHookPopup FindPopup(IPopupControl popup) { for (int n = 0; n < Popups.Count; n++) { FAHookPopup ppp = Popups[n] as FAHookPopup; if (ppp.Popup == popup) { return(ppp); } } return(null); }
public void AddPopup(IPopupControl form) { if (!this.popups.Contains(form)) { form.OwnerPopup?.Children.Add(form); this.popups.Add(form); this.lastActivatedPopup = form; } if (this.popups.Count <= 0 || this.hooked) { return; } RadMessageFilter.Instance.AddListener((IMessageListener)this); this.hooked = true; }
private void memoExEdit1_Popup(object sender, EventArgs e) { IPopupControl popup = (IPopupControl)sender; for (int i = 0; i < popup.PopupWindow.Controls.Count; i++) { Control popupItem = popup.PopupWindow.Controls[i]; if (popupItem is MemoEdit) { spellChecker1.SetShowSpellCheckMenu(popupItem, true); spellChecker1.Check(popupItem); break; } } }
/// <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; } } }
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; }
private RadElement GetRootOwnerElement() { IPopupControl ownerPopup = this.OwnerPopup; if (ownerPopup == null) { return(this.OwnerElement); } while (ownerPopup != null) { ownerPopup = ownerPopup.OwnerPopup; if (ownerPopup == null) { return(this.OwnerElement); } } return((RadElement)null); }
/// <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; }
/// <summary> /// This method begins to close all IPopupControl instances /// starting from the end of the collection. If a IPopupControl /// cannot be closed, the iteration stops and all popups previously added /// to the collection will not be closed. /// </summary> internal void OnMouseDown(Point cursorPos) { System.Diagnostics.Debug.Assert(this.popups.Count != 0, "Popup count must not be equal to zero when receiving this event!"); int i = this.popups.Count - 1; bool blockOwners = false; while (i > -1 && this.popups.Count > 0) { IPopupControl currentPopup = this.popups[i--]; bool containsMouse = currentPopup.Bounds.Contains(cursorPos); if (!blockOwners && !containsMouse) { if (currentPopup.CanClosePopup(RadPopupCloseReason.Mouse)) { PopupCloseInfo closeInfo = new PopupCloseInfo(RadPopupCloseReason.Mouse, null); currentPopup.ClosePopup(closeInfo); blockOwners = !closeInfo.Closed; } else { blockOwners = true; } } else { if (currentPopup.OwnerPopup == null) { blockOwners = false; } else if (containsMouse) { blockOwners = true; } } } }
public void RemovePopup(IPopupControl form) { if (this.popups.Contains(form)) { while (form.Children.Count > 0) { form.Children[form.Children.Count - 1].ClosePopup(RadPopupCloseReason.ParentClosed); } form.OwnerPopup?.Children.Remove(form); this.popups.Remove(form); } if (this.popups.Count == 0) { this.lastActivatedPopup = (IPopupControl)null; RadMessageFilter.Instance.RemoveListener((IMessageListener)this); this.hooked = false; } else { this.lastActivatedPopup = this.popups[this.popups.Count - 1]; } }
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; } } }
/// <summary> /// Adds a popup form to the popups of the PopupManager and /// registers a message hook if the form provided is the first one. /// </summary> /// <param name="form">The popup to add.</param> public void AddPopup(IPopupControl form) { if (!popups.Contains(form)) { IPopupControl ownerPopup = form.OwnerPopup; if (ownerPopup != null) { ownerPopup.Children.Add(form); } popups.Add(form); this.lastActivatedPopup = form; } if (popups.Count > 0 && !this.hooked) { RadMessageFilter.Instance.AddListener(this); this.hooked = true; } }
private RadElement GetRootOwnerElement() { IPopupControl currentOwner = this.OwnerPopup; if (currentOwner != null) { while (currentOwner != null) { currentOwner = currentOwner.OwnerPopup; if (currentOwner == null) { return(this.OwnerElement); } } } else { return(this.OwnerElement); } return(null); }
protected virtual void OnBindingPopupControl(BindPopupControlEventArgs e) { if (BindPopupControl != null) BindPopupControl(this, e); bindedControl = e.BindedControl; }
public virtual void PopupShowing(IPopupControl popup) { }
public virtual void PopupClosed(IPopupControl popup) { }
public override void PopupShowing(IPopupControl popup) { Popups.Add(new FAHookPopup(popup)); }
/// <summary> /// Checks if the PopupManager monitors the provided popup. /// </summary> /// <param name="form">The popup to check for.</param> /// <returns></returns> public bool ContainsPopup(IPopupControl form) { return(popups.Contains(form)); }
public FAHookPopup(IPopupControl popup) { this.popup = popup; HookManager.DefaultManager.AddController(this); }