using System; using System.Windows.Forms; using log4net; using TBF.Resources; using TBF.UiControls; namespace TBF { public partial class ProceduresDlg : Form { static readonly ILog log = LogManager.GetLogger(typeof(ProceduresDlg)); /// Used when re-scaling the dialog: 100% = 96dpi, 125% = 120dpi, 150% = 144dpi public readonly int Dpi; public const int Dpi100pct = 96; bool unlocked; public ProceduresDlg() { /// Detect display setting: 100% = 96dpi, 125% = 120dpi, 150% = 144dpi. Dpi = (int)this.CreateGraphics().DpiX; InitializeComponent(); /// SharedDlgButtons configuration sharedButtons.RequiredGroupMembership = Grp.GID.Metrologists; sharedButtons.OptionalButtons = SharedButtons.Buttons.Add | SharedButtons.Buttons.Remove | SharedButtons.Buttons.Up | SharedButtons.Buttons.Down | SharedButtons.Buttons.Edit | SharedButtons.Buttons.Copy; sharedButtons.Unlocked += Unlocked; sharedButtons.OKClicked += okButton_Click; sharedButtons.CancelClicked += cancelButton_Click; sharedButtons.AddClicked += addButton_Click; sharedButtons.RemoveClicked += removeButton_Click; sharedButtons.UpClicked += upButton_Click; sharedButtons.DownClicked += downButton_Click; sharedButtons.EditClicked += proceduresCtrl.editButton_Click; sharedButtons.CopyClicked += proceduresCtrl.copyButton_Click; } private void ProceduresDlg_Load(object sender, EventArgs e) { Text = Strings.Procedures; proceduresCtrl.Initialize(this, splitContainer.Panel1); } /// /// Called from ProceduresCtrl when item editing is completed with OK. /// Authorisation occurs in the editted ProcedureDlg dialog. /// public void Unlock() { sharedButtons.UnlockButtons(); unlocked = true; proceduresCtrl.Unlock(); } /// /// Called from sharedButtons when user clicks 'Unlock' button an is authorised. /// private void Unlocked(object sender, EventArgs e) { unlocked = true; proceduresCtrl.Unlock(); } private void okButton_Click(object sender, EventArgs e) { proceduresCtrl.OkBtnClicked(); DialogResult = DialogResult.OK; Close(); } private void cancelButton_Click(object sender, EventArgs e) { proceduresCtrl.CancelBtnClicked(); DialogResult = DialogResult.Cancel; Close(); } private void addButton_Click(object sender, EventArgs e) { proceduresCtrl.AddOne(); } private void removeButton_Click(object sender, EventArgs e) { proceduresCtrl.RemoveSelected(); } private void upButton_Click(object sender, EventArgs e) { proceduresCtrl.MoveUpSelected(); } private void downButton_Click(object sender, EventArgs e) { proceduresCtrl.MoveDownSelected(); } private void proceduresCtrl_MouseDoubleClick(object sender, MouseEventArgs e) { proceduresCtrl.editButton_Click(sender, e); } /// /// Common part for three xxxListViewEx_SelectedIndexChanged event handlers /// /// void SelectedIndexChanged(object sender, EventArgs e) { ListViewEx listViewEx = sender as ListViewEx; if (listViewEx.SelectedItems.Count != 1) { /// No item selected sharedButtons.DisableButtons(SharedButtons.Buttons.Remove | SharedButtons.Buttons.Up | SharedButtons.Buttons.Down); } else if (listViewEx.Items.Count == 1) { /// One (the first and the last) item selected sharedButtons.EnableButtons(SharedButtons.Buttons.Remove); sharedButtons.DisableButtons(SharedButtons.Buttons.Up | SharedButtons.Buttons.Down); } else if (listViewEx.SelectedIndices[0] == 0) { /// The first of many items selected sharedButtons.EnableButtons(SharedButtons.Buttons.Remove | SharedButtons.Buttons.Down); sharedButtons.DisableButtons(SharedButtons.Buttons.Up); } else if (listViewEx.SelectedIndices[0] == (listViewEx.Items.Count - 1)) { /// The last of many items selected sharedButtons.EnableButtons(SharedButtons.Buttons.Remove | SharedButtons.Buttons.Up); sharedButtons.DisableButtons(SharedButtons.Buttons.Down); } else { /// One of middle items selected sharedButtons.EnableButtons(SharedButtons.Buttons.Remove | SharedButtons.Buttons.Up | SharedButtons.Buttons.Down); } } public void UpdateButtonStates(SharedButtons.SelectedItemPos selectedItemPos) { if (selectedItemPos == SharedButtons.SelectedItemPos.None) { sharedButtons.DisableButtons(SharedButtons.Buttons.Remove | SharedButtons.Buttons.Up | SharedButtons.Buttons.Down); } } } }