Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
            }
        }