Exemplo n.º 1
0
 /// <summary>
 /// Изменена текстура меша
 /// </summary>
 public void SurfaceTextureChanged(Project.Entry file)
 {
     if (surfData != null && !surfaceCodeChange)
     {
         if (file != null)
         {
             bool needTex = forceTextureReload;
             if (!needTex)
             {
                 needTex = file != surfData[selectedSurface].file;
             }
             if (needTex)
             {
                 surfData[selectedSurface].file = file;
                 surfData[selectedSurface].tex  = new Texture(surfData[selectedSurface].file.ProjectPath, Texture.LoadingMode.Queued);
                 surfData[selectedSurface].tex.ApplyMetaConfig(file.Meta);
             }
         }
         else
         {
             surfData[selectedSurface].file = null;
             surfData[selectedSurface].tex  = null;
         }
         ApplySurfaceData();
         UpdateSurfaceItemText(selectedSurface, file);
         Saved = false;
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// Текстура изменена
        /// </summary>
        /// <param name="side">Сторона</param>
        /// <param name="file">Имя файла</param>
        public void TextureChanged(Skybox.Side side, Project.Entry file)
        {
            if (file != null)
            {
                bool needTex = true;
                if (sky[side] != null)
                {
                    if (sky[side].Link == file.ProjectPath && !forceTextureReload)
                    {
                        needTex = false;
                    }
                }
                if (needTex)
                {
                    sky[side] = new Texture(file.ProjectPath, Texture.LoadingMode.Queued);
                    sky[side].ApplyMetaConfig(file.Meta);
                }
            }
            else
            {
                sky[side] = null;
            }

            Saved = false;
        }
Exemplo n.º 3
0
        /// <summary>
        /// Обновление файловой системы
        /// </summary>
        /// <param name="en">Файл</param>
        /// <param name="ev">Событие</param>
        public override void ProjectEntryEvent(Project.Entry en, Project.FileEvent ev)
        {
            base.ProjectEntryEvent(en, ev);
            if (closed)
            {
                return;
            }

            // Просмотр на изменение текстур
            SkyboxForm fr = Form as SkyboxForm;

            NSFileDropControl[] drops = new NSFileDropControl[] {
                fr.frontSkyTexture, fr.rightSkyTexture, fr.backSkyTexture, fr.leftSkyTexture, fr.topSkyTexture, fr.bottomSkyTexture
            };
            forceTextureReload = true;
            foreach (NSFileDropControl fc in drops)
            {
                if (fc.File == en)
                {
                    if (ev == Project.FileEvent.Deleted)
                    {
                        fc.File = null;
                    }
                    else
                    {
                        fc.File = en;
                    }
                }
            }
            forceTextureReload = false;
        }
Exemplo n.º 4
0
        /// <summary>
        /// Изменен файл текстуры
        /// </summary>
        private void skyTexture_FileChanged(object sender, EventArgs e)
        {
            Skybox.Side       side = Skybox.Side.Front;
            Project.Entry     file = frontSkyTexture.File;
            NSFileDropControl s    = sender as NSFileDropControl;

            if (s == topSkyTexture)
            {
                file = topSkyTexture.File;
                side = Skybox.Side.Top;
            }
            else if (s == bottomSkyTexture)
            {
                file = bottomSkyTexture.File;
                side = Skybox.Side.Bottom;
            }
            else if (s == leftSkyTexture)
            {
                file = leftSkyTexture.File;
                side = Skybox.Side.Left;
            }
            else if (s == rightSkyTexture)
            {
                file = rightSkyTexture.File;
                side = Skybox.Side.Right;
            }
            else if (s == backSkyTexture)
            {
                file = backSkyTexture.File;
                side = Skybox.Side.Back;
            }

            (FileEditor as SkyboxEditor).TextureChanged(side, file);
        }
Exemplo n.º 5
0
 /// <summary>
 /// Перетаскивание вышло за границы контрола
 /// </summary>
 void Canvas_DragLeave(object sender, EventArgs e)
 {
     if (dragTexture != null)
     {
         (FileEditor as ModelEditor).TextureDragCanceled();
     }
     dragTexture = null;
 }
Exemplo n.º 6
0
 /// <summary>
 /// Событие изменения файла
 /// </summary>
 /// <param name="en">Файл</param>
 /// <param name="ev">Событие</param>
 public override void ProjectEntryEvent(Project.Entry en, Project.FileEvent ev)
 {
     base.ProjectEntryEvent(en, ev);
     if (closed)
     {
         return;
     }
 }
Exemplo n.º 7
0
 /// <summary>
 /// Перетащен файл
 /// </summary>
 void Canvas_DragDrop(object sender, DragEventArgs e)
 {
     e.Effect = DragDropEffects.Link;
     if (dragTexture != null)
     {
         Point p = Canvas.PointToClient(new Point(e.X, e.Y));
         e.Effect = (FileEditor as ModelEditor).TextureDragOver(p.X, p.Y) ? DragDropEffects.Link : DragDropEffects.None;
         (FileEditor as ModelEditor).TextureDropped();
     }
     dragTexture = null;
 }
Exemplo n.º 8
0
        /// <summary>
        /// Открытие редактора для файла
        /// </summary>
        /// <param name="e">Файл</param>
        public static Editor OpenEditor(Project.Entry e)
        {
            if (W != null)
            {
                bool found = false;
                if (Editors != null)
                {
                    foreach (BaseForm frm in Editors)
                    {
                        if (frm.FileEditor.File == e)
                        {
                            W.projectTabs.SelectedTab = frm.Tag as TabPage;
                            found = true;
                            break;
                        }
                    }
                }

                if (!found)
                {
                    Editor ed = Editor.Create(e);
                    if (ed != null)
                    {
                        TabPage p = new TabPage(ed.Title);
                        p.Tag       = (object)ed.Form;
                        ed.Form.Tag = (object)p;

                        ed.Form.FormBorderStyle = FormBorderStyle.None;
                        ed.Form.Dock            = DockStyle.Fill;
                        ed.Form.TopLevel        = false;
                        ed.Form.TextChanged    += delegate(object sender, EventArgs ea) {
                            p.Text = ((BaseForm)sender).Text;
                        };
                        p.Controls.Add(ed.Form);
                        ed.Form.Show();
                        W.projectTabs.AddTab(p, true);

                        List <BaseForm> edlist = Editors != null?Editors.ToList() : new List <BaseForm>();

                        edlist.Add(ed.Form);
                        Editors = edlist.ToArray();

                        return(ed);
                    }
                    else
                    {
                        MessageDialog.Show(ControlStrings.EditorNotFoundTitle, ControlStrings.EditorNotFoundText.Replace("%FILE%", e.Name), MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                }
            }
            return(null);
        }
Exemplo n.º 9
0
        /// <summary>
        /// Создание меню создаваемых файлов
        /// </summary>
        /// <param name="col">Список для добавления</param>
        private void AddCreationMenuItems(ToolStripItemCollection col)
        {
            // Папка
            col.Add(ControlStrings.InspectorContextFolder, ShadowImage.CompiledFromImage(InspectorIcons.Folder, 16, 1), (sndr, args) => {
                Project.Dir d        = projectInspector.Tag as Project.Dir;
                CreateItemDialog dlg = new CreateItemDialog(ControlStrings.InspectorContextFolder);
                dlg.ExistingNames    = d.UsedNames;
                DialogResult dr      = dlg.ShowDialog();
                if (dr == System.Windows.Forms.DialogResult.OK)
                {
                    localFileEvent = true;
                    NSDirectoryInspector.Entry en = new NSDirectoryInspector.Entry();
                    en.IsDirectory = true;
                    en.Name        = dlg.SpecifiedName;
                    en.Tag         = Project.CreateDir(dlg.SpecifiedName, d);
                    projectInspector.Entries.Add(en);
                    projectInspector.SelectedEntry = en;
                    localFileEvent = false;
                }
            });

            if (Editor.CreatableList.Length > 0)
            {
                col.Add(new ToolStripSeparator());
                foreach (Editor.FileCreator fc in Editor.CreatableList)
                {
                    col.Add(fc.Name, ShadowImage.CompiledFromImage(fc.Icon, 16, 1), (sndr, args) => {
                        Project.Dir cd       = projectInspector.Tag as Project.Dir;
                        Editor.FileCreator f = fc;
                        if (cd != null)
                        {
                            CreateItemDialog dlg = new CreateItemDialog(fc.Name);
                            dlg.Extension        = f.Extension;
                            dlg.ExistingNames    = cd.UsedNames;
                            if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                            {
                                localFileEvent   = true;
                                Project.Entry ce = Project.CreateEntry(dlg.SpecifiedName, cd);
                                NSDirectoryInspector.Entry en = new NSDirectoryInspector.Entry();
                                en.IsDirectory = false;
                                en.Name        = System.IO.Path.GetFileNameWithoutExtension(dlg.SpecifiedName);
                                en.Icon        = ce.Icon;
                                en.Tag         = (object)ce;
                                projectInspector.Entries.Add(en);
                                projectInspector.SelectedEntry = en;
                                localFileEvent = false;
                            }
                        }
                    });
                }
            }
        }
Exemplo n.º 10
0
        /// <summary>
        /// Обновление данных для записи в списке
        /// </summary>
        /// <param name="id">Индекс поверхности</param>
        /// <param name="file">Файл</param>
        void UpdateSurfaceItemText(int id, Project.Entry file)
        {
            string label = "(none)";

            if (file != null)
            {
                label = System.IO.Path.GetFileNameWithoutExtension(file.ProjectPath);
                if (file.Parent != Project.BaseDir)
                {
                    label = file.Parent.Name + "/" + label;
                }
            }
            (Form as ModelForm).surfacesList.Items[id].SubItems[1].Text = label;
            (Form as ModelForm).surfacesList.Invalidate();
        }
Exemplo n.º 11
0
 protected override void OnShown(EventArgs e)
 {
     base.OnShown(e);
     prevFile = Dropper.File;
     if (Dropper.File != null)
     {
         currentDir = Dropper.File.Parent;
     }
     else
     {
         currentDir = Project.BaseDir;
     }
     Populate(true);
     Preview.PreviewsReady += Preview_PreviewsReady;
     Focus();
 }
Exemplo n.º 12
0
 /// <summary>
 /// Вхождение перетаскивания
 /// </summary>
 void Canvas_DragEnter(object sender, DragEventArgs e)
 {
     e.Effect    = DragDropEffects.None;
     dragTexture = null;
     if (e.Data.GetDataPresent(typeof(Project.DraggingEntry)))
     {
         Project.DraggingEntry de = (Project.DraggingEntry)e.Data.GetData(typeof(Project.DraggingEntry));
         if (textureFile.FileSupported(de.File.Name))
         {
             dragTexture = de.File;
         }
     }
     if (dragTexture != null)
     {
         (FileEditor as ModelEditor).TextureDragEntered(dragTexture);
         Point p = Canvas.PointToClient(new Point(e.X, e.Y));
         e.Effect = (FileEditor as ModelEditor).TextureDragOver(p.X, p.Y) ? DragDropEffects.Link : DragDropEffects.None;
     }
 }
Exemplo n.º 13
0
 /// <summary>
 /// Событие, связанное с файлом проекта
 /// </summary>
 public static void ProjectEntryEvent(Project.Entry e, Project.FileEvent ev)
 {
     System.Diagnostics.Debug.WriteLine("File " + e.ProjectPath + ev.ToString());
 }
Exemplo n.º 14
0
        /// <summary>
        /// Рекурсивное копирование директории
        /// </summary>
        /// <param name="cd">Директория</param>
        /// <param name="parent">Новый родитель</param>
        /// <returns>Скопированная директория</returns>
        Project.Dir RecursiveCopyDir(Project.Dir cd, Project.Dir parent)
        {
            // Подбор имени папки
            string dirName = cd.ShortName;

            while (Directory.Exists(parent.FullPath + "/" + dirName))
            {
                dirName += " - Copy";
            }

            // Создание папки
            Directory.CreateDirectory(parent.FullPath + "/" + dirName);

            // Создание объекта папки
            Project.Dir d = new Project.Dir();
            d.Parent = parent;
            d.Name   = parent != Project.BaseDir ? parent.Name + "/" + dirName : dirName;

            // Внутренние части
            List <Project.Dir>   dirs    = new List <Project.Dir>();
            List <Project.Entry> entries = new List <Project.Entry>();

            if (!abortCopy)
            {
                // Копирование файлов
                foreach (Project.Entry e in cd.Entries)
                {
                    // Создание записи
                    currentFileName = e.Name;
                    filesCopied++;
                    Project.Entry ce = new Project.Entry();
                    ce.Name   = e.Name;
                    ce.Parent = d;
                    ce.Meta   = e.Meta;
                    entries.Add(ce);

                    // Копирование файла
                    File.Copy(e.FullPath, ce.FullPath);

                    // Выход если отмена
                    if (abortCopy)
                    {
                        break;
                    }
                }

                // Копирование папок
                foreach (Project.Dir dr in cd.Dirs)
                {
                    dirs.Add(RecursiveCopyDir(dr, d));

                    // Выход если отмена
                    if (abortCopy)
                    {
                        break;
                    }
                }
            }
            d.Dirs    = dirs.ToArray();
            d.Entries = entries.ToArray();

            // Сохранение папки
            return(d);
        }
Exemplo n.º 15
0
        /// <summary>
        /// Клик по файлу в инспекторе
        /// </summary>
        private void projectInspector_MouseClick(object sender, MouseEventArgs e)
        {
            NSDirectoryInspector.Entry en = projectInspector.SelectedEntry;
            bool free = false;

            if (en != null)
            {
                free = Project.LegalFile(en.Tag);
            }
            if (e.Button == System.Windows.Forms.MouseButtons.Right)
            {
                NSContextMenu cm = new NSContextMenu();
                if (en != null)
                {
                    // Открытие файла
                    cm.Items.Add(ControlStrings.InspectorContextOpen, ShadowImage.CompiledFromImage(InspectorIcons.MenuOpen, 16, 1), (sndr, args) => {
                        if (en != null)
                        {
                            if (en.IsDirectory)
                            {
                                Project.Dir dr = en.Tag as Project.Dir;
                                if (dr != null)
                                {
                                    PopulateManager(dr);
                                }
                            }
                            else
                            {
                                OpenEditor(en.Tag as Project.Entry);
                            }
                        }
                    });
                }

                // Создание файла
                ToolStripMenuItem crItem = new ToolStripMenuItem(ControlStrings.InspectorContextCreate, ShadowImage.CompiledFromImage(InspectorIcons.MenuAdd, 16, 1));
                crItem.DropDown = new NSContextMenu();
                AddCreationMenuItems(crItem.DropDown.Items);
                cm.Items.Add(crItem);

                // Разделитель
                cm.Items.Add(new ToolStripSeparator());

                if (en != null)
                {
                    // Смена имени
                    cm.Items.Add(new ToolStripMenuItem(ControlStrings.InspectorContextRename, ShadowImage.CompiledFromImage(InspectorIcons.MenuRename, 16, 1), (sndr, args) => {
                    })
                    {
                        Enabled = free
                    });

                    // Копирование
                    cm.Items.Add(new ToolStripMenuItem(ControlStrings.InspectorContextCopy, ShadowImage.CompiledFromImage(InspectorIcons.MenuCopy, 16, 1), (sndr, args) => {
                        if (en != null)
                        {
                            copyingDir   = null;
                            copyingEntry = null;
                            if (en.IsDirectory)
                            {
                                copyingDir = en.Tag as Project.Dir;
                            }
                            else
                            {
                                copyingEntry = en.Tag as Project.Entry;
                            }
                        }
                    })
                    {
                        Enabled = free
                    });
                }

                // Вставка
                ToolStripMenuItem ps = new ToolStripMenuItem(ControlStrings.InspectorContextPaste, ShadowImage.CompiledFromImage(InspectorIcons.MenuPaste, 16, 1), (sndr, args) => {
                });
                ps.Enabled = copyingDir != null || copyingEntry != null;
                cm.Items.Add(ps);

                if (en != null)
                {
                    // Удаление
                    cm.Items.Add(new ToolStripMenuItem(ControlStrings.InspectorContextDelete, ShadowImage.CompiledFromImage(InspectorIcons.MenuDelete, 16, 1), (sndr, args) => {
                        if (en.IsDirectory)
                        {
                            if (Project.DeleteDir(en.Tag as Project.Dir))
                            {
                                projectInspector.SelectedEntry = null;
                                projectInspector.Entries.Remove(en);
                            }
                        }
                        else
                        {
                            if (Project.DeleteEntry(en.Tag as Project.Entry))
                            {
                                projectInspector.SelectedEntry = null;
                                projectInspector.Entries.Remove(en);
                            }
                        }
                        projectRemove.Enabled = false;
                    })
                    {
                        Enabled = free
                    });
                }

                cm.Show(inspectorPopupLocation);
            }
        }
Exemplo n.º 16
0
        /// <summary>
        /// Клик по файлу в инспекторе
        /// </summary>
        private void projectInspector_MouseClick(object sender, MouseEventArgs e)
        {
            NSDirectoryInspector.Entry en = projectInspector.SelectedEntry;
            bool free = false;

            if (en != null)
            {
                free = Project.OperableFile(en.Tag);
            }
            if (e.Button == System.Windows.Forms.MouseButtons.Right)
            {
                NSContextMenu cm = new NSContextMenu();
                if (en != null)
                {
                    // Открытие файла
                    cm.Items.Add(ControlStrings.InspectorContextOpen, ShadowImage.CompiledFromImage(InspectorIcons.MenuOpen, 16, 1), (sndr, args) => {
                        if (en != null)
                        {
                            if (en.IsDirectory)
                            {
                                Project.Dir dr = en.Tag as Project.Dir;
                                if (dr != null)
                                {
                                    PopulateManager(dr);
                                }
                            }
                            else
                            {
                                OpenEditor(en.Tag as Project.Entry);
                            }
                        }
                    });
                }

                // Создание файла
                ToolStripMenuItem crItem = new ToolStripMenuItem(ControlStrings.InspectorContextCreate, ShadowImage.CompiledFromImage(InspectorIcons.MenuAdd, 16, 1));
                crItem.DropDown = new NSContextMenu();
                AddCreationMenuItems(crItem.DropDown.Items);
                cm.Items.Add(crItem);

                // Разделитель
                cm.Items.Add(new ToolStripSeparator());

                if (en != null)
                {
                    // Смена имени
                    cm.Items.Add(new ToolStripMenuItem(ControlStrings.InspectorContextRename, ShadowImage.CompiledFromImage(InspectorIcons.MenuRename, 16, 1), (sndr, args) => {
                        string[] used;
                        string ext = "";
                        if (en.IsDirectory)
                        {
                            used = (en.Tag as Project.Dir).UsedNames;
                        }
                        else
                        {
                            used = (en.Tag as Project.Entry).Parent.UsedNames;
                            ext  = System.IO.Path.GetExtension((en.Tag as Project.Entry).Name);
                        }

                        RenameItemDialog rd = new RenameItemDialog(en.Name);
                        rd.SpecifiedName    = en.Name;
                        rd.Extension        = ext;
                        rd.ExistingNames    = used;
                        needProjectRescan   = false;
                        if (rd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                        {
                            if (en.IsDirectory)
                            {
                                Project.RenameItem(en.Tag as Project.Dir, rd.SpecifiedName);
                            }
                            else
                            {
                                Project.RenameItem(en.Tag as Project.Entry, rd.SpecifiedName);
                            }
                        }
                    })
                    {
                        Enabled = free
                    });

                    // Копирование
                    cm.Items.Add(new ToolStripMenuItem(ControlStrings.InspectorContextCopy, ShadowImage.CompiledFromImage(InspectorIcons.MenuCopy, 16, 1), (sndr, args) => {
                        if (en != null)
                        {
                            copyingDir   = null;
                            copyingEntry = null;
                            if (en.IsDirectory)
                            {
                                copyingDir = en.Tag as Project.Dir;
                            }
                            else
                            {
                                copyingEntry = en.Tag as Project.Entry;
                            }
                        }
                    })
                    {
                        Enabled = free
                    });
                }

                // Вставка
                ToolStripMenuItem ps = new ToolStripMenuItem(ControlStrings.InspectorContextPaste, ShadowImage.CompiledFromImage(InspectorIcons.MenuPaste, 16, 1), (sndr, args) => {
                    Project.Dir bd    = (Project.Dir)projectInspector.Tag;
                    localFileEvent    = true;
                    needProjectRescan = false;
                    if (copyingDir != null)
                    {
                        Project.Dir cd = Project.CopyDir(copyingDir, bd);
                        NSDirectoryInspector.Entry fen = new NSDirectoryInspector.Entry();
                        fen.IsDirectory = true;
                        fen.Name        = cd.ShortName;
                        fen.Tag         = (object)cd;
                        projectInspector.Entries.Add(fen);
                        projectInspector.SelectedEntry = fen;
                    }
                    else if (copyingEntry != null)
                    {
                        Project.Entry ce = Project.CopyEntry(copyingEntry, bd);
                        NSDirectoryInspector.Entry fen = new NSDirectoryInspector.Entry();
                        fen.IsDirectory = false;
                        fen.Name        = System.IO.Path.GetFileNameWithoutExtension(ce.Name);
                        fen.Icon        = ce.Icon;
                        fen.Tag         = (object)ce;
                        projectInspector.Entries.Add(fen);
                        projectInspector.SelectedEntry = fen;
                    }
                    localFileEvent = false;
                });
                ps.Enabled = copyingDir != null || copyingEntry != null;
                cm.Items.Add(ps);

                if (en != null)
                {
                    // Удаление
                    cm.Items.Add(new ToolStripMenuItem(ControlStrings.InspectorContextDelete, ShadowImage.CompiledFromImage(InspectorIcons.MenuDelete, 16, 1), (sndr, args) => {
                        if (en != null)
                        {
                            RemoveEntry(en);
                        }
                    })
                    {
                        Enabled = free
                    });
                }

                cm.Show(inspectorPopupLocation);
            }
        }
Exemplo n.º 17
0
 /// <summary>
 /// Перетаскивание текстуры отменено
 /// </summary>
 public void TextureDragCanceled()
 {
     draggingTexture       = null;
     draggingFile          = null;
     textureHoveredSurface = -1;
 }
Exemplo n.º 18
0
 /// <summary>
 /// Вхождение перетаскивания текстуры
 /// </summary>
 public void TextureDragEntered(Project.Entry file)
 {
     draggingFile    = file;
     draggingTexture = new Texture(file.ProjectPath, Texture.LoadingMode.Queued);
     draggingTexture.ApplyMetaConfig(draggingFile.Meta);
 }
Exemplo n.º 19
0
        /// <summary>
        /// Событие, связанное с файлом проекта
        /// </summary>
        public static void ProjectEntryEvent(Project.Entry e, Project.FileEvent ev)
        {
            System.Diagnostics.Debug.WriteLine("File " + e.ProjectPath + " " + ev.ToString());
            if (W != null)
            {
                // Обновление редакторов
                if (Editors != null)
                {
                    foreach (BaseForm b in Editors)
                    {
                        needProjectRescan = false;
                        b.FileEditor.ProjectEntryEvent(e, ev);
                    }
                }

                // Обновление инспектора
                if (!W.localFileEvent)
                {
                    Project.Dir cd = W.projectInspector.Tag as Project.Dir;
                    switch (ev)
                    {
                    case Project.FileEvent.Created:
                        if (e.Parent == cd)
                        {
                            if (e.Icon == null)
                            {
                                e.Icon = Preview.Get(e.FullPath);
                            }
                            W.projectInspector.Entries.Add(new NSDirectoryInspector.Entry()
                            {
                                IsDirectory = false,
                                Tag         = (object)e,
                                Name        = Path.GetFileNameWithoutExtension(e.Name),
                                Icon        = e.Icon
                            });
                            W.projectInspector.Invalidate();
                        }
                        break;

                    case Project.FileEvent.Modified:
                    case Project.FileEvent.Renamed:
                        if (e.Parent == cd)
                        {
                            object oe = (object)e;
                            if (ev == Project.FileEvent.Modified)
                            {
                                e.Icon = Preview.Get(e.FullPath);
                            }
                            foreach (NSDirectoryInspector.Entry en in W.projectInspector.Entries)
                            {
                                if (en.Tag == oe)
                                {
                                    en.Name = Path.GetFileNameWithoutExtension(e.Name);
                                    en.Icon = e.Icon;
                                    W.projectInspector.Invalidate();
                                    break;
                                }
                            }
                        }
                        break;

                    case Project.FileEvent.Deleted:
                        if (e.Parent == cd)
                        {
                            object oe = (object)e;
                            foreach (NSDirectoryInspector.Entry en in W.projectInspector.Entries)
                            {
                                if (en.Tag == oe)
                                {
                                    W.projectInspector.Entries.Remove(en);
                                    W.projectInspector.Invalidate();
                                    break;
                                }
                            }
                        }
                        break;
                    }
                }
            }
        }