예제 #1
0
        internal static DockStyle xf8330a3964a419ba(ContainerDockLocation x9c911703d455884e)
        {
            ContainerDockLocation containerDockLocation = x9c911703d455884e;

            if (true)
            {
                goto label_5;
            }
label_4:
            return(DockStyle.Left);

label_5:
            switch (containerDockLocation)
            {
            case ContainerDockLocation.Left:
                goto label_4;

            case ContainerDockLocation.Right:
                return(DockStyle.Right);

            case ContainerDockLocation.Top:
                return(DockStyle.Top);

            case ContainerDockLocation.Bottom:
                return(DockStyle.Bottom);

            default:
                return(DockStyle.Fill);
            }
        }
예제 #2
0
 public DockContainer FindDockContainer(ContainerDockLocation location) => FindDockedContainer(LayoutUtilities.Convert(location));
예제 #3
0
 protected virtual DockContainer CreateNewDockContainerCore(ContainerDockLocation dockLocation)
 {
     return dockLocation == ContainerDockLocation.Center && EnableTabbedDocuments ? new DocumentContainer() : new DockContainer();
 }
예제 #4
0
 public DockContainer CreateNewDockContainer(ContainerDockLocation dockLocation, ContainerDockEdge edge, int contentSize)
 {
     EnsureDockSystemContainer();
     DockSystemContainer.SuspendLayout();
     DockContainer result;
     try
     {
         var dockContainer = CreateNewDockContainerCore(dockLocation);
         dockContainer.Manager = this;
         var dockStyle = LayoutUtilities.Convert(dockLocation);
         dockContainer.Dock = dockStyle;
         dockContainer.ContentSize = contentSize;
        // IntPtr arg_3B_0 = dockContainer.Handle;
         var newIndex = dockLocation != ContainerDockLocation.Center ? (edge == ContainerDockEdge.Inside ? GetInsideControlIndex(DockSystemContainer)
                 : GetOutsideControlIndex(DockSystemContainer, dockStyle)) : 0;
         DockSystemContainer.Controls.Add(dockContainer);
         DockSystemContainer.Controls.SetChildIndex(dockContainer, newIndex);
         foreach (var control2 in DockSystemContainer.Controls.Cast<Control>().Select(control => control as PopupContainer))
             control2?.BringToFront();
         result = dockContainer;
     }
     finally
     {
         DockSystemContainer.ResumeLayout();
     }
     return result;
 }
예제 #5
0
		internal void SaveFixedDockSide(ContainerDockLocation location)
		{
			LastFixedDockSide = location;
		}
예제 #6
0
 internal bool GetDockingRulesFrom(ContainerDockLocation location)
 {
     switch (location)
     {
         case ContainerDockLocation.Left:
             return DockingRules.AllowDockLeft;
         case ContainerDockLocation.Right:
             return DockingRules.AllowDockRight;
         case ContainerDockLocation.Top:
             return DockingRules.AllowDockTop;
         case ContainerDockLocation.Bottom:
             return DockingRules.AllowDockBottom;
         default:
             return DockingRules.AllowTab;
     }
 }
