Exemple #1
0
        public override void Update()
        {
            if (opened)
            {
                if (Manager.IsDockMode())
                {
                    if (IsInitialized < 0)
                    {
                        IsInitialized++;
                    }

                    if (ResetSize)
                    {
                        Manager.NativeManager.SetNextWindowSize(InitialDockSize.X, InitialDockSize.Y, swig.Cond.Appearing);
                        ResetSize = false;
                    }

                    swig.WindowFlags flags = swig.WindowFlags.None;

                    if (NoScrollBar)
                    {
                        flags = swig.WindowFlags.NoScrollbar;
                    }

                    if (NoPadding)
                    {
                        Manager.NativeManager.PushStyleVar(swig.ImGuiStyleVarFlags.WindowPadding, new swig.Vec2(0.0f, 0.0f));
                    }

                    bool dockEnabled = Manager.NativeManager.BeginDock(
                        Label, TabLabel, ref opened, Visibled && !NoCloseButton, flags);

                    Visibled = Manager.NativeManager.IsDockVisibled();
                    Windowed = Manager.NativeManager.IsDockWindowed();

                    if (NoPadding)
                    {
                        Manager.NativeManager.PopStyleVar();
                    }

                    if (dockEnabled)
                    {
                        UpdateInternal();

                        Controls.Lock();

                        foreach (var c in Controls.Internal)
                        {
                            c.Update();
                        }

                        Controls.Unlock();
                    }

                    Manager.NativeManager.EndDock();
                }
                else
                {
                    if (Manager.NativeManager.Begin(Label, ref opened))
                    {
                        UpdateInternal();


                        Controls.Lock();

                        foreach (var c in Controls.Internal)
                        {
                            c.Update();
                        }

                        Controls.Unlock();
                    }

                    Manager.NativeManager.End();
                }
            }
            else
            {
                ShouldBeRemoved = true;
            }
        }
Exemple #2
0
        public override void Update()
        {
            if (opened)
            {
                if (Manager.IsDockMode())
                {
                    if (IsInitialized < 0)
                    {
                        Manager.NativeManager.SetNextDock(InitialDockSlot);
                        Manager.NativeManager.SetNextDockRate(InitialDockRate);
                        if (InitialDockReset)
                        {
                            Manager.NativeManager.ResetNextParentDock();
                        }

                        IsInitialized++;
                    }

                    if (Icon != null)
                    {
                        Manager.NativeManager.SetNextDockIcon(Icon, IconSize);
                    }

                    if (!String.IsNullOrEmpty(TabToolTip))
                    {
                        Manager.NativeManager.SetNextDockTabToolTip(TabToolTip);
                    }


                    swig.WindowFlags flags = swig.WindowFlags.None;

                    if (NoScrollBar)
                    {
                        flags = swig.WindowFlags.NoScrollbar;
                    }

                    if (NoPadding)
                    {
                        Manager.NativeManager.PushStyleVar(swig.ImGuiStyleVarFlags.WindowPadding, new swig.Vec2(0.0f, 0.0f));
                    }

                    bool dockEnabled = Manager.NativeManager.BeginDock(Label, ref opened, flags, InitialDockSize);

                    if (NoPadding)
                    {
                        Manager.NativeManager.PopStyleVar();
                    }

                    if (dockEnabled)
                    {
                        UpdateInternal();

                        Controls.Lock();

                        foreach (var c in Controls.Internal)
                        {
                            c.Update();
                        }

                        Controls.Unlock();
                    }

                    if (InitialDockActive > 0)
                    {
                        Manager.NativeManager.SetDockActive();
                        InitialDockActive--;
                    }

                    Manager.NativeManager.EndDock();
                }
                else
                {
                    if (Manager.NativeManager.Begin(Label, ref opened))
                    {
                        UpdateInternal();


                        Controls.Lock();

                        foreach (var c in Controls.Internal)
                        {
                            c.Update();
                        }

                        Controls.Unlock();
                    }

                    Manager.NativeManager.End();
                }
            }
            else
            {
                ShouldBeRemoved = true;
            }
        }