// // Copyright © 2006-2010, Intel Corporation. All rights reserved. // //File: AMT_CheckedButton.cs // // Contents: Defintion of logic of button (GUI componet) // using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Text; using System.Windows.Forms; using System.Drawing; namespace AMT_SW_GUI { public partial class AMT_CheckedButton : Button { private bool _checked =false; bool enabled = true; //bool wide = false; public AMT_CheckedButton() { InitializeComponent(); } public AMT_CheckedButton(IContainer container) { container.Add(this); InitializeComponent(); AMT_CheckedButton_EnabledChanged(null, null); } protected override void OnTextChanged(EventArgs e) { base.OnTextChanged(e); AMT_CheckedButton_MouseLeave(null, null); } private void AMT_CheckedButton_EnabledChanged(object sender, EventArgs e) { if (this.Enabled) AMT_CheckedButton_MouseLeave(sender, e); else this.BackgroundImage = Properties.Resources.large_disabled24; if (this.Enabled) this.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(59)))), ((int)(((byte)(108))))); else this.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(158)))), ((int)(((byte)(158)))), ((int)(((byte)(158))))); } protected override bool ShowFocusCues { get { return false; } } public new bool Enabled { get { return enabled; } set { base.Enabled = true; bool difference = (enabled != value); enabled = value; if (difference) AMT_CheckedButton_EnabledChanged(null, null); } } /////// This feature can cause the button to dynamically become a wide button. ////[Description("This feature can cause the button to dynamically become a wide button. Important for localization")] ////public bool CanBeWide ////{ //// get { return wide; } //// set { wide = value; if (wide) this.BackgroundImage = Properties.Resources.W_thin_normal; } ////} protected override void OnClick(EventArgs e) { if (Enabled) base.OnClick(e); } private void AMT_CheckedButton_Enter(object sender, EventArgs e) { if (this.Enabled) { if (Checked) this.BackgroundImage = Properties.Resources.checked_btn_focused; else this.BackgroundImage = Properties.Resources.large_focus_normal24; } } private void AMT_CheckedButton_Leave(object sender, EventArgs e) { if (this.Enabled) { if (Checked) this.BackgroundImage = Properties.Resources.checked_btn; else this.BackgroundImage = Properties.Resources.large_normal24; } } private void AMT_CheckedButton_TextChanged(object sender, EventArgs e) { AMT_CheckedButton_EnabledChanged(null, null); } public bool Checked { get{return _checked;} set{ if(value!= _checked){ _checked = value; AMT_CheckedButton_MouseLeave(null, null); this.Refresh(); } } } private void AMT_CheckedButton_MouseDown(object sender, MouseEventArgs e) { if (this.Enabled) { if (Checked) { this.BackgroundImage = Properties.Resources.checked_btn_pressed; } else { this.BackgroundImage = Properties.Resources.large_pressed24; } } } private void AMT_CheckedButton_MouseUp(object sender, MouseEventArgs e) { if (this.Enabled) { if (this.Focused) { if (Checked) this.BackgroundImage = Properties.Resources.checked_btn_focused; else this.BackgroundImage = Properties.Resources.large_focus_normal24; } else { if (Checked) this.BackgroundImage = Properties.Resources.checked_btn; else this.BackgroundImage = Properties.Resources.large_normal24; } } } private void AMT_CheckedButton_MouseLeave(object sender, EventArgs e) { if (this.Enabled) { if (this.Focused) if (Checked) this.BackgroundImage = Properties.Resources.checked_btn_focused; else this.BackgroundImage = Properties.Resources.large_focus_normal24; else if (Checked) this.BackgroundImage = Properties.Resources.checked_btn; else this.BackgroundImage = Properties.Resources.large_normal24; } } private void AMT_CheckedButton_MouseEnter(object sender, EventArgs e) { if (this.Enabled) { if (this.Focused) if (Checked) this.BackgroundImage = Properties.Resources.checked_btn_focused_hover; else this.BackgroundImage = Properties.Resources.large_focus_normal24; else if (Checked) this.BackgroundImage = Properties.Resources.checked_btn_hover; else this.BackgroundImage = Properties.Resources.large_over24; } } protected override void OnHelpRequested(HelpEventArgs hevent) { if (this.Enabled == true) { base.OnHelpRequested(hevent); } } protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); if (!this.Text.EndsWith(" ")) { this.Text += " "; } if (this.Checked) { int textWidth = (int)e.Graphics.MeasureString(this.Text, this.Font).Width; int btnWidth = (int)this.Width; // Create image. Image checkedImage = Properties.Resources.check; int X_location = this.Width - checkedImage.Width - 2; // Create Point for upper-left corner of image. Point ulCorner = new Point(X_location, 2); // Draw image to screen. e.Graphics.DrawImage(checkedImage, ulCorner); } } } }