Replace radio list with drop down selector for AA mode setting

This commit is contained in:
Yusuf Bera Ertan 2020-01-07 20:37:55 +03:00
parent 24013f1a32
commit 71db9d6350

View File

@ -4,7 +4,7 @@ use super::{
}; };
use crate::{ use crate::{
render::AaMode, render::AaMode,
ui::{ImageSlider, RadioList, ScaleMode, ToggleButton}, ui::{ImageSlider, ScaleMode, ToggleButton},
GlobalState, GlobalState,
}; };
use conrod_core::{ use conrod_core::{
@ -84,8 +84,8 @@ widget_ids! {
fov_slider, fov_slider,
fov_text, fov_text,
fov_value, fov_value,
aa_radio_buttons,
aa_mode_text, aa_mode_text,
aa_mode_list,
audio_volume_slider, audio_volume_slider,
audio_volume_text, audio_volume_text,
sfx_volume_slider, sfx_volume_slider,
@ -1332,30 +1332,36 @@ impl<'a> Widget for SettingsWindow<'a> {
.font_id(self.fonts.cyri) .font_id(self.fonts.cyri)
.color(TEXT_COLOR) .color(TEXT_COLOR)
.set(state.ids.aa_mode_text, ui); .set(state.ids.aa_mode_text, ui);
let mode_label_list = [
(&AaMode::None, "No AA"), let mode_list = [
(&AaMode::Fxaa, "FXAA"), AaMode::None,
(&AaMode::MsaaX4, "MSAA x4"), AaMode::Fxaa,
(&AaMode::MsaaX8, "MSAA x8"), AaMode::MsaaX4,
(&AaMode::MsaaX16, "MSAA x16 (experimental)"), AaMode::MsaaX8,
(&AaMode::SsaaX4, "SSAA x4"), AaMode::MsaaX16,
AaMode::SsaaX4,
]; ];
if let Some((_, mode)) = RadioList::new( let mode_label_list = [
(0..mode_label_list.len()) "No AA",
.find(|i| *mode_label_list[*i].0 == self.global_state.settings.graphics.aa_mode) "FXAA",
.unwrap_or(0), "MSAA x4",
self.imgs.check, "MSAA x8",
self.imgs.check_checked, "MSAA x16 (experimental)",
&mode_label_list, "SSAA x4",
) ];
.hover_images(self.imgs.check_mo, self.imgs.check_checked_mo)
.press_images(self.imgs.check_press, self.imgs.check_press) // Get which AA mode is currently active
.down_from(state.ids.aa_mode_text, 8.0) let selected = mode_list.iter().position(|x| *x == self.global_state.settings.graphics.aa_mode);
.text_color(TEXT_COLOR)
.font_size(12) if let Some(clicked) = DropDownList::new(&mode_label_list, selected)
.set(state.ids.aa_radio_buttons, ui) .w_h(400.0, 22.0)
.color(MENU_BG)
.label_color(TEXT_COLOR)
.label_font_id(self.fonts.cyri)
.down_from(state.ids.aa_mode_text, 8.0)
.set(state.ids.aa_mode_list, ui)
{ {
events.push(Event::ChangeAaMode(*mode)) events.push(Event::ChangeAaMode(mode_list[clicked]));
} }
} }