示例#1
0
        public void DrawTitleImage(Graphics g, Rectangle rect, StiCloudTabulatorPage page)
        {
            var imageRect = GetTitleImageRectangle(rect, page);

            if (!imageRect.IsEmpty)
            {
                if (page.Image != null)
                {
                    g.DrawImage(page.Image, imageRect.X, imageRect.Y, imageRect.Width, imageRect.Height);
                }
            }
        }
示例#2
0
        public Rectangle GetTitleTextRectangle(Rectangle rect, StiCloudTabulatorPage page)
        {
            Rectangle imageRect = GetTitleImageRectangle(rect, page);

            if (imageRect.IsEmpty)
            {
                return(rect);
            }
            rect.Y      += imageRect.Height + 4;
            rect.Height -= imageRect.Height;

            return(rect);
        }
示例#3
0
        public void DrawTitleText(Graphics g, Rectangle rect, StiCloudTabulatorPage page)
        {
            Rectangle textRect = GetTitleTextRectangle(rect, page);

            var stringFormat = new StringFormat
            {
                HotkeyPrefix  = System.Drawing.Text.HotkeyPrefix.Show,
                LineAlignment = StringAlignment.Center,
                Alignment     = StringAlignment.Center,
                Trimming      = StringTrimming.EllipsisCharacter
            };

            g.DrawString(page.Text, tabulator.Font, SystemBrushes.ControlText, textRect, stringFormat);
        }
示例#4
0
        public Size MeasureTitle(Graphics g, StiCloudTabulatorPage page)
        {
            Size titleSize = MeasureWrappedString(g, tabulator.Font, page.Text, 95);//Артем: статическая ширина заголовков

            titleSize.Width  += 6;
            titleSize.Height += 6;

            Rectangle imageRect = GetTitleImageRectangle(Rectangle.Empty, page);

            titleSize.Width   = Math.Max(titleSize.Width, imageRect.Width + 6);
            titleSize.Height += imageRect.Height + 6;

            return(titleSize);
        }
        private void DrawPageTitle(Graphics g, StiCloudTabulatorPage page)
        {
            var rect = new Rectangle(page.TitleRect.X, page.TitleRect.Y, page.TitleRect.Width, page.TitleRect.Height);

            if (this.ShowVerticalScroll)
            {
                rect.Y -= this.VScrollBar.Value;
            }

            if (rect.Width != 0 && rect.Height != 0)
            {
                var contentRect = new Rectangle(rect.X, rect.Y + 3, rect.Width, rect.Height);

                if (page != SelectedTab)
                {
                    if (page == this.MouseOverPage)
                    {
                        using (var br = new SolidBrush(StiStyleOffice2013Blue.ColorButtonButtonMouseOver))
                        {
                            g.FillRectangle(br, contentRect);
                        }
                    }
                    else
                    {
                        using (var br = new SolidBrush(Color.White))
                        {
                            g.FillRectangle(br, contentRect);
                        }
                    }
                }
                else
                {
                    using (var br = new SolidBrush(StiStyleOffice2013Blue.ColorButtonChecked))
                    {
                        g.FillRectangle(br, contentRect);
                    }
                }

                this.Mode.DrawTitleText(g, rect, page);
                this.Mode.DrawTitleImage(g, rect, page);
            }
        }
示例#6
0
        public Rectangle GetTitleImageRectangle(Rectangle rect, StiCloudTabulatorPage page)
        {
            SizeF imageSize = SizeF.Empty;

            if (page.Image != null)
            {
                imageSize = page.Image.Size;

                int width = 4;
                if (rect.Width > 0)
                {
                    width = ((int)((rect.Width - imageSize.Width) / 2));
                }

                return(new Rectangle(rect.X + width,
                                     rect.Y + 10,
                                     (int)imageSize.Width, (int)imageSize.Height));
            }
            return(Rectangle.Empty);
        }
        protected override void OnMouseMove(MouseEventArgs e)
        {
            base.OnMouseMove(e);

            var pos = Parent.PointToClient(Cursor.Position);

            for (int index = 0; index < this.Controls.Count; index++)
            {
                var page = this.Controls[index] as StiCloudTabulatorPage;
                if (page == null || page.Invisible)
                {
                    continue;
                }

                var rect = new Rectangle(page.TitleRect.X, page.TitleRect.Y, page.TitleRect.Width, page.TitleRect.Height);
                if (this.ShowVerticalScroll)
                {
                    rect.Y -= this.VScrollBar.Value;
                }

                if (rect.Contains(pos))
                {
                    if (MouseOverPage != page)
                    {
                        MouseOverPage = page;
                        Invalidate();
                    }
                    return;
                }
            }

            if (MouseOverPage != null)
            {
                MouseOverPage = null;
                Invalidate();
            }
        }