private static EnabledOrDisabledWithToolTipNullBtn convertDelegate(EnabledOrDisabledWithToolTipBtn source)
        {
            bool converter(bool?status, out string target)
            {
                return(source(status ?? false, out target));
            }

            return(converter);
        }
 public OptionsRowButtonWrapper(SimpleDescriptor optionName, Action <bool> SetState, Func <bool> GetState, SimpleDescriptor enabledText,
                                SimpleDescriptor disabledText, SimpleDescriptor enabledHint, SimpleDescriptor disabledHint, SimpleDescriptor warningText,
                                EnabledOrDisabledWithToolTipBtn disabledWithTooltipGetter) : this(optionName, x => SetState(x ?? false), () => GetState(),
                                                                                                  ConvertToFunc(enabledText, disabledText), ConvertToFunc(enabledHint, disabledHint), warningText, convertDelegate(disabledWithTooltipGetter), false)
 {
 }