Exemple #1
0
        /// <summary>Add bookmarks of mounted medias (Windows)</summary>
        private List<Bookmark> AddSysDrives()
        {
            List<Bookmark> bms = new List<Bookmark>();
            foreach (System.IO.DriveInfo di in System.IO.DriveInfo.GetDrives())
            {
                Bookmark bm = new Bookmark();
                bm.title=di.Name;
                bm.url = "file://" + di.Name;
                /*if (di.IsReady)
                {
                    NewBtn.TooltipText = di.VolumeLabel + " (" + di.DriveFormat + ")";
                }*/

                switch (di.DriveType)
                {
                    case System.IO.DriveType.Fixed:
                        bm.Icon = "(internal)drive-harddisk.png";
                        break;
                    case System.IO.DriveType.CDRom:
                        bm.Icon = "(internal)drive-optical.png";
                        break;
                    case System.IO.DriveType.Removable:
                        bm.Icon = "(internal)drive-removable-media.png";
                        break;
                    case System.IO.DriveType.Network:
                        bm.Icon = "(internal)network-server.png";
                        break;
                    case System.IO.DriveType.Ram:
                        bm.Icon = "(internal)emblem-system.png";
                        break;
                    case System.IO.DriveType.Unknown:
                        bm.Icon = "(internal)image-missing.png";
                        break;
                }

                string d = di.Name;
                //OS-specific icons
                if (d.StartsWith("A:")) bm.Icon = "(internal)media-floppy.png";
                if (d.StartsWith("B:")) bm.Icon = "(internal)media-floppy.png";
                if (d.StartsWith("/dev")) bm.Icon = "(internal)preferences-desktop-peripherals.png";
                if (d.StartsWith("/proc")) bm.Icon = "(internal)emblem-system.png";
                if (d == "/") bm.Icon = "(internal)root-folder.png";
                bms.Add(bm);
            }
            return bms;
        }
Exemple #2
0
        /// <summary>Initialize bookmark menu toolkit</summary>
        /// <param name="BookmarkXML">The bookmark database (in XML format)</param>
        /// <param name="Category">"QuickAccessBar", "BookmarksMenu" or "UserMenu"</param>
        public BookmarkTools(string BookmarkXML = null, string Category = "BookmarksMenu")
        {
            if (BookmarkXML == null)
            {
                BookmarkXML = Utilities.GetEmbeddedResource("DefaultBookmarks.xml");
                if (BookmarkXML == null) throw new Exception("Cannot load pluginner.dll::DefaultBookmarks.xml");
            }

            XmlDocument bmDoc = new XmlDocument();
            bmDoc.LoadXml(BookmarkXML);
            XmlNodeList items = bmDoc.GetElementsByTagName("SpeedDial");
            foreach (XmlNode x in items)
            {//parsing speed dials
                if (
                    x.Attributes.GetNamedItem("type") != null
                    &&
                    x.Attributes.GetNamedItem("type").Value == Category
                )
                {
                    foreach (XmlNode xc in x.ChildNodes)
                    {//parsing bookmark list
                        if (xc.Name == "AutoBookmarks")//автозакладка
                        {
                            switch (xc.Attributes.GetNamedItem("type").Value)
                            {
                                case "System.IO.DriveInfo.GetDrives":
                                    bookmarks.AddRange(AddSysDrives());
                                    break;
                                case "LinuxMounts":
                                    bookmarks.AddRange(AddLinuxMounts());
                                    break;
                                //todo: LinuxSystemDirs (/), LinuxUserMounts
                            }
                        }
                        else if (xc.Name == "Bookmark")//простая закладка
                        {
                            try {
                            Bookmark bm = new Bookmark();
                            bm.title=xc.Attributes.GetNamedItem("title").Value;
                            bm.url=xc.Attributes.GetNamedItem("url").Value;
                            if(xc.OuterXml.IndexOf("icon=") > 0)
                            bm.Icon=xc.Attributes.GetNamedItem("icon").Value;
                            bookmarks.Add(bm);
                            }
                            catch {
                                Console.WriteLine("WARNING: Invalid bookmark declaration: " + xc.OuterXml);
                            };
                        }
                        //todo: bookmark folders
                    }
                }
            }
        }
Exemple #3
0
        /// <summary>Add bookmarks of mounted medias (*nix)</summary>
        private List<Bookmark> AddLinuxMounts()
        {
            List<Bookmark> bms = new List<Bookmark>();

            if (Directory.Exists(@"/mnt"))
            {
                foreach (string dir in Directory.GetDirectories(@"/mnt/"))
                {
                    Bookmark bm = new Bookmark();
                    bm.url="file://" + dir;
                    bm.title=dir.Replace(@"/mnt/", "");
                    bm.Icon = "(internal)drive-removable-media.png";
                    bms.Add(bm);
                }
            }
            else return AddSysDrives(); //fallback for Windows

            return bms;
        }