breadcrumbsmanager.cs

来自「YetAnotherForum.Net+ScrewTurnWiki中文完美汉化增」· CS 代码 · 共 72 行

CS
72
字号

using System;
using System.Collections.Generic;
using System.Text;
using ScrewTurn.Wiki.PluginFramework;

namespace ScrewTurn.Wiki {

	/// <summary>
	/// Manages navigation Breadcrumbs.
	/// </summary>
	[Serializable]
	public class BreadcrumbsManager {

		private static int maxPages = 10;

		private List<PageInfo> pages;

		/// <summary>
		/// Initializes a new instance of the <b>BreadcrumbsManager</b> class.
		/// </summary>
		public BreadcrumbsManager() {
			pages = new List<PageInfo>();
		}

		/// <summary>
		/// Adds a Page to the Breadcrumbs trail.
		/// </summary>
		/// <param name="page">The Page to add.</param>
		public void AddPage(PageInfo page) {
			lock(pages) {
				if(pages.Count == 0 || (pages.Count > 0 && !pages.Contains(page))) pages.Add(page);
				if(pages.Count > maxPages) pages.RemoveRange(0, pages.Count - maxPages);
			}
		}

		/// <summary>
		/// Removes a Page from the Breadcrumbs trail.
		/// </summary>
		/// <param name="page">The Page to remove.</param>
		public void RemovePage(PageInfo page) {
			lock(pages) {
				pages.Remove(page);
			}
		}

		/// <summary>
		/// Clears the Breadcrumbs trail.
		/// </summary>
		public void Clear() {
			lock(pages) {
				pages.Clear();
			}
		}

		/// <summary>
		/// Gets all the Pages.
		/// </summary>
		public PageInfo[] AllPages {
			get {
				PageInfo[] array;
				lock(pages) {
					array = pages.ToArray();
				}
				return array;
			}
		}

	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?