public InspectorTab(Context context, string title, Vector2?initialSize = null, string placeNextToDock = null,
                            DockSlot slot = DockSlot.SlotNone) : base(context, title, initialSize, placeNextToDock, slot)
        {
            _inspector = new AttributeInspector(Context);

            SubscribeToEvent <InspectItem>(OnInspect);
        }
        public SceneTab(Context context, string title, Vector2?initialSize = null, string placeNextToDock = null,
                        DockSlot slot = DockSlot.SlotNone) : base(context, title, initialSize, placeNextToDock, slot)
        {
            _iconCache  = GetSubsystem <IconCache>();
            WindowFlags = WindowFlags.NoScrollbar;
            _view       = new SceneView(Context);
            _gizmo      = new Gizmo(Context);
            _view.Scene.LoadXml(Cache.GetResource <XMLFile>("Scenes/SceneLoadExample.xml").GetRoot());
            CreateObjects();

            SubscribeToEvent <Update>(OnUpdate);
            SubscribeToEvent <PostUpdate>(args => RenderNodeContextMenu());
            SubscribeToEvent <GizmoSelectionChanged>(args => { _selectedComponent = null; });

            _eventArgs.Clear();
            _eventArgs[InspectHierarchy.HierarchyProvider] = Variant.FromObject(this);
            SendEvent <InspectHierarchy>(_eventArgs);
        }
示例#3
0
 public bool dock(Dock dock, DockSlot dockSlot, float size = 0, bool active = false)
 {
     return(dockWith(dock, null, dockSlot, size, active));
 }
示例#4
0
        public bool dockWith(Dock dock, Dock dockTo, DockSlot dockSlot, float size = 0, bool active = false)
        {
            if (dock == null)
            {
                return(false);
            }

            Container currentContainer = m_container;

            if (dockTo != null)
            {
                if (dockSlot == DockSlot.Tab)
                {
                    dockTo.container.activeDock = active ? dock : currentContainer.splits[0].activeDock != null ? currentContainer.splits[0].activeDock : dock;
                    dockTo.container.docks.Add(dock);
                    dock.container = dockTo.container;
                    return(true);
                }
                else
                {
                    m_containers.Add(new Container {
                    });
                    var newContainer = m_containers[m_containers.Count - 1];
                    newContainer.parent    = dockTo.container.parent;
                    newContainer.splits[0] = dockTo.container;
                    newContainer.size      = dockTo.container.size;
                    //if (size)
                    //	newContainer.alwaysAutoResize = false;
                    dockTo.container.size = 0;
                    if (dockTo.container.parent.splits[0] == dockTo.container)
                    {
                        dockTo.container.parent.splits[0] = newContainer;
                    }
                    else
                    {
                        dockTo.container.parent.splits[1] = newContainer;
                    }
                    //dockTo.container.parent = newContainer;
                    dockTo.container        = newContainer.splits[0];
                    dockTo.container.parent = newContainer;
                    currentContainer        = newContainer;
                }
            }

            Container childContainer = null;

            if (currentContainer.splits[0] == null || currentContainer.splits[1] == null)
            {
                m_containers.Add(new Container {
                });
                childContainer = m_containers[m_containers.Count - 1];
            }
            ;

            if (currentContainer.splits[0] == null)
            {
                currentContainer.splits[0]            = childContainer;
                currentContainer.splits[0].activeDock = active ? dock : currentContainer.splits[0].activeDock != null ? currentContainer.splits[0].activeDock : dock;
                currentContainer.splits[0].docks.Add(dock);
                currentContainer.splits[0].parent = currentContainer;
                currentContainer.splits[0].size   = size < 0 ? size * -1 : size;
                dock.container        = currentContainer.splits[0];
                dock.container.parent = currentContainer;
            }
            else if (currentContainer.splits[1] == null)
            {
                currentContainer.splits[1] = childContainer;
                Container otherSplit = currentContainer.splits[0];
                if (size > 0)
                {
                    currentContainer.splits[0].alwaysAutoResize = true;
                    currentContainer.splits[0].size             = 0;
                    currentContainer.splits[1].size             = size;
                    currentContainer.splits[1].alwaysAutoResize = false;
                }
                else if (size == 0)
                {
                }
                else
                {
                    currentContainer.splits[0].alwaysAutoResize = false;
                    currentContainer.splits[0].size             = size * -1;
                    currentContainer.splits[1].size             = 0;
                    currentContainer.splits[1].alwaysAutoResize = true;
                }
                switch (dockSlot)
                {
                case DockSlot.Left:
                    currentContainer.splits[1]     = currentContainer.splits[0];
                    currentContainer.splits[0]     = childContainer;
                    currentContainer.verticalSplit = true;
                    break;

                case DockSlot.Right:
                    currentContainer.verticalSplit = true;
                    break;

                case DockSlot.Top:
                    currentContainer.splits[1]     = currentContainer.splits[0];
                    currentContainer.splits[0]     = childContainer;
                    currentContainer.verticalSplit = false;
                    break;

                case DockSlot.Bottom:
                    currentContainer.verticalSplit = false;
                    break;

                case DockSlot.Tab:
                    currentContainer.verticalSplit = false;
                    break;

                case DockSlot.None:
                    break;

                default:
                    break;
                }
                childContainer.activeDock = active ? dock : childContainer.activeDock != null ? childContainer.activeDock : dock;
                childContainer.docks.Add(dock);
                childContainer.parent = currentContainer;

                //	if (childContainer.parent != null && currentContainer.verticalSplit != childContainer.parent.verticalSplit)
                //		currentContainer.size = otherSplit.size != 0 ? otherSplit.size + otherSplit.size : otherSplit.size;

                dock.container = childContainer;
            }
            else
            {
                return(false);
            }

            return(true);
        }
示例#5
0
 public HierarchyTab(Context context, string title, Vector2?initialSize = null, string placeNextToDock = null,
                     DockSlot slot = DockSlot.SlotNone) : base(context, title, initialSize, placeNextToDock, slot)
 {
     SubscribeToEvent <InspectHierarchy>(OnInspect);
 }
 public ConsoleTab(Context context, string title, Vector2?initialSize = null, string placeNextToDock = null,
                   DockSlot slot = DockSlot.SlotNone) : base(context, title, initialSize, placeNextToDock, slot)
 {
     _console = Engine.CreateConsole();
     _console.IsAutoVisibleOnError = false;
 }
 public ResourcesTab(Context context, string title, Vector2?initialSize = null, string placeNextToDock = null,
                     DockSlot slot = DockSlot.SlotNone) : base(context, title, initialSize, placeNextToDock, slot)
 {
 }