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

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

?? zonesequence.cs

?? Magic Library 1.7,有說明文檔
?? CS
?? 第 1 頁 / 共 4 頁
字號:
// *****************************************************************************
// 
//  (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.Drawing;
using System.Windows.Forms;
using System.ComponentModel;
using Crownwood.Magic.Common;
using Crownwood.Magic.Docking;
using Crownwood.Magic.Controls;
using Crownwood.Magic.Collections;

namespace Crownwood.Magic.Docking
{
    [ToolboxItem(false)]
    public class ZoneSequence : Zone, IHotZoneSource, IZoneMaximizeWindow, IResizeSource
    {
        protected struct Position
        {
            public int length;
        }

        // Class constants
        protected const int _spacePrecision = 3;
        protected const int _hotVectorBeforeControl = 5;

        // Instance fields
        protected VisualStyle _style;
        protected Direction _direction;
        protected ResizeBar _resizeBar;
        protected Window _maximizedWindow;
		protected bool _suppressReposition;
		protected bool _zoneMinMax;
	
        // Instance events
        public event EventHandler RefreshMaximize;

        public ZoneSequence(DockingManager manager)
            : base(manager)
        {
            InternalConstruct(VisualStyle.IDE, Direction.Vertical, true);
        }

        public ZoneSequence(DockingManager manager, State state, VisualStyle style, Direction direction, bool zoneMinMax)
            : base(manager, state)
        {
            InternalConstruct(style, direction, zoneMinMax);
        }

        protected void InternalConstruct(VisualStyle style, Direction direction, bool zoneMinMax)
        {
            // Remember initial state
            _style = style;
            _direction = direction;
            _maximizedWindow = null;
			_suppressReposition = false;
			_zoneMinMax = zoneMinMax;

            // Create the control used to resize the whole Zone
            _resizeBar = new ResizeBar(_direction, this);

            // Place last in the list of child Controls
            Controls.Add(_resizeBar);

            // Start of very small and let first content determine new size
            this.Size = new Size(0,0);		

			// Do not inherit the parent BackColor, we want the .Control color as 
			// this blends in with the way all the docking windows are drawn
			this.BackColor = SystemColors.Control;
			this.ForeColor = SystemColors.ControlText;
        }

		public override int MinimumWidth 
		{ 
			get { return _resizeBar.Width * 5; }
		}
		
		public override int MinimumHeight
		{ 
			get { return _resizeBar.Height * 6; } 
		}

		public override DockStyle Dock
		{
			get { return base.Dock; }

			set
			{
				base.Dock = value;

				RepositionControls();
			}
		}

        public Direction Direction
        {
            get { return _direction; }

            set
            {
                if (_direction != value)
                    _direction = value;
            }
        }

        public override State State
        {
            set 
            {
                base.State = value;

                // Inform each Window of the new requried state
                foreach(Window w in _windows)
                    w.State = value;

                RepositionControls();
            }
        }

		public void SuppressReposition()
		{
			_suppressReposition = true;
		}

        public bool IsMaximizeAvailable()
        {
            return (_windows.Count > 1) && _zoneMinMax;
        }

        public bool IsWindowMaximized(Window w)
        {
            return (w == _maximizedWindow);
        }

        public void MaximizeWindow(Window w)
        {
            // Remember the newly maximized Window
            _maximizedWindow = w;

            // Inform all interested parties of change
            OnRefreshMaximize(EventArgs.Empty);

            RepositionControls();
        }

        public void RestoreWindow()
        {
            // Remember the newly maximized Window
            _maximizedWindow = null;

            // Inform all interested parties of change
            OnRefreshMaximize(EventArgs.Empty);

            RepositionControls();
        }

        public virtual void OnRefreshMaximize(EventArgs e)
        {
            // Any attached event handlers?
            if (RefreshMaximize != null)
                RefreshMaximize(this, e);
        }

        public Color ResizeBarColor
        {
            get { return _manager.ResizeBarColor; }
        }
            
        public int ResizeBarVector
        {
            get { return _manager.ResizeBarVector; }
        }
            
        public VisualStyle Style 
        { 
            get { return _manager.Style; }
        }

        public Color BackgroundColor
        {
            get { return _manager.BackColor; }
        }

