/* Function: FindFileSourceEntry * Returns the menu entry that contains the passed file source, or null if there isn't one yet. */ protected MenuEntries.FileSource FindFileSourceEntry(Files.FileSource fileSource) { if (rootFileMenu == null) { return(null); } // If the menu only had one file source and it was condensed, the root file entry may have been replaced // by that file source. else if (rootFileMenu is MenuEntries.FileSource) { MenuEntries.FileSource fileSourceEntry = (MenuEntries.FileSource)rootFileMenu; if (fileSourceEntry.WrappedFileSource == fileSource) { return(fileSourceEntry); } else { return(null); } } // We're assuming that the only other possibility is a container with a flat list of FileSources. If we later allow // FileSources to be put in nested groups this will need to be updated. else { foreach (var member in rootFileMenu.Members) { if (member is MenuEntries.FileSource) { MenuEntries.FileSource fileSourceEntry = (MenuEntries.FileSource)member; if (fileSourceEntry.WrappedFileSource == fileSource) { return(fileSourceEntry); } } } return(null); } }
/* Function: CreateFileSourceEntry * Creates an entry for the file source, adds it to the menu, and returns it. It will also create the <rootFileMenu> * container if necessary. */ protected MenuEntries.FileSource CreateFileSourceEntry(Files.FileSource fileSource) { #if DEBUG if (FindFileSourceEntry(fileSource) != null) { throw new Exception("Tried to create a file source entry that already existed in the menu."); } #endif if (rootFileMenu == null) { rootFileMenu = new MenuEntries.Container(Hierarchy.File); rootFileMenu.Title = Engine.Locale.Get("NaturalDocs.Engine", "Menu.Files"); } MenuEntries.FileSource fileSourceEntry = new MenuEntries.FileSource(fileSource); fileSourceEntry.Parent = rootFileMenu; rootFileMenu.Members.Add(fileSourceEntry); return(fileSourceEntry); }
public void CopyFrom(Files.FileSource other) { Number = other.Number; Type = other.Type; UniqueIDString = other.UniqueIDString; }
public bool IsSameFundamentalFileSource(Files.FileSource other) { return(Number == other.Number && Type == other.Type && UniqueIDString == other.UniqueIDString); }
// Group: Functions // __________________________________________________________________________ /* Function: FileSourceAdder */ public FileSourceAdder(Files.FileSource fileSource, Engine.Instance engineInstance) : base(engineInstance) { this.fileSource = fileSource; this.status = new AdderStatus(); }