DotNet 4.8.1 build of DotNetBar
This commit is contained in:
131
PROMS/DotNetBar Source Code/Ribbon/BaseItemAutoSizeBag.cs
Normal file
131
PROMS/DotNetBar Source Code/Ribbon/BaseItemAutoSizeBag.cs
Normal file
@@ -0,0 +1,131 @@
|
||||
using System;
|
||||
using System.Text;
|
||||
using System.Drawing;
|
||||
|
||||
namespace DevComponents.DotNetBar
|
||||
{
|
||||
#region BaseItemAutoSizeBag
|
||||
internal class BaseItemAutoSizeBag
|
||||
{
|
||||
public BaseItem Item = null;
|
||||
private bool m_SettingsRecorded;
|
||||
|
||||
protected bool SettingsRecorded
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_SettingsRecorded;
|
||||
}
|
||||
set
|
||||
{
|
||||
m_SettingsRecorded = value;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void RecordSetting(BaseItem item)
|
||||
{
|
||||
this.Item = item;
|
||||
m_SettingsRecorded = true;
|
||||
}
|
||||
|
||||
public virtual void RestoreSettings()
|
||||
{
|
||||
m_SettingsRecorded = false;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region ItemContainerAutoSizeBag
|
||||
internal class ItemContainerAutoSizeBag : BaseItemAutoSizeBag
|
||||
{
|
||||
private bool m_MultiLine = false;
|
||||
private eOrientation m_LayoutOrientation = eOrientation.Horizontal;
|
||||
private bool m_TitleVisible = false;
|
||||
public override void RecordSetting(BaseItem item)
|
||||
{
|
||||
if (this.SettingsRecorded)
|
||||
return;
|
||||
|
||||
ItemContainer cont = item as ItemContainer;
|
||||
m_MultiLine = cont.MultiLine;
|
||||
m_LayoutOrientation = cont.LayoutOrientation;
|
||||
m_TitleVisible = cont.TitleVisible;
|
||||
|
||||
base.RecordSetting(item);
|
||||
}
|
||||
|
||||
public override void RestoreSettings()
|
||||
{
|
||||
if (!this.SettingsRecorded) return;
|
||||
|
||||
ItemContainer cont = this.Item as ItemContainer;
|
||||
cont.MultiLine = m_MultiLine;
|
||||
cont.LayoutOrientation = m_LayoutOrientation;
|
||||
cont.TitleVisible = m_TitleVisible;
|
||||
|
||||
base.RestoreSettings();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region ButtonItemAutoSizeBag
|
||||
internal class ButtonItemAutoSizeBag : BaseItemAutoSizeBag
|
||||
{
|
||||
private eButtonStyle m_ButtonStyle = eButtonStyle.Default;
|
||||
private eImagePosition m_ImagePosition = eImagePosition.Left;
|
||||
private Size m_ImageFixedSize = Size.Empty;
|
||||
private string m_Text = null;
|
||||
|
||||
public override void RecordSetting(BaseItem item)
|
||||
{
|
||||
if (this.SettingsRecorded)
|
||||
return;
|
||||
|
||||
ButtonItem button = item as ButtonItem;
|
||||
m_ButtonStyle = button.ButtonStyle;
|
||||
m_ImagePosition = button.ImagePosition;
|
||||
m_ImageFixedSize = button.ImageFixedSize;
|
||||
if (button.TextMarkupBody != null && button.TextMarkupBody.HasExpandElement)
|
||||
m_Text = button.Text;
|
||||
|
||||
base.RecordSetting(item);
|
||||
}
|
||||
|
||||
public override void RestoreSettings()
|
||||
{
|
||||
if (!this.SettingsRecorded)
|
||||
return;
|
||||
|
||||
ButtonItem button = this.Item as ButtonItem;
|
||||
bool gi = button.GlobalItem;
|
||||
button.GlobalItem = false;
|
||||
button.ButtonStyle = m_ButtonStyle;
|
||||
button.ImagePosition = m_ImagePosition;
|
||||
button.ImageFixedSize = m_ImageFixedSize;
|
||||
if (m_Text != null) button.Text = m_Text;
|
||||
|
||||
button.GlobalItem = gi;
|
||||
base.RestoreSettings();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region AutoSizeBagFactory
|
||||
internal class AutoSizeBagFactory
|
||||
{
|
||||
public static BaseItemAutoSizeBag CreateAutoSizeBag(ButtonItem item)
|
||||
{
|
||||
ButtonItemAutoSizeBag b = new ButtonItemAutoSizeBag();
|
||||
b.Item = item;
|
||||
return b;
|
||||
}
|
||||
|
||||
public static ItemContainerAutoSizeBag CreateAutoSizeBag(ItemContainer item)
|
||||
{
|
||||
ItemContainerAutoSizeBag c = new ItemContainerAutoSizeBag();
|
||||
c.Item = item;
|
||||
return c;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
Reference in New Issue
Block a user