예제 #1
0
        public override int GetButtonWidth(DockLayout dockLayout, AppearanceObject appearance, bool isHorizontal)
        {
            int      result = 0;
            Graphics g      = Painter.AddGraphics(null);

            if (dockLayout.Tabbed)
            {
                try
                {
                    int imageSize     = (isHorizontal ? GetImageSize(dockLayout).Width : GetImageSize(dockLayout).Height);
                    int defImageSize  = (isHorizontal ? GetDefaultImageSize(dockLayout).Width : GetDefaultImageSize(dockLayout).Height);
                    int imageInterval = (imageSize > 0 ? HideBarHorzInterval : 0);
                    for (int i = 0; i < dockLayout.Count; i++)
                    {
                        if (dockLayout[i].Visibility == DockVisibility.Visible)
                        {
                            layout = dockLayout[i];
                            int width = GetTabButtonWidth(dockLayout[i]);
                            result += width + TabButtonsInterval;
                        }
                    }
                }
                finally
                {
                    Painter.ReleaseGraphics();
                }
            }
            else
            {
                return(base.GetButtonWidth(dockLayout, appearance, isHorizontal));
            }
            return(result);
        }
예제 #2
0
        protected int GetTabButtonWidth(DockLayout layout)
        {
            AppearanceObject appearance = layout.DockManager.ActivePanel == layout.Panel ? layout.ActiveTabAppearance : layout.TabsAppearance;
            Graphics         g          = Painter.AddGraphics(null);
            int imageSize     = (layout.IsHorizontal ? GetImageSize(layout).Width : GetImageSize(layout).Height);
            int defImageSize  = (layout.IsHorizontal ? GetDefaultImageSize(layout).Width : GetDefaultImageSize(layout).Height);
            int imageInterval = (imageSize > 0 ? HideBarHorzInterval : 0);
            int width         = Math.Max(DockElementsPainter.CalcTextSize(g, appearance, layout.TabText).Width + imageSize + imageInterval, defImageSize) + 10;

            Painter.ReleaseGraphics();
            return(width);
        }