예제 #7
0
        internal static void x0a680eda7ec8bd81(
            SandDockManager x91f347c6e97f1846,
            XmlNode x8a5ce9fbef4b9a09)
        {
            TypeConverter converter1 = TypeDescriptor.GetConverter(typeof(long));

            do
            {
                TypeConverter converter2 = TypeDescriptor.GetConverter(typeof(int));
                TypeConverter converter3 = TypeDescriptor.GetConverter(typeof(System.Drawing.Size));
                TypeConverter converter4 = TypeDescriptor.GetConverter(typeof(System.Drawing.Point));
                DockControl   control    = x91f347c6e97f1846.FindControl(new Guid(x8a5ce9fbef4b9a09.Attributes["Guid"].Value));
                if (control != null)
                {
                    if (x8a5ce9fbef4b9a09.Attributes["LastFocused"] != null)
                    {
                        goto label_26;
                    }
                    else
                    {
                        goto label_24;
                    }
label_3:
                    if (true)
                    {
                        control.MetaData.xe62a3d24e0fde928.x71a5d248534c8557 = (int)converter2.ConvertFromString(x8a5ce9fbef4b9a09.Attributes["LastDockContainerIndex"].Value);
                    }
                    else
                    {
                        goto label_15;
                    }
label_5:
                    x245a5abec1c73d3a.xac29055e1acf1a28(control, x8a5ce9fbef4b9a09, (x129cb2a2bdfd0ab2)control.MetaData.xe62a3d24e0fde928, "Docked");
                    if (true)
                    {
                        x245a5abec1c73d3a.xac29055e1acf1a28(control, x8a5ce9fbef4b9a09, control.MetaData.x25e1dbd0e63329bf, "Document");
                        x245a5abec1c73d3a.xac29055e1acf1a28(control, x8a5ce9fbef4b9a09, control.MetaData.xba74b873ae2f845a, "Floating");
                        if (true)
                        {
                            continue;
                        }
                        goto label_19;
                    }
                    else
                    {
                        goto label_7;
                    }
label_6:
                    if (x8a5ce9fbef4b9a09.Attributes["LastFloatingWindowGuid"] != null)
                    {
                        control.MetaData.x87f4a9b62a380563(new Guid(x8a5ce9fbef4b9a09.Attributes["LastFloatingWindowGuid"].Value));
                    }
label_7:
                    if (x8a5ce9fbef4b9a09.Attributes["LastDockContainerCount"] == null)
                    {
                        goto label_9;
                    }
label_8:
                    control.MetaData.xe62a3d24e0fde928.xd25c313925dc7d4e = (int)converter2.ConvertFromString(x8a5ce9fbef4b9a09.Attributes["LastDockContainerCount"].Value);
label_9:
                    if (x8a5ce9fbef4b9a09.Attributes["LastDockContainerIndex"] != null)
                    {
                        if (true)
                        {
                            goto label_3;
                        }
                    }
                    else
                    {
                        goto label_5;
                    }
label_10:
                    ContainerDockLocation xbcea506a33cf9111 = ContainerDockLocation.Right;
label_11:
                    control.MetaData.xfca44c52f41f0e26(xbcea506a33cf9111);
                    goto label_6;
label_15:
                    while (x8a5ce9fbef4b9a09.Attributes["LastFixedDockSituation"] != null)
                    {
                        control.MetaData.x0ba17c4cff658fcf((DockSituation)Enum.Parse(typeof(DockSituation), x8a5ce9fbef4b9a09.Attributes["LastFixedDockSituation"].Value));
                        if (true)
                        {
                            break;
                        }
                    }
                    if (x8a5ce9fbef4b9a09.Attributes["LastFixedDockLocation"] != null)
                    {
                        xbcea506a33cf9111 = (ContainerDockLocation)Enum.Parse(typeof(ContainerDockLocation), x8a5ce9fbef4b9a09.Attributes["LastFixedDockLocation"].Value);
                        if (!Enum.IsDefined(typeof(ContainerDockLocation), (object)xbcea506a33cf9111))
                        {
                            if (true)
                            {
                                goto label_10;
                            }
                            else
                            {
                                goto label_7;
                            }
                        }
                        else
                        {
                            goto label_11;
                        }
                    }
                    else
                    {
                        goto label_6;
                    }
label_19:
                    control.PopupSize = (int)converter2.ConvertFromString(x8a5ce9fbef4b9a09.Attributes["PopupSize"].Value);
label_20:
                    control.FloatingLocation = (System.Drawing.Point)converter4.ConvertFromString((ITypeDescriptorContext)null, CultureInfo.InvariantCulture, x8a5ce9fbef4b9a09.Attributes["FloatingLocation"].Value);
                    control.FloatingSize     = (System.Drawing.Size)converter3.ConvertFromString((ITypeDescriptorContext)null, CultureInfo.InvariantCulture, x8a5ce9fbef4b9a09.Attributes["FloatingSize"].Value);
                    if (x8a5ce9fbef4b9a09.Attributes["LastOpenDockSituation"] != null)
                    {
                        control.MetaData.xb0e0bc77d88737a8((DockSituation)Enum.Parse(typeof(DockSituation), x8a5ce9fbef4b9a09.Attributes["LastOpenDockSituation"].Value));
                        goto label_15;
                    }
                    else
                    {
                        goto label_15;
                    }
label_21:
                    if (x8a5ce9fbef4b9a09.Attributes["PopupSize"] == null)
                    {
                        goto label_20;
                    }
                    else
                    {
                        goto label_19;
                    }
label_24:
                    if (x8a5ce9fbef4b9a09.Attributes["DockedSize"] != null)
                    {
                        control.MetaData.x3ef4455ea4965093((int)converter2.ConvertFromString(x8a5ce9fbef4b9a09.Attributes["DockedSize"].Value));
                        goto label_21;
                    }
                    else
                    {
                        goto label_21;
                    }
label_26:
                    control.MetaData.x15481da58c59597a(DateTime.FromFileTime((long)converter1.ConvertFromString((ITypeDescriptorContext)null, CultureInfo.InvariantCulture, x8a5ce9fbef4b9a09.Attributes["LastFocused"].Value)));
                    if (true)
                    {
                        if (true)
                        {
                            if (true)
                            {
                                goto label_24;
                            }
                            else
                            {
                                goto label_21;
                            }
                        }
                        else
                        {
                            goto label_8;
                        }
                    }
                    else
                    {
                        goto label_3;
                    }
                }
                else
                {
                    goto label_31;
                }
            }while (false);
            return;

            label_31 :;
        }
