コード例 #1
0
        /* 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);
            }
        }
コード例 #2
0
        /* 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);
        }
コード例 #3
0
ファイル: Target.cs プロジェクト: loafbrad/NaturalDocs
 public void CopyFrom(Files.FileSource other)
 {
     Number         = other.Number;
     Type           = other.Type;
     UniqueIDString = other.UniqueIDString;
 }
コード例 #4
0
ファイル: Target.cs プロジェクト: loafbrad/NaturalDocs
 public bool IsSameFundamentalFileSource(Files.FileSource other)
 {
     return(Number == other.Number &&
            Type == other.Type &&
            UniqueIDString == other.UniqueIDString);
 }
コード例 #5
0
        // Group: Functions
        // __________________________________________________________________________


        /* Function: FileSourceAdder
         */
        public FileSourceAdder(Files.FileSource fileSource, Engine.Instance engineInstance) : base(engineInstance)
        {
            this.fileSource = fileSource;
            this.status     = new AdderStatus();
        }