/// <summary> /// Add the folder into the media library. /// </summary> public void AddFolder(string path) { // make sure the folder isnt already in the list bool exists = false; this.Foreach (delegate (TreeModel model, TreePath tree_path, TreeIter iter) { Folder node = (Folder) model.GetValue (iter, 0); if (node.Path == path) exists = true; return exists; }); // add the folder if it isnt already in the list if (exists) library.MainPage.ThrowError ("The folder is already in the library:\n" + path); else { Folder folder = new Folder (path); this.AppendValues (root_iter, folder); library.MainPage.DataManager.AddFolder (folder); // load the files within the directory Progress progress = new Progress (library.MediaBox); progress.Start (Utils.FileCount (path)); progress.Push ("Waiting in queue: " + Utils.GetFolderName (path)); // queue process delegate_queue.Enqueue (delegate { addDirRecurse (path, progress, folder); progress.End (); }); } }
protected override void OnStart(TextWriter writer) { // Set the min, max, and value including progress bar width style int percent = (int)(((double)(Value - Min) / (double)(Max - Min)) * 100.0); percent = Math.Max(0, percent); percent = Math.Min(100, percent); MergeAttribute("aria-valuenow", Value.ToString()); MergeAttribute("aria-valuemin", Min.ToString()); MergeAttribute("aria-valuemax", Max.ToString()); if (percent != 0) { this.MergeStyle("width", percent + "%"); } // Make sure we're stripped if also animated if(Animated) { ToggleCss(Css.ProgressBarStriped, true); ToggleCss(Css.Active, true); } if (GetComponent<Progress>(true) == null) { _progress = GetHelper().Progress().Component; _progress.Start(writer); } base.OnStart(writer); if(ShowPercent) { GetHelper().Content(percent + "%").Component.StartAndFinish(writer); } else { GetHelper().Element("span").AddCss(Css.SrOnly).SetText(percent + "% Complete").Component.StartAndFinish(writer); } }