예제 #8
0
 internal abstract bool xe302f2203dc14a18(ContainerDockLocation xb9c2cfae130d9256);
예제 #9
0
 internal abstract bool vmethod_3(ContainerDockLocation location);
예제 #10
0
 internal void method_2(SandDockManager sandDockManager_0, ContainerDockLocation containerDockLocation_0, ContainerDockEdge containerDockEdge_0)
 {
     DockControl[] dockControl_ = DockControls;
     int num = 0;
     if (dockControl_.Length > 0)
     {
         num = dockControl_[0].MetaData.DockedContentSize;
     }
     Rectangle rectangle = Class7.smethod_1(sandDockManager_0.DockSystemContainer);
     if (containerDockLocation_0 != ContainerDockLocation.Left)
     {
         if (containerDockLocation_0 != ContainerDockLocation.Right)
         {
             if (containerDockLocation_0 != ContainerDockLocation.Top && containerDockLocation_0 != ContainerDockLocation.Bottom)
             {
                 goto IL_7C;
             }
             num = Math.Min(num, Convert.ToInt32(rectangle.Height * 0.9));
             goto IL_7C;
         }
     }
     num = Math.Min(num, Convert.ToInt32(rectangle.Width * 0.9));
     IL_7C:
     if (!(this is ControlLayoutSystem))
     {
         Parent?.LayoutSystems.Remove(this);
     }
     else
     {
         LayoutUtilities.smethod_10((ControlLayoutSystem)this);
     }
     DockContainer dockContainer = sandDockManager_0.CreateNewDockContainer(containerDockLocation_0, containerDockEdge_0, num);
     if (!(dockContainer is DocumentContainer))
     {
         dockContainer.LayoutSystem.LayoutSystems.Add(this);
         return;
     }
     var controlLayoutSystem = dockContainer.CreateNewLayoutSystem(WorkingSize);
     dockContainer.LayoutSystem.LayoutSystems.Add(controlLayoutSystem);
     if (this is SplitLayoutSystem)
     {
         ((SplitLayoutSystem)this).MoveToLayoutSystem(controlLayoutSystem);
         return;
     }
     controlLayoutSystem.Controls.AddRange(DockControls);
 }
예제 #11
0
 internal void xfca44c52f41f0e26(ContainerDockLocation xbcea506a33cf9111)
 {
     this.xdcf3623df6a7e235 = xbcea506a33cf9111;
 }
예제 #12
0
		internal override bool vmethod_3(ContainerDockLocation location) => Controls.Cast<DockControl>().All(control => control.GetDockingRulesFrom(location));
