219 lines
7.4 KiB
C#
219 lines
7.4 KiB
C#
using System;
|
|
using System.Drawing;
|
|
using System.Windows.Forms;
|
|
namespace DevComponents.DotNetBar
|
|
{
|
|
/// <summary>
|
|
/// Summary description for ItemPaintArgs.
|
|
/// </summary>
|
|
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<Animation.AnimationRequest> 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; }
|
|
}
|
|
}
|
|
}
|