UIAutomation.PatternCmdletBase.CallTogglePatternForSet C# (CSharp) Method

CallTogglePatternForSet() private method

private CallTogglePatternForSet ( PatternCmdletBase cmdlet, IUiElement control, IUiElement inputObject, bool on ) : void
cmdlet PatternCmdletBase
control IUiElement
inputObject IUiElement
on bool
return void
        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);

                    }
                }
            }
        }