public override AccessibleObject GetChild(int index) { RadApplicationMenuButtonElement owner = this.Owner as RadApplicationMenuButtonElement; RadApplicationMenuDropDown dropDown = owner.DropDownMenu as RadApplicationMenuDropDown; int count = base.GetChildCount(); if (index < count) { return(base.GetChild(index)); } index -= count; count = dropDown.RightColumnItems.Count; if (index < count) { RadMenuItemBase menuItemBase = dropDown.RightColumnItems[index] as RadMenuItemBase; return(menuItemBase.AccessibleObject); } index -= count; RadMenuItemBase button = dropDown.ButtonItems[index] as RadMenuItemBase; return(button.AccessibleObject); }
public override int GetChildCount() { RadApplicationMenuButtonElement owner = this.Owner as RadApplicationMenuButtonElement; RadApplicationMenuDropDown dropDown = owner.DropDownMenu as RadApplicationMenuDropDown; return(base.GetChildCount() + dropDown.RightColumnItems.Count + dropDown.ButtonItems.Count); }
protected override RadDropDownButtonPopup CreateDropDown() { RadApplicationMenuDropDown applicationMenuDropDown = new RadApplicationMenuDropDown(this); applicationMenuDropDown.RightToLeft = this.RightToLeft ? RightToLeft.Yes : RightToLeft.No; applicationMenuDropDown.ThemeClassName = typeof(RadApplicationMenuButtonElement).Namespace + ".RadApplicationMenuDropDown"; applicationMenuDropDown.Items.ItemsChanged += new ItemChangedDelegate(this.OnItemsChanged); return((RadDropDownButtonPopup)applicationMenuDropDown); }
protected override RadDropDownButtonPopup CreateDropDown() { RadApplicationMenuDropDown menu = new RadApplicationMenuDropDown(this); menu.RightToLeft = (this.RightToLeft) ? System.Windows.Forms.RightToLeft.Yes : System.Windows.Forms.RightToLeft.No; menu.ThemeClassName = typeof(RadApplicationMenuButtonElement).Namespace + ".RadApplicationMenuDropDown"; menu.Items.ItemsChanged += new ItemChangedDelegate(OnItemsChanged); return(menu); }
protected override void ShowCore(Point point, int ownerOffset, RadDirection popupDirection) { RadApplicationMenuDropDown dropDown = (RadApplicationMenuDropDown)this.ElementTree.Control; RadApplicationMenuDropDownElement menuElement = dropDown.PopupElement as RadApplicationMenuDropDownElement; if (menuElement != null && !this.IsDesignMode) { Size size = menuElement.TopRightContentElement.Layout.Size; size.Width -= 3; size.Height -= 3; this.PopupElement.MinSize = size; this.PopupElement.SetValue(RadDropDownMenuElement.DropDownPositionProperty, DropDownPosition.RightPopupContent); } base.ShowCore(point, ownerOffset, popupDirection); }
protected override SizeF MeasureOverride(SizeF availableSize) { if (this.ElementTree == null) { return(base.MeasureOverride(availableSize)); } RadDropDownMenu menu = this.ElementTree.Control as RadDropDownMenu; RadApplicationMenuDropDown appMenu = null; if (menu != null && menu.OwnerElement != null && menu.OwnerElement.IsInValidState(true)) { appMenu = menu.OwnerElement.ElementTree.Control as RadApplicationMenuDropDown; } if (appMenu != null) { availableSize.Width = appMenu.RightColumnWidth - 5; } foreach (RadElement element in this.Children) { RadMenuItem menuItem = element as RadMenuItem; if (menuItem != null) { menuItem.Measure(availableSize); leftColumnWidth = Math.Max(leftColumnWidth, menuItem.LeftColumnElement.DesiredSize.Width); rightColumnWidth = Math.Max(rightColumnWidth, menuItem.RightColumnElement.DesiredSize.Width); leftColumnMaxPadding = Math.Max(leftColumnMaxPadding, menuItem.Padding.Left + menuItem.BorderThickness.Left + menuItem.Margin.Left); } } leftColumnWidth = Math.Max(leftColumnWidth, LeftColumnMinWidth); SizeF preferredSize = base.MeasureOverride(availableSize); preferredSize.Width += leftColumnWidth; preferredSize.Width += this.Padding.Horizontal; preferredSize.Height += this.Padding.Vertical; if (appMenu != null) { preferredSize.Width = appMenu.RightColumnWidth - 5; } return(preferredSize); }
public override AccessibleObject GetChild(int index) { RadApplicationMenuDropDown dropDownMenu = (this.OwnerElement as RadApplicationMenuButtonElement).DropDownMenu as RadApplicationMenuDropDown; int childCount = base.GetChildCount(); if (index < childCount) { return(base.GetChild(index)); } index -= childCount; int count = dropDownMenu.RightColumnItems.Count; if (index < count) { return((AccessibleObject)(dropDownMenu.RightColumnItems[index] as RadMenuItemBase).AccessibleObject); } index -= count; return((AccessibleObject)(dropDownMenu.ButtonItems[index] as RadMenuItemBase).AccessibleObject); }
protected override SizeF MeasureOverride(SizeF availableSize) { if (this.ElementTree == null) { return(base.MeasureOverride(availableSize)); } RadDropDownMenu control = this.ElementTree.Control as RadDropDownMenu; RadApplicationMenuDropDown applicationMenuDropDown = (RadApplicationMenuDropDown)null; if (control != null && control.OwnerElement != null && control.OwnerElement.IsInValidState(true)) { applicationMenuDropDown = control.OwnerElement.ElementTree.Control as RadApplicationMenuDropDown; } if (applicationMenuDropDown != null) { availableSize.Width = (float)(applicationMenuDropDown.RightColumnWidth - 5); } foreach (RadElement child in this.Children) { RadMenuItem radMenuItem = child as RadMenuItem; if (radMenuItem != null) { radMenuItem.Measure(availableSize); this.leftColumnWidth = Math.Max(this.leftColumnWidth, radMenuItem.LeftColumnElement.DesiredSize.Width); this.rightColumnWidth = Math.Max(this.rightColumnWidth, radMenuItem.RightColumnElement.DesiredSize.Width); this.leftColumnMaxPadding = Math.Max(this.leftColumnMaxPadding, (float)(radMenuItem.Padding.Left + radMenuItem.BorderThickness.Left + radMenuItem.Margin.Left)); } } this.leftColumnWidth = Math.Max(this.leftColumnWidth, (float)this.LeftColumnMinWidth); SizeF sizeF = base.MeasureOverride(availableSize); sizeF.Width += (float)this.RightColumnPadding; sizeF.Width += (float)this.Padding.Horizontal; sizeF.Height += (float)this.Padding.Vertical; if (applicationMenuDropDown != null) { sizeF.Width = (float)(applicationMenuDropDown.RightColumnWidth - 5); } return(sizeF); }