private static IViewItem CreateViewItem( IContainerViewItem container, PropertyInfo property, ConfigurationProvider <ModConfiguration> configProvider, IViewItemFactory itemFactory) { object Config() => configProvider.Configuration; if (property.PropertyType == typeof(int) && GetCustomItemAttribute <ConfigItemUIBaseAttribute>(property) is ConfigItemSliderAttribute slider) { return(itemFactory.CreateSlider( container, property.Name, property, Config, slider.Min, slider.Max, slider.Step, slider.ValueType, slider.DisplayMultiplier)); } return(null); }
private static IViewItem CreateViewItem(IContainerViewItem container, PropertyInfo property, object config, IViewItemFactory itemFactory) { switch (GetCustomItemAttribute <ConfigItemUIBaseAttribute>(property)) { case ConfigItemSliderAttribute slider when property.PropertyType.IsPrimitive: if (property.PropertyType == typeof(bool) || property.PropertyType == typeof(IntPtr) || property.PropertyType == typeof(UIntPtr) || property.PropertyType == typeof(char)) { goto default; } return(itemFactory.CreateSlider( container, property.Name, property, config, slider.Min, slider.Max, slider.Step, slider.ValueType, slider.DisplayMultiplier)); case ConfigItemCheckBoxAttribute _ when property.PropertyType == typeof(bool): return(itemFactory.CreateCheckBox(container, property.Name, property, config)); case ConfigItemComboBoxAttribute _ when property.PropertyType.IsEnum: return(itemFactory.CreateComboBox(container, property.Name, property, config, Enum.GetNames(property.PropertyType))); default: return(null); } }