DotNet 4.8.1 build of DotNetBar
This commit is contained in:
@@ -0,0 +1,231 @@
|
||||
#if FRAMEWORK20
|
||||
using System.Drawing;
|
||||
using System.Drawing.Drawing2D;
|
||||
|
||||
namespace DevComponents.DotNetBar
|
||||
{
|
||||
public class OneNote2007SuperTabItem : SuperTabItemBaseDisplay
|
||||
{
|
||||
#region Constants
|
||||
|
||||
private const int Radius = 10;
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Constructor for OneNote2007 style SuperTabItem base display
|
||||
/// </summary>
|
||||
/// <param name="tabItem">Associated SuperTabItem</param>
|
||||
public OneNote2007SuperTabItem(SuperTabItem tabItem)
|
||||
: base(tabItem)
|
||||
{
|
||||
}
|
||||
|
||||
#region ContentRectangle
|
||||
|
||||
/// <summary>
|
||||
/// Calculates the Content Rectangle for the tab
|
||||
/// </summary>
|
||||
/// <returns>Content Rectangle</returns>
|
||||
internal override Rectangle ContentRectangle()
|
||||
{
|
||||
Rectangle r = TabItem.DisplayRectangle;
|
||||
|
||||
int n = TabStripItem.TabDisplay.TabOverlap + TabStripItem.TabDisplay.TabSpacing;
|
||||
|
||||
if (TabStripItem.IsVertical == true)
|
||||
r.Height -= n;
|
||||
else
|
||||
r.Width -= n;
|
||||
|
||||
return (r);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region TabItemPath
|
||||
|
||||
/// <summary>
|
||||
/// Creates the tab item GraphicsPath
|
||||
/// </summary>
|
||||
/// <returns>Tab path</returns>
|
||||
internal override GraphicsPath TabItemPath()
|
||||
{
|
||||
GraphicsPath path = base.TabItemPath();
|
||||
|
||||
if (path != null)
|
||||
return (path);
|
||||
|
||||
switch (TabItem.TabAlignment)
|
||||
{
|
||||
case eTabStripAlignment.Top:
|
||||
return (TopTabPath());
|
||||
|
||||
case eTabStripAlignment.Bottom:
|
||||
return (BottomTabPath());
|
||||
|
||||
case eTabStripAlignment.Left:
|
||||
return (LeftTabPath());
|
||||
|
||||
default:
|
||||
return (RightTabPath());
|
||||
}
|
||||
}
|
||||
|
||||
#region TopTabPath
|
||||
|
||||
/// <summary>
|
||||
/// Create the Top tab path
|
||||
/// </summary>
|
||||
/// <returns>GraphicsPath</returns>
|
||||
private GraphicsPath TopTabPath()
|
||||
{
|
||||
Rectangle r = TabItem.DisplayRectangle;
|
||||
r.Width -= 1;
|
||||
r.Height -= 1;
|
||||
|
||||
// Allow for the TabStrip border
|
||||
|
||||
if (TabItem.IsSelected == true)
|
||||
r.Height += 2;
|
||||
|
||||
// Create the path
|
||||
|
||||
GraphicsPath path = new GraphicsPath();
|
||||
|
||||
int n = TabStripItem.TabDisplay.TabOverlap + TabStripItem.TabDisplay.TabSpacing * 2;
|
||||
|
||||
Rectangle ar = new Rectangle(r.X, r.Y, Radius, Radius);
|
||||
|
||||
path.AddLine(r.X, r.Bottom, r.X, r.Top + Radius);
|
||||
path.AddArc(ar, 180, 90);
|
||||
path.AddLine(r.Right - n, r.Top, r.Right, r.Bottom);
|
||||
|
||||
return (path);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region BottomTabPath
|
||||
|
||||
/// <summary>
|
||||
/// Creates the Bottom tab path
|
||||
/// </summary>
|
||||
/// <returns>GraphicsPath</returns>
|
||||
private GraphicsPath BottomTabPath()
|
||||
{
|
||||
Rectangle r = TabItem.DisplayRectangle;
|
||||
r.Width -= 1;
|
||||
r.Height -= 1;
|
||||
|
||||
// Allow for the TabStrip border
|
||||
|
||||
if (TabItem.IsSelected == true)
|
||||
{
|
||||
r.Y -= 2;
|
||||
r.Height += 2;
|
||||
}
|
||||
|
||||
// Create the path
|
||||
|
||||
GraphicsPath path = new GraphicsPath();
|
||||
|
||||
int n = TabStripItem.TabDisplay.TabOverlap + TabStripItem.TabDisplay.TabSpacing * 2;
|
||||
|
||||
Rectangle ar = new
|
||||
Rectangle(r.X, r.Bottom - Radius, Radius, Radius);
|
||||
|
||||
path.AddLine(r.Right, r.Top, r.Right - n, r.Bottom);
|
||||
path.AddArc(ar, 90, 90);
|
||||
path.AddLine(r.X, r.Bottom - Radius, r.X, r.Top);
|
||||
|
||||
|
||||
return (path);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region LeftTabPath
|
||||
|
||||
/// <summary>
|
||||
/// Creates the Left tab path
|
||||
/// </summary>
|
||||
/// <returns>GraphicsPath</returns>
|
||||
private GraphicsPath LeftTabPath()
|
||||
{
|
||||
Rectangle r = TabItem.DisplayRectangle;
|
||||
r.Width -= 1;
|
||||
r.Height -= 1;
|
||||
|
||||
// Allow for the TabStrip border
|
||||
|
||||
if (TabItem.IsSelected == true)
|
||||
r.Width += 2;
|
||||
|
||||
// Create the tab path
|
||||
|
||||
GraphicsPath path = new GraphicsPath();
|
||||
|
||||
int n = TabStripItem.TabDisplay.TabOverlap + TabStripItem.TabDisplay.TabSpacing;
|
||||
|
||||
Rectangle ar = new
|
||||
Rectangle(r.X, r.Top, Radius, Radius);
|
||||
|
||||
path.AddLine(r.Right, r.Top, r.X + Radius, r.Top);
|
||||
path.AddArc(ar, -90, -90);
|
||||
|
||||
path.AddLine(r.X, r.Top + Radius, r.X, r.Bottom - n);
|
||||
path.AddLine(r.X, r.Bottom - n, r.Right, r.Bottom);
|
||||
|
||||
return (path);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region RightTabPath
|
||||
|
||||
/// <summary>
|
||||
/// Create the Right tab path
|
||||
/// </summary>
|
||||
/// <returns>GraphicsPath</returns>
|
||||
private GraphicsPath RightTabPath()
|
||||
{
|
||||
GraphicsPath path = new GraphicsPath();
|
||||
|
||||
Rectangle r = TabItem.DisplayRectangle;
|
||||
r.Width -= 1;
|
||||
r.Height -= 1;
|
||||
|
||||
// Allow for the TabStrip border
|
||||
|
||||
if (TabItem.IsSelected == true)
|
||||
{
|
||||
r.X -= 2;
|
||||
r.Width += 2;
|
||||
}
|
||||
|
||||
// Create the tab path
|
||||
|
||||
int n = TabStripItem.TabDisplay.TabOverlap + TabStripItem.TabDisplay.TabSpacing;
|
||||
|
||||
if (TabStripItem.HorizontalText == false)
|
||||
n += TabStripItem.TabDisplay.TabSpacing;
|
||||
|
||||
Rectangle ar = new
|
||||
Rectangle(r.Right - Radius, r.Top, Radius, Radius);
|
||||
|
||||
path.AddLine(r.X, r.Top, r.Right - Radius, r.Top);
|
||||
path.AddArc(ar, 270, 90);
|
||||
|
||||
path.AddLine(r.Right, r.Top + Radius, r.Right, r.Bottom - n);
|
||||
path.AddLine(r.Right, r.Bottom - n, r.X, r.Bottom);
|
||||
|
||||
return (path);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
#endif
|
@@ -0,0 +1,150 @@
|
||||
#if FRAMEWORK20
|
||||
using System.Drawing;
|
||||
using DevComponents.UI.ContentManager;
|
||||
|
||||
namespace DevComponents.DotNetBar
|
||||
{
|
||||
internal class OneNote2007SuperTabStrip : SuperTabStripBaseDisplay
|
||||
{
|
||||
#region Constants
|
||||
|
||||
private const int HTabSpacing = 5;
|
||||
private const int HTabOverLap = 10;
|
||||
|
||||
private const int VTabSpacing = 7;
|
||||
private const int VTabOverLap = 10;
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// OneNote2007 SuperTabStripBaseDisplay
|
||||
/// </summary>
|
||||
/// <param name="tabStripItem">Associated TabStripItem</param>
|
||||
public OneNote2007SuperTabStrip(SuperTabStripItem tabStripItem)
|
||||
: base(tabStripItem)
|
||||
{
|
||||
}
|
||||
|
||||
#region Internal properties
|
||||
|
||||
#region MinTabSize
|
||||
|
||||
/// <summary>
|
||||
/// Returns the Minimum tab size for this style
|
||||
/// </summary>
|
||||
internal override Size MinTabSize
|
||||
{
|
||||
get
|
||||
{
|
||||
if (TabStripItem.IsVertical == true && TabStripItem.HorizontalText == true)
|
||||
return (new Size(28, 30));
|
||||
|
||||
return (new Size(28, 16));
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region TabOverlap
|
||||
|
||||
/// <summary>
|
||||
/// Tab Overlap
|
||||
/// </summary>
|
||||
internal override int TabOverlap
|
||||
{
|
||||
get { return (TabStripItem.IsVertical ? VTabOverLap : HTabOverLap); }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region TabSpacing
|
||||
|
||||
/// <summary>
|
||||
/// Tab Spacing
|
||||
/// </summary>
|
||||
internal override int TabSpacing
|
||||
{
|
||||
get
|
||||
{
|
||||
switch (TabStripItem.TabAlignment)
|
||||
{
|
||||
case eTabStripAlignment.Top:
|
||||
case eTabStripAlignment.Bottom:
|
||||
return (HTabSpacing);
|
||||
|
||||
case eTabStripAlignment.Right:
|
||||
return (TabStripItem.HorizontalText == false ? HTabSpacing : VTabSpacing);
|
||||
|
||||
default:
|
||||
return (VTabSpacing);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
|
||||
#region NextBlockPosition
|
||||
|
||||
/// <summary>
|
||||
/// Gets the next layout block position
|
||||
/// </summary>
|
||||
/// <param name="e">LayoutManagerPositionEventArgs</param>
|
||||
protected override void NextBlockPosition(LayoutManagerPositionEventArgs e)
|
||||
{
|
||||
int n = Tabs.IndexOf((BaseItem)e.Block);
|
||||
|
||||
if (n >= 0 && n + 1 < Tabs.Count)
|
||||
{
|
||||
SuperTabItem tab1 = Tabs[n] as SuperTabItem;
|
||||
|
||||
if (tab1 != null)
|
||||
{
|
||||
SuperTabItem tab2 = Tabs[n + 1] as SuperTabItem;
|
||||
|
||||
if (tab2 != null)
|
||||
{
|
||||
e.NextPosition = e.CurrentPosition;
|
||||
|
||||
if (TabStripItem.IsVertical == true)
|
||||
e.NextPosition.Y += (e.Block.Bounds.Height - VTabOverLap);
|
||||
else
|
||||
e.NextPosition.X += (e.Block.Bounds.Width - HTabOverLap);
|
||||
|
||||
e.Cancel = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region NextBlockPosition
|
||||
|
||||
/// <summary>
|
||||
/// Gets the next block position when attempting
|
||||
/// to make a specific tab visible
|
||||
/// </summary>
|
||||
/// <param name="item">Potential item to replace</param>
|
||||
/// <param name="vItem">View item being placed</param>
|
||||
/// <returns>Block Rectangle</returns>
|
||||
internal override Rectangle NextBlockPosition(BaseItem item, BaseItem vItem)
|
||||
{
|
||||
Rectangle r = base.NextBlockPosition(item, vItem);
|
||||
|
||||
if (item is SuperTabItem && vItem is SuperTabItem)
|
||||
{
|
||||
if (TabStripItem.IsVertical == true)
|
||||
r.Y -= VTabOverLap;
|
||||
else
|
||||
r.X -= HTabOverLap;
|
||||
}
|
||||
|
||||
return (r);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
#endif
|
Reference in New Issue
Block a user