Beispiel #1
0
        public VideoOptionsWindow()
        {
            //Layout
            Anchor = global::Graphics.Orientation.Center;
            Size   = new SlimDX.Vector2(500, 510);

            CreateTitle(Locale.Resource.VideoSettingsTitle);

            AddChild(new Label()
            {
                Anchor     = textBoxOrientation,
                Background = null,
                Position   = new SlimDX.Vector2(textBoxPositionX, textBoxPositionStartY + textBoxPositionOffset * 0),
                Size       = textBoxSize,
                Text       = Locale.Resource.VideoOverallVideo
            });

            AddChild(overall = new StoneDropDownBar()
            {
                Anchor   = dropBoxOrientation,
                Position = new SlimDX.Vector2(dropBoxPositionX, dropBoxPositionStartY + dropBoxPositionOffset * 0)
            });
            Program.Instance.Tooltip.SetToolTip(overall, Locale.Resource.VideoOverallToolTip);

            //overall.AddItem(new DropDownItemVideoQuality(VideoQualities.Custom));
            //overall.AddItem(new DropDownItemVideoQuality(VideoQualities.Low));
            //if (Graphics.GraphicsDevice.SettingConverters.PixelShaderVersion.Major >= 3)
            //{
            //    overall.AddItem(new DropDownItemVideoQuality(VideoQualities.Medium));
            //    overall.AddItem(new DropDownItemVideoQuality(VideoQualities.High));
            //    overall.AddItem(new DropDownItemVideoQuality(VideoQualities.Ultra));
            //}

            //overall.SelectedItem = new DropDownItemVideoQuality(videoSettings.VideoQuality);
            overall.Updateable = true;
            overall.Update    += new Graphics.UpdateEventHandler(overall_Update);

            #region VideoSettings

            #region AnimationQuality

            AddChild(new Label()
            {
                Anchor     = textBoxOrientation,
                Background = null,
                Position   = new SlimDX.Vector2(textBoxPositionX, textBoxPositionStartY + textBoxPositionOffset * 1),
                Size       = textBoxSize,
                Text       = Locale.Resource.VideoAnimation
            });

            AddChild(animation = new StoneDropDownBar()
            {
                Anchor   = dropBoxOrientation,
                Position = new SlimDX.Vector2(dropBoxPositionX, dropBoxPositionStartY + dropBoxPositionOffset * 1)
            });

            Program.Instance.Tooltip.SetToolTip(animation, Locale.Resource.VideoAnimationToolTip);

            //animation.AddItem(new DropDownItemAnimationQuality(Graphics.Renderer.Settings.AnimationQualities.Low));
            //if (Graphics.GraphicsDevice.SettingConverters.PixelShaderVersion.Major >= 3)
            //{
            //    animation.AddItem(new DropDownItemAnimationQuality(Graphics.Renderer.Settings.AnimationQualities.Medium));
            //    animation.AddItem(new DropDownItemAnimationQuality(Graphics.Renderer.Settings.AnimationQualities.High));
            //}
            //animation.SelectedItem = new DropDownItemAnimationQuality(videoSettings.Animations);

            #endregion

            #region AntiAliasing

            AddChild(new Label()
            {
                Anchor     = textBoxOrientation,
                Background = null,
                Position   = new SlimDX.Vector2(textBoxPositionX, textBoxPositionStartY + textBoxPositionOffset * 2),
                Size       = textBoxSize,
                Text       = Locale.Resource.VideoAntiAliasing
            });

            AddChild(antiAliasing = new StoneDropDownBar()
            {
                Anchor   = dropBoxOrientation,
                Position = new SlimDX.Vector2(dropBoxPositionX, dropBoxPositionStartY + dropBoxPositionOffset * 2),
            });

            Program.Instance.Tooltip.SetToolTip(antiAliasing, Locale.Resource.VideoAntiAliasingToolTip);

            //foreach (var a in global::Graphics.GraphicsDevice.SettingConverters.AntiAliasingConverter.MultiSampleTypes)
            //    antiAliasing.AddItem(new DropDownItem<SlimDX.Direct3D9.MultisampleType>(a));

            //antiAliasing.SelectedItem = new DropDownItemAntiAliasing(videoSettings.AntiAliasing);

            #endregion

            #region LightingQuality

            AddChild(new Label()
            {
                Anchor     = textBoxOrientation,
                Background = null,
                Position   = new SlimDX.Vector2(textBoxPositionX, textBoxPositionStartY + textBoxPositionOffset * 3),
                Size       = textBoxSize,
                Text       = Locale.Resource.VideoLightingQuality
            });

            AddChild(lightingQuality = new StoneDropDownBar()
            {
                Anchor   = dropBoxOrientation,
                Position = new SlimDX.Vector2(dropBoxPositionX, dropBoxPositionStartY + dropBoxPositionOffset * 3),
            });

            Program.Instance.Tooltip.SetToolTip(lightingQuality, Locale.Resource.VideoLightingToolTip);

            //lightingQuality.AddItem(new DropDownItemLightingQuality(Graphics.Renderer.Settings.LightingQualities.Low));
            //if (Graphics.GraphicsDevice.SettingConverters.PixelShaderVersion.Major >= 3)
            //{
            //    lightingQuality.AddItem(new DropDownItemLightingQuality(Graphics.Renderer.Settings.LightingQualities.Medium));
            //    lightingQuality.AddItem(new DropDownItemLightingQuality(Graphics.Renderer.Settings.LightingQualities.High));
            //}
            //lightingQuality.SelectedItem = new DropDownItemLightingQuality(videoSettings.Lighting);

            #endregion

            #region Resolution

            AddChild(new Label()
            {
                Anchor     = textBoxOrientation,
                Background = null,
                Clickable  = false,
                Position   = new SlimDX.Vector2(textBoxPositionX, textBoxPositionStartY + textBoxPositionOffset * 4),
                Size       = textBoxSize,
                Text       = Locale.Resource.VideoResolution
            });

            AddChild(resolution = new StoneDropDownBar()
            {
                Anchor   = dropBoxOrientation,
                Position = new SlimDX.Vector2(dropBoxPositionX, dropBoxPositionStartY + dropBoxPositionOffset * 4),
            });

            Program.Instance.Tooltip.SetToolTip(resolution, Locale.Resource.VideoResolutionToolTip);

            //if (videoSettings.WindowMode == global::Graphics.WindowMode.Fullscreen)
            //{
            //    foreach (var a in global::Graphics.GraphicsDevice.SettingConverters.ResolutionListConverter.Resolutions)
            //        resolution.AddItem(a.ToString());

            //    resolution.SelectedItem = videoSettings.Resolution.ToString();
            //}

            #endregion

            #region ShadowQuality

            AddChild(new Label()
            {
                Anchor     = textBoxOrientation,
                Background = null,
                Position   = new SlimDX.Vector2(textBoxPositionX, textBoxPositionStartY + textBoxPositionOffset * 5),
                Size       = textBoxSize,
                Text       = Locale.Resource.VideoShadowQuality
            });

            AddChild(shadowQuality = new StoneDropDownBar()
            {
                Anchor   = dropBoxOrientation,
                Position = new SlimDX.Vector2(dropBoxPositionX, dropBoxPositionStartY + dropBoxPositionOffset * 5),
            });

            Program.Instance.Tooltip.SetToolTip(shadowQuality, Locale.Resource.VideoShadowsToolTip);

            //shadowQuality.AddItem(new DropDownItemShadowQuality(Graphics.Renderer.Settings.ShadowQualities.NoShadows));
            //if (Graphics.GraphicsDevice.SettingConverters.PixelShaderVersion.Major >= 3)
            //{
            //    shadowQuality.AddItem(new DropDownItemShadowQuality(Graphics.Renderer.Settings.ShadowQualities.Lowest));
            //    shadowQuality.AddItem(new DropDownItemShadowQuality(Graphics.Renderer.Settings.ShadowQualities.Low));
            //    shadowQuality.AddItem(new DropDownItemShadowQuality(Graphics.Renderer.Settings.ShadowQualities.Medium));
            //    shadowQuality.AddItem(new DropDownItemShadowQuality(Graphics.Renderer.Settings.ShadowQualities.High));
            //    shadowQuality.AddItem(new DropDownItemShadowQuality(Graphics.Renderer.Settings.ShadowQualities.Highest));
            //}
            //if (videoSettings.Shadows == Graphics.Renderer.Settings.ShadowQualities.NoShadows)
            //    shadowQuality.SelectedItem = new DropDownItemShadowQuality(Graphics.Renderer.Settings.ShadowQualities.NoShadows);
            //else
            //    shadowQuality.SelectedItem = new DropDownItemShadowQuality(videoSettings.Shadows);

            #endregion

            #region TerrainQuality

            AddChild(new Label()
            {
                Anchor     = textBoxOrientation,
                Background = null,
                Position   = new SlimDX.Vector2(textBoxPositionX, textBoxPositionStartY + textBoxPositionOffset * 6),
                Size       = textBoxSize,
                Text       = Locale.Resource.VideoTerrainQuality
            });

            AddChild(terrainQuality = new StoneDropDownBar()
            {
                Anchor   = dropBoxOrientation,
                Position = new SlimDX.Vector2(dropBoxPositionX, dropBoxPositionStartY + dropBoxPositionOffset * 6),
            });

            Program.Instance.Tooltip.SetToolTip(terrainQuality, Locale.Resource.VideoTerrainToolTip);

            //terrainQuality.AddItem(new DropDownItemTerrainQuality(Graphics.Renderer.Settings.TerrainQualities.Low));
            //if (Graphics.GraphicsDevice.SettingConverters.PixelShaderVersion.Major >= 3)
            //{
            //    terrainQuality.AddItem(new DropDownItemTerrainQuality(Graphics.Renderer.Settings.TerrainQualities.Medium));
            //    terrainQuality.AddItem(new DropDownItemTerrainQuality(Graphics.Renderer.Settings.TerrainQualities.High));
            //}
            //terrainQuality.SelectedItem = new DropDownItemTerrainQuality(videoSettings.Terrain);

            #endregion

            #region TextureFiltering

            AddChild(new Label()
            {
                Anchor     = textBoxOrientation,
                Background = null,
                Position   = new SlimDX.Vector2(textBoxPositionX, textBoxPositionStartY + textBoxPositionOffset * 7),
                Size       = textBoxSize,
                Text       = Locale.Resource.VideoTextureFiltering
            });

            AddChild(textureFiltering = new StoneDropDownBar()
            {
                Anchor   = dropBoxOrientation,
                Position = new SlimDX.Vector2(dropBoxPositionX, dropBoxPositionStartY + dropBoxPositionOffset * 7),
            });

            Program.Instance.Tooltip.SetToolTip(textureFiltering, Locale.Resource.VideoTextureFilterToolTip);

            //foreach (var tf in global::Graphics.GraphicsDevice.SettingConverters.TextureFilteringConverter.TextureFilteringTypesDict)
            //    textureFiltering.AddItem(new DropDownItemTextureFiltering(tf.Key));

            //textureFiltering.SelectedItem = new DropDownItemTextureFiltering(videoSettings.TextureFiltering.TextureFilter);

            #endregion

            #region VSync

            AddChild(new Label
            {
                Anchor     = textBoxOrientation,
                Background = null,
                Position   = new SlimDX.Vector2(textBoxPositionX, textBoxPositionStartY + textBoxPositionOffset * 8),
                Size       = textBoxSize,
                Text       = Locale.Resource.VideoVerticalSync
            });

            AddChild(vSync = new StoneDropDownBar
            {
                Anchor   = dropBoxOrientation,
                Position = new SlimDX.Vector2(dropBoxPositionX, dropBoxPositionStartY + dropBoxPositionOffset * 8),
            });

            Program.Instance.Tooltip.SetToolTip(vSync, Locale.Resource.VideoVerticalSyncToolTip);

            //vSync.AddItem(new DropDownItemVerticalSync(Graphics.GraphicsDevice.VerticalSyncMode.Off));
            //vSync.AddItem(new DropDownItemVerticalSync(Graphics.GraphicsDevice.VerticalSyncMode.On));

            //vSync.SelectedItem = new DropDownItemVerticalSync(videoSettings.VerticalSync);

            #endregion

            #region WindowMode

            AddChild(new Label
            {
                Anchor     = textBoxOrientation,
                Background = null,
                Position   = new SlimDX.Vector2(textBoxPositionX, textBoxPositionStartY + textBoxPositionOffset * 9),
                Size       = textBoxSize,
                Text       = Locale.Resource.VideoWindowMode
            });

            AddChild(windowMode = new StoneDropDownBar
            {
                Anchor   = dropBoxOrientation,
                Position = new SlimDX.Vector2(dropBoxPositionX, dropBoxPositionStartY + dropBoxPositionOffset * 9),
            });

            Program.Instance.Tooltip.SetToolTip(windowMode, Locale.Resource.VideoDisplayModeToolTip);

            //windowMode.AddItem(new DropDownItemWindowMode(WindowMode.Fullscreen));
            //windowMode.AddItem(new DropDownItemWindowMode(WindowMode.FullscreenWindowed));
            //windowMode.AddItem(new DropDownItemWindowMode(WindowMode.Windowed));

            //windowMode.SelectedItem = new DropDownItemWindowMode(videoSettings.WindowMode);

            //if(videoSettings.WindowMode == WindowMode.Fullscreen)
            //    resolution.Disabled = false;
            //else
            //    resolution.Disabled = true;

            #endregion

            #endregion
        }
