Mega Code Archive

 
Categories / C# / 2D Graphics
 

Known Colors

/* Professional Windows GUI Programming Using C# by Jay Glynn, Csaba Torok, Richard Conway, Wahid Choudhury,     Zach Greenvoss, Shripad Kulkarni, Neil Whitlow Publisher: Peer Information ISBN: 1861007663 */ using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; namespace KnownColors {     /// <summary>     /// Summary description for KnownColors.     /// </summary>     public class KnownColors : System.Windows.Forms.Form     {         private System.Windows.Forms.ComboBox comboBox1;         /// <summary>         /// Required designer variable.         /// </summary>         private System.ComponentModel.Container components = null;         ArrayList cAL;         ArrayList cNAL;         public KnownColors()         {             //             // Required for Windows Form Designer support             //             InitializeComponent();                          this.Text = "Known non-system colors";                          cAL = new ArrayList();      // colors             cNAL = new ArrayList();      // strings             NonSystemColors(cAL, cNAL);             this.comboBox1.Sorted = true;             this.comboBox1.DataSource = cNAL; //set the combo's data source             //             // TODO: Add any constructor code after InitializeComponent call             //         }         /// <summary>         /// Clean up any resources being used.         /// </summary>         protected override void Dispose( bool disposing )         {             if( disposing )             {                 if (components != null)                  {                     components.Dispose();                 }             }             base.Dispose( disposing );         }         #region Windows Form Designer generated code         /// <summary>         /// Required method for Designer support - do not modify         /// the contents of this method with the code editor.         /// </summary>         private void InitializeComponent()         {             this.comboBox1 = new System.Windows.Forms.ComboBox();             this.SuspendLayout();             //              // comboBox1             //              this.comboBox1.Location = new System.Drawing.Point(8, 8);             this.comboBox1.Name = "comboBox1";             this.comboBox1.Size = new System.Drawing.Size(121, 21);             this.comboBox1.TabIndex = 0;             this.comboBox1.Text = "comboBox1";             //              // KnownColors             //              this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);             this.ClientSize = new System.Drawing.Size(292, 266);             this.Controls.AddRange(new System.Windows.Forms.Control[] {                                                                           this.comboBox1});             this.Name = "KnownColors";             this.Text = "KnownColors";             this.ResumeLayout(false);         }         #endregion         /// <summary>         /// The main entry point for the application.         /// </summary>         [STAThread]         static void Main()          {             Application.Run(new KnownColors());         }         private void NonSystemColors(ArrayList cAL, ArrayList cNAL)         {             Array cA = Enum.GetValues(typeof(KnownColor));             foreach(KnownColor knwnC in cA)  // cX.Length = 167             {                 Color curC = Color.FromKnownColor(knwnC);                  if(!curC.IsSystemColor)                  {                     cAL.Add(curC);                     cNAL.Add(curC.Name.ToString());                 }             }         }         protected override void OnPaint(PaintEventArgs pea)         {             Graphics g = pea.Graphics;             int wi = 70, hi = 12, rectNb = 8;              int cALNb = cAL.Count;             this.Width = (wi +2)*rectNb + 9;             int y = (int)(cALNb / rectNb);             this.Height = y*(2 + hi) + 60;             DisplayKnownColors(g, cALNb, wi, hi, rectNb);             g.Dispose();         }         private void DisplayKnownColors(Graphics g, int cALNb, int wi, int hi, int rectNb)         {             Rectangle rec;             Pen p = new Pen(this.ForeColor);             Brush b;             StringFormat strfmt = new StringFormat();             strfmt.LineAlignment = strfmt.Alignment = StringAlignment.Near;             int x, y;             for (int i = 0; i < cALNb; i++)             {                 x = (int)(i % rectNb);                 y = (int)(i / rectNb);                 rec = new Rectangle(1 + x*(2 + wi), 1 + y*(2 + hi), wi, hi);                 g.DrawRectangle(p, rec);                 b  = new SolidBrush((Color)cAL[i]);                 g.FillRectangle(b, rec);                 b  = new SolidBrush(Color.Black);                 g.DrawString((string)cNAL[i], this.Font, b, rec, strfmt);             }             x = (int)(cALNb % rectNb);             y = (int)(cALNb / rectNb);             this.comboBox1.Location = new Point(x*(wi + 2) + 2, y*(2 + hi) + 2);         }     } }