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
}
}