        public bool CanResize(ResizeBar bar)
        {
            // Is this the Window resize bar?
            if (bar != _resizeBar)
            {
                // Find position of this ResizeBar in the Controls collection
                int barIndex = Controls.IndexOf(bar);

                // The Window before this bar must be the one before it in the collection
                Window wBefore = Controls[barIndex - 1] as Window;

                // The Window after this bar must be the one after it in the Window collection
                Window wAfter = _windows[_windows.IndexOf(wBefore) + 1];

                // If Windows either side of the bar have no space then cannot resize there relative positions
                if (((wBefore.ZoneArea <= 0m) && (wAfter.ZoneArea <= 0m)))
                    return false;

                // If in maximized state and the bar is not connected to the maximized window
                if ((_maximizedWindow != null) && (_maximizedWindow != wBefore) && (_maximizedWindow != wAfter))
                    return false;
            }

            return true;
        }

        public bool StartResizeOperation(ResizeBar bar, ref Rectangle screenBoundary)
        {
            // Is this the Zone level resize bar?
            if (bar == _resizeBar)
            {
                // Define resize boundary as the inner area of the Form containing the Zone
                screenBoundary = this.Parent.RectangleToScreen(_manager.InnerResizeRectangle(this));

                // Find the screen limits of this Zone
                Rectangle zoneBoundary = RectangleToScreen(this.ClientRectangle);

                int minHeight = this.MinimumHeight;
                int minWidth = this.MinimumWidth;

                // Restrict resize based on which edge we are attached against
                switch(_state)
                {
                    case State.DockTop:
                        {
                            // Restrict Zone being made smaller than its minimum height
                            int diff = zoneBoundary.Top - screenBoundary.Top + minHeight;
                            screenBoundary.Y += diff;
                            screenBoundary.Height -= diff;					

                            // Restrict Zone from making inner control smaller than minimum allowed
                            int innerMinimumWidth = _manager.InnerMinimum.Height;
                            screenBoundary.Height -= innerMinimumWidth;
                        }
                        break;
                    case State.DockBottom:
                        {
                            // Restrict Zone being made smaller than its minimum height
                            int diff = zoneBoundary.Bottom - screenBoundary.Bottom - minHeight;
                            screenBoundary.Height += diff;					

                            // Restrict Zone from making inner control smaller than minimum allowed
                            int innerMinimumWidth = _manager.InnerMinimum.Height;
                            screenBoundary.Y += innerMinimumWidth;
                            screenBoundary.Height -= innerMinimumWidth;
                        }
                        break;
                    case State.DockLeft:
                        {
                            // Restrict Zone being made smaller than its minimum width
                            int diff = zoneBoundary.Left - screenBoundary.Left + minWidth;
                            screenBoundary.X += diff;
                            screenBoundary.Width -= diff;					

                            // Restrict Zone from making inner control smaller than minimum allowed
                            int innerMinimumWidth = _manager.InnerMinimum.Width;
                            screenBoundary.Width -=	innerMinimumWidth;
                        }
                        break;
                    case State.DockRight:
                        {
                            // Restrict Zone being made smaller than its minimum width
                            int diff = zoneBoundary.Right - screenBoundary.Right - minWidth;
                            screenBoundary.Width += diff;

                            // Restrict Zone from making inner control smaller than minimum allowed
                            int innerMinimumWidth = _manager.InnerMinimum.Width;
                            screenBoundary.X += innerMinimumWidth;
                            screenBoundary.Width -=	innerMinimumWidth;
                        }
                        break;
                }
            }
            else
            {
                // Find position of this ResizeBar in the Controls collection
                int barIndex = Controls.IndexOf(bar);

                // Define resize boundary as the client area of the Zone
                screenBoundary = RectangleToScreen(this.ClientRectangle);

                // The Window before this bar must be the one before it in the collection
                Window wBefore = Controls[barIndex - 1] as Window;

                // The Window after this bar must be the one after it in the Window collection
                Window wAfter = _windows[_windows.IndexOf(wBefore) + 1];
				
                // Find screen rectangle for the Windows either side of the bar
                Rectangle rectBefore = wBefore.RectangleToScreen(wBefore.ClientRectangle);
                Rectangle rectAfter = wAfter.RectangleToScreen(wAfter.ClientRectangle);

                // Reduce the boundary in the appropriate direction
                if (_direction == Direction.Vertical)
                {
                    screenBoundary.Y = rectBefore.Y + wBefore.MinimalSize.Height;
                    screenBoundary.Height -= screenBoundary.Bottom - rectAfter.Bottom;
                    screenBoundary.Height -= wAfter.MinimalSize.Height;
                }
                else
                {
                    screenBoundary.X = rectBefore.X + wBefore.MinimalSize.Width;
                    screenBoundary.Width -= screenBoundary.Right - rectAfter.Right;
                    screenBoundary.Width -= wAfter.MinimalSize.Width;
                }
            }

            // Allow resize operation to occur
            return true;
        }

