亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? restore.cs

?? Magic Library 1.7,有說明文檔
?? CS
?? 第 1 頁 / 共 2 頁
字號:
// *****************************************************************************
// 
//  (c) Crownwood Consulting Limited 2002 
//  All rights reserved. The software and associated documentation 
//  supplied hereunder are the proprietary information of Crownwood Consulting 
//	Limited, Haxey, North Lincolnshire, England and are supplied subject to 
//	licence terms.
// 
//  Magic Version 1.7 	www.dotnetmagic.com
// *****************************************************************************

using System;
using System.Xml;
using System.Drawing;
using System.Windows.Forms;
using Crownwood.Magic.Common;
using Crownwood.Magic.Docking;
using Crownwood.Magic.Collections;

namespace Crownwood.Magic.Docking
{
    public class Restore
    {
		// Instance fields
		protected Restore _child;

		public Restore()
		{
			// Default state
			_child = null;
		}

		public Restore(Restore child)
		{
			// Remember parameter
			_child = child;
		}

        public Restore Child
        {
            get { return _child; }
            set { _child = value; }
        }

        public virtual void PerformRestore(DockingManager dm) {}
		public virtual void PerformRestore(Window w) {}
        public virtual void PerformRestore(Zone z) {}
        public virtual void PerformRestore() {}

		public virtual void Reconnect(DockingManager dm)
		{
			if (_child != null)
				_child.Reconnect(dm);
		}

		public virtual void SaveToXml(XmlTextWriter xmlOut)
		{
			// Must define my type so loading can recreate my instance
			xmlOut.WriteAttributeString("Type", this.GetType().ToString());

			SaveInternalToXml(xmlOut);

			// Output the child object			
			xmlOut.WriteStartElement("Child");

			if (_child == null)
				xmlOut.WriteAttributeString("Type", "null");
			else
				_child.SaveToXml(xmlOut);

			xmlOut.WriteEndElement();
		}

		public virtual void LoadFromXml(XmlTextReader xmlIn, int formatVersion)
		{
			LoadInternalFromXml(xmlIn, formatVersion);

			// Move to next xml node
			if (!xmlIn.Read())
				throw new ArgumentException("Could not read in next expected node");

			// Check it has the expected name
			if (xmlIn.Name != "Child")
				throw new ArgumentException("Node 'Child' expected but not found");

			string type = xmlIn.GetAttribute(0);
			
			if (type != "null")
				_child = CreateFromXml(xmlIn, false, formatVersion);

			// Move past the end element
			if (!xmlIn.Read())
				throw new ArgumentException("Could not read in next expected node");
		
			// Check it has the expected name
			if (xmlIn.NodeType != XmlNodeType.EndElement)
				throw new ArgumentException("EndElement expected but not found");
		}

		public virtual void SaveInternalToXml(XmlTextWriter xmlOut) {}
		public virtual void LoadInternalFromXml(XmlTextReader xmlIn, int formatVersion) {}

		public static Restore CreateFromXml(XmlTextReader xmlIn, bool readIn, int formatVersion)
		{
			if (readIn)
			{
				// Move to next xml node
				if (!xmlIn.Read())
					throw new ArgumentException("Could not read in next expected node");
			}
			
			// Grab type name of the object to create
			string attrType = xmlIn.GetAttribute(0);

			// Convert from string to a Type description object
			Type newType = Type.GetType(attrType);

			// Create an instance of this object which must derive from Restore base class
			Restore newRestore = newType.Assembly.CreateInstance(attrType) as Restore;

			// Ask the object to load itself
			newRestore.LoadFromXml(xmlIn, formatVersion);

			return newRestore;
		}
	}

	public class RestoreContent : Restore
	{
		// Instance fields
		protected String _title;
		protected Content _content;

		public RestoreContent()
			: base()
		{
			// Default state
			_title = "";
			_content = null;
		}

		public RestoreContent(Content content)
			: base()
		{
			// Remember parameter
			_title = content.Title;
			_content = content;
		}

		public RestoreContent(Restore child, Content content)
			: base(child)
		{
			// Remember parameter
			_title = content.Title;
			_content = content;
		}

		public override void Reconnect(DockingManager dm)
		{
			// Connect to the current instance of required content object
			_content = dm.Contents[_title];

			base.Reconnect(dm);
		}

		public override void SaveInternalToXml(XmlTextWriter xmlOut)
		{
			base.SaveInternalToXml(xmlOut);
			xmlOut.WriteStartElement("Content");
			xmlOut.WriteAttributeString("Name", _content.Title);
			xmlOut.WriteEndElement();				
		}

