Example #1
0
        public void OpenFloating(WindowOpenMethod openMethod)
        {
            EnsureDockSystemContainerNotNull();
            method_8();
            if (DockSituation == DockSituation.Floating)
                return;

            Rectangle rectangle_ = method_11();
            Remove();
            ControlLayoutSystem controlLayoutSystem = LayoutUtilities.smethod_4(Manager, DockSituation.Floating, MetaData.FloatingState);
            if (controlLayoutSystem != null)
            {
                controlLayoutSystem.Controls.Insert(Math.Min(MetaData.FloatingState.Int32_1, controlLayoutSystem.Controls.Count), this);
                if (openMethod != WindowOpenMethod.OnScreen)
                {
                    method_12(openMethod == WindowOpenMethod.OnScreenActivate);
                }
                return;
            }
            FloatingContainer @class = Manager.FindFloatingDockContainer(MetaData.LastFloatingWindowGuid);
            if (@class != null)
            {
                Struct0 @struct = LayoutUtilities.smethod_15(@class, MetaData.FloatingState.Int32_0);
                controlLayoutSystem = @struct.SplitLayout.DockContainer.CreateNewLayoutSystem(this, MetaData.FloatingState.Size);
                if (MetaData.FloatingState.Guid == Guid.Empty)
                {
                    MetaData.FloatingState.Guid = Guid.NewGuid();
                }
                controlLayoutSystem.Guid = MetaData.FloatingState.Guid;
                @struct.SplitLayout.LayoutSystems.Insert(@struct.Index, controlLayoutSystem);
                return;
            }
            if (MetaData.LastFloatingWindowGuid == Guid.Empty)
            {
                MetaData.SaveFloatingWindowGuid(Guid.NewGuid());
            }
            @class = new FloatingContainer(Manager, MetaData.LastFloatingWindowGuid);
            controlLayoutSystem = @class.CreateNewLayoutSystem(this, MetaData.FloatingState.Size);
            if (MetaData.FloatingState.Guid == Guid.Empty)
            {
                MetaData.FloatingState.Guid = Guid.NewGuid();
            }
            controlLayoutSystem.Guid = MetaData.FloatingState.Guid;
            @class.LayoutSystem.LayoutSystems.Add(controlLayoutSystem);
            @class.method_19(rectangle_, true, openMethod == WindowOpenMethod.OnScreenActivate);
        }