Example #1
0
        /// <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);
            }
        }