Example #1
0
        void LayoutWidgets()
        {
            if (!needsRelayout)
            {
                return;
            }
            needsRelayout = false;

            // Create the needed notebooks and place the widgets in there

            List <DockGroup> tabbedGroups = new List <DockGroup> ();

            GetTabbedGroups(layout, tabbedGroups);

            for (int n = 0; n < tabbedGroups.Count; n++)
            {
                DockGroup grp = tabbedGroups [n];
                TabStrip  ts;
                if (n < notebooks.Count)
                {
                    ts = notebooks [n];
                }
                else
                {
                    ts = new TabStrip(frame);
                    ts.Show();
                    notebooks.Add(ts);
                    ts.Parent = this;
                }
                grp.UpdateNotebook(ts);
            }

            // Remove spare tab strips
            for (int n = notebooks.Count - 1; n >= tabbedGroups.Count; n--)
            {
                TabStrip ts = notebooks [n];
                notebooks.RemoveAt(n);
                ts.Clear();
                ts.Unparent();
                ts.Destroy();
            }

            // Add widgets to the container

            layout.LayoutWidgets();
            NotifySeparatorsChanged();
        }