static void ConditionalValueGUI(string searchContext)
        {
            EditorGUI.BeginChangeCheck();

            s_NumberWithSlider.value = SettingsGUILayout.SettingsSlider("Number With Slider", s_NumberWithSlider, 0, 10, searchContext);

            var foo = s_Foo.value;

            using (new SettingsGUILayout.IndentedGroup("Foo Class"))
            {
                EditorGUI.BeginChangeCheck();

                foo.intValue    = SettingsGUILayout.SearchableIntField("Int Value", foo.intValue, searchContext);
                foo.stringValue = SettingsGUILayout.SearchableTextField("String Value", foo.stringValue, searchContext);

                // Because FooClass is a reference type, we need to apply the changes to the backing repository (SetValue
                // would also work here).
                if (EditorGUI.EndChangeCheck())
                {
                    s_Foo.ApplyModifiedProperties();
                }
            }

            SettingsGUILayout.DoResetContextMenuForLastRect(s_Foo);

            if (EditorGUI.EndChangeCheck())
            {
                MySettingsManager.Save();
            }
        }