/// <summary>
        /// Set a GFX option and reflect setting on button
        /// </summary>
        /// <param name="dropDown"></param>
        /// <param name="button"></param>
        void SetGfxOption(GUIDropDown dropDown, GUIDropDownButton button)
        {
            if (button.Value == null)
            {
                return; //it should never be null but just in case...
            }
            if (button.Value.GetType() == typeof(int))
            {
                var SubMenu = TopBarHelper.GetSubMenus();
                foreach (KeyValuePair <string, GUIDropDownButton> btn in SubMenu["PCF Samples"])
                {
                    if (btn.Value.Toggled)
                    {
                        btn.Value.Toggled = false; //only toggle off if on
                        break;                     //prevent more than whats needed
                    }
                }
                renderer.GFXSettings.ShadowPCFSamples = (button.Value as int? != null ? (int)button.Value : 1); //we try to safe cast as int nullable; if we fail we hard set to 1
                button.Toggled = true;
            }

            if (button.Value.GetType() == typeof(FogQuality))
            {
                FogQuality myType = (FogQuality)button.Value;


                var SubMenu = TopBarHelper.GetSubMenus();
                foreach (KeyValuePair <string, GUIDropDownButton> btn in SubMenu["Fog"])
                {
                    if (btn.Value.Toggled)
                    {
                        btn.Value.Toggled = false; //only toggle off if on
                        break;                     //prevent more than whats needed
                    }
                }

                switch (myType)
                {
                case FogQuality.Off:
                {
                    bool currentSetting = renderer.FogEnabled;
                    renderer.FogEnabled = !currentSetting;
                    button.Toggled      = currentSetting;    //dont need to invert the bool, all buttons are false by default due to the foreach loop
                    break;
                }

                case FogQuality.Low:
                {
                    renderer.FogEnabled             = true;
                    renderer.GFXSettings.FogQuality = FogQuality.Low;
                    button.Toggled = true;
                    break;
                }

                case FogQuality.Medium:
                {
                    renderer.FogEnabled             = true;
                    renderer.GFXSettings.FogQuality = FogQuality.Medium;
                    button.Toggled = true;
                    break;
                }

                case FogQuality.High:
                {
                    renderer.FogEnabled             = true;
                    renderer.GFXSettings.FogQuality = FogQuality.High;
                    button.Toggled = true;
                    break;
                }
                }
            }

            if (button.Value.GetType() == typeof(gfxType))
            {                                           //check for enum gfxType
                gfxType myType = (gfxType)button.Value; // /should/ be safe to case as gfxType
                switch (myType)
                {
                case gfxType.fxaa:
                {
                    bool currentSetting = renderer.GFXSettings.ApplyFXAA;         //easier to read
                    renderer.GFXSettings.ApplyFXAA = !currentSetting;
                    button.Toggled = !currentSetting;
                    break;
                }

                case gfxType.shadows:
                {
                    bool currentSetting = renderer.GFXSettings.RenderShadows;         //easier to read
                    renderer.GFXSettings.RenderShadows = !currentSetting;
                    button.Toggled = !currentSetting;
                    break;
                }

                case gfxType.wireframe:
                {
                    bool currentSetting = renderer.GlobalWireframe;         //easier to read
                    renderer.GlobalWireframe = !currentSetting;
                    button.Toggled           = !currentSetting;
                    break;
                }
                }
            }
        }