88 lines
2.8 KiB
C#
88 lines
2.8 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.Threading.Tasks;
|
|||
|
using System.Windows.Forms;
|
|||
|
using FirstPlugin;
|
|||
|
using Toolbox.Library.Forms;
|
|||
|
|
|||
|
namespace FirstPlugin.Forms
|
|||
|
{
|
|||
|
public partial class LayoutHierarchy : UserControl
|
|||
|
{
|
|||
|
public LayoutHierarchy()
|
|||
|
{
|
|||
|
InitializeComponent();
|
|||
|
|
|||
|
treeView1.BackColor = FormThemes.BaseTheme.FormBackColor;
|
|||
|
treeView1.ForeColor = FormThemes.BaseTheme.FormForeColor;
|
|||
|
|
|||
|
var imgList = new ImageList();
|
|||
|
imgList.Images.Add("AlignmentPane", Properties.Resources.AlignmentPane);
|
|||
|
imgList.Images.Add("WindowPane", Properties.Resources.WindowPane);
|
|||
|
imgList.Images.Add("ScissorPane", Properties.Resources.ScissorPane);
|
|||
|
imgList.Images.Add("BoundryPane", Properties.Resources.BoundryPane);
|
|||
|
imgList.Images.Add("NullPane", Properties.Resources.NullPane);
|
|||
|
imgList.Images.Add("PicturePane", Properties.Resources.PicturePane);
|
|||
|
imgList.ImageSize = new Size(22,22);
|
|||
|
treeView1.ImageList = imgList;
|
|||
|
}
|
|||
|
|
|||
|
private bool isLoaded = false;
|
|||
|
private EventHandler OnProperySelected;
|
|||
|
public void LoadLayout(BFLYT.Header bflyt, EventHandler onPropertySelected, bool useGroup = false)
|
|||
|
{
|
|||
|
isLoaded = false;
|
|||
|
OnProperySelected = onPropertySelected;
|
|||
|
|
|||
|
if (useGroup)
|
|||
|
LoadPane(bflyt.RootGroup);
|
|||
|
else
|
|||
|
LoadPane(bflyt.RootPane);
|
|||
|
|
|||
|
isLoaded = true;
|
|||
|
}
|
|||
|
|
|||
|
private void LoadPane(BFLYT.BasePane pane, TreeNode parent = null)
|
|||
|
{
|
|||
|
PaneTreeWrapper paneNode = new PaneTreeWrapper();
|
|||
|
paneNode.Checked = true;
|
|||
|
paneNode.Text = pane.Name;
|
|||
|
paneNode.Tag = pane;
|
|||
|
|
|||
|
string imageKey = "";
|
|||
|
if (pane is BFLYT.WND1) imageKey = "WindowPane";
|
|||
|
else if (pane is BFLYT.PIC1) imageKey = "PicturePane";
|
|||
|
else if (pane is BFLYT.BND1) imageKey = "BoundryPane";
|
|||
|
else imageKey = "NullPane";
|
|||
|
|
|||
|
paneNode.ImageKey = imageKey;
|
|||
|
paneNode.SelectedImageKey = imageKey;
|
|||
|
|
|||
|
if (parent == null)
|
|||
|
treeView1.Nodes.Add(paneNode);
|
|||
|
else
|
|||
|
parent.Nodes.Add(paneNode);
|
|||
|
|
|||
|
foreach (var childPane in pane.Childern)
|
|||
|
LoadPane(childPane, paneNode);
|
|||
|
}
|
|||
|
|
|||
|
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
|
|||
|
{
|
|||
|
if (isLoaded)
|
|||
|
OnProperySelected.Invoke("Select", e);
|
|||
|
}
|
|||
|
|
|||
|
private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
|
|||
|
{
|
|||
|
if (isLoaded)
|
|||
|
OnProperySelected.Invoke("Checked", e);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|