Cosmos/source2/VSIP/Cosmos.VS.Package/VMPage.cs
kudzu_cp e76b144411
2010-08-03 23:06:02 +00:00

110 lines
2.5 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using Cosmos.Build.Common;
namespace Cosmos.VS.Package {
[Guid(Guids.VMPage)]
public partial class VMPage : ConfigurationBase {
private SubPropertyPageBase pageSubPage;
public VMPage() {
InitializeComponent();
BuildPage.BuildTargetChanged += new EventHandler(BuildOptionsPropertyPage_BuildTargetChanged);
}
protected override void Dispose(bool disposing) {
if (disposing && (components != null))
{
components.Dispose();
}
BuildPage.BuildTargetChanged -= new EventHandler(BuildOptionsPropertyPage_BuildTargetChanged);
base.Dispose(disposing);
}
void BuildOptionsPropertyPage_BuildTargetChanged(object sender, EventArgs e)
{ FillProperties(); }
private void ClearSubPage()
{
foreach (Control control in panelSubPage.Controls)
{
panelSubPage.Controls.Remove(control);
control.Dispose();
}
}
private void SetSubPropertyPage(TargetHost target)
{
bool subpageChanged = false;
switch (target) {
default:
subpageChanged = true;
pageSubPage = null;
break;
}
if (subpageChanged == true)
{
panelSubPage.SuspendLayout();
ClearSubPage();
if (pageSubPage != null)
{
pageSubPage.SetOwner(this);
panelSubPage.Controls.Add(pageSubPage);
pageSubPage.Location = new Point(0, 0);
pageSubPage.Anchor = AnchorStyles.Top;
pageSubPage.Size = new Size(ClientSize.Width, pageSubPage.Size.Height);
pageSubPage.Anchor = pageSubPage.Anchor | AnchorStyles.Left | AnchorStyles.Right;
if (pageSubPage.Size.Height <= ClientSize.Height)
{
pageSubPage.Size = new Size(pageSubPage.Size.Width, ClientSize.Height);
pageSubPage.Anchor = pageSubPage.Anchor | AnchorStyles.Bottom;
}
panelSubPage.Visible = true;
} else
{
panelSubPage.Visible = false;
}
panelSubPage.ResumeLayout();
}
}
protected override void FillProperties()
{
base.FillProperties();
SetSubPropertyPage(BuildPage.CurrentBuildTarget);
if (pageSubPage != null)
{ pageSubPage.FillProperties(); }
}
public override PropertiesBase Properties
{
get
{
if (pageSubPage != null)
{ return pageSubPage.Properties; }
return null;
}
}
}
}