123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.IO;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using PaintDotNet.Base.SettingModel;
- using PaintDotNet.Base.CommTool;
- using PaintDotNet.DbOpreate.DbBll;
- using PaintDotNet.DbOpreate.DbModel;
- namespace PaintDotNet.Preview2
- {
- internal partial class ToolkitEditControl : UserControl
- {
- public ToolkitEditControl()
- {
- InitializeComponent();
- buttonAdd.Click += Save_Click;
- buttonRemove.Click += Save_Click;
- buttonUp.Click += Save_Click;
- buttonDown.Click += Save_Click;
- }
- private void InitializeLanguageText()
- {
- this.buttonDown.Text = PdnResources.GetString("Menu.LabelAction.MoveDownAction.Text");
- this.buttonUp.Text = PdnResources.GetString("Menu.LabelAction.MoveUpAction.Text");
- this.buttonRemove.Text = PdnResources.GetString("Menu.Moveout.text") + " >";
- this.buttonAdd.Text = "< " + PdnResources.GetString("Menu.Addto.text");
- this.groupBoxRight.Text = PdnResources.GetString("Menu.Availablefunctions.text");
- this.groupBoxLeft.Text = PdnResources.GetString("Menu.tool.Generateshortcut.Shortcutbarcontent.text");
- }
- /// <summary>
- /// 右侧树形菜单
- /// </summary>
- private ToolStripItemCollection collectionRight;
- private AppWorkspace appWorkspace;
- private ShortcutbarModel _shortcutbarModel;
- #region Initialize
- public void Initialize(AppWorkspace app, ShortcutbarModel model)
- {
- InitializeLanguageText();
- appWorkspace = app;
- InitializeRightTreeData();
- InitializeLeftTreeData(model);
- }
- /// <summary>
- /// 初始化右侧树形菜单数据
- /// </summary>
- private void InitializeRightTreeData()
- {
- collectionRight = appWorkspace.ToolBar.MainMenu.Items;
- TreeNode anime = new TreeNode(PdnResources.GetString("Menu.menu.Text"));
- RecursiveData(collectionRight, anime);
- anime.Expand();
- foreach (TreeNode node in anime.Nodes)
- treeViewRight.Nodes.Add(node);
- }
- /// <summary>
- /// 递归进行数据组织
- /// </summary>
- private void RecursiveData(ToolStripItemCollection collection, TreeNode anime)
- {
- for (int i = 0; i < collection.Count; i++)
- {
- TreeNode node = new TreeNode();
- if (collection[i] is PdnMenuItem)
- {
- PdnMenuItem item = (PdnMenuItem)collection[i];
- if (!item.CanShowInSenseShield)
- continue;
- node.Tag = item.MenuId;
- if (Array.IndexOf(Preview2Context.ToolLibArray, item.MenuId.ToString()) != -1)
- {
- node.Name = collection[i].Name;
- node.Text = collection[i].Text;
- node.Tag = item.MenuId;
- anime.Nodes.Add(node);
- if (item.MenuId == 1211)//脚本
- {
- List<mic_script> list = mic_script_BLL.FindAll();
- foreach (var scp in list)
- {
- TreeNode node1 = new TreeNode();
- node1.Name = scp.id.ToString();
- node1.Text = scp.name;
- node1.Tag = item.MenuId;
- node.Nodes.Add(node1);
- }
- }
- }
- if (collection[i].Name.Equals("OpenRecent") || collection[i].Name.Equals("CameraSelection"))
- continue;
- RecursiveData(((PdnMenuItem)collection[i]).DropDownItems, node);
- }
- }
- }
- /// <summary>
- /// 初始化左侧listview菜单
- /// </summary>
- private void InitializeLeftTreeData(ShortcutbarModel model)
- {
- this.listViewLeft.View = View.Details;
- ColumnHeader header = new ColumnHeader();
- header.Text = PdnResources.GetString("Menu.tool.Generateshortcut.functionlist.text");
- this.listViewLeft.Columns.Add(header);
- header.Width = listViewLeft.Width - 10;
- listViewLeft.HeaderStyle = ColumnHeaderStyle.None;
- _shortcutbarModel = model;
- if (_shortcutbarModel != null)
- {
- if (_shortcutbarModel.Menus != null)
- {
- for (int i = 0; i < _shortcutbarModel.Menus.Count; i++)
- {
- ToolStripItem[] items = this.appWorkspace.ToolBar.MainMenu.Items.Find(_shortcutbarModel.Menus[i].Description, true);
- ListViewItem item = new ListViewItem();
- if (items != null && items.Length > 0)
- {
- if (((PdnMenuItem)(items[0])).Image != null)
- this.listViewLeft.SmallImageList.Images.Add(_shortcutbarModel.Menus[i].Description, ((PdnMenuItem)(items[0])).Image);
- else
- this.listViewLeft.SmallImageList.Images.Add(_shortcutbarModel.Menus[i].Description, new Bitmap(16, 16));
- item.Text = ((PdnMenuItem)(items[0])).Text;
- }
- else
- {
- this.listViewLeft.SmallImageList.Images.Add(_shortcutbarModel.Menus[i].Description, new Bitmap(16, 16));
- item.Text = _shortcutbarModel.Menus[i].Name;// getShowName(Startup.instance.configModel.Language);
- }
- item.Tag = _shortcutbarModel.Menus[i].Id;
- item.Name = _shortcutbarModel.Menus[i].Description;
- item.ImageIndex = i;
- this.listViewLeft.Items.Add(item);
- }
- }
- }
- }
- #endregion Initialize
- #region Oprate
- private void buttonAdd_Click(object sender, EventArgs e)
- {
- if (this.treeViewRight.SelectedNode != null && this.treeViewRight.SelectedNode.Nodes.Count == 0)
- {
- ToolStripItem[] items = this.appWorkspace.ToolBar.MainMenu.Items.Find(this.treeViewRight.SelectedNode.Name, true);
- if (items != null && items.Length > 0)
- {
- if (((PdnMenuItem)(items[0])).Image != null)
- this.listViewLeft.SmallImageList.Images.Add(this.treeViewRight.SelectedNode.Name, ((PdnMenuItem)(items[0])).Image);
- else
- this.listViewLeft.SmallImageList.Images.Add(this.treeViewRight.SelectedNode.Name, new Bitmap(16, 16));
- }
- else
- {
- this.listViewLeft.SmallImageList.Images.Add(this.treeViewRight.SelectedNode.Name, new Bitmap(16, 16));
- }
- ListViewItem item = new ListViewItem();
- item.Text = this.treeViewRight.SelectedNode.Text;
- item.Tag = this.treeViewRight.SelectedNode.Tag;
- item.Name = this.treeViewRight.SelectedNode.Name;
- item.ImageIndex = this.listViewLeft.SmallImageList.Images.Count - 1;
- foreach (ListViewItem v in listViewLeft.Items)
- {
- if (v.Text == item.Text) return;
- }
- this.listViewLeft.Items.Add(item);
- }
- }
- private void buttonRemove_Click(object sender, EventArgs e)
- {
- if (this.listViewLeft.SelectedItems.Count > 0)
- {
- foreach (ListViewItem item in this.listViewLeft.SelectedItems)
- this.listViewLeft.Items.Remove(item);
- }
- }
- private void buttonUp_Click(object sender, EventArgs e)
- {
- if (this.listViewLeft.SelectedItems.Count == 1)
- {
- int index = this.listViewLeft.Items.IndexOf(this.listViewLeft.SelectedItems[0]);
- if (index > 0)
- {
- ListViewItem prenode = (ListViewItem)this.listViewLeft.Items[index - 1].Clone();
- prenode.Name = this.listViewLeft.Items[index - 1].Name;
- this.listViewLeft.Items.Insert(index + 1, prenode);
- this.listViewLeft.Items.Remove(this.listViewLeft.Items[index - 1]);
- this.listViewLeft.Refresh();
- }
- }
- }
- private void buttonDown_Click(object sender, EventArgs e)
- {
- if (this.listViewLeft.SelectedItems.Count == 1)
- {
- int index = this.listViewLeft.Items.IndexOf(this.listViewLeft.SelectedItems[0]);
- if (index < this.listViewLeft.Items.Count - 1)
- {
- ListViewItem nextnode = (ListViewItem)this.listViewLeft.Items[index + 1].Clone();
- nextnode.Name = this.listViewLeft.Items[index + 1].Name;
- this.listViewLeft.Items.Insert(index, nextnode);
- this.listViewLeft.Items.Remove(this.listViewLeft.Items[index + 2]);
- this.listViewLeft.Refresh();
- }
- }
- }
- #endregion
- private void Save_Click(object sender, EventArgs e)
- {
- SaveToolbar();
- }
- /// <summary>
- /// 保存数据到xml
- /// </summary>
- public void SaveToolbar()
- {
- _shortcutbarModel.Menus = new List<ShortcutbarModel.Item>();
- for (int i = 0; i < this.listViewLeft.Items.Count; i++)
- {
- ShortcutbarModel.Item flow = new ShortcutbarModel.Item();
- flow.Id = (int)(this.listViewLeft.Items[i].Tag);
- flow.Name = this.listViewLeft.Items[i].Text;
- //################
- flow.Description = this.listViewLeft.Items[i].Name;
- _shortcutbarModel.Menus.Add(flow);
- }
- Preview2Context.SaveToolkit();
- OnToolbarUpdate?.Invoke();
- }
- public static event Action OnToolbarUpdate;
- }
- }
|