internal void CallTogglePatternForSet(PatternCmdletBase cmdlet, IUiElement control, IUiElement inputObject, bool on)
{
/*
try {
control.PerformToggle(on);
if (PassThru) {
WriteObject(this, control);
} else {
WriteObject(this, true);
}
} catch (Exception) {
WriteObject(this, false);
// throw;
}
*/
try {
// ITogglePattern togglePattern1 = control.GetTogglePattern();
// ITogglePattern togglePattern = control.GetCurrentPattern<ITogglePattern, TogglePattern>();
ITogglePattern togglePattern = control.GetCurrentPattern<ITogglePattern>(classic.TogglePattern.Pattern);
if (togglePattern != null) {
if (togglePattern.Current.ToggleState == classic.ToggleState.On && on) {
// nothing to do
cmdlet.WriteVerbose(this, "the control is already ON");
} else if (togglePattern.Current.ToggleState == classic.ToggleState.Off && on) {
cmdlet.WriteVerbose(this, "setting the control ON");
togglePattern.Toggle();
} else if (togglePattern.Current.ToggleState == classic.ToggleState.On && !on) {
cmdlet.WriteVerbose(this, "setting the control OFF");
togglePattern.Toggle();
} else if (togglePattern.Current.ToggleState == classic.ToggleState.Off && !on) {
cmdlet.WriteVerbose(this, "the control is already OF");
// nothing to do
}
// if (ToggleState.On == togglePattern1.Current.ToggleState) {
// toggleState = true;
// }
// WriteObject(this, toggleState);
if (PassThru && null != (inputObject as IUiElement)) {
WriteObject(this, inputObject);
} else {
WriteObject(this, true);
}
} else {
WriteVerbose(this, "couldn't get TogglePattern");
WriteObject(this, false);
}
} catch (Exception) {
//!!!!!!!!!!!!
if (Preferences.PerformWin32ClickOnFail) {
// 20131125
//ClickControl(this, _control, false, false, false, false, false, false, false, 0,
// 20131230
// ClickControl(this, control, false, false, false, false, false, false, false, 0, 0,
// 0);
ClickControl(
this,
control,
new ClickSettings());
// 20131109
if (PassThru && null != (inputObject as IUiElement)) {
//if (this.PassThru && null != (inputObject as AutomationElement)) {
WriteObject(this, inputObject);
} else {
WriteObject(this, true);
}
}
}
}