コード例 #1
0
        protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e)
        {
            // set the font before calculating the size because bold text is being cut off in Linux.
            TabStripButton btn = e.Item as TabStripButton;

            if ((btn != null) && btn.Checked)
            {
                e.TextFont = btn.SelectedFont;
            }

            e.SizeTextRectangleToText();

            // adjust the text position up for Linux
            var rect = e.TextRectangle;

            if (SIL.PlatformUtilities.Platform.IsLinux)
            {
                rect.Offset(0, -2);
            }
            else
            {
                rect.Offset(0, 8);                 // hatton for bloom lower is better
            }
            if (btn != null)
            {
                var delta = ((Mirrored) ? -1 : 1) * ((btn.Checked) ? 1 : selOffset);
                if (e.ToolStrip.Orientation == Orientation.Horizontal)
                {
                    rect.Offset((Mirrored) ? 2 : 1, delta + ((Mirrored) ? 1 : -1));
                }
                else
                {
                    rect.Offset(delta + 2, 0);
                }

                if (btn.Selected)
                {
                    e.TextColor = btn.HotTextColor;
                }
                else if (btn.Checked)
                {
                    e.TextColor = btn.SelectedTextColor;
                }
                else
                {
                    e.TextColor = Palette.LightTextAgainstDarkBackground;
                }
            }

            e.TextRectangle = rect;

            if (_currentRenderer != null)
            {
                _currentRenderer.DrawItemText(e);
            }
            else
            {
                base.OnRenderItemText(e);
            }
        }
コード例 #2
0
        protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e)
        {
            Rectangle      rc  = e.TextRectangle;
            TabStripButton btn = e.Item as TabStripButton;

            Color c = e.TextColor;
            Font  f = e.TextFont;

            rc.Offset(0, 6);            //hatton for bloom lower is better

            if (btn != null)
            {
                int delta = ((Mirrored) ? -1 : 1) * ((btn.Checked) ? 1 : selOffset);
                if (e.ToolStrip.Orientation == Orientation.Horizontal)
                {
                    rc.Offset((Mirrored) ? 2 : 1, delta + ((Mirrored) ? 1 : -1));
                }
                else
                {
                    rc.Offset(delta + 2, 0);
                }
                if (btn.Selected)
                {
                    c = btn.HotTextColor;
                }
                else if (btn.Checked)
                {
                    c = btn.SelectedTextColor;
                }
                if (btn.Checked)
                {
                    f = btn.SelectedFont;
                }
            }
            ToolStripItemTextRenderEventArgs x =
                new ToolStripItemTextRenderEventArgs(e.Graphics, e.Item, e.Text, rc, c, f, e.TextFormat);

            x.TextDirection = e.TextDirection;
            if (_currentRenderer != null)
            {
                _currentRenderer.DrawItemText(x);
            }
            else
            {
                base.OnRenderItemText(x);
            }
        }
コード例 #3
0
 protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e)
 {
     ActualRenderer.DrawItemText(e);
 }
コード例 #4
0
        protected override void OnPaint(PaintEventArgs e)
        {
            if (Owner == null)
            {
                return;
            }
            ToolStripRenderer renderer = ToolStripManager.Renderer;

            if (PlatformCompat.Runtime.UseToolStripRenderHack)
            {
                var oldHeight = Height;
                var oldParent = Parent;
                Parent = null;
                Height = Height / 2;
                e.Graphics.TranslateTransform(0, currentButton == 1 ? Height : 0);
                renderer.DrawButtonBackground(new ToolStripItemRenderEventArgs(e.Graphics, this));
                e.Graphics.TranslateTransform(0, currentButton == 1 ? -Height : 0);
                Height = oldHeight;
                Parent = oldParent;
            }
            else
            {
                if (currentButton == 0)
                {
                    e.Graphics.DrawRectangle(new Pen(Color.Black), 0, 0, Width - 1, Height / 2 - 1);
                }
                if (currentButton == 1)
                {
                    e.Graphics.DrawRectangle(new Pen(Color.Black), 0, Height / 2, Width - 1, Height / 2 - 1);
                }
            }

            bool wrap      = false;
            int  textWidth = Math.Max(MeasureTextWidth(FirstText, ref wrap), MeasureTextWidth(SecondText, ref wrap));
            var  flags     = TextFormatFlags.Left | TextFormatFlags.VerticalCenter;

            if (wrap)
            {
                flags |= TextFormatFlags.WordBreak;
            }

            if (FirstImage != null && FirstText != null)
            {
                if (Enabled)
                {
                    e.Graphics.DrawImage(FirstImage, new Point(Padding.Left, Height / 4 - FirstImage.Height / 2));
                }
                else
                {
                    ControlPaint.DrawImageDisabled(e.Graphics, FirstImage, Padding.Left, Height / 4 - FirstImage.Height / 2, Color.Transparent);
                }

                var textRectangle = new Rectangle(Padding.Left + FirstImage.Width, 0, textWidth, Height / 2);
                renderer.DrawItemText(new ToolStripItemTextRenderEventArgs(e.Graphics, this, FirstText, textRectangle, ForeColor, Font, flags));
            }

            if (SecondImage != null && SecondText != null)
            {
                if (Enabled)
                {
                    e.Graphics.DrawImage(SecondImage, new Point(Padding.Left, Height * 3 / 4 - SecondImage.Height / 2));
                }
                else
                {
                    ControlPaint.DrawImageDisabled(e.Graphics, SecondImage, Padding.Left, Height * 3 / 4 - SecondImage.Height / 2, Color.Transparent);
                }

                var textRectangle = new Rectangle(Padding.Left + SecondImage.Width, Height / 2, textWidth, Height / 2);
                renderer.DrawItemText(new ToolStripItemTextRenderEventArgs(e.Graphics, this, SecondText, textRectangle, ForeColor, Font, flags));
            }

            Image = null;
        }