        public void EndResizeOperation(ResizeBar bar, int delta)
        {
            // Is this the Zone level resize bar?
            if (bar == _resizeBar)
            {
                switch(this.Dock)
                {
                    case DockStyle.Left:
                        this.Width += delta;
                        break;
                    case DockStyle.Right:
                        this.Width -= delta;
                        break;
                    case DockStyle.Top:
                        this.Height += delta;
                        break;
                    case DockStyle.Bottom:
                        this.Height -= delta;
                        break;
                }
            }
            else
            {
                // Find position of this ResizeBar in the Controls collection
                int barIndex = Controls.IndexOf(bar);

                // The Window relating to this bar must be the one before it in the collection
                Window w = Controls[barIndex - 1] as Window;

                // Is the Window being expanded
                ModifyWindowSpace(w, delta);
            }
        }

		public override Restore RecordRestore(Window w, object child, Restore childRestore)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人国产一区二区三区精品| 欧美区一区二区三区| 91麻豆精品视频| 日韩亚洲欧美在线| 亚洲图片激情小说| 国产在线观看免费一区| 欧美少妇一区二区| 亚洲国产精品成人综合色在线婷婷 | 亚洲国产另类精品专区| 精品一区二区三区视频| 色8久久精品久久久久久蜜| 欧美精品一区二区三区在线播放| 亚洲欧美另类综合偷拍| 久久99精品久久只有精品| 91色综合久久久久婷婷| 久久久www成人免费毛片麻豆| 亚洲aⅴ怡春院| 91视频观看视频| 中文字幕av不卡| 国产jizzjizz一区二区| 精品国产一区二区亚洲人成毛片| 亚洲va欧美va人人爽午夜| 91福利在线看| 亚洲精品日日夜夜| 91麻豆高清视频| 精品写真视频在线观看| 欧美性色aⅴ视频一区日韩精品| 国产精品家庭影院| www.亚洲国产| 国产精品短视频| 99麻豆久久久国产精品免费优播| 久久九九99视频| 国产大陆a不卡| 国产亚洲欧洲一区高清在线观看| 国产精品一区二区在线看| 精品欧美乱码久久久久久 | 国产日韩欧美精品一区| 久久爱www久久做| 欧美tickling挠脚心丨vk| 日本91福利区| 久久丝袜美腿综合| 懂色中文一区二区在线播放| 中文字幕二三区不卡| 成人丝袜视频网| 国产精品免费视频网站| 91影视在线播放| 亚洲国产综合人成综合网站| 色婷婷综合久久久中文字幕| 一区二区三区中文字幕| 欧美视频中文字幕| 六月丁香综合在线视频| 国产无一区二区| 色综合久久久久久久久久久| 亚洲一区中文在线| 1024亚洲合集| 色狠狠色狠狠综合| 午夜在线成人av| 精品国产免费一区二区三区四区 | 欧美精品v日韩精品v韩国精品v| 亚洲电影中文字幕在线观看| 欧美一区二区三区在线| 精品无码三级在线观看视频| 国产欧美精品一区二区色综合 | 亚洲蜜臀av乱码久久精品| 欧美主播一区二区三区| 日本欧美一区二区| 国产精品青草久久| 欧美日韩久久久一区| 国产麻豆91精品| 一区二区三区四区乱视频| 91精品国产色综合久久不卡蜜臀 | 日韩精品乱码免费| 欧美国产视频在线| 51精品久久久久久久蜜臀| 国产宾馆实践打屁股91| 午夜婷婷国产麻豆精品| 国产日韩精品一区二区浪潮av| 91免费观看视频在线| 久久精品国产亚洲一区二区三区| 亚洲欧洲日本在线| 精品国产乱码久久久久久1区2区| 国产日韩三级在线| 欧美欧美午夜aⅴ在线观看| 国产成人免费视频精品含羞草妖精| 亚洲欧美国产三级| 久久久精品免费观看| 欧美日韩aaaaaa| 91年精品国产| 国产精品亚洲一区二区三区在线 | 日本欧美一区二区三区乱码| 国产精品少妇自拍| 日韩欧美一区在线观看| 色哟哟一区二区在线观看| 国产一区二区三区四| 首页亚洲欧美制服丝腿| 亚洲精品综合在线| 国产精品私人影院| 久久久精品影视| 欧美一级精品在线| 欧美精品一二三四| 欧美日韩国产乱码电影| 欧美制服丝袜第一页| av成人老司机| 99久久久国产精品| 99久久国产综合色|国产精品| 久久精品国产一区二区| 美女免费视频一区| 久久不见久久见中文字幕免费| 亚洲成a人v欧美综合天堂| 一区二区三区日本| 亚洲手机成人高清视频| 国产精品福利电影一区二区三区四区| 精品国产一二三区| 久久久久久99精品| 国产午夜精品在线观看| 久久午夜电影网| 久久久久久久久久久电影| 欧美一区二区三区视频在线观看| 欧美另类变人与禽xxxxx| 欧美日韩一区高清| 在线观看91精品国产麻豆| 欧美人牲a欧美精品| 91.xcao| 精品国产免费人成电影在线观看四季| 56国语精品自产拍在线观看| 91精品国产品国语在线不卡| 3d动漫精品啪啪1区2区免费| 91麻豆精品91久久久久同性| 日韩美一区二区三区| 国产亚洲精品7777| 亚洲欧洲无码一区二区三区| 亚洲欧美激情一区二区| 午夜精品一区在线观看| 欧美aaaaaa午夜精品| 国产乱色国产精品免费视频| 成人精品一区二区三区四区| 色94色欧美sute亚洲13| 欧美猛男男办公室激情| 日韩欧美成人激情| 国产精品五月天| 亚洲一区二区成人在线观看| 日韩精品国产欧美| 国产成人鲁色资源国产91色综 | 美女视频黄免费的久久 | 国产婷婷色一区二区三区 | 国产欧美日韩另类一区| 亚洲视频一区二区在线观看| 亚洲地区一二三色| 精品亚洲成av人在线观看| 不卡的电影网站| 91精品一区二区三区在线观看| 久久精品亚洲精品国产欧美kt∨| 亚洲欧洲一区二区三区| 免费成人结看片| 成人h动漫精品一区二区 | 色婷婷久久一区二区三区麻豆| 欧美肥胖老妇做爰| 国产精品色婷婷久久58| 午夜视频在线观看一区二区三区| 国产精品影音先锋| 欧美精品黑人性xxxx| 国产精品二区一区二区aⅴ污介绍| 天天亚洲美女在线视频| 99久久伊人精品| 日韩精品一区二区三区视频| 亚洲视频 欧洲视频| 国产毛片精品视频| 3d成人h动漫网站入口| 国产精品乱码人人做人人爱| 日韩成人一级片| 欧美亚洲自拍偷拍| 中文字幕av一区二区三区| 蜜桃在线一区二区三区| 在线免费观看日韩欧美| 久久久久久久久久久黄色| 日韩国产在线观看一区| 91麻豆国产精品久久| 中文字幕av一区 二区| 美女网站色91| 欧美日韩一级黄| 中文字幕巨乱亚洲| 狠狠狠色丁香婷婷综合久久五月| 欧美色大人视频| 亚洲男人天堂av网| 成人性色生活片免费看爆迷你毛片| 日韩午夜激情电影| 日韩电影在线观看电影| 91久久国产综合久久| 欧美国产视频在线| 国产69精品久久99不卡| 久久久久久麻豆| 韩国av一区二区三区四区| 欧美精品在线一区二区| 亚洲动漫第一页| 欧美日韩国产小视频| 亚洲一二三专区| 欧美视频精品在线观看| 亚洲国产精品人人做人人爽| 欧美亚洲图片小说| 亚洲电影激情视频网站|