private void OnHideCheckedChanged(object sender, EventArgs e) { if (m_bInitializing) { return; } bool bHide = m_cbHide.Checked; if (!bHide && (m_uPrgmCheck == 0)) { if (!AppPolicy.Try(AppPolicyId.UnhidePasswords)) { ++m_uPrgmCheck; m_cbHide.Checked = true; --m_uPrgmCheck; return; } } m_tbPassword.EnableProtection(bHide); m_tbRepeat.EnableProtection(bHide); bool bWasAutoRepeat = Program.Config.UI.RepeatPasswordOnlyWhenHidden; if (bHide && (m_uPrgmCheck == 0) && bWasAutoRepeat) { ++m_uBlockUIUpdate; m_tbRepeat.TextEx = m_tbPassword.TextEx; --m_uBlockUIUpdate; } UpdateUI(); if (m_uPrgmCheck == 0) { UIUtil.SetFocus(m_tbPassword, m_fParent); } }
public void Attach(SecureTextBoxEx tbPassword, CheckBox cbHide, Label lblRepeat, SecureTextBoxEx tbRepeat, Label lblQualityPrompt, QualityProgressBar pbQuality, Label lblQualityInfo, ToolTip ttHint, Form fParent, bool bInitialHide, bool bSecureDesktopMode) { if (tbPassword == null) { throw new ArgumentNullException("tbPassword"); } if (cbHide == null) { throw new ArgumentNullException("cbHide"); } if (lblRepeat == null) { throw new ArgumentNullException("lblRepeat"); } if (tbRepeat == null) { throw new ArgumentNullException("tbRepeat"); } if (lblQualityPrompt == null) { throw new ArgumentNullException("lblQualityPrompt"); } if (pbQuality == null) { throw new ArgumentNullException("pbQuality"); } if (lblQualityInfo == null) { throw new ArgumentNullException("lblQualityInfo"); } // ttHint may be null if (fParent == null) { throw new ArgumentNullException("fParent"); } Release(); m_bInitializing = true; m_tbPassword = tbPassword; m_cbHide = cbHide; m_lblRepeat = lblRepeat; m_tbRepeat = tbRepeat; m_lblQualityPrompt = lblQualityPrompt; m_pbQuality = pbQuality; m_lblQualityInfo = lblQualityInfo; m_ttHint = ttHint; m_fParent = fParent; m_tbPassword.TextChanged += this.OnPasswordTextChanged; m_tbPassword.EnableProtection(bInitialHide); m_tbRepeat.TextChanged += this.OnRepeatTextChanged; m_tbRepeat.EnableProtection(bInitialHide); ConfigureHideButton(m_cbHide, m_ttHint); m_cbHide.Checked = bInitialHide; m_cbHide.CheckedChanged += this.OnHideCheckedChanged; Debug.Assert(m_pbQuality.Minimum == 0); Debug.Assert(m_pbQuality.Maximum == 100); m_bInitializing = false; UpdateUI(); }