132 lines
3.7 KiB
C#
132 lines
3.7 KiB
C#
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
|
|
}
|