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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 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)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一二三区不卡| 男女视频一区二区| 99精品视频在线观看免费| 中文字幕在线观看不卡视频| 成人激情校园春色| 中文字幕综合网| 在线免费视频一区二区| 亚洲成人自拍网| 日韩欧美一二区| 国产精品亚洲专一区二区三区| 日本一区二区三级电影在线观看 | 精品国产三级a在线观看| 婷婷综合五月天| 日韩一区二区电影| 风间由美一区二区三区在线观看 | av电影在线观看完整版一区二区| 玉米视频成人免费看| 精品视频一区三区九区| 精品在线亚洲视频| 国产精品理论片在线观看| 91网站最新地址| 日韩成人av影视| 国产喷白浆一区二区三区| 色婷婷综合久久久久中文| 日韩av电影天堂| 亚洲欧洲日韩av| 欧美电影在线免费观看| 成人免费毛片a| 亚洲午夜视频在线观看| 久久综合九色综合欧美亚洲| 99久精品国产| 国内外成人在线| 亚洲一区二区中文在线| 久久综合av免费| 欧美亚男人的天堂| 丁香亚洲综合激情啪啪综合| 亚洲高清免费视频| 亚洲欧美在线视频| 精品国产乱码久久久久久夜甘婷婷 | 91最新地址在线播放| 青青草国产精品亚洲专区无| 国产精品久久久久桃色tv| 欧美一卡在线观看| 欧洲一区二区三区在线| 国产成人精品网址| 日产欧产美韩系列久久99| 综合久久给合久久狠狠狠97色| 日韩欧美一区二区三区在线| 91精品福利视频| 国产999精品久久久久久| 蜜臀va亚洲va欧美va天堂| 一区二区三区欧美| 欧美高清在线一区二区| 欧美成人vps| 欧美精品丝袜中出| 欧美手机在线视频| 91日韩在线专区| 成人av在线观| 国产一区二区0| 精品一区二区三区蜜桃| 亚洲成a人v欧美综合天堂下载| 国产精品国产三级国产专播品爱网 | 欧美日韩视频在线第一区| 99视频在线观看一区三区| 狠狠久久亚洲欧美| 琪琪一区二区三区| 青青青爽久久午夜综合久久午夜| 亚洲午夜免费电影| 亚洲精品乱码久久久久久| 国产精品乱码一区二三区小蝌蚪| 久久综合网色—综合色88| 精品少妇一区二区三区在线播放| 91精品国产综合久久蜜臀| 欧美日韩一级片在线观看| 欧美性生活一区| 欧美性色aⅴ视频一区日韩精品| av网站一区二区三区| 99精品国产一区二区三区不卡| 国产高清精品久久久久| 高清久久久久久| 成人一区二区视频| 97久久人人超碰| 在线视频国产一区| 欧美三级日韩在线| 欧美日韩在线三区| 91精品国产一区二区三区香蕉 | 日本高清免费不卡视频| 91在线看国产| 在线观看网站黄不卡| 欧美亚洲日本国产| 欧美日韩一二区| 欧美一区二区久久久| 日韩美女一区二区三区| 久久色视频免费观看| 中文字幕乱码久久午夜不卡 | 日韩精品一区二区三区在线 | 亚洲欧美日本韩国| 亚洲自拍偷拍麻豆| 亚洲va欧美va天堂v国产综合| 青青国产91久久久久久| 国产精品系列在线播放| eeuss鲁片一区二区三区在线看| 91论坛在线播放| 欧美久久免费观看| 久久新电视剧免费观看| 亚洲欧洲www| 五月婷婷久久综合| 国产精品123| 欧美性xxxxxx少妇| wwwwxxxxx欧美| 一区二区三区在线观看视频| 麻豆高清免费国产一区| 成人av电影免费观看| 欧美人妖巨大在线| 亚洲国产精品成人久久综合一区| 亚洲无线码一区二区三区| 国产综合久久久久久鬼色 | 日韩影院免费视频| 国产成人免费视频网站| 欧美午夜精品一区二区蜜桃| 欧美精品一区二区不卡| 伊人色综合久久天天| 日韩国产成人精品| 99久久精品免费精品国产| 91精品国产麻豆国产自产在线 | 日韩欧美不卡一区| 亚洲欧美日韩国产另类专区| 精品一区二区三区欧美| 日本乱码高清不卡字幕| 国产亚洲欧美色| 热久久免费视频| 欧美在线看片a免费观看| 久久亚洲免费视频| 奇米影视7777精品一区二区| 色av成人天堂桃色av| 久久精品视频一区二区| 日韩vs国产vs欧美| 色悠悠久久综合| 国产亚洲欧美日韩在线一区| 男女性色大片免费观看一区二区| 91丨九色丨黑人外教| 久久综合狠狠综合久久综合88| 亚洲一区二区中文在线| 91一区一区三区| 欧美韩日一区二区三区| 国产在线播放一区三区四| 在线播放中文一区| 亚洲综合视频在线| 色吊一区二区三区| 国产精品白丝在线| 成人一区二区三区视频 | 国产精品久久精品日日| 国产一区二区久久| 精品久久国产老人久久综合| 日韩电影在线观看网站| 欧美影院精品一区| 一二三区精品视频| 色94色欧美sute亚洲线路二| 亚洲视频一区在线观看| av在线一区二区| 中文字幕永久在线不卡| 成人av网站免费观看| 国产欧美一区二区精品仙草咪| 国产乱子轮精品视频| 久久久久久久久蜜桃| 黑人巨大精品欧美黑白配亚洲| 日韩精品一区二区三区在线| 美女一区二区久久| 日韩你懂的在线播放| 精品无人码麻豆乱码1区2区| 欧美成人伊人久久综合网| 麻豆一区二区三| 精品国产免费人成在线观看| 国产伦精品一区二区三区免费| 久久久久一区二区三区四区| 国产高清在线精品| 国产精品毛片高清在线完整版| 成人精品一区二区三区四区| 中文字幕一区二区不卡| 99国产欧美另类久久久精品| 亚洲精品国产一区二区精华液 | 国产免费久久精品| 成人手机电影网| 亚洲欧美一区二区视频| 在线观看亚洲精品| 日本亚洲天堂网| 久久理论电影网| 成人久久久精品乱码一区二区三区| 国产精品久久综合| 欧美性xxxxxx少妇| 久久 天天综合| 中文字幕乱码日本亚洲一区二区| 色综合久久综合中文综合网| 香蕉久久一区二区不卡无毒影院| 91精品国产欧美一区二区18| 国产精品白丝jk白祙喷水网站| 亚洲欧洲一区二区在线播放| 制服丝袜亚洲色图| 国产.精品.日韩.另类.中文.在线.播放| 中文字幕亚洲视频|