		public override void LoadInternalFromXml(XmlTextReader xmlIn, int formatVersion)
		{
			base.LoadInternalFromXml(xmlIn, formatVersion);

			// Move to next xml node
			if (!xmlIn.Read())
				throw new ArgumentException("Could not read in next expected node");

			// Check it has the expected name
			if (xmlIn.Name != "Content")
				throw new ArgumentException("Node 'Content' expected but not found");

			// Grab type name of the object to create
			_title = xmlIn.GetAttribute(0);
		}
	}
	
	public class RestoreContentState : RestoreContent
	{
		// Instance fields
		protected State _state;

		public RestoreContentState()
			: base()
		{
		}

		public RestoreContentState(State state, Content content)
			: base(content)
		{
			// Remember parameter
			_state = state;
		}

		public RestoreContentState(Restore child, State state, Content content)
			: base(child, content)
		{
			// Remember parameter
			_state = state;
		}

		public override void PerformRestore(DockingManager dm)
		{
			// Use the existing DockingManager method that will create a Window appropriate for 
			// this Content and then add a new Zone for hosting the Window. It will always place
			// the Zone at the inner most level
			dm.AddContentWithState(_content, _state);				
		}

		public override void SaveInternalToXml(XmlTextWriter xmlOut)
		{
			base.SaveInternalToXml(xmlOut);
			xmlOut.WriteStartElement("State");
			xmlOut.WriteAttributeString("Value", _state.ToString());
			xmlOut.WriteEndElement();				
		}

		public override void LoadInternalFromXml(XmlTextReader xmlIn, int formatVersion)
		{
			base.LoadInternalFromXml(xmlIn, formatVersion);

			// Move to next xml node
			if (!xmlIn.Read())
				throw new ArgumentException("Could not read in next expected node");

			// Check it has the expected name
			if (xmlIn.Name != "State")
				throw new ArgumentException("Node 'State' expected but not found");

			// Grab type state of the object to create
			string attrState = xmlIn.GetAttribute(0);

			// Convert from string to enumeration value
			_state = (State)Enum.Parse(typeof(State), attrState);
		}
	}
	
	public class RestoreAutoHideState : RestoreContentState
	{
	    // Instance fields
	    
	    public RestoreAutoHideState()
	        : base()
	    {
	    }
        
        public RestoreAutoHideState(State state, Content content)
            : base(state, content)
        {
        }

        public RestoreAutoHideState(Restore child, State state, Content content)
            : base(child, state, content)
        {
        }
    
        public override void PerformRestore(DockingManager dm)
        {
            // Create collection of Contents to auto hide
            ContentCollection cc = new ContentCollection();
            
            // In this case, there is only one
            cc.Add(_content);
        
            // Add to appropriate AutoHidePanel based on _state
            dm.AutoHideContents(cc, _state);
        }
    }

    public class RestoreAutoHideAffinity : RestoreAutoHideState
    {
        // Instance fields
        protected StringCollection _next;
        protected StringCollection _previous;
        protected StringCollection _nextAll;
        protected StringCollection _previousAll;

        public RestoreAutoHideAffinity()
            : base()
        {
            // Must always point to valid reference
            _next = new StringCollection();
            _previous = new StringCollection();
            _nextAll = new StringCollection();
            _previousAll = new StringCollection();
        }

        public RestoreAutoHideAffinity(Restore child, 
                                       State state,
                                       Content content, 
                                       StringCollection next,
                                       StringCollection previous,
                                       StringCollection nextAll,
                                       StringCollection previousAll)
        : base(child, state, content)
        {
            // Remember parameters
            _next = next;				
            _previous = previous;	
            _nextAll = nextAll;				
            _previousAll = previousAll;	
        }

        public override void PerformRestore(DockingManager dm)
        {   
            // Get the correct target panel from state
            AutoHidePanel ahp = dm.AutoHidePanelForState(_state);
            
            ahp.AddContent(_content, _next, _previous, _nextAll, _previousAll);
        }

        public override void SaveInternalToXml(XmlTextWriter xmlOut)
        {
            base.SaveInternalToXml(xmlOut);
            _next.SaveToXml("Next", xmlOut);
            _previous.SaveToXml("Previous", xmlOut);
            _nextAll.SaveToXml("NextAll", xmlOut);
            _previousAll.SaveToXml("PreviousAll", xmlOut);
        }

        public override void LoadInternalFromXml(XmlTextReader xmlIn, int formatVersion)
        {
            base.LoadInternalFromXml(xmlIn, formatVersion);
            _next.LoadFromXml("Next", xmlIn);
            _previous.LoadFromXml("Previous", xmlIn);
            _nextAll.LoadFromXml("NextAll", xmlIn);
            _previousAll.LoadFromXml("PreviousAll", xmlIn);
        }
    }

	public class RestoreContentDockingAffinity : RestoreContentState
	{
		// Instance fields
		protected Size _size;
		protected Point _location;
		protected StringCollection _best;
		protected StringCollection _next;
		protected StringCollection _previous;
		protected StringCollection _nextAll;
		protected StringCollection _previousAll;

