mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-02-04 02:43:32 +00:00
Design
This commit is contained in:
parent
77a4d8201e
commit
5a681a0480
@ -16,15 +16,6 @@ public class ConfigurationSection : CorePropertyChanged
|
|||||||
set => SetAndNotify(ref field, value);
|
set => SetAndNotify(ref field, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets or sets the slot number of the configuration section.
|
|
||||||
/// </summary>
|
|
||||||
public int Slot
|
|
||||||
{
|
|
||||||
get;
|
|
||||||
set => SetAndNotify(ref field, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the collection of configuration items in this section.
|
/// Gets the collection of configuration items in this section.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -307,18 +307,15 @@ public class ProfileConfiguration : BreakableModel, IStorageModel, IDisposable,
|
|||||||
ConfigurationSections.Clear();
|
ConfigurationSections.Clear();
|
||||||
ConfigurationSections.Add(new ConfigurationSection()
|
ConfigurationSections.Add(new ConfigurationSection()
|
||||||
{
|
{
|
||||||
Name = "General (slot 0)",
|
Name = "General",
|
||||||
Slot = 2,
|
|
||||||
});
|
});
|
||||||
ConfigurationSections.Add(new ConfigurationSection()
|
ConfigurationSections.Add(new ConfigurationSection()
|
||||||
{
|
{
|
||||||
Name = "Other (slot 1)",
|
Name = "Other",
|
||||||
Slot = 2
|
|
||||||
});
|
});
|
||||||
ConfigurationSections.Add(new ConfigurationSection()
|
ConfigurationSections.Add(new ConfigurationSection()
|
||||||
{
|
{
|
||||||
Name = "Something else (slot 2)",
|
Name = "Something else",
|
||||||
Slot = 2
|
|
||||||
});
|
});
|
||||||
ConfigurationSections[0].Items.Add(new ConfigurationTextItem() {Text = "This is a placeholder text item in the General section."});
|
ConfigurationSections[0].Items.Add(new ConfigurationTextItem() {Text = "This is a placeholder text item in the General section."});
|
||||||
ConfigurationSections[0].Items.Add(new ConfigurationNumericItem() {Name = "Numeric item", Description = "This one also has a description"});
|
ConfigurationSections[0].Items.Add(new ConfigurationNumericItem() {Name = "Numeric item", Description = "This one also has a description"});
|
||||||
|
|||||||
@ -35,15 +35,4 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<AvaloniaResource Include="Assets\**" />
|
<AvaloniaResource Include="Assets\**" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Folder Include="Screens\ProfileEditor\DesignPanels\" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Update="Screens\ProfileEditor\DesignProfileView.axaml.cs">
|
|
||||||
<DependentUpon>DesignProfileView.axaml</DependentUpon>
|
|
||||||
<SubType>Code</SubType>
|
|
||||||
</Compile>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
</Project>
|
||||||
@ -1,14 +0,0 @@
|
|||||||
using Avalonia;
|
|
||||||
using Avalonia.Controls;
|
|
||||||
using Avalonia.Markup.Xaml;
|
|
||||||
using ReactiveUI.Avalonia;
|
|
||||||
|
|
||||||
namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section;
|
|
||||||
|
|
||||||
public partial class ConfigurationBooleanItemView : ReactiveUserControl<ConfigurationStringItemViewModel>
|
|
||||||
{
|
|
||||||
public ConfigurationBooleanItemView()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
using Artemis.Core;
|
|
||||||
using Artemis.UI.Shared;
|
|
||||||
|
|
||||||
namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section;
|
|
||||||
|
|
||||||
public class ConfigurationBooleanItemViewModel : ActivatableViewModelBase
|
|
||||||
{
|
|
||||||
public ConfigurationBooleanItem Item { get; }
|
|
||||||
|
|
||||||
public ConfigurationBooleanItemViewModel(ConfigurationBooleanItem item)
|
|
||||||
{
|
|
||||||
Item = item;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
using Avalonia;
|
|
||||||
using Avalonia.Controls;
|
|
||||||
using Avalonia.Markup.Xaml;
|
|
||||||
using ReactiveUI.Avalonia;
|
|
||||||
|
|
||||||
namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section;
|
|
||||||
|
|
||||||
public partial class ConfigurationColorGradientItemView : ReactiveUserControl<ConfigurationColorGradientItemViewModel>
|
|
||||||
{
|
|
||||||
public ConfigurationColorGradientItemView()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
using Artemis.Core;
|
|
||||||
using Artemis.UI.Shared;
|
|
||||||
|
|
||||||
namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section;
|
|
||||||
|
|
||||||
public class ConfigurationColorGradientItemViewModel : ActivatableViewModelBase
|
|
||||||
{
|
|
||||||
public ConfigurationColorGradientItemViewModel(ConfigurationColorGradientItem item)
|
|
||||||
{
|
|
||||||
Item = item;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ConfigurationColorGradientItem Item { get; }
|
|
||||||
}
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
using Avalonia;
|
|
||||||
using Avalonia.Controls;
|
|
||||||
using Avalonia.Markup.Xaml;
|
|
||||||
using ReactiveUI.Avalonia;
|
|
||||||
|
|
||||||
namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section;
|
|
||||||
|
|
||||||
public partial class ConfigurationNumericItemView : ReactiveUserControl<ConfigurationStringItemViewModel>
|
|
||||||
{
|
|
||||||
public ConfigurationNumericItemView()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
using Artemis.Core;
|
|
||||||
using Artemis.UI.Shared;
|
|
||||||
|
|
||||||
namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section;
|
|
||||||
|
|
||||||
public class ConfigurationNumericItemViewModel : ActivatableViewModelBase
|
|
||||||
{
|
|
||||||
public ConfigurationNumericItem Item { get; }
|
|
||||||
|
|
||||||
public ConfigurationNumericItemViewModel(ConfigurationNumericItem item)
|
|
||||||
{
|
|
||||||
Item = item;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
using Avalonia;
|
|
||||||
using Avalonia.Controls;
|
|
||||||
using Avalonia.Markup.Xaml;
|
|
||||||
using ReactiveUI.Avalonia;
|
|
||||||
|
|
||||||
namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section;
|
|
||||||
|
|
||||||
public partial class ConfigurationSKColorItemView : ReactiveUserControl<ConfigurationStringItemViewModel>
|
|
||||||
{
|
|
||||||
public ConfigurationSKColorItemView()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
using Artemis.Core;
|
|
||||||
using Artemis.UI.Shared;
|
|
||||||
|
|
||||||
namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section;
|
|
||||||
|
|
||||||
public class ConfigurationSKColorItemViewModel : ActivatableViewModelBase
|
|
||||||
{
|
|
||||||
public ConfigurationSKColorItemViewModel(ConfigurationSKColorItem item)
|
|
||||||
{
|
|
||||||
Item = item;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ConfigurationSKColorItem Item { get; }
|
|
||||||
}
|
|
||||||
@ -1,7 +1,4 @@
|
|||||||
using Avalonia;
|
using ReactiveUI.Avalonia;
|
||||||
using Avalonia.Controls;
|
|
||||||
using Avalonia.Markup.Xaml;
|
|
||||||
using ReactiveUI.Avalonia;
|
|
||||||
|
|
||||||
namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section;
|
namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section;
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
using Artemis.Core;
|
using Artemis.Core;
|
||||||
|
using Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Items;
|
||||||
using Artemis.UI.Shared;
|
using Artemis.UI.Shared;
|
||||||
|
|
||||||
namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section;
|
namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section;
|
||||||
|
|||||||
@ -1,14 +0,0 @@
|
|||||||
using Avalonia;
|
|
||||||
using Avalonia.Controls;
|
|
||||||
using Avalonia.Markup.Xaml;
|
|
||||||
using ReactiveUI.Avalonia;
|
|
||||||
|
|
||||||
namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section;
|
|
||||||
|
|
||||||
public partial class ConfigurationStringItemView : ReactiveUserControl<ConfigurationStringItemViewModel>
|
|
||||||
{
|
|
||||||
public ConfigurationStringItemView()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
using Artemis.Core;
|
|
||||||
using Artemis.UI.Shared;
|
|
||||||
|
|
||||||
namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section;
|
|
||||||
|
|
||||||
public class ConfigurationStringItemViewModel : ActivatableViewModelBase
|
|
||||||
{
|
|
||||||
public ConfigurationStringItem Item { get; }
|
|
||||||
|
|
||||||
public ConfigurationStringItemViewModel(ConfigurationStringItem item)
|
|
||||||
{
|
|
||||||
Item = item;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
using Avalonia;
|
|
||||||
using Avalonia.Controls;
|
|
||||||
using Avalonia.Markup.Xaml;
|
|
||||||
using ReactiveUI.Avalonia;
|
|
||||||
|
|
||||||
namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section;
|
|
||||||
|
|
||||||
public partial class ConfigurationTextItemView : ReactiveUserControl<ConfigurationTextItemViewModel>
|
|
||||||
{
|
|
||||||
public ConfigurationTextItemView()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
using Artemis.Core;
|
|
||||||
using Artemis.UI.Shared;
|
|
||||||
|
|
||||||
namespace Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section;
|
|
||||||
|
|
||||||
public class ConfigurationTextItemViewModel : ActivatableViewModelBase
|
|
||||||
{
|
|
||||||
public ConfigurationTextItem Item { get; }
|
|
||||||
|
|
||||||
public ConfigurationTextItemViewModel(ConfigurationTextItem item)
|
|
||||||
{
|
|
||||||
Item = item;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -7,25 +7,10 @@
|
|||||||
x:Class="Artemis.UI.Screens.ProfileEditor.ConfigureProfileView"
|
x:Class="Artemis.UI.Screens.ProfileEditor.ConfigureProfileView"
|
||||||
x:DataType="profileEditor:ConfigureProfileViewModel">
|
x:DataType="profileEditor:ConfigureProfileViewModel">
|
||||||
<Border Classes="router-container" Padding="8">
|
<Border Classes="router-container" Padding="8">
|
||||||
<Grid RowDefinitions="0.6*, Auto" ColumnDefinitions="0.3*, 0.3*, Auto" ColumnSpacing="8" RowSpacing="8">
|
<Grid RowDefinitions="*" ColumnDefinitions="0.6*, Auto" ColumnSpacing="8" RowSpacing="8">
|
||||||
<ContentControl Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" Content="{CompiledBinding PreviewViewModel}" />
|
<ContentControl Grid.Column="0" Grid.Row="0" Content="{CompiledBinding PreviewViewModel}" />
|
||||||
|
<ScrollViewer Grid.Column="1" Grid.Row="0">
|
||||||
<ItemsControl Grid.Column="0" Grid.Row="1" ItemsSource="{CompiledBinding BottomLeftSections}">
|
<ItemsControl ItemsSource="{CompiledBinding Sections}">
|
||||||
<ItemsControl.ItemsPanel>
|
|
||||||
<ItemsPanelTemplate>
|
|
||||||
<StackPanel Spacing="8"></StackPanel>
|
|
||||||
</ItemsPanelTemplate>
|
|
||||||
</ItemsControl.ItemsPanel>
|
|
||||||
</ItemsControl>
|
|
||||||
<ItemsControl Grid.Column="1" Grid.Row="1" ItemsSource="{CompiledBinding BottomRightSections}">
|
|
||||||
<ItemsControl.ItemsPanel>
|
|
||||||
<ItemsPanelTemplate>
|
|
||||||
<StackPanel Spacing="8"></StackPanel>
|
|
||||||
</ItemsPanelTemplate>
|
|
||||||
</ItemsControl.ItemsPanel>
|
|
||||||
</ItemsControl>
|
|
||||||
<ScrollViewer Grid.Column="2" Grid.Row="0" Grid.RowSpan="2">
|
|
||||||
<ItemsControl ItemsSource="{CompiledBinding SideSections}">
|
|
||||||
<ItemsControl.ItemsPanel>
|
<ItemsControl.ItemsPanel>
|
||||||
<ItemsPanelTemplate>
|
<ItemsPanelTemplate>
|
||||||
<StackPanel Spacing="8"></StackPanel>
|
<StackPanel Spacing="8"></StackPanel>
|
||||||
|
|||||||
@ -33,30 +33,15 @@ public partial class ConfigureProfileViewModel : RoutableScreen<ProfileViewModel
|
|||||||
|
|
||||||
_configurationSections = new SourceList<ConfigurationSection>();
|
_configurationSections = new SourceList<ConfigurationSection>();
|
||||||
_configurationSections.Connect()
|
_configurationSections.Connect()
|
||||||
.Filter(s => s.Slot == 0)
|
|
||||||
.Transform(getConfigurationSectionViewModel)
|
.Transform(getConfigurationSectionViewModel)
|
||||||
.Bind(out ReadOnlyObservableCollection<ConfigurationSectionViewModel> bottomLeftSections)
|
.Bind(out ReadOnlyObservableCollection<ConfigurationSectionViewModel> sections)
|
||||||
.Subscribe();
|
|
||||||
_configurationSections.Connect()
|
|
||||||
.Filter(s => s.Slot == 1)
|
|
||||||
.Transform(getConfigurationSectionViewModel)
|
|
||||||
.Bind(out ReadOnlyObservableCollection<ConfigurationSectionViewModel> bottomRightSections)
|
|
||||||
.Subscribe();
|
|
||||||
_configurationSections.Connect()
|
|
||||||
.Filter(s => s.Slot == 2)
|
|
||||||
.Transform(getConfigurationSectionViewModel)
|
|
||||||
.Bind(out ReadOnlyObservableCollection<ConfigurationSectionViewModel> sideSections)
|
|
||||||
.Subscribe();
|
.Subscribe();
|
||||||
|
|
||||||
BottomLeftSections = bottomLeftSections;
|
Sections = sections;
|
||||||
BottomRightSections = bottomRightSections;
|
|
||||||
SideSections = sideSections;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public PreviewViewModel PreviewViewModel { get; }
|
public PreviewViewModel PreviewViewModel { get; }
|
||||||
public ReadOnlyObservableCollection<ConfigurationSectionViewModel> BottomLeftSections { get; private set; }
|
public ReadOnlyObservableCollection<ConfigurationSectionViewModel> Sections { get; private set; }
|
||||||
public ReadOnlyObservableCollection<ConfigurationSectionViewModel> BottomRightSections { get; private set; }
|
|
||||||
public ReadOnlyObservableCollection<ConfigurationSectionViewModel> SideSections { get; private set; }
|
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public override async Task OnNavigating(ProfileViewModelParameters parameters, NavigationArguments args, CancellationToken cancellationToken)
|
public override async Task OnNavigating(ProfileViewModelParameters parameters, NavigationArguments args, CancellationToken cancellationToken)
|
||||||
|
|||||||
@ -2,10 +2,10 @@
|
|||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:section="clr-namespace:Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section"
|
xmlns:items="clr-namespace:Artemis.UI.Screens.ProfileEditor.DesignPanels.Items"
|
||||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||||
x:Class="Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section.ConfigurationBooleanItemView"
|
x:Class="Artemis.UI.Screens.ProfileEditor.DesignPanels.Items.ConfigurationBooleanItemDesignView"
|
||||||
x:DataType="section:ConfigurationBooleanItemViewModel">
|
x:DataType="items:ConfigurationBooleanItemDesignViewModel">
|
||||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||||
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
||||||
<TextBlock Text="{CompiledBinding Item.Name}" TextWrapping="Wrap" />
|
<TextBlock Text="{CompiledBinding Item.Name}" TextWrapping="Wrap" />
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
using Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Items;
|
||||||
|
using ReactiveUI.Avalonia;
|
||||||
|
|
||||||
|
namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Items;
|
||||||
|
|
||||||
|
public partial class ConfigurationBooleanItemDesignView : ReactiveUserControl<ConfigurationStringItemDesignViewModel>
|
||||||
|
{
|
||||||
|
public ConfigurationBooleanItemDesignView()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
using Artemis.Core;
|
||||||
|
using Artemis.UI.Shared;
|
||||||
|
|
||||||
|
namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Items;
|
||||||
|
|
||||||
|
public class ConfigurationBooleanItemDesignViewModel : ActivatableViewModelBase
|
||||||
|
{
|
||||||
|
public ConfigurationBooleanItem Item { get; }
|
||||||
|
|
||||||
|
public ConfigurationBooleanItemDesignViewModel(ConfigurationBooleanItem item)
|
||||||
|
{
|
||||||
|
Item = item;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -2,11 +2,11 @@
|
|||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:section="clr-namespace:Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section"
|
|
||||||
xmlns:gradientPicker="clr-namespace:Artemis.UI.Shared.Controls.GradientPicker;assembly=Artemis.UI.Shared"
|
xmlns:gradientPicker="clr-namespace:Artemis.UI.Shared.Controls.GradientPicker;assembly=Artemis.UI.Shared"
|
||||||
|
xmlns:items="clr-namespace:Artemis.UI.Screens.ProfileEditor.DesignPanels.Items"
|
||||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||||
x:Class="Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section.ConfigurationColorGradientItemView"
|
x:Class="Artemis.UI.Screens.ProfileEditor.DesignPanels.Items.ConfigurationColorGradientItemDesignView"
|
||||||
x:DataType="section:ConfigurationColorGradientItemViewModel">
|
x:DataType="items:ConfigurationColorGradientItemDesignViewModel">
|
||||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||||
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
||||||
<TextBlock Text="{CompiledBinding Item.Name}" TextWrapping="Wrap" />
|
<TextBlock Text="{CompiledBinding Item.Name}" TextWrapping="Wrap" />
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
using Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Items;
|
||||||
|
using ReactiveUI.Avalonia;
|
||||||
|
|
||||||
|
namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Items;
|
||||||
|
|
||||||
|
public partial class ConfigurationColorGradientItemDesignView : ReactiveUserControl<ConfigurationColorGradientItemDesignViewModel>
|
||||||
|
{
|
||||||
|
public ConfigurationColorGradientItemDesignView()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
using Artemis.Core;
|
||||||
|
using Artemis.UI.Shared;
|
||||||
|
|
||||||
|
namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Items;
|
||||||
|
|
||||||
|
public class ConfigurationColorGradientItemDesignViewModel : ActivatableViewModelBase
|
||||||
|
{
|
||||||
|
public ConfigurationColorGradientItemDesignViewModel(ConfigurationColorGradientItem item)
|
||||||
|
{
|
||||||
|
Item = item;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ConfigurationColorGradientItem Item { get; }
|
||||||
|
}
|
||||||
@ -2,12 +2,12 @@
|
|||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:section="clr-namespace:Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section"
|
|
||||||
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
||||||
xmlns:behaviors="clr-namespace:Artemis.UI.Shared.Behaviors;assembly=Artemis.UI.Shared"
|
xmlns:behaviors="clr-namespace:Artemis.UI.Shared.Behaviors;assembly=Artemis.UI.Shared"
|
||||||
|
xmlns:items="clr-namespace:Artemis.UI.Screens.ProfileEditor.DesignPanels.Items"
|
||||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||||
x:Class="Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section.ConfigurationNumericItemView"
|
x:Class="Artemis.UI.Screens.ProfileEditor.DesignPanels.Items.ConfigurationNumericItemDesignView"
|
||||||
x:DataType="section:ConfigurationNumericItemViewModel">
|
x:DataType="items:ConfigurationNumericItemDesignViewModel">
|
||||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||||
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
||||||
<TextBlock Text="{CompiledBinding Item.Name}" TextWrapping="Wrap" />
|
<TextBlock Text="{CompiledBinding Item.Name}" TextWrapping="Wrap" />
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
using Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Items;
|
||||||
|
using ReactiveUI.Avalonia;
|
||||||
|
|
||||||
|
namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Items;
|
||||||
|
|
||||||
|
public partial class ConfigurationNumericItemDesignView : ReactiveUserControl<ConfigurationStringItemDesignViewModel>
|
||||||
|
{
|
||||||
|
public ConfigurationNumericItemDesignView()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
using Artemis.Core;
|
||||||
|
using Artemis.UI.Shared;
|
||||||
|
|
||||||
|
namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Items;
|
||||||
|
|
||||||
|
public class ConfigurationNumericItemDesignViewModel : ActivatableViewModelBase
|
||||||
|
{
|
||||||
|
public ConfigurationNumericItem Item { get; }
|
||||||
|
|
||||||
|
public ConfigurationNumericItemDesignViewModel(ConfigurationNumericItem item)
|
||||||
|
{
|
||||||
|
Item = item;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -2,12 +2,11 @@
|
|||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:section="clr-namespace:Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section"
|
|
||||||
xmlns:behaviors="clr-namespace:Artemis.UI.Shared.Behaviors;assembly=Artemis.UI.Shared"
|
|
||||||
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
||||||
|
xmlns:items="clr-namespace:Artemis.UI.Screens.ProfileEditor.DesignPanels.Items"
|
||||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||||
x:Class="Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section.ConfigurationSKColorItemView"
|
x:Class="Artemis.UI.Screens.ProfileEditor.DesignPanels.Items.ConfigurationSKColorItemDesignView"
|
||||||
x:DataType="section:ConfigurationSKColorItemViewModel">
|
x:DataType="items:ConfigurationSKColorItemDesignViewModel">
|
||||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||||
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
||||||
<TextBlock Text="{CompiledBinding Item.Name}" TextWrapping="Wrap" />
|
<TextBlock Text="{CompiledBinding Item.Name}" TextWrapping="Wrap" />
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
using Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Items;
|
||||||
|
using ReactiveUI.Avalonia;
|
||||||
|
|
||||||
|
namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Items;
|
||||||
|
|
||||||
|
public partial class ConfigurationSKColorItemDesignView : ReactiveUserControl<ConfigurationStringItemDesignViewModel>
|
||||||
|
{
|
||||||
|
public ConfigurationSKColorItemDesignView()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
using Artemis.Core;
|
||||||
|
using Artemis.UI.Shared;
|
||||||
|
|
||||||
|
namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Items;
|
||||||
|
|
||||||
|
public class ConfigurationSKColorItemDesignViewModel : ActivatableViewModelBase
|
||||||
|
{
|
||||||
|
public ConfigurationSKColorItemDesignViewModel(ConfigurationSKColorItem item)
|
||||||
|
{
|
||||||
|
Item = item;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ConfigurationSKColorItem Item { get; }
|
||||||
|
}
|
||||||
@ -2,10 +2,10 @@
|
|||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:section="clr-namespace:Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section"
|
xmlns:items="clr-namespace:Artemis.UI.Screens.ProfileEditor.DesignPanels.Items"
|
||||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||||
x:Class="Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section.ConfigurationStringItemView"
|
x:Class="Artemis.UI.Screens.ProfileEditor.DesignPanels.Items.ConfigurationStringItemDesignView"
|
||||||
x:DataType="section:ConfigurationStringItemViewModel">
|
x:DataType="items:ConfigurationStringItemDesignViewModel">
|
||||||
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
||||||
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
<StackPanel Grid.Column="0" VerticalAlignment="Center">
|
||||||
<TextBlock Text="{CompiledBinding Item.Name}" TextWrapping="Wrap" />
|
<TextBlock Text="{CompiledBinding Item.Name}" TextWrapping="Wrap" />
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
using Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Items;
|
||||||
|
using ReactiveUI.Avalonia;
|
||||||
|
|
||||||
|
namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Items;
|
||||||
|
|
||||||
|
public partial class ConfigurationStringItemDesignView : ReactiveUserControl<ConfigurationStringItemDesignViewModel>
|
||||||
|
{
|
||||||
|
public ConfigurationStringItemDesignView()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
using Artemis.Core;
|
||||||
|
using Artemis.UI.Shared;
|
||||||
|
|
||||||
|
namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Items;
|
||||||
|
|
||||||
|
public class ConfigurationStringItemDesignViewModel : ActivatableViewModelBase
|
||||||
|
{
|
||||||
|
public ConfigurationStringItem Item { get; }
|
||||||
|
|
||||||
|
public ConfigurationStringItemDesignViewModel(ConfigurationStringItem item)
|
||||||
|
{
|
||||||
|
Item = item;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -2,9 +2,9 @@
|
|||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:section="clr-namespace:Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section"
|
xmlns:items="clr-namespace:Artemis.UI.Screens.ProfileEditor.DesignPanels.Items"
|
||||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||||
x:Class="Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section.ConfigurationTextItemView"
|
x:Class="Artemis.UI.Screens.ProfileEditor.DesignPanels.Items.ConfigurationTextItemDesignDesignView"
|
||||||
x:DataType="section:ConfigurationTextItemViewModel">
|
x:DataType="items:ConfigurationTextItemDesignViewModel">
|
||||||
<TextBlock Text="{CompiledBinding Item.Text}"></TextBlock>
|
<TextBox Text="{CompiledBinding Item.Text}" />
|
||||||
</UserControl>
|
</UserControl>
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
using Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Items;
|
||||||
|
using ReactiveUI.Avalonia;
|
||||||
|
|
||||||
|
namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Items;
|
||||||
|
|
||||||
|
public partial class ConfigurationTextItemDesignDesignView : ReactiveUserControl<ConfigurationTextItemDesignViewModel>
|
||||||
|
{
|
||||||
|
public ConfigurationTextItemDesignDesignView()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
using Artemis.Core;
|
||||||
|
using Artemis.UI.Shared;
|
||||||
|
|
||||||
|
namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Items;
|
||||||
|
|
||||||
|
public class ConfigurationTextItemDesignViewModel : ActivatableViewModelBase
|
||||||
|
{
|
||||||
|
public ConfigurationTextItem Item { get; }
|
||||||
|
|
||||||
|
public ConfigurationTextItemDesignViewModel(ConfigurationTextItem item)
|
||||||
|
{
|
||||||
|
Item = item;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,34 @@
|
|||||||
|
<UserControl xmlns="https://github.com/avaloniaui"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
xmlns:section="clr-namespace:Artemis.UI.Screens.ProfileEditor.DesignPanels.Section"
|
||||||
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||||
|
x:Class="Artemis.UI.Screens.ProfileEditor.DesignPanels.Section.ConfigurationSectionDesignView"
|
||||||
|
x:DataType="section:ConfigurationSectionDesignViewModel">
|
||||||
|
<Border Classes="card" VerticalAlignment="Top">
|
||||||
|
<StackPanel>
|
||||||
|
<TextBlock Theme="{StaticResource SubtitleTextBlockStyle}" Text="{CompiledBinding ConfigurationSection.Name}"/>
|
||||||
|
<Border Classes="card-separator" />
|
||||||
|
|
||||||
|
<ItemsControl ItemsSource="{CompiledBinding Items}">
|
||||||
|
<ItemsControl.ItemTemplate>
|
||||||
|
<DataTemplate>
|
||||||
|
<StackPanel Classes="device-view-model-container">
|
||||||
|
<!-- Your existing item template goes here -->
|
||||||
|
<ContentControl Content="{CompiledBinding}"/>
|
||||||
|
<Border Classes="card-separator" Name="Separator" />
|
||||||
|
</StackPanel>
|
||||||
|
</DataTemplate>
|
||||||
|
</ItemsControl.ItemTemplate>
|
||||||
|
<ItemsControl.Styles>
|
||||||
|
<Styles>
|
||||||
|
<Style Selector="ContentPresenter:nth-last-child(1) > StackPanel > Border#Separator">
|
||||||
|
<Setter Property="IsVisible" Value="False" />
|
||||||
|
</Style>
|
||||||
|
</Styles>
|
||||||
|
</ItemsControl.Styles>
|
||||||
|
</ItemsControl>
|
||||||
|
</StackPanel>
|
||||||
|
</Border>
|
||||||
|
</UserControl>
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
using Artemis.UI.Screens.ProfileEditor.ConfigurationPanels.Section;
|
||||||
|
using ReactiveUI.Avalonia;
|
||||||
|
|
||||||
|
namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Section;
|
||||||
|
|
||||||
|
public partial class ConfigurationSectionDesignView: ReactiveUserControl<ConfigurationSectionDesignViewModel>
|
||||||
|
{
|
||||||
|
public ConfigurationSectionDesignView()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,33 @@
|
|||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using Artemis.Core;
|
||||||
|
using Artemis.UI.Screens.ProfileEditor.DesignPanels.Items;
|
||||||
|
using Artemis.UI.Shared;
|
||||||
|
|
||||||
|
namespace Artemis.UI.Screens.ProfileEditor.DesignPanels.Section;
|
||||||
|
|
||||||
|
public class ConfigurationSectionDesignViewModel : ActivatableViewModelBase
|
||||||
|
{
|
||||||
|
public ConfigurationSection ConfigurationSection { get; }
|
||||||
|
public ObservableCollection<ActivatableViewModelBase> Items { get; }
|
||||||
|
|
||||||
|
public ConfigurationSectionDesignViewModel(ConfigurationSection configurationSection)
|
||||||
|
{
|
||||||
|
ConfigurationSection = configurationSection;
|
||||||
|
Items = [];
|
||||||
|
foreach (IConfigurationItem item in ConfigurationSection.Items)
|
||||||
|
{
|
||||||
|
if (item is ConfigurationTextItem textItem)
|
||||||
|
Items.Add(new ConfigurationTextItemDesignViewModel(textItem));
|
||||||
|
else if (item is ConfigurationStringItem stringItem)
|
||||||
|
Items.Add(new ConfigurationStringItemDesignViewModel(stringItem));
|
||||||
|
else if (item is ConfigurationBooleanItem booleanItem)
|
||||||
|
Items.Add(new ConfigurationBooleanItemDesignViewModel(booleanItem));
|
||||||
|
else if (item is ConfigurationNumericItem numberItem)
|
||||||
|
Items.Add(new ConfigurationNumericItemDesignViewModel(numberItem));
|
||||||
|
else if (item is ConfigurationSKColorItem colorItem)
|
||||||
|
Items.Add(new ConfigurationSKColorItemDesignViewModel(colorItem));
|
||||||
|
else if (item is ConfigurationColorGradientItem colorGradientItem)
|
||||||
|
Items.Add(new ConfigurationColorGradientItemDesignViewModel(colorGradientItem));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user