예제 #13
0
        public void SetPositionMetaData(DockSituation dockSituation, ContainerDockLocation dockLocation)
        {
            if (DockSituation != DockSituation.None)
                throw new InvalidOperationException("This operation is only valid when the window is not currently open.");
            if (dockSituation == DockSituation.None)
                throw new ArgumentException("dockSituation");
            if (dockLocation == ContainerDockLocation.Center) throw new ArgumentException("dockLocation");
            MetaData.SaveOpenDockSituation(dockSituation);
            if (dockSituation == DockSituation.Document || dockSituation == DockSituation.Docked)
                MetaData.SaveFixedDockSituation(dockSituation);
            MetaData.SaveFixedDockSide(dockLocation);

        }
예제 #14
0
        public void OpenDocked(ContainerDockLocation dockLocation, WindowOpenMethod openMethod)
        {
            if (dockLocation == ContainerDockLocation.Center)
            {
                OpenDocument(openMethod);
                return;
            }
            EnsureDockSystemContainerNotNull();
            if (DockSituation == DockSituation.Docked && MetaData.LastFixedDockSide == dockLocation)
                return;

            Remove();
            MetaData.SaveFixedDockSide(dockLocation);
            MetaData.DockedState.Guid = Guid.Empty;
            MetaData.DockedState.Int32_0 = new int[0];
            OpenDocked(openMethod);
        }
예제 #15
0
 public void OpenDocked(ContainerDockLocation dockLocation)
 {
     if (dockLocation == MetaData.LastFixedDockSide)
         OpenDocked(WindowOpenMethod.OnScreenSelect);
     else
         OpenDocked(dockLocation, WindowOpenMethod.OnScreenSelect);
 }
예제 #16
0
 public bool method_5(ContainerDockLocation location)
 {
     return SourceControl?.GetDockingRulesFrom(location) ?? SourceControlSystem.vmethod_3(location);
 }
예제 #17
0
        internal void x810df8ef88cf4bf2(
            SandDockManager x91f347c6e97f1846,
            ContainerDockLocation x9c911703d455884e,
            ContainerDockEdge x3e4dcab61996c9ea)
        {
            DockControl[] x9476096be9672d38 = this.x9476096be9672d38;
            int           num = 0;

            if ((uint)num + (uint)num >= 0U)
            {
                goto label_21;
            }
label_10:
            ControlLayoutSystem newLayoutSystem;
            DockContainer newDockContainer;

            do
            {
                if (!(this is ControlLayoutSystem))
                {
                    if (this.Parent != null)
                    {
                        this.Parent.LayoutSystems.Remove(this);
                    }
                }
                else
                {
                    goto label_11;
                }
label_7:
                newDockContainer = x91f347c6e97f1846.CreateNewDockContainer(x9c911703d455884e, x3e4dcab61996c9ea, num);
                if (newDockContainer is DocumentContainer)
                {
                    newLayoutSystem = newDockContainer.CreateNewLayoutSystem(this.WorkingSize);
                    newDockContainer.LayoutSystem.LayoutSystems.Add((LayoutSystemBase)newLayoutSystem);
                    if (this is SplitLayoutSystem)
                    {
                        ((SplitLayoutSystem)this).MoveToLayoutSystem(newLayoutSystem);
                        continue;
                    }
                    goto label_2;
                }
                else
                {
                    goto label_3;
                }
label_11:
                if (true)
                {
                    LayoutUtilities.x4487f2f8917e3fd0((ControlLayoutSystem)this);
                    if (false)
                    {
                        goto label_7;
                    }
                    else
                    {
                        goto label_7;
                    }
                }
                else
                {
                    goto label_1;
                }
            }while ((uint)num > uint.MaxValue);
            goto label_15;
label_2:
            newLayoutSystem.Controls.AddRange(this.x9476096be9672d38);
            return;

label_3:
            newDockContainer.LayoutSystem.LayoutSystems.Add(this);
            return;

label_1:
            return;

label_15:
            if ((uint)num - (uint)num >= 0U)
            {
                ;
            }
            return;

label_21:
            if ((uint)num < 0U || x9476096be9672d38.Length > 0)
            {
                goto label_22;
            }
label_19:
            Rectangle rectangle;

            do
            {
                rectangle = xedb4922162c60d3d.x41c62f474d3fb367(x91f347c6e97f1846.DockSystemContainer);
                do
                {
                    switch (x9c911703d455884e)
                    {
                    case ContainerDockLocation.Left:
                        goto label_18;

                    case ContainerDockLocation.Right:
                        continue;

                    case ContainerDockLocation.Top:
                        goto label_14;

                    default:
                        goto label_13;
                    }
                }while (false);
label_18:
                num = Math.Min(num, Convert.ToInt32((double)rectangle.Width * 0.9));
            }while ((num & 0) != 0);
            goto label_10;
label_9:
            if (x9c911703d455884e == ContainerDockLocation.Bottom)
            {
                goto label_14;
            }
            else
            {
                goto label_10;
            }
label_13:
            if (true)
            {
                goto label_9;
            }
label_14:
            num = Math.Min(num, Convert.ToInt32((double)rectangle.Height * 0.9));
            if ((uint)num >= 0U)
            {
                goto label_10;
            }
            else
            {
                goto label_9;
            }
label_22:
            num = x9476096be9672d38[0].MetaData.DockedContentSize;
            goto label_19;
        }
