using System;
using System.Drawing;
using System.Windows.Forms;
namespace DevComponents.DotNetBar
{
///
/// Summary description for ItemPaintArgs.
///
public class ItemPaintArgs
{
public System.Drawing.Graphics Graphics;
public ColorScheme Colors;
public System.Windows.Forms.Control ContainerControl;
public eTextFormat ButtonStringFormat;
public bool IsOnMenu=false;
public bool IsOnPopupBar = false;
public bool IsOnMenuBar=false;
public bool IsOnRibbonBar = false;
public bool IsOnNavigationBar = false;
public System.Drawing.Font Font;
public IOwner Owner;
public bool RightToLeft = false;
private DevComponents.DotNetBar.ThemeWindow m_ThemeWindow=null;
private DevComponents.DotNetBar.ThemeRebar m_ThemeRebar=null;
private DevComponents.DotNetBar.ThemeToolbar m_ThemeToolbar=null;
private DevComponents.DotNetBar.ThemeHeader m_ThemeHeader=null;
private DevComponents.DotNetBar.ThemeScrollBar m_ThemeScrollBar=null;
private DevComponents.DotNetBar.ThemeExplorerBar m_ThemeExplorerBar=null;
private DevComponents.DotNetBar.ThemeProgress m_ThemeProgress=null;
private DevComponents.DotNetBar.ThemeButton m_ThemeButton = null;
public bool DesignerSelection = false;
public bool GlassEnabled = false;
private Rendering.BaseRenderer m_Renderer = null;
public ButtonItemRendererEventArgs ButtonItemRendererEventArgs = new ButtonItemRendererEventArgs();
public Rectangle ClipRectangle = Rectangle.Empty;
public Rectangle ContainerClipRectangle = Rectangle.Empty;
public bool ControlExpanded = true;
internal bool CachedPaint = false;
internal bool IsDefaultButton = false;
public bool IsFlatOffice2007Representation = false;
public PaintEventArgs PaintEventArgs = null;
internal bool AnimationEnabled = false;
internal System.Collections.Generic.List AnimationRequests = null;
public bool DragInProgress = false;
public object ContextData = null;
public object ContextData2 = null;
private bool _IsBackstageTab = false;
public ItemPaintArgs(IOwner owner, System.Windows.Forms.Control control, System.Drawing.Graphics g, ColorScheme scheme)
{
this.Graphics=g;
this.Colors=scheme;
this.ContainerControl=control;
this.Owner=owner;
if(control!=null)
this.RightToLeft = (control.RightToLeft == System.Windows.Forms.RightToLeft.Yes);
if (control is MenuPanel || this.ContainerControl is ItemsListBox)
this.IsOnMenu = true;
else if (control is Bar && ((Bar)control).MenuBar)
this.IsOnMenuBar = true;
else if (control is Bar && ((Bar)control).BarState == eBarState.Popup)
this.IsOnPopupBar = true;
else if (control is RibbonBar)
this.IsOnRibbonBar = true;
else if (control is NavigationBar)
this.IsOnNavigationBar = true;
else if (control is SuperTabControl && ((SuperTabControl) control).TabStrip.ApplicationButton != null)
_IsBackstageTab = true;
if(control!=null)
this.Font=control.Font;
CreateStringFormat();
}
internal Rendering.BaseRenderer Renderer
{
get { return m_Renderer; }
set { m_Renderer = value; }
}
internal DevComponents.DotNetBar.ThemeWindow ThemeWindow
{
get
{
if(m_ThemeWindow==null)
{
if(this.ContainerControl is Bar)
m_ThemeWindow=((Bar)this.ContainerControl).ThemeWindow;
else if(this.ContainerControl is IThemeCache)
m_ThemeWindow=((IThemeCache)this.ContainerControl).ThemeWindow;
}
return m_ThemeWindow;
}
}
internal DevComponents.DotNetBar.ThemeRebar ThemeRebar
{
get
{
if(m_ThemeRebar==null)
{
if(this.ContainerControl is Bar)
m_ThemeRebar=((Bar)this.ContainerControl).ThemeRebar;
else if(this.ContainerControl is IThemeCache)
m_ThemeRebar=((IThemeCache)this.ContainerControl).ThemeRebar;
}
return m_ThemeRebar;
}
}
internal DevComponents.DotNetBar.ThemeToolbar ThemeToolbar
{
get
{
if(m_ThemeToolbar==null)
{
if(this.ContainerControl is Bar)
m_ThemeToolbar=((Bar)this.ContainerControl).ThemeToolbar;
else if(this.ContainerControl is IThemeCache)
m_ThemeToolbar=((IThemeCache)this.ContainerControl).ThemeToolbar;
}
return m_ThemeToolbar;
}
}
internal DevComponents.DotNetBar.ThemeHeader ThemeHeader
{
get
{
if(m_ThemeHeader==null)
{
if(this.ContainerControl is Bar)
m_ThemeHeader=((Bar)this.ContainerControl).ThemeHeader;
else if(this.ContainerControl is IThemeCache)
m_ThemeHeader=((IThemeCache)this.ContainerControl).ThemeHeader;
}
return m_ThemeHeader;
}
}
internal DevComponents.DotNetBar.ThemeScrollBar ThemeScrollBar
{
get
{
if(m_ThemeScrollBar==null)
{
if(this.ContainerControl is Bar)
m_ThemeScrollBar=((Bar)this.ContainerControl).ThemeScrollBar;
else if(this.ContainerControl is IThemeCache)
m_ThemeScrollBar=((IThemeCache)this.ContainerControl).ThemeScrollBar;
}
return m_ThemeScrollBar;
}
}
internal DevComponents.DotNetBar.ThemeExplorerBar ThemeExplorerBar
{
get
{
if(m_ThemeExplorerBar==null)
{
if(this.ContainerControl is IThemeCache)
m_ThemeExplorerBar=((IThemeCache)this.ContainerControl).ThemeExplorerBar;
}
return m_ThemeExplorerBar;
}
}
internal DevComponents.DotNetBar.ThemeProgress ThemeProgress
{
get
{
if(m_ThemeProgress==null)
{
if(this.ContainerControl is Bar)
m_ThemeProgress=((Bar)this.ContainerControl).ThemeProgress;
else if(this.ContainerControl is IThemeCache)
m_ThemeProgress=((IThemeCache)this.ContainerControl).ThemeProgress;
}
return m_ThemeProgress;
}
}
internal DevComponents.DotNetBar.ThemeButton ThemeButton
{
get
{
if (m_ThemeButton == null)
{
if (this.ContainerControl is IThemeCache)
m_ThemeButton = ((IThemeCache)this.ContainerControl).ThemeButton;
}
return m_ThemeButton;
}
}
private void CreateStringFormat()
{
eTextFormat sfmt = eTextFormat.Default;
if (this.ContainerControl is ItemControl && !(this.Owner!=null && this.Owner.AlwaysDisplayKeyAccelerators))
sfmt |= eTextFormat.HidePrefix;
else if(!((this.Owner!=null && this.Owner.AlwaysDisplayKeyAccelerators) || NativeFunctions.ShowKeyboardCues || this.IsOnMenu))
{
Bar bar=this.ContainerControl as Bar;
if (!((this.ContainerControl != null && this.ContainerControl.Focused) || (bar != null && bar.MenuFocus) || (bar != null && bar.AlwaysDisplayKeyAccelerators) || this.ContainerControl is NavigationBar))
sfmt |= eTextFormat.HidePrefix;
}
if(this.ContainerControl is RibbonBar)
sfmt |= eTextFormat.VerticalCenter;
else
sfmt |= eTextFormat.SingleLine | eTextFormat.VerticalCenter;
if (!TextDrawing.UseTextRenderer)
sfmt |= eTextFormat.EndEllipsis;
this.ButtonStringFormat=sfmt;
}
internal bool IsBackstageTab
{
get { return _IsBackstageTab; }
}
}
}