Annotation of cleanflash/CleanFlashCommon/GradientButton.cs, revision 1.1

1.1     ! root        1: using System;
        !             2: using System.Drawing;
        !             3: using System.Drawing.Drawing2D;
        !             4: using System.Windows.Forms;
        !             5: 
        !             6: namespace CleanFlashCommon {
        !             7:     public class GradientButton : Button {
        !             8:         public Color Color1 { get; set; }
        !             9:         public Color Color2 { get; set; }
        !            10:         public double HoverAlpha { get; set; }
        !            11:         public double DisableAlpha { get; set; }
        !            12: 
        !            13:         private bool Hovered = false;
        !            14: 
        !            15:         public GradientButton() {
        !            16:             Color1 = Color.Black;
        !            17:             Color2 = Color.White;
        !            18:             HoverAlpha = 0.875;
        !            19:             DisableAlpha = 0.644;
        !            20:         }
        !            21: 
        !            22:         protected override void OnMouseDown(MouseEventArgs mevent) {
        !            23:             Hovered = false;
        !            24:             base.OnMouseDown(mevent);
        !            25:             Refresh();
        !            26:         }
        !            27: 
        !            28:         protected override void OnMouseUp(MouseEventArgs mevent) {
        !            29:             Hovered = true;
        !            30:             base.OnMouseUp(mevent);
        !            31:             Refresh();
        !            32:         }
        !            33: 
        !            34:         protected override void OnMouseEnter(EventArgs e) {
        !            35:             Hovered = true;
        !            36:             base.OnMouseEnter(e);
        !            37:             Refresh();
        !            38:         }
        !            39: 
        !            40:         protected override void OnMouseLeave(EventArgs e) {
        !            41:             Hovered = false;
        !            42:             base.OnMouseLeave(e);
        !            43:             Refresh();
        !            44:         }
        !            45: 
        !            46:         protected override void OnPaint(PaintEventArgs e) {
        !            47:             Color c1 = Color1;
        !            48:             Color c2 = Color2;
        !            49:             Color c3 = BackColor;
        !            50:             Color c4 = ForeColor;
        !            51: 
        !            52:             if (!Enabled) {
        !            53:                 c1 = Color.FromArgb(255, (int)(c1.R * DisableAlpha), (int)(c1.G * DisableAlpha), (int)(c1.B * DisableAlpha));
        !            54:                 c2 = Color.FromArgb(255, (int)(c2.R * DisableAlpha), (int)(c2.G * DisableAlpha), (int)(c2.B * DisableAlpha));
        !            55:                 c3 = Color.FromArgb(255, (int)(c3.R * DisableAlpha), (int)(c3.G * DisableAlpha), (int)(c3.B * DisableAlpha));
        !            56:                 c4 = Color.FromArgb(255, (int)(c4.R * DisableAlpha), (int)(c4.G * DisableAlpha), (int)(c4.B * DisableAlpha));
        !            57:             } else if (!Hovered) {
        !            58:                 c1 = Color.FromArgb(255, (int)(c1.R * HoverAlpha), (int)(c1.G * HoverAlpha), (int)(c1.B * HoverAlpha));
        !            59:                 c2 = Color.FromArgb(255, (int)(c2.R * HoverAlpha), (int)(c2.G * HoverAlpha), (int)(c2.B * HoverAlpha));
        !            60:             }
        !            61: 
        !            62:             SizeF size = e.Graphics.MeasureString(Text, Font);
        !            63: 
        !            64:             using (Brush brush = new LinearGradientBrush(ClientRectangle, c1, c2, 90.0F)) {
        !            65:                 e.Graphics.FillRectangle(brush, ClientRectangle);
        !            66:             }
        !            67: 
        !            68:             int thickness = 1;
        !            69:             int halfThickness = thickness / 2;
        !            70: 
        !            71:             using (Pen pen = new Pen(c3, thickness)) {
        !            72:                 e.Graphics.DrawRectangle(
        !            73:                     pen, new Rectangle(
        !            74:                         halfThickness, halfThickness,
        !            75:                         ClientRectangle.Width - thickness, ClientRectangle.Height - thickness
        !            76:                     )
        !            77:                 );
        !            78:             }
        !            79: 
        !            80:             Point point = new Point(
        !            81:                 (ClientRectangle.Width - (int)size.Width) / 2,
        !            82:                 (ClientRectangle.Height - (int)size.Height) / 2
        !            83:             );
        !            84: 
        !            85:             using (Brush brush = new SolidBrush(c4)) {
        !            86:                 e.Graphics.DrawString(Text, Font, new SolidBrush(c3), new Point(point.X + 1, point.Y + 1));
        !            87:                 e.Graphics.DrawString(Text, Font, brush, point);
        !            88:             }
        !            89:         }
        !            90:     }
        !            91: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.