using System; using System.Text; namespace DevComponents.DotNetBar { /// /// Defines the Ribbon Quick Access Overflow system item. Used internally by Ribbon control. /// public class QatOverflowItem : DisplayMoreItem { #region Internal Implementation public QatOverflowItem() : base() { this.KeyTips = "00"; } /// /// Returns copy of DisplayMoreItem item /// public override BaseItem Copy() { QatOverflowItem objCopy = new QatOverflowItem(); this.CopyToItem(objCopy); return objCopy; } /// /// Overriden. Draws the item. /// /// Target Graphics object. public override void Paint(ItemPaintArgs p) { Rendering.BaseRenderer renderer = p.Renderer; if (renderer != null) { renderer.DrawQatOverflowItem(new QatOverflowItemRendererEventArgs(this, p.Graphics)); return; } else { Rendering.QatOverflowPainter painter = PainterFactory.CreateQatOverflowItemPainter(this); if (painter != null) { painter.Paint(new QatOverflowItemRendererEventArgs(this, p.Graphics)); return; } } base.Paint(p); } /// /// Returns the insertion index for the items removed from overflow popup. Assumes that right-most items are removed first by the layout manager. /// /// protected override int GetReInsertIndex() { int insertPos = m_Parent.SubItems.Count; for (int i = insertPos - 1; i >= 0; i--) { if (m_Parent.SubItems[i] is CustomizeItem || m_Parent.SubItems[i].ItemAlignment == eItemAlignment.Far) { insertPos = i; } else if (m_Parent.SubItems[i].ItemAlignment == eItemAlignment.Near) break; } return insertPos; } #endregion } }