예제 #18
0
 protected Rectangle method_7(ContainerDockLocation location, bool bool_2)
 {
     if (bool_2)
         return method_8(location, 30, true);
     var container = Manager.DockSystemContainer;
     var x = 0;
     var y = 0;
     var w = container.ClientRectangle.Width;
     var h = container.ClientRectangle.Height;
     switch (location)
     {
         case ContainerDockLocation.Left:
             return new Rectangle(x - 30, y, 30, h - y);
         case ContainerDockLocation.Right:
             return new Rectangle(w, y, 30, h - y);
         case ContainerDockLocation.Top:
             return new Rectangle(x, y - 30, w - x, 30);
         case ContainerDockLocation.Bottom:
             return new Rectangle(x, h, w - x, 30);
         default:
             return Rectangle.Empty;
     }
 }
예제 #19
0
		internal static DockStyle Convert(ContainerDockLocation location)
		{
			switch (location)
			{
			case ContainerDockLocation.Left:
				return DockStyle.Left;
			case ContainerDockLocation.Right:
				return DockStyle.Right;
			case ContainerDockLocation.Top:
				return DockStyle.Top;
			case ContainerDockLocation.Bottom:
				return DockStyle.Bottom;
			}
			return DockStyle.Fill;
		}
예제 #20
0
 protected Rectangle method_8(ContainerDockLocation location, int int_8, bool bool_2)
 {
     var rectangle = smethod_1(Manager.DockSystemContainer);
     Rectangle result = rectangle;
     if (!bool_2)
     {
         result = Manager.DockSystemContainer.ClientRectangle;
     }
     int val = int_8 + 4;
     switch (location)
     {
         case ContainerDockLocation.Left:
             return new Rectangle(result.Left, result.Top, Math.Min(val, Convert.ToInt32(rectangle.Width * 0.9)), result.Height);
         case ContainerDockLocation.Right:
             return new Rectangle(result.Right - Math.Min(val, Convert.ToInt32(rectangle.Width * 0.9)), result.Top, Math.Min(val, Convert.ToInt32(rectangle.Width * 0.9)), result.Height);
         case ContainerDockLocation.Top:
             return new Rectangle(result.Left, result.Top, result.Width, Math.Min(val, Convert.ToInt32(rectangle.Height * 0.9)));
         case ContainerDockLocation.Bottom:
             return new Rectangle(result.Left, result.Bottom - Math.Min(val, Convert.ToInt32(rectangle.Height * 0.9)), result.Width, Math.Min(val, Convert.ToInt32(rectangle.Height * 0.9)));
     }
     return result;
 }
예제 #21
0
		internal override bool vmethod_3(ContainerDockLocation location) => LayoutSystems.Cast<LayoutSystemBase>().All(layout => layout.vmethod_3(location));
예제 #22
0
 public void DockInNewContainer(ContainerDockLocation dockLocation, ContainerDockEdge edge)
 {
     method_10();
     Remove();
     var dockContainer = Manager.CreateNewDockContainer(dockLocation, edge, MetaData.DockedContentSize);
     var layoutSystem = dockContainer.CreateNewLayoutSystem(this, FloatingSize);
     dockContainer.LayoutSystem.LayoutSystems.Add(layoutSystem);
 }