		public RestoreContentDockingAffinity()
			: base()
		{
			// Must always point to valid reference
			_best = new StringCollection();
			_next = new StringCollection();
			_previous = new StringCollection();
			_nextAll = new StringCollection();
			_previousAll = new StringCollection();
		}

		public RestoreContentDockingAffinity(Restore child, 
										     State state, 
											 Content content, 
											 StringCollection best,
											 StringCollection next,
											 StringCollection previous,
											 StringCollection nextAll,
											 StringCollection previousAll)
			: base(child, state, content)
		{
			// Remember parameters
			_best = best;
			_next = next;
			_previous = previous;
			_nextAll = nextAll;
			_previousAll = previousAll;
			_size = content.DisplaySize;
			_location = content.DisplayLocation;
		}

		public override void PerformRestore(DockingManager dm)
		{
			int count = dm.Container.Controls.Count;

			int min = -1;
			int max = count;

			if (dm.InnerControl != null)
				min = dm.Container.Controls.IndexOf(dm.InnerControl);

			if (dm.OuterControl != null)
				max = dm.OuterControlIndex();

			int beforeIndex = -1;
			int afterIndex = max;
			int beforeAllIndex = -1;
			int afterAllIndex = max;

			// Create a collection of the Zones in the appropriate direction
			for(int index=0; index<count; index++)
			{
				Zone z = dm.Container.Controls[index] as Zone;

				if (z != null)
				{
					StringCollection sc = ZoneHelper.ContentNames(z);
					
					if (_state == z.State)
					{
						if (sc.Contains(_best))
						{
							// Can we delegate to a child Restore object
							if (_child != null)
								_child.PerformRestore(z);
							else
							{
								// Just add an appropriate Window to start of the Zone
								dm.AddContentToZone(_content, z, 0);
							}
							return;
						}

						// If the WindowContent contains a Content previous to the target
						if (sc.Contains(_previous))
						{
							if (index > beforeIndex)
								beforeIndex = index;
						}
						
						// If the WindowContent contains a Content next to the target
						if (sc.Contains(_next))
						{
							if (index < afterIndex)
								afterIndex = index;
						}
					}
					else
					{
						// If the WindowContent contains a Content previous to the target
						if (sc.Contains(_previousAll))
						{
							if (index > beforeAllIndex)
								beforeAllIndex = index;
						}
						
						// If the WindowContent contains a Content next to the target
						if (sc.Contains(_nextAll))
						{
							if (index < afterAllIndex)
								afterAllIndex = index;
						}
					}
				}
			}

			dm.Container.SuspendLayout();

			// Create a new Zone with correct State
			Zone newZ = dm.CreateZoneForContent(_state);

			// Restore the correct content size/location values
			_content.DisplaySize = _size;
			_content.DisplayLocation = _location;

			// Add an appropriate Window to start of the Zone
			dm.AddContentToZone(_content, newZ, 0);

			// Did we find a valid 'before' Zone?
			if (beforeIndex != -1)
			{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国模一区二区三区| 成人免费高清在线| 欧美精品一卡两卡| 日韩精品福利网| 欧美一区二区三区白人| 琪琪久久久久日韩精品| 欧美成人r级一区二区三区| 久久丁香综合五月国产三级网站| 久久色中文字幕| 国产成人av电影在线播放| 中文av字幕一区| 色94色欧美sute亚洲线路一久| 亚洲二区在线观看| 欧美一区欧美二区| 成人妖精视频yjsp地址| 一区二区激情视频| 欧美成人精品1314www| 成人伦理片在线| 亚洲无线码一区二区三区| 日韩三级在线观看| 国产91精品免费| 亚洲国产色一区| 精品国产成人系列| 91在线国产福利| 强制捆绑调教一区二区| 国产精品免费视频网站| 欧美性猛片xxxx免费看久爱| 麻豆国产精品视频| 亚洲人成网站影音先锋播放| 91精品国产一区二区三区 | 亚洲男同性视频| 欧美日韩一区国产| 国产福利91精品| 婷婷久久综合九色综合伊人色| 久久你懂得1024| 欧美日韩激情一区二区三区| 国产成人精品一区二区三区四区 | 欧美精品一区男女天堂| 91丝袜国产在线播放| 毛片av中文字幕一区二区| 国产精品久久久久毛片软件| 337p亚洲精品色噜噜狠狠| 国产成人在线视频免费播放| 午夜影视日本亚洲欧洲精品| 国产精品污网站| 91麻豆精品国产自产在线| 成人免费福利片| 精品一二三四区| 亚洲成人免费在线观看| 国产拍揄自揄精品视频麻豆| 67194成人在线观看| 欧美日韩国产天堂| 94色蜜桃网一区二区三区| 亚洲欧美日韩国产成人精品影院| 久久se精品一区精品二区| 一区二区在线观看视频| 26uuu色噜噜精品一区| 欧美日韩一级二级三级| 9i看片成人免费高清| 国产一区二区三区在线观看免费视频 | 精品黑人一区二区三区久久| 在线观看精品一区| 99这里只有精品| 成人永久aaa| 国产一区二区三区综合| 精品综合久久久久久8888| 日本 国产 欧美色综合| 亚洲一级二级三级| 一区二区三区在线观看欧美| 国产精品三级电影| 国产女人水真多18毛片18精品视频| 欧美成人精品二区三区99精品| 欧美疯狂性受xxxxx喷水图片| 91精彩视频在线| 97国产一区二区| 99视频精品在线| 波多野结衣视频一区| 不卡免费追剧大全电视剧网站| 国产成人精品免费网站| 国产黄色精品网站| 成人性生交大片免费| 成人一级片在线观看| 成人sese在线| 91蝌蚪porny九色| 91在线看国产| 色综合久久天天| 欧美在线视频日韩| 欧美日韩成人综合天天影院| 欧美视频中文字幕| 5858s免费视频成人| 欧美大肚乱孕交hd孕妇| 久久久久久久综合日本| 日本一区二区三区dvd视频在线| 国产欧美在线观看一区| 国产精品欧美一区喷水| 国产精品另类一区| 一区二区三区鲁丝不卡| 午夜激情一区二区三区| 捆绑变态av一区二区三区| 国产精品综合一区二区| 9i在线看片成人免费| 欧美日韩黄色一区二区| 精品成a人在线观看| 国产精品视频yy9299一区| 亚洲一区二区精品视频| 日韩国产高清影视| 国产成人一区二区精品非洲| 91天堂素人约啪| 欧美夫妻性生活| 欧美精彩视频一区二区三区| 亚洲一级二级在线| 国产一区二区福利视频| 91视频你懂的| 欧美一级黄色大片| 国产精品久久99| 日本午夜一本久久久综合| 粉嫩蜜臀av国产精品网站| 欧美三级视频在线观看| 久久久亚洲欧洲日产国码αv| 亚洲男人天堂av网| 国产一区二区成人久久免费影院| 91豆麻精品91久久久久久| 久久久久久久久久久99999| 亚洲一区二区三区在线看| 精彩视频一区二区| 欧美性淫爽ww久久久久无| 国产精品天天看| 日韩和欧美一区二区三区| 国产99久久久国产精品潘金网站| 欧美色图天堂网| 国产精品免费网站在线观看| 蜜桃视频一区二区三区在线观看 | 国产一区二区三区在线观看免费视频 | 亚洲欧美日韩一区| 精品一区二区三区免费观看 | av激情成人网| 精品裸体舞一区二区三区| 亚洲免费av在线| 国产999精品久久久久久绿帽| 欧美日韩国产欧美日美国产精品| 国产精品视频免费| 国产精品888| 日韩欧美精品在线| 日本午夜精品视频在线观看 | 午夜久久久久久久久久一区二区| 国产成人在线看| 久久综合九色综合欧美98| 蜜臀av性久久久久av蜜臀妖精 | 日本不卡视频在线| 欧美在线免费播放| 亚洲欧洲精品一区二区三区不卡| 激情欧美一区二区三区在线观看| 欧美日韩在线综合| 一区二区三区91| 日本韩国欧美三级| 亚洲精品综合在线| 99久久精品情趣| 国产精品无人区| 成人中文字幕在线| 中文字幕av一区二区三区高| 国产在线国偷精品免费看| 日韩一区二区在线看| 日韩制服丝袜先锋影音| 欧美日韩国产电影| 日韩精品电影一区亚洲| 欧美一区二区黄色| 日韩va欧美va亚洲va久久| 欧美一区二区免费观在线| 免费成人在线网站| 日韩一区二区免费高清| 视频一区中文字幕国产| 欧美日本在线视频| 奇米影视一区二区三区| 欧美成人艳星乳罩| 久久狠狠亚洲综合| 久久综合国产精品| 国产成人精品免费看| 国产精品视频一区二区三区不卡| 国产成人免费网站| 国产精品乱人伦| 一本到不卡精品视频在线观看| 亚洲精选一二三| 7777精品伊人久久久大香线蕉完整版 | 樱花草国产18久久久久| 91久久国产综合久久| 亚洲国产日韩精品| 日韩一区二区三区观看| 国内精品在线播放| 国产网站一区二区三区| aaa亚洲精品一二三区| 亚洲国产毛片aaaaa无费看| 欧美一级免费观看| 国产一区二区三区四| 综合激情成人伊人| 7777女厕盗摄久久久| 国产伦精一区二区三区| 自拍偷拍国产亚洲| 91精品国产综合久久国产大片| 国产一区视频在线看| 国产精品久久久一本精品|