Beispiel #2
0
        public AudioOptionsWindow(bool inGame)
        {
            Size          = new SlimDX.Vector2(500, 400);
            audioSettings = new PublicAudioSettings(inGame);
            CreateTitle(Locale.Resource.SoundSettingsTitle);

            openedInGame = inGame;

            percentages = new List <string>();
            percentages.Add("0%");
            percentages.Add("10%");
            percentages.Add("20%");
            percentages.Add("30%");
            percentages.Add("40%");
            percentages.Add("50%");
            percentages.Add("60%");
            percentages.Add("70%");
            percentages.Add("80%");
            percentages.Add("90%");
            percentages.Add("100%");

            int i = 0;

            foreach (var v in typeof(PublicAudioSettings).GetProperties())
            {
                if (v.IsDefined(typeof(VolumeControllerAttribute), false))
                {
                    Label t;
                    AddChild(t = new Label
                    {
                        Anchor     = textBoxOrientation,
                        Background = null,
                        Position   = new SlimDX.Vector2(textBoxPositionX, textBoxPositionStartY + textBoxPositionOffset * i),
                        Size       = textBoxSize,
                    });

                    StoneDropDownBar s;

                    AddChild(s = new StoneDropDownBar
                    {
                        Anchor   = dropBoxOrientation,
                        Position = new SlimDX.Vector2(dropBoxPositionX, dropBoxPositionStartY + dropBoxPositionOffset * i)
                    });

                    switch (v.Name)
                    {
                    case "MasterVolume":
                        t.Text = Locale.Resource.SoundMasterVolume;
                        Program.Instance.Tooltip.SetToolTip(s, Locale.Resource.AudioMasterToolTip);
                        break;

                    case "AmbientVolume":
                        t.Text = Locale.Resource.SoundAmbientVolume;
                        Program.Instance.Tooltip.SetToolTip(s, Locale.Resource.AudioAmbientToolTip);
                        break;

                    case "MusicVolume":
                        t.Text = Locale.Resource.SoundMusicVolume;
                        Program.Instance.Tooltip.SetToolTip(s, Locale.Resource.AudioMusicToolTip);
                        break;

                    case "SoundVolume":
                        t.Text = Locale.Resource.SoundEffectsVolume;
                        Program.Instance.Tooltip.SetToolTip(s, Locale.Resource.AudioSoundEffectsToolTip);
                        break;

                    default:
                        break;
                    }

                    dropDownBars.Add(s);
                    for (int j = 0; j < percentages.Count; j++)
                    {
                        s.AddItem(percentages[j]);
                    }
                    i++;

                    if (audioSettings.AudioDevice.IsValid)
                    {
                        s.SelectedItem = "" + Math.Round((float)v.GetValue(audioSettings, null) * 100f) + "%";
                    }
                }
            }
            if (!inGame)
            {
                if (Program.Instance != null && Program.Instance.SoundManager != null)
                {
                    var sm = Program.Instance.SoundManager;
                    IEnumerable <AudioDevice> audioDevices = sm.AudioDeviceList;

                    AddChild(new Label
                    {
                        Anchor     = textBoxOrientation,
                        Background = null,
                        Position   = new SlimDX.Vector2(textBoxPositionX, textBoxPositionStartY + textBoxPositionOffset * i),
                        Size       = textBoxSize,
                        Text       = Locale.Resource.SoundAudioDriver
                    });

                    StoneDropDownBar t;
                    AddChild(t = new StoneDropDownBar
                    {
                        Anchor = dropBoxOrientation,
                        Font   = new Graphics.Content.Font
                        {
                            Color      = System.Drawing.Color.White,
                            SystemFont = Fonts.SmallSystemFont
                        },
                        Position = new SlimDX.Vector2(dropBoxPositionX, dropBoxPositionStartY + dropBoxPositionOffset * i)
                    });

                    Program.Instance.Tooltip.SetToolTip(t, Locale.Resource.AudioDriverToolTip);

                    dropDownBars.Add(t);
                    foreach (var device in audioDevices)
                    {
                        t.AddItem(device);
                    }
                    i++;

                    if (audioSettings.AudioDevice.IsValid)
                    {
                        t.SelectedItem = audioSettings.AudioDevice;
                    }
                }
            }
        }