1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2025-12-13 05:48:35 +00:00

Rename Avalonia projects

Add Avalonia platform projects
This commit is contained in:
Robert 2021-11-18 00:18:13 +01:00
parent 1e36297c61
commit f38a9e9e55
205 changed files with 7871 additions and 578 deletions

View File

@ -1,348 +1,348 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<doc> <doc>
<assembly> <assembly>
<name>Artemis.UI.Avalonia.Shared</name> <name>Artemis.UI.Shared</name>
</assembly> </assembly>
<members> <members>
<member name="F:Artemis.UI.Avalonia.Shared.Controls.ArtemisIcon.IconProperty"> <member name="F:Artemis.UI.Shared.Controls.ArtemisIcon.IconProperty">
<summary> <summary>
Gets or sets the currently displayed icon as either a <see cref="T:Material.Icons.MaterialIconKind" /> or an <see cref="T:System.Uri" /> pointing Gets or sets the currently displayed icon as either a <see cref="T:Material.Icons.MaterialIconKind" /> or an <see cref="T:System.Uri" /> pointing
to an SVG to an SVG
</summary> </summary>
</member> </member>
<member name="P:Artemis.UI.Avalonia.Shared.Controls.ArtemisIcon.Icon"> <member name="P:Artemis.UI.Shared.Controls.ArtemisIcon.Icon">
<summary> <summary>
Gets or sets the currently displayed icon as either a <see cref="T:Material.Icons.MaterialIconKind" /> or an <see cref="T:System.Uri" /> pointing Gets or sets the currently displayed icon as either a <see cref="T:Material.Icons.MaterialIconKind" /> or an <see cref="T:System.Uri" /> pointing
to an SVG to an SVG
</summary> </summary>
</member> </member>
<member name="T:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer"> <member name="T:Artemis.UI.Shared.Controls.DeviceVisualizer">
<summary> <summary>
Visualizes an <see cref="T:Artemis.Core.ArtemisDevice" /> with optional per-LED colors Visualizes an <see cref="T:Artemis.Core.ArtemisDevice" /> with optional per-LED colors
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.#ctor"> <member name="M:Artemis.UI.Shared.Controls.DeviceVisualizer.#ctor">
<inheritdoc /> <inheritdoc />
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.Render(Avalonia.Media.DrawingContext)"> <member name="M:Artemis.UI.Shared.Controls.DeviceVisualizer.Render(Avalonia.Media.DrawingContext)">
<inheritdoc /> <inheritdoc />
</member> </member>
<member name="E:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.LedClicked"> <member name="E:Artemis.UI.Shared.Controls.DeviceVisualizer.LedClicked">
<summary> <summary>
Occurs when a LED of the device has been clicked Occurs when a LED of the device has been clicked
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.OnLedClicked(Artemis.UI.Avalonia.Shared.Events.LedClickedEventArgs)"> <member name="M:Artemis.UI.Shared.Controls.DeviceVisualizer.OnLedClicked(Artemis.UI.Shared.Events.LedClickedEventArgs)">
<summary> <summary>
Invokes the <see cref="E:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.LedClicked" /> event Invokes the <see cref="E:Artemis.UI.Shared.Controls.DeviceVisualizer.LedClicked" /> event
</summary> </summary>
<param name="e"></param> <param name="e"></param>
</member> </member>
<member name="F:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.DeviceProperty"> <member name="F:Artemis.UI.Shared.Controls.DeviceVisualizer.DeviceProperty">
<summary> <summary>
Gets or sets the <see cref="T:Artemis.Core.ArtemisDevice" /> to display Gets or sets the <see cref="T:Artemis.Core.ArtemisDevice" /> to display
</summary> </summary>
</member> </member>
<member name="P:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.Device"> <member name="P:Artemis.UI.Shared.Controls.DeviceVisualizer.Device">
<summary> <summary>
Gets or sets the <see cref="T:Artemis.Core.ArtemisDevice" /> to display Gets or sets the <see cref="T:Artemis.Core.ArtemisDevice" /> to display
</summary> </summary>
</member> </member>
<member name="F:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.ShowColorsProperty"> <member name="F:Artemis.UI.Shared.Controls.DeviceVisualizer.ShowColorsProperty">
<summary> <summary>
Gets or sets boolean indicating whether or not to show per-LED colors Gets or sets boolean indicating whether or not to show per-LED colors
</summary> </summary>
</member> </member>
<member name="P:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.ShowColors"> <member name="P:Artemis.UI.Shared.Controls.DeviceVisualizer.ShowColors">
<summary> <summary>
Gets or sets a boolean indicating whether or not to show per-LED colors Gets or sets a boolean indicating whether or not to show per-LED colors
</summary> </summary>
</member> </member>
<member name="F:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.HighlightedLedsProperty"> <member name="F:Artemis.UI.Shared.Controls.DeviceVisualizer.HighlightedLedsProperty">
<summary> <summary>
Gets or sets a list of LEDs to highlight Gets or sets a list of LEDs to highlight
</summary> </summary>
</member> </member>
<member name="P:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.HighlightedLeds"> <member name="P:Artemis.UI.Shared.Controls.DeviceVisualizer.HighlightedLeds">
<summary> <summary>
Gets or sets a list of LEDs to highlight Gets or sets a list of LEDs to highlight
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.OnAttachedToLogicalTree(Avalonia.LogicalTree.LogicalTreeAttachmentEventArgs)"> <member name="M:Artemis.UI.Shared.Controls.DeviceVisualizer.OnAttachedToLogicalTree(Avalonia.LogicalTree.LogicalTreeAttachmentEventArgs)">
<inheritdoc /> <inheritdoc />
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.OnDetachedFromLogicalTree(Avalonia.LogicalTree.LogicalTreeAttachmentEventArgs)"> <member name="M:Artemis.UI.Shared.Controls.DeviceVisualizer.OnDetachedFromLogicalTree(Avalonia.LogicalTree.LogicalTreeAttachmentEventArgs)">
<inheritdoc /> <inheritdoc />
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.MeasureOverride(Avalonia.Size)"> <member name="M:Artemis.UI.Shared.Controls.DeviceVisualizer.MeasureOverride(Avalonia.Size)">
<inheritdoc /> <inheritdoc />
</member> </member>
<member name="F:Artemis.UI.Avalonia.Shared.Controls.EnumComboBox.ValueProperty"> <member name="F:Artemis.UI.Shared.Controls.EnumComboBox.ValueProperty">
<summary> <summary>
Gets or sets the currently selected value Gets or sets the currently selected value
</summary> </summary>
</member> </member>
<member name="P:Artemis.UI.Avalonia.Shared.Controls.EnumComboBox.Value"> <member name="P:Artemis.UI.Shared.Controls.EnumComboBox.Value">
<summary> <summary>
Gets or sets the currently selected value Gets or sets the currently selected value
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Controls.EnumComboBox.OnAttachedToLogicalTree(Avalonia.LogicalTree.LogicalTreeAttachmentEventArgs)"> <member name="M:Artemis.UI.Shared.Controls.EnumComboBox.OnAttachedToLogicalTree(Avalonia.LogicalTree.LogicalTreeAttachmentEventArgs)">
<inheritdoc /> <inheritdoc />
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Controls.EnumComboBox.OnDetachedFromLogicalTree(Avalonia.LogicalTree.LogicalTreeAttachmentEventArgs)"> <member name="M:Artemis.UI.Shared.Controls.EnumComboBox.OnDetachedFromLogicalTree(Avalonia.LogicalTree.LogicalTreeAttachmentEventArgs)">
<inheritdoc /> <inheritdoc />
</member> </member>
<member name="F:Artemis.UI.Avalonia.Shared.Controls.ProfileConfigurationIcon.ConfigurationIconProperty"> <member name="F:Artemis.UI.Shared.Controls.ProfileConfigurationIcon.ConfigurationIconProperty">
<summary> <summary>
Gets or sets the <see cref="T:Artemis.Core.ProfileConfigurationIcon" /> to display Gets or sets the <see cref="T:Artemis.Core.ProfileConfigurationIcon" /> to display
</summary> </summary>
</member> </member>
<member name="P:Artemis.UI.Avalonia.Shared.Controls.ProfileConfigurationIcon.ConfigurationIcon"> <member name="P:Artemis.UI.Shared.Controls.ProfileConfigurationIcon.ConfigurationIcon">
<summary> <summary>
Gets or sets the <see cref="T:Artemis.Core.ProfileConfigurationIcon" /> to display Gets or sets the <see cref="T:Artemis.Core.ProfileConfigurationIcon" /> to display
</summary> </summary>
</member> </member>
<member name="T:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle"> <member name="T:Artemis.UI.Shared.Controls.SelectionRectangle">
<summary> <summary>
Visualizes an <see cref="T:Artemis.Core.ArtemisDevice" /> with optional per-LED colors Visualizes an <see cref="T:Artemis.Core.ArtemisDevice" /> with optional per-LED colors
</summary> </summary>
</member> </member>
<member name="F:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.BackgroundProperty"> <member name="F:Artemis.UI.Shared.Controls.SelectionRectangle.BackgroundProperty">
<summary> <summary>
Defines the <see cref="P:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.Background" /> property. Defines the <see cref="P:Artemis.UI.Shared.Controls.SelectionRectangle.Background" /> property.
</summary> </summary>
</member> </member>
<member name="F:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.BorderBrushProperty"> <member name="F:Artemis.UI.Shared.Controls.SelectionRectangle.BorderBrushProperty">
<summary> <summary>
Defines the <see cref="P:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.BorderBrush" /> property. Defines the <see cref="P:Artemis.UI.Shared.Controls.SelectionRectangle.BorderBrush" /> property.
</summary> </summary>
</member> </member>
<member name="F:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.BorderThicknessProperty"> <member name="F:Artemis.UI.Shared.Controls.SelectionRectangle.BorderThicknessProperty">
<summary> <summary>
Defines the <see cref="P:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.BorderBrush" /> property. Defines the <see cref="P:Artemis.UI.Shared.Controls.SelectionRectangle.BorderBrush" /> property.
</summary> </summary>
</member> </member>
<member name="F:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.InputElementProperty"> <member name="F:Artemis.UI.Shared.Controls.SelectionRectangle.InputElementProperty">
<summary> <summary>
Defines the <see cref="M:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.get_InputElement" /> property. Defines the <see cref="M:Artemis.UI.Shared.Controls.SelectionRectangle.get_InputElement" /> property.
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.#ctor"> <member name="M:Artemis.UI.Shared.Controls.SelectionRectangle.#ctor">
<inheritdoc /> <inheritdoc />
</member> </member>
<member name="P:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.Background"> <member name="P:Artemis.UI.Shared.Controls.SelectionRectangle.Background">
<summary> <summary>
Gets or sets a brush used to paint the control's background. Gets or sets a brush used to paint the control's background.
</summary> </summary>
</member> </member>
<member name="P:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.BorderBrush"> <member name="P:Artemis.UI.Shared.Controls.SelectionRectangle.BorderBrush">
<summary> <summary>
Gets or sets a brush used to paint the control's border Gets or sets a brush used to paint the control's border
</summary> </summary>
</member> </member>
<member name="P:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.BorderThickness"> <member name="P:Artemis.UI.Shared.Controls.SelectionRectangle.BorderThickness">
<summary> <summary>
Gets or sets the width of the control's border Gets or sets the width of the control's border
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.OnAttachedToVisualTree(Avalonia.VisualTreeAttachmentEventArgs)"> <member name="M:Artemis.UI.Shared.Controls.SelectionRectangle.OnAttachedToVisualTree(Avalonia.VisualTreeAttachmentEventArgs)">
<inheritdoc /> <inheritdoc />
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.OnDetachedFromVisualTree(Avalonia.VisualTreeAttachmentEventArgs)"> <member name="M:Artemis.UI.Shared.Controls.SelectionRectangle.OnDetachedFromVisualTree(Avalonia.VisualTreeAttachmentEventArgs)">
<inheritdoc /> <inheritdoc />
</member> </member>
<member name="T:Artemis.UI.Avalonia.Shared.Converters.ColorToSKColorConverter"> <member name="T:Artemis.UI.Shared.Converters.ColorToSKColorConverter">
<summary> <summary>
Converts <see cref="T:Avalonia.Media.Color" /> into <see cref="T:SkiaSharp.SKColor" />. Converts <see cref="T:Avalonia.Media.Color" /> into <see cref="T:SkiaSharp.SKColor" />.
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Converters.ColorToSKColorConverter.Convert(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)"> <member name="M:Artemis.UI.Shared.Converters.ColorToSKColorConverter.Convert(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
<inheritdoc /> <inheritdoc />
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Converters.ColorToSKColorConverter.ConvertBack(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)"> <member name="M:Artemis.UI.Shared.Converters.ColorToSKColorConverter.ConvertBack(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
<inheritdoc /> <inheritdoc />
</member> </member>
<member name="T:Artemis.UI.Avalonia.Shared.Converters.SKColorToColorConverter"> <member name="T:Artemis.UI.Shared.Converters.SKColorToColorConverter">
<summary> <summary>
Converts <see cref="T:SkiaSharp.SKColor" /> into <see cref="T:Avalonia.Media.Color" />. Converts <see cref="T:SkiaSharp.SKColor" /> into <see cref="T:Avalonia.Media.Color" />.
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Converters.SKColorToColorConverter.Convert(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)"> <member name="M:Artemis.UI.Shared.Converters.SKColorToColorConverter.Convert(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
<inheritdoc /> <inheritdoc />
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Converters.SKColorToColorConverter.ConvertBack(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)"> <member name="M:Artemis.UI.Shared.Converters.SKColorToColorConverter.ConvertBack(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
<inheritdoc /> <inheritdoc />
</member> </member>
<member name="T:Artemis.UI.Avalonia.Shared.Events.DataModelInputDynamicEventArgs"> <member name="T:Artemis.UI.Shared.Events.DataModelInputDynamicEventArgs">
<summary> <summary>
Provides data about selection events raised by <see cref="!:DataModelDynamicViewModel" /> Provides data about selection events raised by <see cref="!:DataModelDynamicViewModel" />
</summary> </summary>
</member> </member>
<member name="P:Artemis.UI.Avalonia.Shared.Events.DataModelInputDynamicEventArgs.DataModelPath"> <member name="P:Artemis.UI.Shared.Events.DataModelInputDynamicEventArgs.DataModelPath">
<summary> <summary>
Gets the data model path that was selected Gets the data model path that was selected
</summary> </summary>
</member> </member>
<member name="T:Artemis.UI.Avalonia.Shared.Events.DataModelInputStaticEventArgs"> <member name="T:Artemis.UI.Shared.Events.DataModelInputStaticEventArgs">
<summary> <summary>
Provides data about submit events raised by <see cref="!:DataModelStaticViewModel" /> Provides data about submit events raised by <see cref="!:DataModelStaticViewModel" />
</summary> </summary>
</member> </member>
<member name="P:Artemis.UI.Avalonia.Shared.Events.DataModelInputStaticEventArgs.Value"> <member name="P:Artemis.UI.Shared.Events.DataModelInputStaticEventArgs.Value">
<summary> <summary>
The value that was submitted The value that was submitted
</summary> </summary>
</member> </member>
<member name="T:Artemis.UI.Avalonia.Shared.Events.LedClickedEventArgs"> <member name="T:Artemis.UI.Shared.Events.LedClickedEventArgs">
<summary> <summary>
Provides data on LED click events raised by the device visualizer Provides data on LED click events raised by the device visualizer
</summary> </summary>
</member> </member>
<member name="P:Artemis.UI.Avalonia.Shared.Events.LedClickedEventArgs.Device"> <member name="P:Artemis.UI.Shared.Events.LedClickedEventArgs.Device">
<summary> <summary>
The device that was clicked The device that was clicked
</summary> </summary>
</member> </member>
<member name="P:Artemis.UI.Avalonia.Shared.Events.LedClickedEventArgs.Led"> <member name="P:Artemis.UI.Shared.Events.LedClickedEventArgs.Led">
<summary> <summary>
The LED that was clicked The LED that was clicked
</summary> </summary>
</member> </member>
<member name="T:Artemis.UI.Avalonia.Shared.Events.ProfileConfigurationEventArgs"> <member name="T:Artemis.UI.Shared.Events.ProfileConfigurationEventArgs">
<summary> <summary>
Provides data on profile related events raised by the profile editor Provides data on profile related events raised by the profile editor
</summary> </summary>
</member> </member>
<member name="P:Artemis.UI.Avalonia.Shared.Events.ProfileConfigurationEventArgs.ProfileConfiguration"> <member name="P:Artemis.UI.Shared.Events.ProfileConfigurationEventArgs.ProfileConfiguration">
<summary> <summary>
Gets the profile the event was raised for Gets the profile the event was raised for
</summary> </summary>
</member> </member>
<member name="P:Artemis.UI.Avalonia.Shared.Events.ProfileConfigurationEventArgs.PreviousProfileConfiguration"> <member name="P:Artemis.UI.Shared.Events.ProfileConfigurationEventArgs.PreviousProfileConfiguration">
<summary> <summary>
If applicable, the previous active profile before the event was raised If applicable, the previous active profile before the event was raised
</summary> </summary>
</member> </member>
<member name="T:Artemis.UI.Avalonia.Shared.Events.RenderProfileElementEventArgs"> <member name="T:Artemis.UI.Shared.Events.RenderProfileElementEventArgs">
<summary> <summary>
Provides data on profile element related events raised by the profile editor Provides data on profile element related events raised by the profile editor
</summary> </summary>
</member> </member>
<member name="P:Artemis.UI.Avalonia.Shared.Events.RenderProfileElementEventArgs.RenderProfileElement"> <member name="P:Artemis.UI.Shared.Events.RenderProfileElementEventArgs.RenderProfileElement">
<summary> <summary>
Gets the profile element the event was raised for Gets the profile element the event was raised for
</summary> </summary>
</member> </member>
<member name="P:Artemis.UI.Avalonia.Shared.Events.RenderProfileElementEventArgs.PreviousRenderProfileElement"> <member name="P:Artemis.UI.Shared.Events.RenderProfileElementEventArgs.PreviousRenderProfileElement">
<summary> <summary>
If applicable, the previous active profile element before the event was raised If applicable, the previous active profile element before the event was raised
</summary> </summary>
</member> </member>
<member name="T:Artemis.UI.Avalonia.Shared.Exceptions.ArtemisSharedUIException"> <member name="T:Artemis.UI.Shared.Exceptions.ArtemisSharedUIException">
<summary> <summary>
Represents errors that occur within the Artemis Shared UI library Represents errors that occur within the Artemis Shared UI library
</summary> </summary>
</member> </member>
<member name="T:Artemis.UI.Avalonia.Shared.Ninject.SharedUIModule"> <member name="T:Artemis.UI.Shared.Ninject.SharedUIModule">
<summary> <summary>
The main <see cref="T:Ninject.Modules.NinjectModule" /> of the Artemis Shared UI toolkit that binds all services The main <see cref="T:Ninject.Modules.NinjectModule" /> of the Artemis Shared UI toolkit that binds all services
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Ninject.SharedUIModule.Load"> <member name="M:Artemis.UI.Shared.Ninject.SharedUIModule.Load">
<inheritdoc /> <inheritdoc />
</member> </member>
<member name="T:Artemis.UI.Avalonia.Shared.PluginConfigurationDialog`1"> <member name="T:Artemis.UI.Shared.PluginConfigurationDialog`1">
<inheritdoc /> <inheritdoc />
</member> </member>
<member name="P:Artemis.UI.Avalonia.Shared.PluginConfigurationDialog`1.Type"> <member name="P:Artemis.UI.Shared.PluginConfigurationDialog`1.Type">
<inheritdoc /> <inheritdoc />
</member> </member>
<member name="T:Artemis.UI.Avalonia.Shared.PluginConfigurationDialog"> <member name="T:Artemis.UI.Shared.PluginConfigurationDialog">
<summary> <summary>
Describes a configuration dialog for a specific plugin Describes a configuration dialog for a specific plugin
</summary> </summary>
</member> </member>
<member name="P:Artemis.UI.Avalonia.Shared.PluginConfigurationDialog.Type"> <member name="P:Artemis.UI.Shared.PluginConfigurationDialog.Type">
<inheritdoc /> <inheritdoc />
</member> </member>
<member name="T:Artemis.UI.Avalonia.Shared.PluginConfigurationViewModel"> <member name="T:Artemis.UI.Shared.PluginConfigurationViewModel">
<summary> <summary>
Represents a view model for a plugin configuration window Represents a view model for a plugin configuration window
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.PluginConfigurationViewModel.#ctor(Artemis.Core.Plugin)"> <member name="M:Artemis.UI.Shared.PluginConfigurationViewModel.#ctor(Artemis.Core.Plugin)">
<summary> <summary>
Creates a new instance of the <see cref="T:Artemis.UI.Avalonia.Shared.PluginConfigurationViewModel" /> class Creates a new instance of the <see cref="T:Artemis.UI.Shared.PluginConfigurationViewModel" /> class
</summary> </summary>
<param name="plugin"></param> <param name="plugin"></param>
</member> </member>
<member name="P:Artemis.UI.Avalonia.Shared.PluginConfigurationViewModel.Plugin"> <member name="P:Artemis.UI.Shared.PluginConfigurationViewModel.Plugin">
<summary> <summary>
Gets the plugin this configuration view model is associated with Gets the plugin this configuration view model is associated with
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.PluginConfigurationViewModel.Close"> <member name="M:Artemis.UI.Shared.PluginConfigurationViewModel.Close">
<summary> <summary>
Closes the window hosting the view model Closes the window hosting the view model
</summary> </summary>
</member> </member>
<member name="E:Artemis.UI.Avalonia.Shared.PluginConfigurationViewModel.CloseRequested"> <member name="E:Artemis.UI.Shared.PluginConfigurationViewModel.CloseRequested">
<summary> <summary>
Occurs when the the window hosting the view model should close Occurs when the the window hosting the view model should close
</summary> </summary>
</member> </member>
<member name="T:Artemis.UI.Avalonia.Shared.Services.Builders.FileDialogFilterBuilder"> <member name="T:Artemis.UI.Shared.Services.Builders.FileDialogFilterBuilder">
<summary> <summary>
Represents a builder that can create a <see cref="T:Avalonia.Controls.FileDialogFilter" />. Represents a builder that can create a <see cref="T:Avalonia.Controls.FileDialogFilter" />.
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.FileDialogFilterBuilder.WithName(System.String)"> <member name="M:Artemis.UI.Shared.Services.Builders.FileDialogFilterBuilder.WithName(System.String)">
<summary> <summary>
Sets the name of the filter Sets the name of the filter
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.FileDialogFilterBuilder.WithExtension(System.String)"> <member name="M:Artemis.UI.Shared.Services.Builders.FileDialogFilterBuilder.WithExtension(System.String)">
<summary> <summary>
Adds the provided extension to the filter Adds the provided extension to the filter
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.NotificationBuilder.HavingButton(System.Action{Artemis.UI.Avalonia.Shared.Services.Builders.NotificationButtonBuilder})"> <member name="M:Artemis.UI.Shared.Services.Builders.NotificationBuilder.HavingButton(System.Action{Artemis.UI.Shared.Services.Builders.NotificationButtonBuilder})">
<summary> <summary>
Add a filter to the dialog Add a filter to the dialog
</summary> </summary>
</member> </member>
<member name="T:Artemis.UI.Avalonia.Shared.Services.Builders.OpenFileDialogBuilder"> <member name="T:Artemis.UI.Shared.Services.Builders.OpenFileDialogBuilder">
<summary> <summary>
Represents a builder that can create a <see cref="T:Avalonia.Controls.OpenFileDialog" />. Represents a builder that can create a <see cref="T:Avalonia.Controls.OpenFileDialog" />.
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.OpenFileDialogBuilder.WithAllowMultiple"> <member name="M:Artemis.UI.Shared.Services.Builders.OpenFileDialogBuilder.WithAllowMultiple">
<summary> <summary>
Indicate that the user can select multiple files. Indicate that the user can select multiple files.
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.OpenFileDialogBuilder.WithTitle(System.String)"> <member name="M:Artemis.UI.Shared.Services.Builders.OpenFileDialogBuilder.WithTitle(System.String)">
<summary> <summary>
Set the title of the dialog Set the title of the dialog
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.OpenFileDialogBuilder.WithDirectory(System.String)"> <member name="M:Artemis.UI.Shared.Services.Builders.OpenFileDialogBuilder.WithDirectory(System.String)">
<summary> <summary>
Set the initial directory of the dialog Set the initial directory of the dialog
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.OpenFileDialogBuilder.WithInitialFileName(System.String)"> <member name="M:Artemis.UI.Shared.Services.Builders.OpenFileDialogBuilder.WithInitialFileName(System.String)">
<summary> <summary>
Set the initial file name of the dialog Set the initial file name of the dialog
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.OpenFileDialogBuilder.HavingFilter(System.Action{Artemis.UI.Avalonia.Shared.Services.Builders.FileDialogFilterBuilder})"> <member name="M:Artemis.UI.Shared.Services.Builders.OpenFileDialogBuilder.HavingFilter(System.Action{Artemis.UI.Shared.Services.Builders.FileDialogFilterBuilder})">
<summary> <summary>
Add a filter to the dialog Add a filter to the dialog
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.OpenFileDialogBuilder.ShowAsync"> <member name="M:Artemis.UI.Shared.Services.Builders.OpenFileDialogBuilder.ShowAsync">
<summary> <summary>
Shows the file dialog Shows the file dialog
</summary> </summary>
@ -351,37 +351,37 @@
files, or null if the dialog was canceled. files, or null if the dialog was canceled.
</returns> </returns>
</member> </member>
<member name="T:Artemis.UI.Avalonia.Shared.Services.Builders.SaveFileDialogBuilder"> <member name="T:Artemis.UI.Shared.Services.Builders.SaveFileDialogBuilder">
<summary> <summary>
Represents a builder that can create a <see cref="T:Avalonia.Controls.SaveFileDialog" />. Represents a builder that can create a <see cref="T:Avalonia.Controls.SaveFileDialog" />.
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.SaveFileDialogBuilder.WithTitle(System.String)"> <member name="M:Artemis.UI.Shared.Services.Builders.SaveFileDialogBuilder.WithTitle(System.String)">
<summary> <summary>
Set the title of the dialog Set the title of the dialog
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.SaveFileDialogBuilder.WithDirectory(System.String)"> <member name="M:Artemis.UI.Shared.Services.Builders.SaveFileDialogBuilder.WithDirectory(System.String)">
<summary> <summary>
Set the initial directory of the dialog Set the initial directory of the dialog
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.SaveFileDialogBuilder.WithInitialFileName(System.String)"> <member name="M:Artemis.UI.Shared.Services.Builders.SaveFileDialogBuilder.WithInitialFileName(System.String)">
<summary> <summary>
Set the initial file name of the dialog Set the initial file name of the dialog
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.SaveFileDialogBuilder.WithDefaultExtension(System.String)"> <member name="M:Artemis.UI.Shared.Services.Builders.SaveFileDialogBuilder.WithDefaultExtension(System.String)">
<summary> <summary>
Set the default extension of the dialog Set the default extension of the dialog
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.SaveFileDialogBuilder.HavingFilter(System.Action{Artemis.UI.Avalonia.Shared.Services.Builders.FileDialogFilterBuilder})"> <member name="M:Artemis.UI.Shared.Services.Builders.SaveFileDialogBuilder.HavingFilter(System.Action{Artemis.UI.Shared.Services.Builders.FileDialogFilterBuilder})">
<summary> <summary>
Add a filter to the dialog Add a filter to the dialog
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.SaveFileDialogBuilder.ShowAsync"> <member name="M:Artemis.UI.Shared.Services.Builders.SaveFileDialogBuilder.ShowAsync">
<summary> <summary>
Shows the save file dialog. Shows the save file dialog.
</summary> </summary>
@ -390,32 +390,32 @@
dialog was canceled. dialog was canceled.
</returns> </returns>
</member> </member>
<member name="T:Artemis.UI.Avalonia.Shared.Services.Interfaces.IArtemisSharedUIService"> <member name="T:Artemis.UI.Shared.Services.Interfaces.IArtemisSharedUIService">
<summary> <summary>
Represents a service provided by the Artemis Shared UI library Represents a service provided by the Artemis Shared UI library
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Interfaces.IWindowService.ShowWindow``1(System.ValueTuple{System.String,System.Object}[])"> <member name="M:Artemis.UI.Shared.Services.Interfaces.IWindowService.ShowWindow``1(System.ValueTuple{System.String,System.Object}[])">
<summary> <summary>
Creates a view model instance of type <typeparamref name="TViewModel" /> and shows its corresponding View as a window Creates a view model instance of type <typeparamref name="TViewModel" /> and shows its corresponding View as a window
</summary> </summary>
<typeparam name="TViewModel">The type of view model to create</typeparam> <typeparam name="TViewModel">The type of view model to create</typeparam>
<returns>The created view model</returns> <returns>The created view model</returns>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Interfaces.IWindowService.ShowWindow(System.Object)"> <member name="M:Artemis.UI.Shared.Services.Interfaces.IWindowService.ShowWindow(System.Object)">
<summary> <summary>
Given a ViewModel, show its corresponding View as a window Given a ViewModel, show its corresponding View as a window
</summary> </summary>
<param name="viewModel">ViewModel to show the View for</param> <param name="viewModel">ViewModel to show the View for</param>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Interfaces.IWindowService.ShowExceptionDialog(System.String,System.Exception)"> <member name="M:Artemis.UI.Shared.Services.Interfaces.IWindowService.ShowExceptionDialog(System.String,System.Exception)">
<summary> <summary>
Shows a dialog displaying the given exception Shows a dialog displaying the given exception
</summary> </summary>
<param name="title">The title of the dialog</param> <param name="title">The title of the dialog</param>
<param name="exception">The exception to display</param> <param name="exception">The exception to display</param>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Interfaces.IWindowService.ShowDialogAsync``1(Artemis.UI.Avalonia.Shared.DialogViewModelBase{``0})"> <member name="M:Artemis.UI.Shared.Services.Interfaces.IWindowService.ShowDialogAsync``1(Artemis.UI.Shared.DialogViewModelBase{``0})">
<summary> <summary>
Given an existing ViewModel, show its corresponding View as a Dialog Given an existing ViewModel, show its corresponding View as a Dialog
</summary> </summary>
@ -423,7 +423,7 @@
<param name="viewModel">ViewModel to show the View for</param> <param name="viewModel">ViewModel to show the View for</param>
<returns>A task containing the return value of type <typeparamref name="TResult" /></returns> <returns>A task containing the return value of type <typeparamref name="TResult" /></returns>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Interfaces.IWindowService.ShowDialogAsync``2(System.ValueTuple{System.String,System.Object}[])"> <member name="M:Artemis.UI.Shared.Services.Interfaces.IWindowService.ShowDialogAsync``2(System.ValueTuple{System.String,System.Object}[])">
<summary> <summary>
Creates a view model instance of type <typeparamref name="TViewModel"/> and shows its corresponding View as a Dialog Creates a view model instance of type <typeparamref name="TViewModel"/> and shows its corresponding View as a Dialog
</summary> </summary>
@ -431,7 +431,7 @@
<typeparam name="TResult">The return type</typeparam> <typeparam name="TResult">The return type</typeparam>
<returns>A task containing the return value of type <typeparamref name="TResult" /></returns> <returns>A task containing the return value of type <typeparamref name="TResult" /></returns>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Interfaces.IWindowService.ShowConfirmContentDialog(System.String,System.String,System.String,System.String)"> <member name="M:Artemis.UI.Shared.Services.Interfaces.IWindowService.ShowConfirmContentDialog(System.String,System.String,System.String,System.String)">
<summary> <summary>
Shows a content dialog asking the user to confirm an action Shows a content dialog asking the user to confirm an action
</summary> </summary>
@ -441,37 +441,37 @@
<param name="cancel">The text of the cancel button, if <see langword="null"/> the cancel button will not be shown</param> <param name="cancel">The text of the cancel button, if <see langword="null"/> the cancel button will not be shown</param>
<returns>A task containing the result of the dialog, <see langword="true"/> if confirmed; otherwise <see langword="false"/></returns> <returns>A task containing the result of the dialog, <see langword="true"/> if confirmed; otherwise <see langword="false"/></returns>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Interfaces.IWindowService.CreateOpenFileDialog"> <member name="M:Artemis.UI.Shared.Services.Interfaces.IWindowService.CreateOpenFileDialog">
<summary> <summary>
Creates an open file dialog, use the fluent API to configure it Creates an open file dialog, use the fluent API to configure it
</summary> </summary>
<returns>The builder that can be used to configure the dialog</returns> <returns>The builder that can be used to configure the dialog</returns>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Interfaces.IWindowService.CreateSaveFileDialog"> <member name="M:Artemis.UI.Shared.Services.Interfaces.IWindowService.CreateSaveFileDialog">
<summary> <summary>
Creates a save file dialog, use the fluent API to configure it Creates a save file dialog, use the fluent API to configure it
</summary> </summary>
<returns>The builder that can be used to configure the dialog</returns> <returns>The builder that can be used to configure the dialog</returns>
</member> </member>
<member name="T:Artemis.UI.Avalonia.Shared.ViewModelBase"> <member name="T:Artemis.UI.Shared.ViewModelBase">
<summary> <summary>
Represents the base class for Artemis view models Represents the base class for Artemis view models
</summary> </summary>
</member> </member>
<member name="P:Artemis.UI.Avalonia.Shared.ViewModelBase.DisplayName"> <member name="P:Artemis.UI.Shared.ViewModelBase.DisplayName">
<summary> <summary>
Gets or sets the display name of the view model Gets or sets the display name of the view model
</summary> </summary>
</member> </member>
<member name="T:Artemis.UI.Avalonia.Shared.ActivatableViewModelBase"> <member name="T:Artemis.UI.Shared.ActivatableViewModelBase">
<summary> <summary>
Represents the base class for Artemis view models that are interested in the activated event Represents the base class for Artemis view models that are interested in the activated event
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.ActivatableViewModelBase.#ctor"> <member name="M:Artemis.UI.Shared.ActivatableViewModelBase.#ctor">
<inheritdoc /> <inheritdoc />
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.ActivatableViewModelBase.Dispose(System.Boolean)"> <member name="M:Artemis.UI.Shared.ActivatableViewModelBase.Dispose(System.Boolean)">
<summary> <summary>
Releases the unmanaged resources used by the object and optionally releases the managed resources. Releases the unmanaged resources used by the object and optionally releases the managed resources.
</summary> </summary>
@ -480,24 +480,24 @@
<see langword="false" /> to release only unmanaged resources. <see langword="false" /> to release only unmanaged resources.
</param> </param>
</member> </member>
<member name="P:Artemis.UI.Avalonia.Shared.ActivatableViewModelBase.Activator"> <member name="P:Artemis.UI.Shared.ActivatableViewModelBase.Activator">
<inheritdoc /> <inheritdoc />
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.ActivatableViewModelBase.Dispose"> <member name="M:Artemis.UI.Shared.ActivatableViewModelBase.Dispose">
<inheritdoc /> <inheritdoc />
</member> </member>
<member name="T:Artemis.UI.Avalonia.Shared.DialogViewModelBase`1"> <member name="T:Artemis.UI.Shared.DialogViewModelBase`1">
<summary> <summary>
Represents the base class for Artemis view models used to drive dialogs Represents the base class for Artemis view models used to drive dialogs
</summary> </summary>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.DialogViewModelBase`1.Close(`0)"> <member name="M:Artemis.UI.Shared.DialogViewModelBase`1.Close(`0)">
<summary> <summary>
Closes the dialog with the given <paramref name="result" /> Closes the dialog with the given <paramref name="result" />
</summary> </summary>
<param name="result">The result of the dialog</param> <param name="result">The result of the dialog</param>
</member> </member>
<member name="M:Artemis.UI.Avalonia.Shared.DialogViewModelBase`1.Cancel"> <member name="M:Artemis.UI.Shared.DialogViewModelBase`1.Cancel">
<summary> <summary>
Closes the dialog without a result Closes the dialog without a result
</summary> </summary>

View File

@ -1,117 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net5.0</TargetFramework>
<Nullable>enable</Nullable>
<OutputPath>bin\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DocumentationFile></DocumentationFile>
</PropertyGroup>
<ItemGroup>
<Folder Include="Models\" />
<AvaloniaResource Include="Assets\**" />
<Folder Include="Utilities\" />
</ItemGroup>
<ItemGroup>
<None Remove="Assets\Images\home-banner.png" />
<None Remove="Screens\SurfaceEditor\Views\ListDeviceView.xaml" />
<None Remove="Screens\SurfaceEditor\Views\SurfaceDeviceView.xaml" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Avalonia" Version="0.10.10" />
<PackageReference Include="Avalonia.Controls.PanAndZoom" Version="4.2.0" />
<PackageReference Include="Avalonia.Desktop" Version="0.10.10" />
<PackageReference Include="Avalonia.Diagnostics" Version="0.10.10" />
<PackageReference Include="Avalonia.ReactiveUI" Version="0.10.10" />
<PackageReference Include="Avalonia.Svg.Skia" Version="0.10.8.3" />
<PackageReference Include="FluentAvaloniaUI" Version="1.1.5" />
<PackageReference Include="Flurl.Http" Version="3.2.0" />
<PackageReference Include="Live.Avalonia" Version="1.3.1" />
<PackageReference Include="Material.Icons.Avalonia" Version="1.0.2" />
<PackageReference Include="Splat.Ninject" Version="13.1.30" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Artemis.Core\Artemis.Core.csproj" />
<ProjectReference Include="..\Artemis.UI.Avalonia.Shared\Artemis.UI.Avalonia.Shared.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Update="MainWindow.axaml.cs">
<DependentUpon>%(Filename)</DependentUpon>
</Compile>
<Compile Update="Screens\Device\Tabs\Views\DeviceInfoTabView.axaml.cs">
<DependentUpon>%(Filename)</DependentUpon>
</Compile>
<Compile Update="Screens\Device\Tabs\Views\DeviceLedsTabView.axaml.cs">
<DependentUpon>%(Filename)</DependentUpon>
</Compile>
<Compile Update="Screens\Device\Tabs\Views\DevicePropertiesTabView.axaml.cs">
<DependentUpon>%(Filename)</DependentUpon>
</Compile>
<Compile Update="Screens\Device\Tabs\Views\InputMappingsTabView.axaml.cs">
<DependentUpon>%(Filename)</DependentUpon>
</Compile>
<Compile Update="Screens\Plugins\Views\PluginFeatureView.axaml.cs">
<DependentUpon>%(Filename)</DependentUpon>
</Compile>
<Compile Update="Screens\Plugins\Views\PluginSettingsView.axaml.cs">
<DependentUpon>%(Filename)</DependentUpon>
</Compile>
<Compile Update="Screens\Plugins\Views\PluginSettingsWindowView.axaml.cs">
<DependentUpon>%(Filename)</DependentUpon>
</Compile>
<Compile Update="Screens\Root\Views\SidebarCategoryView.axaml.cs">
<DependentUpon>%(Filename)</DependentUpon>
</Compile>
<Compile Update="Screens\Root\Views\SidebarProfileConfigurationView.axaml.cs">
<DependentUpon>%(Filename)</DependentUpon>
</Compile>
<Compile Update="Screens\Root\Views\SidebarScreenView.axaml.cs">
<DependentUpon>%(Filename)</DependentUpon>
</Compile>
<Compile Update="Screens\Root\Views\SidebarView.axaml.cs">
<DependentUpon>%(Filename)</DependentUpon>
</Compile>
<Compile Update="Screens\Settings\Tabs\Views\PluginsTabView.axaml.cs">
<DependentUpon>%(Filename)</DependentUpon>
</Compile>
<Compile Update="Screens\Sidebar\Views\SidebarView.axaml.cs">
<DependentUpon>SidebarView.axaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Update="Screens\Root\Views\RootView.axaml.cs">
<DependentUpon>RootView.axaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
</ItemGroup>
<ItemGroup>
<UpToDateCheckInput Remove="Views\MainWindow.axaml" />
</ItemGroup>
<ItemGroup>
<Content Include="Assets\Images\Logo\bow-black.ico" />
<Content Include="Assets\Images\Logo\bow-white.ico" />
<Content Include="Assets\Images\Logo\bow.ico" />
</ItemGroup>
<ItemGroup>
<Page Include="Screens\SurfaceEditor\Views\ListDeviceView.xaml">
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Screens\SurfaceEditor\Views\SurfaceDeviceView.xaml">
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime>
<Generator>MSBuild:Compile</Generator>
</Page>
</ItemGroup>
<ItemGroup>
<Reference Include="RGB.NET.Core">
<HintPath>..\..\..\RGB.NET\bin\net5.0\RGB.NET.Core.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Resource Include="Assets\Images\Logo\bow-black.ico" />
<Resource Include="Assets\Images\Logo\bow-white.ico" />
<Resource Include="Assets\Images\Logo\bow-white.svg" />
<Resource Include="Assets\Images\Logo\bow.ico" />
<Resource Include="Assets\Images\Logo\bow.svg" />
</ItemGroup>
</Project>

View File

@ -1,8 +0,0 @@
using Artemis.UI.Avalonia.Shared;
namespace Artemis.UI.Avalonia.Screens.ProfileEditor.ViewModels
{
public class ProfileEditorViewModel : ActivatableViewModelBase
{
}
}

View File

@ -15,7 +15,9 @@ namespace Artemis.UI.Shared
/// </summary> /// </summary>
public abstract class PluginConfigurationDialog : IPluginConfigurationDialog public abstract class PluginConfigurationDialog : IPluginConfigurationDialog
{ {
/// <inheritdoc /> /// <summary>
/// The type of view model the tab contains
/// </summary>
public abstract Type Type { get; } public abstract Type Type { get; }
} }
} }

View File

@ -1,5 +0,0 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=screens_005Cprofileeditor_005Cconditions_005Cpredicate/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=services_005Cinterfaces/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=services_005Cremotemanagement/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=services_005Cremotemanagement_005Cinterfaces/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>

View File

@ -13,16 +13,20 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Artemis.UI.Shared", "Artemi
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Artemis.UI.Console", "Artemis.ConsoleUI\Artemis.UI.Console.csproj", "{ACCC50FD-611A-41C4-B58F-DDC80B47D0CF}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Artemis.UI.Console", "Artemis.ConsoleUI\Artemis.UI.Console.csproj", "{ACCC50FD-611A-41C4-B58F-DDC80B47D0CF}"
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Artemis.UI.Avalonia", "Artemis.UI.Avalonia\Artemis.UI.Avalonia.csproj", "{035CBB38-7B9E-4375-A39C-E9A5B01F23A5}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Artemis.UI", "Avalonia\Artemis.UI\Artemis.UI.csproj", "{035CBB38-7B9E-4375-A39C-E9A5B01F23A5}"
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Artemis.UI.Avalonia.Shared", "Artemis.UI.Avalonia.Shared\Artemis.UI.Avalonia.Shared.csproj", "{05A5AB0F-A303-4404-9623-4DB1C9AA1DA0}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Artemis.UI.Shared", "Avalonia\Artemis.UI.Shared\Artemis.UI.Shared.csproj", "{05A5AB0F-A303-4404-9623-4DB1C9AA1DA0}"
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Artemis.VisualScripting", "Artemis.VisualScripting\Artemis.VisualScripting.csproj", "{CF125C61-FD85-47EE-AF64-38B8F90DD50C}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Artemis.VisualScripting", "Artemis.VisualScripting\Artemis.VisualScripting.csproj", "{CF125C61-FD85-47EE-AF64-38B8F90DD50C}"
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WPF", "WPF", "{EE9A3079-7BFE-4E7B-A3D4-D3501C9A874A}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Avalonia", "Avalonia", "{960CAAC5-AA73-49F5-BF2F-DF2C789DF042}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Avalonia", "Avalonia", "{960CAAC5-AA73-49F5-BF2F-DF2C789DF042}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Artemis.UI.Windows", "Avalonia\Artemis.UI.Windows\Artemis.UI.Windows.csproj", "{DE45A288-9320-461F-BE2A-26DFE3817216}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Artemis.UI.Linux", "Avalonia\Artemis.UI.Linux\Artemis.UI.Linux.csproj", "{9012C8E2-3BEC-42F5-8270-7352A5922B04}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Artemis.UI.MacOS", "Avalonia\Artemis.UI.MacOS\Artemis.UI.MacOS.csproj", "{2F5F16DC-FACF-4559-9882-37C2949814C7}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
@ -83,6 +87,30 @@ Global
{CF125C61-FD85-47EE-AF64-38B8F90DD50C}.Release|Any CPU.ActiveCfg = Release|x64 {CF125C61-FD85-47EE-AF64-38B8F90DD50C}.Release|Any CPU.ActiveCfg = Release|x64
{CF125C61-FD85-47EE-AF64-38B8F90DD50C}.Release|x64.ActiveCfg = Release|x64 {CF125C61-FD85-47EE-AF64-38B8F90DD50C}.Release|x64.ActiveCfg = Release|x64
{CF125C61-FD85-47EE-AF64-38B8F90DD50C}.Release|x64.Build.0 = Release|x64 {CF125C61-FD85-47EE-AF64-38B8F90DD50C}.Release|x64.Build.0 = Release|x64
{DE45A288-9320-461F-BE2A-26DFE3817216}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DE45A288-9320-461F-BE2A-26DFE3817216}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DE45A288-9320-461F-BE2A-26DFE3817216}.Debug|x64.ActiveCfg = Debug|Any CPU
{DE45A288-9320-461F-BE2A-26DFE3817216}.Debug|x64.Build.0 = Debug|Any CPU
{DE45A288-9320-461F-BE2A-26DFE3817216}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DE45A288-9320-461F-BE2A-26DFE3817216}.Release|Any CPU.Build.0 = Release|Any CPU
{DE45A288-9320-461F-BE2A-26DFE3817216}.Release|x64.ActiveCfg = Release|Any CPU
{DE45A288-9320-461F-BE2A-26DFE3817216}.Release|x64.Build.0 = Release|Any CPU
{9012C8E2-3BEC-42F5-8270-7352A5922B04}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9012C8E2-3BEC-42F5-8270-7352A5922B04}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9012C8E2-3BEC-42F5-8270-7352A5922B04}.Debug|x64.ActiveCfg = Debug|Any CPU
{9012C8E2-3BEC-42F5-8270-7352A5922B04}.Debug|x64.Build.0 = Debug|Any CPU
{9012C8E2-3BEC-42F5-8270-7352A5922B04}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9012C8E2-3BEC-42F5-8270-7352A5922B04}.Release|Any CPU.Build.0 = Release|Any CPU
{9012C8E2-3BEC-42F5-8270-7352A5922B04}.Release|x64.ActiveCfg = Release|Any CPU
{9012C8E2-3BEC-42F5-8270-7352A5922B04}.Release|x64.Build.0 = Release|Any CPU
{2F5F16DC-FACF-4559-9882-37C2949814C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2F5F16DC-FACF-4559-9882-37C2949814C7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2F5F16DC-FACF-4559-9882-37C2949814C7}.Debug|x64.ActiveCfg = Debug|Any CPU
{2F5F16DC-FACF-4559-9882-37C2949814C7}.Debug|x64.Build.0 = Debug|Any CPU
{2F5F16DC-FACF-4559-9882-37C2949814C7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2F5F16DC-FACF-4559-9882-37C2949814C7}.Release|Any CPU.Build.0 = Release|Any CPU
{2F5F16DC-FACF-4559-9882-37C2949814C7}.Release|x64.ActiveCfg = Release|Any CPU
{2F5F16DC-FACF-4559-9882-37C2949814C7}.Release|x64.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
@ -93,6 +121,9 @@ Global
{035CBB38-7B9E-4375-A39C-E9A5B01F23A5} = {960CAAC5-AA73-49F5-BF2F-DF2C789DF042} {035CBB38-7B9E-4375-A39C-E9A5B01F23A5} = {960CAAC5-AA73-49F5-BF2F-DF2C789DF042}
{05A5AB0F-A303-4404-9623-4DB1C9AA1DA0} = {960CAAC5-AA73-49F5-BF2F-DF2C789DF042} {05A5AB0F-A303-4404-9623-4DB1C9AA1DA0} = {960CAAC5-AA73-49F5-BF2F-DF2C789DF042}
{CF125C61-FD85-47EE-AF64-38B8F90DD50C} = {EE9A3079-7BFE-4E7B-A3D4-D3501C9A874A} {CF125C61-FD85-47EE-AF64-38B8F90DD50C} = {EE9A3079-7BFE-4E7B-A3D4-D3501C9A874A}
{DE45A288-9320-461F-BE2A-26DFE3817216} = {960CAAC5-AA73-49F5-BF2F-DF2C789DF042}
{9012C8E2-3BEC-42F5-8270-7352A5922B04} = {960CAAC5-AA73-49F5-BF2F-DF2C789DF042}
{2F5F16DC-FACF-4559-9882-37C2949814C7} = {960CAAC5-AA73-49F5-BF2F-DF2C789DF042}
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C203080A-4473-4CC2-844B-F552EA43D66A} SolutionGuid = {C203080A-4473-4CC2-844B-F552EA43D66A}

454
src/Avalonia/Artemis.UI.Linux/.gitignore vendored Normal file
View File

@ -0,0 +1,454 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Mono auto generated files
mono_crash.*
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Ww][Ii][Nn]32/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
[Ll]ogs/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# Visual Studio 2017 auto generated files
Generated\ Files/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUnit
*.VisualState.xml
TestResult.xml
nunit-*.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# Benchmark Results
BenchmarkDotNet.Artifacts/
# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
# Tye
.tye/
# ASP.NET Scaffolding
ScaffoldingReadMe.txt
# StyleCop
StyleCopReport.xml
# Files built by Visual Studio
*_i.c
*_p.c
*_h.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*_wpftmp.csproj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# Visual Studio Trace Files
*.e2e
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json
# Coverlet is a free, cross platform Code Coverage Tool
coverage*.json
coverage*.xml
coverage*.info
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# NuGet Symbol Packages
*.snupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
*.appxbundle
*.appxupload
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!?*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
*- [Bb]ackup.rdl
*- [Bb]ackup ([0-9]).rdl
*- [Bb]ackup ([0-9][0-9]).rdl
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# CodeRush personal settings
.cr/personal
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
# Tabs Studio
*.tss
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# OpenCover UI analysis results
OpenCover/
# Azure Stream Analytics local run output
ASALocalRun/
# MSBuild Binary and Structured Log
*.binlog
# NVidia Nsight GPU debugger configuration file
*.nvuser
# MFractors (Xamarin productivity tool) working folder
.mfractor/
# Local History for Visual Studio
.localhistory/
# BeatPulse healthcheck temp database
healthchecksdb
# Backup folder for Package Reference Convert tool in Visual Studio 2017
MigrationBackup/
# Ionide (cross platform F# VS Code tools) working folder
.ionide/
# Fody - auto-generated XML schema
FodyWeavers.xsd
##
## Visual studio for Mac
##
# globs
Makefile.in
*.userprefs
*.usertasks
config.make
config.status
aclocal.m4
install-sh
autom4te.cache/
*.tar.gz
tarballs/
test-results/
# Mac bundle stuff
*.dmg
*.app
# content below from: https://github.com/github/gitignore/blob/master/Global/macOS.gitignore
# General
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
# content below from: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore
# Windows thumbnail cache files
Thumbs.db
ehthumbs.db
ehthumbs_vista.db
# Dump file
*.stackdump
# Folder config file
[Dd]esktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp
# Windows shortcuts
*.lnk
# JetBrains Rider
.idea/
*.sln.iml
##
## Visual Studio Code
##
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json

View File

@ -0,0 +1,13 @@
<Application xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Artemis.UI.Linux"
xmlns:ui="clr-namespace:Artemis.UI;assembly=Artemis.UI"
x:Class="Artemis.UI.Linux.App">
<Application.DataTemplates>
<ui:ViewLocator/>
</Application.DataTemplates>
<Application.Styles>
<FluentTheme Mode="Light"/>
</Application.Styles>
</Application>

View File

@ -0,0 +1,50 @@
using Artemis.Core.Ninject;
using Artemis.UI.Ninject;
using Artemis.UI.Screens.Root.ViewModels;
using Artemis.UI.Shared.Ninject;
using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
using Avalonia.Threading;
using Ninject;
using ReactiveUI;
using Splat.Ninject;
namespace Artemis.UI.Linux
{
public class App : Application
{
private StandardKernel _kernel = null!;
public override void Initialize()
{
InitializeNinject();
RxApp.MainThreadScheduler = AvaloniaScheduler.Instance;
AvaloniaXamlLoader.Load(this);
}
public override void OnFrameworkInitializationCompleted()
{
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
desktop.MainWindow = new MainWindow
{
DataContext = _kernel.Get<RootViewModel>()
};
base.OnFrameworkInitializationCompleted();
}
private void InitializeNinject()
{
_kernel = new StandardKernel();
_kernel.Settings.InjectNonPublic = true;
_kernel.Load<CoreModule>();
_kernel.Load<UIModule>();
_kernel.Load<SharedUIModule>();
_kernel.UseNinjectDependencyResolver();
}
}
}

View File

@ -0,0 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net5.0</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<AvaloniaResource Include="Assets\**" />
<None Remove=".gitignore" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Avalonia" Version="0.10.10" />
<PackageReference Include="Avalonia.Desktop" Version="0.10.10" />
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="0.10.10" />
<PackageReference Include="Avalonia.ReactiveUI" Version="0.10.10" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Artemis.Core\Artemis.Core.csproj" />
<ProjectReference Include="..\Artemis.UI\Artemis.UI.csproj" />
</ItemGroup>
</Project>

View File

Before

Width:  |  Height:  |  Size: 172 KiB

After

Width:  |  Height:  |  Size: 172 KiB

View File

@ -1,26 +1,24 @@
using Avalonia; using System;
using Avalonia;
using Avalonia.ReactiveUI; using Avalonia.ReactiveUI;
namespace Artemis.UI.Avalonia namespace Artemis.UI.Linux
{ {
internal class Program internal class Program
{ {
// Initialization code. Don't use any Avalonia, third-party APIs or any // Initialization code. Don't use any Avalonia, third-party APIs or any
// SynchronizationContext-reliant code before AppMain is called: things aren't initialized // SynchronizationContext-reliant code before AppMain is called: things aren't initialized
// yet and stuff might break. // yet and stuff might break.
[STAThread]
public static void Main(string[] args) public static void Main(string[] args)
{ {
BuildAvaloniaApp() BuildAvaloniaApp().StartWithClassicDesktopLifetime(args);
.StartWithClassicDesktopLifetime(args);
} }
// Avalonia configuration, don't remove; also used by visual designer. // Avalonia configuration, don't remove; also used by visual designer.
public static AppBuilder BuildAvaloniaApp() public static AppBuilder BuildAvaloniaApp()
{ {
return AppBuilder.Configure<App>() return AppBuilder.Configure<App>().UsePlatformDetect().LogToTrace().UseReactiveUI();
.UsePlatformDetect()
.LogToTrace()
.UseReactiveUI();
} }
} }
} }

File diff suppressed because it is too large Load Diff

454
src/Avalonia/Artemis.UI.MacOS/.gitignore vendored Normal file
View File

@ -0,0 +1,454 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Mono auto generated files
mono_crash.*
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Ww][Ii][Nn]32/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
[Ll]ogs/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# Visual Studio 2017 auto generated files
Generated\ Files/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUnit
*.VisualState.xml
TestResult.xml
nunit-*.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# Benchmark Results
BenchmarkDotNet.Artifacts/
# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
# Tye
.tye/
# ASP.NET Scaffolding
ScaffoldingReadMe.txt
# StyleCop
StyleCopReport.xml
# Files built by Visual Studio
*_i.c
*_p.c
*_h.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*_wpftmp.csproj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# Visual Studio Trace Files
*.e2e
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json
# Coverlet is a free, cross platform Code Coverage Tool
coverage*.json
coverage*.xml
coverage*.info
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# NuGet Symbol Packages
*.snupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
*.appxbundle
*.appxupload
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!?*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
*- [Bb]ackup.rdl
*- [Bb]ackup ([0-9]).rdl
*- [Bb]ackup ([0-9][0-9]).rdl
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# CodeRush personal settings
.cr/personal
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
# Tabs Studio
*.tss
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# OpenCover UI analysis results
OpenCover/
# Azure Stream Analytics local run output
ASALocalRun/
# MSBuild Binary and Structured Log
*.binlog
# NVidia Nsight GPU debugger configuration file
*.nvuser
# MFractors (Xamarin productivity tool) working folder
.mfractor/
# Local History for Visual Studio
.localhistory/
# BeatPulse healthcheck temp database
healthchecksdb
# Backup folder for Package Reference Convert tool in Visual Studio 2017
MigrationBackup/
# Ionide (cross platform F# VS Code tools) working folder
.ionide/
# Fody - auto-generated XML schema
FodyWeavers.xsd
##
## Visual studio for Mac
##
# globs
Makefile.in
*.userprefs
*.usertasks
config.make
config.status
aclocal.m4
install-sh
autom4te.cache/
*.tar.gz
tarballs/
test-results/
# Mac bundle stuff
*.dmg
*.app
# content below from: https://github.com/github/gitignore/blob/master/Global/macOS.gitignore
# General
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
# content below from: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore
# Windows thumbnail cache files
Thumbs.db
ehthumbs.db
ehthumbs_vista.db
# Dump file
*.stackdump
# Folder config file
[Dd]esktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp
# Windows shortcuts
*.lnk
# JetBrains Rider
.idea/
*.sln.iml
##
## Visual Studio Code
##
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json

View File

@ -0,0 +1,13 @@
<Application xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Artemis.UI.MacOS"
xmlns:ui="clr-namespace:Artemis.UI;assembly=Artemis.UI"
x:Class="Artemis.UI.MacOS.App">
<Application.DataTemplates>
<ui:ViewLocator/>
</Application.DataTemplates>
<Application.Styles>
<FluentTheme Mode="Light"/>
</Application.Styles>
</Application>

View File

@ -0,0 +1,50 @@
using Artemis.Core.Ninject;
using Artemis.UI.Ninject;
using Artemis.UI.Screens.Root.ViewModels;
using Artemis.UI.Shared.Ninject;
using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
using Avalonia.Threading;
using Ninject;
using ReactiveUI;
using Splat.Ninject;
namespace Artemis.UI.MacOS
{
public class App : Application
{
private StandardKernel _kernel = null!;
public override void Initialize()
{
InitializeNinject();
RxApp.MainThreadScheduler = AvaloniaScheduler.Instance;
AvaloniaXamlLoader.Load(this);
}
public override void OnFrameworkInitializationCompleted()
{
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
desktop.MainWindow = new MainWindow
{
DataContext = _kernel.Get<RootViewModel>()
};
base.OnFrameworkInitializationCompleted();
}
private void InitializeNinject()
{
_kernel = new StandardKernel();
_kernel.Settings.InjectNonPublic = true;
_kernel.Load<CoreModule>();
_kernel.Load<UIModule>();
_kernel.Load<SharedUIModule>();
_kernel.UseNinjectDependencyResolver();
}
}
}

View File

@ -0,0 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net5.0</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<AvaloniaResource Include="Assets\**" />
<None Remove=".gitignore" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Avalonia" Version="0.10.10" />
<PackageReference Include="Avalonia.Desktop" Version="0.10.10" />
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="0.10.10" />
<PackageReference Include="Avalonia.ReactiveUI" Version="0.10.10" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Artemis.Core\Artemis.Core.csproj" />
<ProjectReference Include="..\Artemis.UI\Artemis.UI.csproj" />
</ItemGroup>
</Project>

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

View File

@ -0,0 +1,24 @@
using System;
using Avalonia;
using Avalonia.ReactiveUI;
namespace Artemis.UI.MacOS
{
internal class Program
{
// Initialization code. Don't use any Avalonia, third-party APIs or any
// SynchronizationContext-reliant code before AppMain is called: things aren't initialized
// yet and stuff might break.
[STAThread]
public static void Main(string[] args)
{
BuildAvaloniaApp().StartWithClassicDesktopLifetime(args);
}
// Avalonia configuration, don't remove; also used by visual designer.
public static AppBuilder BuildAvaloniaApp()
{
return AppBuilder.Configure<App>().UsePlatformDetect().LogToTrace().UseReactiveUI();
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,506 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Artemis.UI.Shared</name>
</assembly>
<members>
<member name="F:Artemis.UI.Avalonia.Shared.Controls.ArtemisIcon.IconProperty">
<summary>
Gets or sets the currently displayed icon as either a <see cref="T:Material.Icons.MaterialIconKind" /> or an <see cref="T:System.Uri" /> pointing
to an SVG
</summary>
</member>
<member name="P:Artemis.UI.Avalonia.Shared.Controls.ArtemisIcon.Icon">
<summary>
Gets or sets the currently displayed icon as either a <see cref="T:Material.Icons.MaterialIconKind" /> or an <see cref="T:System.Uri" /> pointing
to an SVG
</summary>
</member>
<member name="T:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer">
<summary>
Visualizes an <see cref="T:Artemis.Core.ArtemisDevice" /> with optional per-LED colors
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.#ctor">
<inheritdoc />
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.Render(Avalonia.Media.DrawingContext)">
<inheritdoc />
</member>
<member name="E:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.LedClicked">
<summary>
Occurs when a LED of the device has been clicked
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.OnLedClicked(Artemis.UI.Avalonia.Shared.Events.LedClickedEventArgs)">
<summary>
Invokes the <see cref="E:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.LedClicked" /> event
</summary>
<param name="e"></param>
</member>
<member name="F:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.DeviceProperty">
<summary>
Gets or sets the <see cref="T:Artemis.Core.ArtemisDevice" /> to display
</summary>
</member>
<member name="P:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.Device">
<summary>
Gets or sets the <see cref="T:Artemis.Core.ArtemisDevice" /> to display
</summary>
</member>
<member name="F:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.ShowColorsProperty">
<summary>
Gets or sets boolean indicating whether or not to show per-LED colors
</summary>
</member>
<member name="P:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.ShowColors">
<summary>
Gets or sets a boolean indicating whether or not to show per-LED colors
</summary>
</member>
<member name="F:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.HighlightedLedsProperty">
<summary>
Gets or sets a list of LEDs to highlight
</summary>
</member>
<member name="P:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.HighlightedLeds">
<summary>
Gets or sets a list of LEDs to highlight
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.OnAttachedToLogicalTree(Avalonia.LogicalTree.LogicalTreeAttachmentEventArgs)">
<inheritdoc />
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.OnDetachedFromLogicalTree(Avalonia.LogicalTree.LogicalTreeAttachmentEventArgs)">
<inheritdoc />
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Controls.DeviceVisualizer.MeasureOverride(Avalonia.Size)">
<inheritdoc />
</member>
<member name="F:Artemis.UI.Avalonia.Shared.Controls.EnumComboBox.ValueProperty">
<summary>
Gets or sets the currently selected value
</summary>
</member>
<member name="P:Artemis.UI.Avalonia.Shared.Controls.EnumComboBox.Value">
<summary>
Gets or sets the currently selected value
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Controls.EnumComboBox.OnAttachedToLogicalTree(Avalonia.LogicalTree.LogicalTreeAttachmentEventArgs)">
<inheritdoc />
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Controls.EnumComboBox.OnDetachedFromLogicalTree(Avalonia.LogicalTree.LogicalTreeAttachmentEventArgs)">
<inheritdoc />
</member>
<member name="F:Artemis.UI.Avalonia.Shared.Controls.ProfileConfigurationIcon.ConfigurationIconProperty">
<summary>
Gets or sets the <see cref="T:Artemis.Core.ProfileConfigurationIcon" /> to display
</summary>
</member>
<member name="P:Artemis.UI.Avalonia.Shared.Controls.ProfileConfigurationIcon.ConfigurationIcon">
<summary>
Gets or sets the <see cref="T:Artemis.Core.ProfileConfigurationIcon" /> to display
</summary>
</member>
<member name="T:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle">
<summary>
Visualizes an <see cref="T:Artemis.Core.ArtemisDevice" /> with optional per-LED colors
</summary>
</member>
<member name="F:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.BackgroundProperty">
<summary>
Defines the <see cref="P:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.Background" /> property.
</summary>
</member>
<member name="F:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.BorderBrushProperty">
<summary>
Defines the <see cref="P:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.BorderBrush" /> property.
</summary>
</member>
<member name="F:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.BorderThicknessProperty">
<summary>
Defines the <see cref="P:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.BorderBrush" /> property.
</summary>
</member>
<member name="F:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.InputElementProperty">
<summary>
Defines the <see cref="M:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.get_InputElement" /> property.
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.#ctor">
<inheritdoc />
</member>
<member name="P:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.Background">
<summary>
Gets or sets a brush used to paint the control's background.
</summary>
</member>
<member name="P:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.BorderBrush">
<summary>
Gets or sets a brush used to paint the control's border
</summary>
</member>
<member name="P:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.BorderThickness">
<summary>
Gets or sets the width of the control's border
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.OnAttachedToVisualTree(Avalonia.VisualTreeAttachmentEventArgs)">
<inheritdoc />
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Controls.SelectionRectangle.OnDetachedFromVisualTree(Avalonia.VisualTreeAttachmentEventArgs)">
<inheritdoc />
</member>
<member name="T:Artemis.UI.Avalonia.Shared.Converters.ColorToSKColorConverter">
<summary>
Converts <see cref="T:Avalonia.Media.Color" /> into <see cref="T:SkiaSharp.SKColor" />.
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Converters.ColorToSKColorConverter.Convert(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
<inheritdoc />
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Converters.ColorToSKColorConverter.ConvertBack(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
<inheritdoc />
</member>
<member name="T:Artemis.UI.Avalonia.Shared.Converters.SKColorToColorConverter">
<summary>
Converts <see cref="T:SkiaSharp.SKColor" /> into <see cref="T:Avalonia.Media.Color" />.
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Converters.SKColorToColorConverter.Convert(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
<inheritdoc />
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Converters.SKColorToColorConverter.ConvertBack(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
<inheritdoc />
</member>
<member name="T:Artemis.UI.Avalonia.Shared.Events.DataModelInputDynamicEventArgs">
<summary>
Provides data about selection events raised by <see cref="!:DataModelDynamicViewModel" />
</summary>
</member>
<member name="P:Artemis.UI.Avalonia.Shared.Events.DataModelInputDynamicEventArgs.DataModelPath">
<summary>
Gets the data model path that was selected
</summary>
</member>
<member name="T:Artemis.UI.Avalonia.Shared.Events.DataModelInputStaticEventArgs">
<summary>
Provides data about submit events raised by <see cref="!:DataModelStaticViewModel" />
</summary>
</member>
<member name="P:Artemis.UI.Avalonia.Shared.Events.DataModelInputStaticEventArgs.Value">
<summary>
The value that was submitted
</summary>
</member>
<member name="T:Artemis.UI.Avalonia.Shared.Events.LedClickedEventArgs">
<summary>
Provides data on LED click events raised by the device visualizer
</summary>
</member>
<member name="P:Artemis.UI.Avalonia.Shared.Events.LedClickedEventArgs.Device">
<summary>
The device that was clicked
</summary>
</member>
<member name="P:Artemis.UI.Avalonia.Shared.Events.LedClickedEventArgs.Led">
<summary>
The LED that was clicked
</summary>
</member>
<member name="T:Artemis.UI.Avalonia.Shared.Events.ProfileConfigurationEventArgs">
<summary>
Provides data on profile related events raised by the profile editor
</summary>
</member>
<member name="P:Artemis.UI.Avalonia.Shared.Events.ProfileConfigurationEventArgs.ProfileConfiguration">
<summary>
Gets the profile the event was raised for
</summary>
</member>
<member name="P:Artemis.UI.Avalonia.Shared.Events.ProfileConfigurationEventArgs.PreviousProfileConfiguration">
<summary>
If applicable, the previous active profile before the event was raised
</summary>
</member>
<member name="T:Artemis.UI.Avalonia.Shared.Events.RenderProfileElementEventArgs">
<summary>
Provides data on profile element related events raised by the profile editor
</summary>
</member>
<member name="P:Artemis.UI.Avalonia.Shared.Events.RenderProfileElementEventArgs.RenderProfileElement">
<summary>
Gets the profile element the event was raised for
</summary>
</member>
<member name="P:Artemis.UI.Avalonia.Shared.Events.RenderProfileElementEventArgs.PreviousRenderProfileElement">
<summary>
If applicable, the previous active profile element before the event was raised
</summary>
</member>
<member name="T:Artemis.UI.Avalonia.Shared.Exceptions.ArtemisSharedUIException">
<summary>
Represents errors that occur within the Artemis Shared UI library
</summary>
</member>
<member name="T:Artemis.UI.Avalonia.Shared.Ninject.SharedUIModule">
<summary>
The main <see cref="T:Ninject.Modules.NinjectModule" /> of the Artemis Shared UI toolkit that binds all services
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Ninject.SharedUIModule.Load">
<inheritdoc />
</member>
<member name="T:Artemis.UI.Avalonia.Shared.PluginConfigurationDialog`1">
<inheritdoc />
</member>
<member name="P:Artemis.UI.Avalonia.Shared.PluginConfigurationDialog`1.Type">
<inheritdoc />
</member>
<member name="T:Artemis.UI.Avalonia.Shared.PluginConfigurationDialog">
<summary>
Describes a configuration dialog for a specific plugin
</summary>
</member>
<member name="P:Artemis.UI.Avalonia.Shared.PluginConfigurationDialog.Type">
<inheritdoc />
</member>
<member name="T:Artemis.UI.Avalonia.Shared.PluginConfigurationViewModel">
<summary>
Represents a view model for a plugin configuration window
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.PluginConfigurationViewModel.#ctor(Artemis.Core.Plugin)">
<summary>
Creates a new instance of the <see cref="T:Artemis.UI.Avalonia.Shared.PluginConfigurationViewModel" /> class
</summary>
<param name="plugin"></param>
</member>
<member name="P:Artemis.UI.Avalonia.Shared.PluginConfigurationViewModel.Plugin">
<summary>
Gets the plugin this configuration view model is associated with
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.PluginConfigurationViewModel.Close">
<summary>
Closes the window hosting the view model
</summary>
</member>
<member name="E:Artemis.UI.Avalonia.Shared.PluginConfigurationViewModel.CloseRequested">
<summary>
Occurs when the the window hosting the view model should close
</summary>
</member>
<member name="T:Artemis.UI.Avalonia.Shared.Services.Builders.FileDialogFilterBuilder">
<summary>
Represents a builder that can create a <see cref="T:Avalonia.Controls.FileDialogFilter" />.
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.FileDialogFilterBuilder.WithName(System.String)">
<summary>
Sets the name of the filter
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.FileDialogFilterBuilder.WithExtension(System.String)">
<summary>
Adds the provided extension to the filter
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.NotificationBuilder.HavingButton(System.Action{Artemis.UI.Avalonia.Shared.Services.Builders.NotificationButtonBuilder})">
<summary>
Add a filter to the dialog
</summary>
</member>
<member name="T:Artemis.UI.Avalonia.Shared.Services.Builders.OpenFileDialogBuilder">
<summary>
Represents a builder that can create a <see cref="T:Avalonia.Controls.OpenFileDialog" />.
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.OpenFileDialogBuilder.WithAllowMultiple">
<summary>
Indicate that the user can select multiple files.
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.OpenFileDialogBuilder.WithTitle(System.String)">
<summary>
Set the title of the dialog
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.OpenFileDialogBuilder.WithDirectory(System.String)">
<summary>
Set the initial directory of the dialog
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.OpenFileDialogBuilder.WithInitialFileName(System.String)">
<summary>
Set the initial file name of the dialog
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.OpenFileDialogBuilder.HavingFilter(System.Action{Artemis.UI.Avalonia.Shared.Services.Builders.FileDialogFilterBuilder})">
<summary>
Add a filter to the dialog
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.OpenFileDialogBuilder.ShowAsync">
<summary>
Shows the file dialog
</summary>
<returns>
A task that on completion returns an array containing the full path to the selected
files, or null if the dialog was canceled.
</returns>
</member>
<member name="T:Artemis.UI.Avalonia.Shared.Services.Builders.SaveFileDialogBuilder">
<summary>
Represents a builder that can create a <see cref="T:Avalonia.Controls.SaveFileDialog" />.
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.SaveFileDialogBuilder.WithTitle(System.String)">
<summary>
Set the title of the dialog
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.SaveFileDialogBuilder.WithDirectory(System.String)">
<summary>
Set the initial directory of the dialog
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.SaveFileDialogBuilder.WithInitialFileName(System.String)">
<summary>
Set the initial file name of the dialog
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.SaveFileDialogBuilder.WithDefaultExtension(System.String)">
<summary>
Set the default extension of the dialog
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.SaveFileDialogBuilder.HavingFilter(System.Action{Artemis.UI.Avalonia.Shared.Services.Builders.FileDialogFilterBuilder})">
<summary>
Add a filter to the dialog
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Builders.SaveFileDialogBuilder.ShowAsync">
<summary>
Shows the save file dialog.
</summary>
<returns>
A task that on completion contains the full path of the save location, or null if the
dialog was canceled.
</returns>
</member>
<member name="T:Artemis.UI.Avalonia.Shared.Services.Interfaces.IArtemisSharedUIService">
<summary>
Represents a service provided by the Artemis Shared UI library
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Interfaces.IWindowService.ShowWindow``1(System.ValueTuple{System.String,System.Object}[])">
<summary>
Creates a view model instance of type <typeparamref name="TViewModel" /> and shows its corresponding View as a window
</summary>
<typeparam name="TViewModel">The type of view model to create</typeparam>
<returns>The created view model</returns>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Interfaces.IWindowService.ShowWindow(System.Object)">
<summary>
Given a ViewModel, show its corresponding View as a window
</summary>
<param name="viewModel">ViewModel to show the View for</param>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Interfaces.IWindowService.ShowExceptionDialog(System.String,System.Exception)">
<summary>
Shows a dialog displaying the given exception
</summary>
<param name="title">The title of the dialog</param>
<param name="exception">The exception to display</param>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Interfaces.IWindowService.ShowDialogAsync``1(Artemis.UI.Avalonia.Shared.DialogViewModelBase{``0})">
<summary>
Given an existing ViewModel, show its corresponding View as a Dialog
</summary>
<typeparam name="TResult">The return type</typeparam>
<param name="viewModel">ViewModel to show the View for</param>
<returns>A task containing the return value of type <typeparamref name="TResult" /></returns>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Interfaces.IWindowService.ShowDialogAsync``2(System.ValueTuple{System.String,System.Object}[])">
<summary>
Creates a view model instance of type <typeparamref name="TViewModel"/> and shows its corresponding View as a Dialog
</summary>
<typeparam name="TViewModel">The view model type</typeparam>
<typeparam name="TResult">The return type</typeparam>
<returns>A task containing the return value of type <typeparamref name="TResult" /></returns>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Interfaces.IWindowService.ShowConfirmContentDialog(System.String,System.String,System.String,System.String)">
<summary>
Shows a content dialog asking the user to confirm an action
</summary>
<param name="title">The title of the dialog</param>
<param name="message">The message of the dialog</param>
<param name="confirm">The text of the confirm button</param>
<param name="cancel">The text of the cancel button, if <see langword="null"/> the cancel button will not be shown</param>
<returns>A task containing the result of the dialog, <see langword="true"/> if confirmed; otherwise <see langword="false"/></returns>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Interfaces.IWindowService.CreateOpenFileDialog">
<summary>
Creates an open file dialog, use the fluent API to configure it
</summary>
<returns>The builder that can be used to configure the dialog</returns>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.Services.Interfaces.IWindowService.CreateSaveFileDialog">
<summary>
Creates a save file dialog, use the fluent API to configure it
</summary>
<returns>The builder that can be used to configure the dialog</returns>
</member>
<member name="T:Artemis.UI.Avalonia.Shared.ViewModelBase">
<summary>
Represents the base class for Artemis view models
</summary>
</member>
<member name="P:Artemis.UI.Avalonia.Shared.ViewModelBase.DisplayName">
<summary>
Gets or sets the display name of the view model
</summary>
</member>
<member name="T:Artemis.UI.Avalonia.Shared.ActivatableViewModelBase">
<summary>
Represents the base class for Artemis view models that are interested in the activated event
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.ActivatableViewModelBase.#ctor">
<inheritdoc />
</member>
<member name="M:Artemis.UI.Avalonia.Shared.ActivatableViewModelBase.Dispose(System.Boolean)">
<summary>
Releases the unmanaged resources used by the object and optionally releases the managed resources.
</summary>
<param name="disposing">
<see langword="true" /> to release both managed and unmanaged resources;
<see langword="false" /> to release only unmanaged resources.
</param>
</member>
<member name="P:Artemis.UI.Avalonia.Shared.ActivatableViewModelBase.Activator">
<inheritdoc />
</member>
<member name="M:Artemis.UI.Avalonia.Shared.ActivatableViewModelBase.Dispose">
<inheritdoc />
</member>
<member name="T:Artemis.UI.Avalonia.Shared.DialogViewModelBase`1">
<summary>
Represents the base class for Artemis view models used to drive dialogs
</summary>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.DialogViewModelBase`1.Close(`0)">
<summary>
Closes the dialog with the given <paramref name="result" />
</summary>
<param name="result">The result of the dialog</param>
</member>
<member name="M:Artemis.UI.Avalonia.Shared.DialogViewModelBase`1.Cancel">
<summary>
Closes the dialog without a result
</summary>
</member>
</members>
</doc>

View File

@ -21,14 +21,14 @@
<PackageReference Include="Material.Icons.Avalonia" Version="1.0.2" /> <PackageReference Include="Material.Icons.Avalonia" Version="1.0.2" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Artemis.Core\Artemis.Core.csproj" /> <ProjectReference Include="..\..\Artemis.Core\Artemis.Core.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Material.Icons.Avalonia"> <Reference Include="Material.Icons.Avalonia">
<HintPath>..\..\..\..\Users\Robert\.nuget\packages\material.icons.avalonia\1.0.2\lib\netstandard2.0\Material.Icons.Avalonia.dll</HintPath> <HintPath>..\..\..\..\Users\Robert\.nuget\packages\material.icons.avalonia\1.0.2\lib\netstandard2.0\Material.Icons.Avalonia.dll</HintPath>
</Reference> </Reference>
<Reference Include="RGB.NET.Core"> <Reference Include="RGB.NET.Core">
<HintPath>..\..\..\RGB.NET\bin\net5.0\RGB.NET.Core.dll</HintPath> <HintPath>..\..\..\..\RGB.NET\bin\net5.0\RGB.NET.Core.dll</HintPath>
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -0,0 +1,3 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=plugins/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=services_005Cwindowservice/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>

View File

@ -3,6 +3,6 @@
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"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Avalonia.Shared.Controls.ArtemisIcon"> x:Class="Artemis.UI.Shared.Controls.ArtemisIcon">
Welcome to Avalonia! Welcome to Avalonia!
</UserControl> </UserControl>

View File

@ -1,7 +1,6 @@
using System; using System;
using Avalonia; using Avalonia;
using Avalonia.Controls; using Avalonia.Controls;
using Avalonia.Layout;
using Avalonia.LogicalTree; using Avalonia.LogicalTree;
using Avalonia.Markup.Xaml; using Avalonia.Markup.Xaml;
using Avalonia.Media.Imaging; using Avalonia.Media.Imaging;
@ -9,7 +8,7 @@ using Avalonia.Svg.Skia;
using Material.Icons; using Material.Icons;
using Material.Icons.Avalonia; using Material.Icons.Avalonia;
namespace Artemis.UI.Avalonia.Shared.Controls namespace Artemis.UI.Shared.Controls
{ {
public partial class ArtemisIcon : UserControl public partial class ArtemisIcon : UserControl
{ {

View File

@ -6,7 +6,7 @@ using System.IO;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Artemis.Core; using Artemis.Core;
using Artemis.UI.Avalonia.Shared.Events; using Artemis.UI.Shared.Events;
using Avalonia; using Avalonia;
using Avalonia.Controls; using Avalonia.Controls;
using Avalonia.Input; using Avalonia.Input;
@ -18,7 +18,7 @@ using Avalonia.Rendering;
using Avalonia.Threading; using Avalonia.Threading;
using Avalonia.Visuals.Media.Imaging; using Avalonia.Visuals.Media.Imaging;
namespace Artemis.UI.Avalonia.Shared.Controls namespace Artemis.UI.Shared.Controls
{ {
/// <summary> /// <summary>
/// Visualizes an <see cref="ArtemisDevice" /> with optional per-LED colors /// Visualizes an <see cref="ArtemisDevice" /> with optional per-LED colors

View File

@ -11,7 +11,7 @@ using Color = Avalonia.Media.Color;
using Point = Avalonia.Point; using Point = Avalonia.Point;
using SolidColorBrush = Avalonia.Media.SolidColorBrush; using SolidColorBrush = Avalonia.Media.SolidColorBrush;
namespace Artemis.UI.Avalonia.Shared.Controls namespace Artemis.UI.Shared.Controls
{ {
internal class DeviceVisualizerLed internal class DeviceVisualizerLed
{ {

View File

@ -3,7 +3,7 @@
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"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Avalonia.Shared.Controls.EnumComboBox"> x:Class="Artemis.UI.Shared.Controls.EnumComboBox">
<ComboBox x:Name="EnumComboBox" HorizontalAlignment="Stretch"> <ComboBox x:Name="EnumComboBox" HorizontalAlignment="Stretch">
<ComboBox.ItemTemplate> <ComboBox.ItemTemplate>
<DataTemplate> <DataTemplate>

View File

@ -1,5 +1,4 @@
using System; using System;
using System.Collections.Generic;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.Linq; using System.Linq;
using Artemis.Core; using Artemis.Core;
@ -9,7 +8,7 @@ using Avalonia.Data;
using Avalonia.LogicalTree; using Avalonia.LogicalTree;
using Avalonia.Markup.Xaml; using Avalonia.Markup.Xaml;
namespace Artemis.UI.Avalonia.Shared.Controls namespace Artemis.UI.Shared.Controls
{ {
public partial class EnumComboBox : UserControl public partial class EnumComboBox : UserControl
{ {

View File

@ -3,5 +3,5 @@
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"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Avalonia.Shared.Controls.ProfileConfigurationIcon"> x:Class="Artemis.UI.Shared.Controls.ProfileConfigurationIcon">
</UserControl> </UserControl>

View File

@ -10,7 +10,7 @@ using Avalonia.Svg.Skia;
using Material.Icons; using Material.Icons;
using Material.Icons.Avalonia; using Material.Icons.Avalonia;
namespace Artemis.UI.Avalonia.Shared.Controls namespace Artemis.UI.Shared.Controls
{ {
public class ProfileConfigurationIcon : UserControl public class ProfileConfigurationIcon : UserControl
{ {

View File

@ -7,7 +7,7 @@ using Avalonia.Input;
using Avalonia.Media; using Avalonia.Media;
using FluentAvalonia.Styling; using FluentAvalonia.Styling;
namespace Artemis.UI.Avalonia.Shared.Controls namespace Artemis.UI.Shared.Controls
{ {
/// <summary> /// <summary>
/// Visualizes an <see cref="ArtemisDevice" /> with optional per-LED colors /// Visualizes an <see cref="ArtemisDevice" /> with optional per-LED colors

View File

@ -5,7 +5,7 @@ using Avalonia.Media;
using FluentAvalonia.UI.Media; using FluentAvalonia.UI.Media;
using SkiaSharp; using SkiaSharp;
namespace Artemis.UI.Avalonia.Shared.Converters namespace Artemis.UI.Shared.Converters
{ {
/// <summary> /// <summary>
/// Converts <see cref="T:Avalonia.Media.Color" /> into <see cref="T:SkiaSharp.SKColor" />. /// Converts <see cref="T:Avalonia.Media.Color" /> into <see cref="T:SkiaSharp.SKColor" />.

View File

@ -5,7 +5,7 @@ using Avalonia.Media;
using FluentAvalonia.UI.Media; using FluentAvalonia.UI.Media;
using SkiaSharp; using SkiaSharp;
namespace Artemis.UI.Avalonia.Shared.Converters namespace Artemis.UI.Shared.Converters
{ {
/// <summary> /// <summary>
/// Converts <see cref="T:SkiaSharp.SKColor" /> into <see cref="T:Avalonia.Media.Color" />. /// Converts <see cref="T:SkiaSharp.SKColor" /> into <see cref="T:Avalonia.Media.Color" />.

View File

@ -1,7 +1,7 @@
using System; using System;
using Artemis.Core; using Artemis.Core;
namespace Artemis.UI.Avalonia.Shared.Events namespace Artemis.UI.Shared.Events
{ {
/// <summary> /// <summary>
/// Provides data about selection events raised by <see cref="DataModelDynamicViewModel" /> /// Provides data about selection events raised by <see cref="DataModelDynamicViewModel" />

View File

@ -1,6 +1,6 @@
using System; using System;
namespace Artemis.UI.Avalonia.Shared.Events namespace Artemis.UI.Shared.Events
{ {
/// <summary> /// <summary>
/// Provides data about submit events raised by <see cref="DataModelStaticViewModel" /> /// Provides data about submit events raised by <see cref="DataModelStaticViewModel" />

View File

@ -1,6 +1,6 @@
using System; using System;
namespace Artemis.UI.Avalonia.Shared.Events namespace Artemis.UI.Shared.Events
{ {
internal class DialogClosedEventArgs<TResult> : EventArgs internal class DialogClosedEventArgs<TResult> : EventArgs
{ {

View File

@ -1,7 +1,7 @@
using System; using System;
using Artemis.Core; using Artemis.Core;
namespace Artemis.UI.Avalonia.Shared.Events namespace Artemis.UI.Shared.Events
{ {
/// <summary> /// <summary>
/// Provides data on LED click events raised by the device visualizer /// Provides data on LED click events raised by the device visualizer

View File

@ -1,7 +1,7 @@
using System; using System;
using Artemis.Core; using Artemis.Core;
namespace Artemis.UI.Avalonia.Shared.Events namespace Artemis.UI.Shared.Events
{ {
/// <summary> /// <summary>
/// Provides data on profile related events raised by the profile editor /// Provides data on profile related events raised by the profile editor

View File

@ -1,7 +1,7 @@
using System; using System;
using Artemis.Core; using Artemis.Core;
namespace Artemis.UI.Avalonia.Shared.Events namespace Artemis.UI.Shared.Events
{ {
/// <summary> /// <summary>
/// Provides data on profile element related events raised by the profile editor /// Provides data on profile element related events raised by the profile editor

View File

@ -1,7 +1,7 @@
using System; using System;
using Avalonia; using Avalonia;
namespace Artemis.UI.Avalonia.Shared.Events namespace Artemis.UI.Shared.Events
{ {
public class SelectionRectangleEventArgs : EventArgs public class SelectionRectangleEventArgs : EventArgs
{ {

View File

@ -1,6 +1,6 @@
using System; using System;
namespace Artemis.UI.Avalonia.Shared.Exceptions namespace Artemis.UI.Shared.Exceptions
{ {
/// <summary> /// <summary>
/// Represents errors that occur within the Artemis Shared UI library /// Represents errors that occur within the Artemis Shared UI library

View File

@ -1,9 +1,9 @@
using System; using System;
using Artemis.UI.Avalonia.Shared.Services.Interfaces; using Artemis.UI.Shared.Services.Interfaces;
using Ninject.Extensions.Conventions; using Ninject.Extensions.Conventions;
using Ninject.Modules; using Ninject.Modules;
namespace Artemis.UI.Avalonia.Shared.Ninject namespace Artemis.UI.Shared.Ninject
{ {
/// <summary> /// <summary>
/// The main <see cref="NinjectModule" /> of the Artemis Shared UI toolkit that binds all services /// The main <see cref="NinjectModule" /> of the Artemis Shared UI toolkit that binds all services

View File

@ -1,7 +1,7 @@
using System; using System;
using Artemis.Core; using Artemis.Core;
namespace Artemis.UI.Avalonia.Shared namespace Artemis.UI.Shared
{ {
/// <inheritdoc /> /// <inheritdoc />
public class PluginConfigurationDialog<T> : PluginConfigurationDialog where T : PluginConfigurationViewModel public class PluginConfigurationDialog<T> : PluginConfigurationDialog where T : PluginConfigurationViewModel

View File

@ -1,7 +1,7 @@
using System; using System;
using Artemis.Core; using Artemis.Core;
namespace Artemis.UI.Avalonia.Shared namespace Artemis.UI.Shared
{ {
/// <summary> /// <summary>
/// Represents a view model for a plugin configuration window /// Represents a view model for a plugin configuration window

View File

@ -1,5 +1,4 @@
using System; using System;
using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Input; using System.Windows.Input;
@ -8,7 +7,7 @@ using FluentAvalonia.UI.Controls;
using Ninject; using Ninject;
using Ninject.Parameters; using Ninject.Parameters;
namespace Artemis.UI.Avalonia.Shared.Services.Builders namespace Artemis.UI.Shared.Services.Builders
{ {
public class ContentDialogBuilder public class ContentDialogBuilder
{ {

View File

@ -1,6 +1,6 @@
using Avalonia.Controls; using Avalonia.Controls;
namespace Artemis.UI.Avalonia.Shared.Services.Builders namespace Artemis.UI.Shared.Services.Builders
{ {
/// <summary> /// <summary>
/// Represents a builder that can create a <see cref="FileDialogFilter" />. /// Represents a builder that can create a <see cref="FileDialogFilter" />.

View File

@ -7,7 +7,7 @@ using FluentAvalonia.UI.Controls;
using ReactiveUI; using ReactiveUI;
using Button = Avalonia.Controls.Button; using Button = Avalonia.Controls.Button;
namespace Artemis.UI.Avalonia.Shared.Services.Builders namespace Artemis.UI.Shared.Services.Builders
{ {
public class NotificationBuilder public class NotificationBuilder
{ {

View File

@ -2,7 +2,7 @@
using System.Threading.Tasks; using System.Threading.Tasks;
using Avalonia.Controls; using Avalonia.Controls;
namespace Artemis.UI.Avalonia.Shared.Services.Builders namespace Artemis.UI.Shared.Services.Builders
{ {
/// <summary> /// <summary>
/// Represents a builder that can create a <see cref="OpenFileDialog" />. /// Represents a builder that can create a <see cref="OpenFileDialog" />.

View File

@ -2,7 +2,7 @@
using System.Threading.Tasks; using System.Threading.Tasks;
using Avalonia.Controls; using Avalonia.Controls;
namespace Artemis.UI.Avalonia.Shared.Services.Builders namespace Artemis.UI.Shared.Services.Builders
{ {
/// <summary> /// <summary>
/// Represents a builder that can create a <see cref="SaveFileDialog" />. /// Represents a builder that can create a <see cref="SaveFileDialog" />.

View File

@ -1,4 +1,4 @@
namespace Artemis.UI.Avalonia.Shared.Services.Interfaces namespace Artemis.UI.Shared.Services.Interfaces
{ {
/// <summary> /// <summary>
/// Represents a service provided by the Artemis Shared UI library /// Represents a service provided by the Artemis Shared UI library

View File

@ -1,6 +1,6 @@
using Artemis.UI.Avalonia.Shared.Services.Builders; using Artemis.UI.Shared.Services.Builders;
namespace Artemis.UI.Avalonia.Shared.Services.Interfaces namespace Artemis.UI.Shared.Services.Interfaces
{ {
public interface INotificationService : IArtemisSharedUIService public interface INotificationService : IArtemisSharedUIService
{ {

View File

@ -1,9 +1,9 @@
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Artemis.UI.Avalonia.Shared.Services.Builders; using Artemis.UI.Shared.Services.Builders;
using Avalonia.Controls; using Avalonia.Controls;
namespace Artemis.UI.Avalonia.Shared.Services.Interfaces namespace Artemis.UI.Shared.Services.Interfaces
{ {
public interface IWindowService : IArtemisSharedUIService public interface IWindowService : IArtemisSharedUIService
{ {

View File

@ -1,7 +1,7 @@
using Artemis.UI.Avalonia.Shared.Services.Builders; using Artemis.UI.Shared.Services.Builders;
using Artemis.UI.Avalonia.Shared.Services.Interfaces; using Artemis.UI.Shared.Services.Interfaces;
namespace Artemis.UI.Avalonia.Shared.Services namespace Artemis.UI.Shared.Services
{ {
public class NotificationService : INotificationService public class NotificationService : INotificationService
{ {

View File

@ -3,7 +3,7 @@
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"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="800" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="800"
x:Class="Artemis.UI.Avalonia.Shared.Services.ExceptionDialogView" x:Class="Artemis.UI.Shared.Services.ExceptionDialogView"
Title="{Binding Title}" Title="{Binding Title}"
ExtendClientAreaToDecorationsHint="True" ExtendClientAreaToDecorationsHint="True"
Width="800" Width="800"

View File

@ -2,7 +2,7 @@ using Avalonia;
using Avalonia.Markup.Xaml; using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI; using Avalonia.ReactiveUI;
namespace Artemis.UI.Avalonia.Shared.Services namespace Artemis.UI.Shared.Services
{ {
internal class ExceptionDialogView : ReactiveWindow<ExceptionDialogViewModel> internal class ExceptionDialogView : ReactiveWindow<ExceptionDialogViewModel>
{ {

View File

@ -1,11 +1,11 @@
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Artemis.UI.Avalonia.Shared.Services.Builders; using Artemis.UI.Shared.Services.Builders;
using Artemis.UI.Avalonia.Shared.Services.Interfaces; using Artemis.UI.Shared.Services.Interfaces;
using Avalonia; using Avalonia;
using Avalonia.Layout; using Avalonia.Layout;
namespace Artemis.UI.Avalonia.Shared.Services namespace Artemis.UI.Shared.Services
{ {
internal class ExceptionDialogViewModel : DialogViewModelBase<object> internal class ExceptionDialogViewModel : DialogViewModelBase<object>
{ {

View File

@ -1,10 +1,9 @@
using System; using System;
using System.Linq; using System.Linq;
using System.Reactive.Disposables;
using System.Threading.Tasks; using System.Threading.Tasks;
using Artemis.UI.Avalonia.Shared.Exceptions; using Artemis.UI.Shared.Exceptions;
using Artemis.UI.Avalonia.Shared.Services.Builders; using Artemis.UI.Shared.Services.Builders;
using Artemis.UI.Avalonia.Shared.Services.Interfaces; using Artemis.UI.Shared.Services.Interfaces;
using Avalonia; using Avalonia;
using Avalonia.Controls; using Avalonia.Controls;
using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Controls.ApplicationLifetimes;
@ -12,9 +11,8 @@ using Avalonia.Threading;
using FluentAvalonia.UI.Controls; using FluentAvalonia.UI.Controls;
using Ninject; using Ninject;
using Ninject.Parameters; using Ninject.Parameters;
using ReactiveUI;
namespace Artemis.UI.Avalonia.Shared.Services namespace Artemis.UI.Shared.Services
{ {
internal class WindowService : IWindowService internal class WindowService : IWindowService
{ {

View File

@ -1,9 +1,9 @@
using System; using System;
using System.Reactive.Disposables; using System.Reactive.Disposables;
using Artemis.UI.Avalonia.Shared.Events; using Artemis.UI.Shared.Events;
using ReactiveUI; using ReactiveUI;
namespace Artemis.UI.Avalonia.Shared namespace Artemis.UI.Shared
{ {
/// <summary> /// <summary>
/// Represents the base class for Artemis view models /// Represents the base class for Artemis view models

View File

@ -0,0 +1,454 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Mono auto generated files
mono_crash.*
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Ww][Ii][Nn]32/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
[Ll]ogs/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# Visual Studio 2017 auto generated files
Generated\ Files/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUnit
*.VisualState.xml
TestResult.xml
nunit-*.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# Benchmark Results
BenchmarkDotNet.Artifacts/
# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
# Tye
.tye/
# ASP.NET Scaffolding
ScaffoldingReadMe.txt
# StyleCop
StyleCopReport.xml
# Files built by Visual Studio
*_i.c
*_p.c
*_h.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*_wpftmp.csproj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# Visual Studio Trace Files
*.e2e
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json
# Coverlet is a free, cross platform Code Coverage Tool
coverage*.json
coverage*.xml
coverage*.info
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# NuGet Symbol Packages
*.snupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
*.appxbundle
*.appxupload
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!?*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
*- [Bb]ackup.rdl
*- [Bb]ackup ([0-9]).rdl
*- [Bb]ackup ([0-9][0-9]).rdl
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# CodeRush personal settings
.cr/personal
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
# Tabs Studio
*.tss
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# OpenCover UI analysis results
OpenCover/
# Azure Stream Analytics local run output
ASALocalRun/
# MSBuild Binary and Structured Log
*.binlog
# NVidia Nsight GPU debugger configuration file
*.nvuser
# MFractors (Xamarin productivity tool) working folder
.mfractor/
# Local History for Visual Studio
.localhistory/
# BeatPulse healthcheck temp database
healthchecksdb
# Backup folder for Package Reference Convert tool in Visual Studio 2017
MigrationBackup/
# Ionide (cross platform F# VS Code tools) working folder
.ionide/
# Fody - auto-generated XML schema
FodyWeavers.xsd
##
## Visual studio for Mac
##
# globs
Makefile.in
*.userprefs
*.usertasks
config.make
config.status
aclocal.m4
install-sh
autom4te.cache/
*.tar.gz
tarballs/
test-results/
# Mac bundle stuff
*.dmg
*.app
# content below from: https://github.com/github/gitignore/blob/master/Global/macOS.gitignore
# General
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
# content below from: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore
# Windows thumbnail cache files
Thumbs.db
ehthumbs.db
ehthumbs_vista.db
# Dump file
*.stackdump
# Folder config file
[Dd]esktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp
# Windows shortcuts
*.lnk
# JetBrains Rider
.idea/
*.sln.iml
##
## Visual Studio Code
##
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json

View File

@ -0,0 +1,31 @@
<Application xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Artemis.UI.Windows"
xmlns:ui="clr-namespace:Artemis.UI;assembly=Artemis.UI"
xmlns:styling="clr-namespace:FluentAvalonia.Styling;assembly=FluentAvalonia"
x:Class="Artemis.UI.Windows.App">
<Application.DataTemplates>
<ui:ViewLocator/>
</Application.DataTemplates>
<Application.Styles>
<!-- Third party styles -->
<styling:FluentAvaloniaTheme RequestedTheme="Dark" CustomAccentColor="#4db6ac" />
<StyleInclude Source="avares://Material.Icons.Avalonia/App.xaml" />
<!-- Grab the window styling from Avalonia -->
<StyleInclude Source="avares://Avalonia.Themes.Fluent/Controls/Window.xaml" />
<StyleInclude Source="avares://Avalonia.Themes.Fluent/Controls/TitleBar.xaml" />
<StyleInclude Source="avares://Avalonia.Themes.Fluent/Controls/CaptionButtons.xaml" />
<!-- Global styles -->
<!-- <StyleInclude Source="/Styles/Border.axaml" /> -->
<!-- <StyleInclude Source="/Styles/Button.axaml" /> -->
<!-- <StyleInclude Source="/Styles/TextBlock.axaml" /> -->
<!-- <StyleInclude Source="/Styles/Sidebar.axaml" /> -->
<!-- Shared styles -->
<!-- TODO: Make a single file-->
<StyleInclude Source="avares://Artemis.UI.Shared/Styles/InfoBar.axaml" />
</Application.Styles>
</Application>

View File

@ -1,7 +1,7 @@
using Artemis.Core.Ninject; using Artemis.Core.Ninject;
using Artemis.UI.Avalonia.Ninject; using Artemis.UI.Ninject;
using Artemis.UI.Avalonia.Screens.Root.ViewModels; using Artemis.UI.Screens.Root.ViewModels;
using Artemis.UI.Avalonia.Shared.Ninject; using Artemis.UI.Shared.Ninject;
using Avalonia; using Avalonia;
using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml; using Avalonia.Markup.Xaml;
@ -11,7 +11,7 @@ using Ninject;
using ReactiveUI; using ReactiveUI;
using Splat.Ninject; using Splat.Ninject;
namespace Artemis.UI.Avalonia namespace Artemis.UI.Windows
{ {
public class App : Application public class App : Application
{ {

View File

@ -0,0 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net5.0-windows</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<AvaloniaResource Include="Assets\**" />
<None Remove=".gitignore" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Avalonia" Version="0.10.10" />
<PackageReference Include="Avalonia.Desktop" Version="0.10.10" />
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="0.10.10" />
<PackageReference Include="Avalonia.ReactiveUI" Version="0.10.10" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Artemis.Core\Artemis.Core.csproj" />
<ProjectReference Include="..\Artemis.UI\Artemis.UI.csproj" />
</ItemGroup>
</Project>

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

View File

@ -0,0 +1,24 @@
using System;
using Avalonia;
using Avalonia.ReactiveUI;
namespace Artemis.UI.Windows
{
internal class Program
{
// Initialization code. Don't use any Avalonia, third-party APIs or any
// SynchronizationContext-reliant code before AppMain is called: things aren't initialized
// yet and stuff might break.
[STAThread]
public static void Main(string[] args)
{
BuildAvaloniaApp().StartWithClassicDesktopLifetime(args);
}
// Avalonia configuration, don't remove; also used by visual designer.
public static AppBuilder BuildAvaloniaApp()
{
return AppBuilder.Configure<App>().UsePlatformDetect().LogToTrace().UseReactiveUI();
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +1,10 @@
<Application xmlns="https://github.com/avaloniaui" <Application xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Artemis.UI.Avalonia"
xmlns:sty="using:FluentAvalonia.Styling" xmlns:sty="using:FluentAvalonia.Styling"
x:Class="Artemis.UI.Avalonia.App"> xmlns:ui="clr-namespace:Artemis.UI"
x:Class="Artemis.UI.App">
<Application.DataTemplates> <Application.DataTemplates>
<local:ViewLocator /> <ui:ViewLocator />
</Application.DataTemplates> </Application.DataTemplates>
<Application.Styles> <Application.Styles>

View File

@ -0,0 +1,54 @@
using Artemis.Core.Ninject;
using Artemis.UI.Ninject;
using Artemis.UI.Screens.Root.ViewModels;
using Artemis.UI.Shared.Ninject;
using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
using Avalonia.Threading;
using FluentAvalonia.Styling;
using Ninject;
using ReactiveUI;
using Splat.Ninject;
namespace Artemis.UI
{
public class App : Application
{
private StandardKernel _kernel = null!;
public override void Initialize()
{
InitializeNinject();
RxApp.MainThreadScheduler = AvaloniaScheduler.Instance;
AvaloniaXamlLoader.Load(this);
}
public override void OnFrameworkInitializationCompleted()
{
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{
desktop.MainWindow = new MainWindow
{
DataContext = _kernel.Get<RootViewModel>()
};
AvaloniaLocator.Current.GetService<FluentAvaloniaTheme>().ForceNativeTitleBarToTheme(desktop.MainWindow, "Dark");
}
base.OnFrameworkInitializationCompleted();
}
private void InitializeNinject()
{
_kernel = new StandardKernel();
_kernel.Settings.InjectNonPublic = true;
_kernel.Load<CoreModule>();
_kernel.Load<UIModule>();
_kernel.Load<SharedUIModule>();
_kernel.UseNinjectDependencyResolver();
}
}
}

View File

@ -0,0 +1,45 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Library</OutputType>
<TargetFramework>net5.0</TargetFramework>
<Nullable>enable</Nullable>
<OutputPath>bin\</OutputPath>
</PropertyGroup>
<ItemGroup>
<AvaloniaResource Include="Assets\**" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Avalonia" Version="0.10.10" />
<PackageReference Include="Avalonia.Controls.PanAndZoom" Version="4.2.0" />
<PackageReference Include="Avalonia.Desktop" Version="0.10.10" />
<PackageReference Include="Avalonia.Diagnostics" Version="0.10.10" />
<PackageReference Include="Avalonia.ReactiveUI" Version="0.10.10" />
<PackageReference Include="Avalonia.Svg.Skia" Version="0.10.8.3" />
<PackageReference Include="FluentAvaloniaUI" Version="1.1.5" />
<PackageReference Include="Flurl.Http" Version="3.2.0" />
<PackageReference Include="Live.Avalonia" Version="1.3.1" />
<PackageReference Include="Material.Icons.Avalonia" Version="1.0.2" />
<PackageReference Include="Splat.Ninject" Version="13.1.30" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Artemis.Core\Artemis.Core.csproj" />
<ProjectReference Include="..\Artemis.UI.Shared\Artemis.UI.Shared.csproj" />
</ItemGroup>
<ItemGroup>
<Reference Include="RGB.NET.Core">
<HintPath>..\..\..\..\RGB.NET\bin\net5.0\RGB.NET.Core.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Content Include="Assets\Images\Logo\bow-black.ico" />
<Content Include="Assets\Images\Logo\bow-white.ico" />
<Content Include="Assets\Images\Logo\bow.ico" />
</ItemGroup>
<ItemGroup>
<Resource Include="Assets\Images\Logo\bow-black.ico" />
<Resource Include="Assets\Images\Logo\bow-white.ico" />
<Resource Include="Assets\Images\Logo\bow-white.svg" />
<Resource Include="Assets\Images\Logo\bow.ico" />
<Resource Include="Assets\Images\Logo\bow.svg" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,2 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=events/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>

View File

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

View File

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

View File

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

Before

Width:  |  Height:  |  Size: 566 KiB

After

Width:  |  Height:  |  Size: 566 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

View File

@ -4,7 +4,7 @@ using Avalonia.Data.Converters;
using Avalonia.Media; using Avalonia.Media;
using RGBColor = RGB.NET.Core.Color; using RGBColor = RGB.NET.Core.Color;
namespace Artemis.UI.Avalonia.Converters namespace Artemis.UI.Converters
{ {
/// <summary> /// <summary>
/// Converts <see cref="T:RGB.NET.Core.Color" /> into <see cref="T:Avalonia.Media.Color" />. /// Converts <see cref="T:RGB.NET.Core.Color" /> into <see cref="T:Avalonia.Media.Color" />.

View File

@ -6,7 +6,7 @@ using System.Linq;
using Avalonia.Data.Converters; using Avalonia.Data.Converters;
using Avalonia.Markup.Xaml; using Avalonia.Markup.Xaml;
namespace Artemis.UI.Avalonia.Converters namespace Artemis.UI.Converters
{ {
public class EnumToCollectionConverter : MarkupExtension, IValueConverter public class EnumToCollectionConverter : MarkupExtension, IValueConverter
{ {

View File

@ -3,7 +3,7 @@ using System.Globalization;
using Avalonia.Data.Converters; using Avalonia.Data.Converters;
using RGB.NET.Core; using RGB.NET.Core;
namespace Artemis.UI.Avalonia.Converters namespace Artemis.UI.Converters
{ {
public class LedIdToStringConverter : IValueConverter public class LedIdToStringConverter : IValueConverter
{ {

View File

@ -2,7 +2,7 @@
using System.Globalization; using System.Globalization;
using Avalonia.Data.Converters; using Avalonia.Data.Converters;
namespace Artemis.UI.Avalonia.Converters namespace Artemis.UI.Converters
{ {
public class NormalizedPercentageConverter : IValueConverter public class NormalizedPercentageConverter : IValueConverter
{ {

View File

@ -3,7 +3,7 @@ using System.Globalization;
using System.IO; using System.IO;
using Avalonia.Data.Converters; using Avalonia.Data.Converters;
namespace Artemis.UI.Avalonia.Converters namespace Artemis.UI.Converters
{ {
public class UriToFileNameConverter : IValueConverter public class UriToFileNameConverter : IValueConverter
{ {

View File

@ -4,7 +4,7 @@ using System.Globalization;
using System.Linq; using System.Linq;
using Avalonia.Data.Converters; using Avalonia.Data.Converters;
namespace Artemis.UI.Avalonia.Converters namespace Artemis.UI.Converters
{ {
public class ValuesAdditionConverter : IMultiValueConverter public class ValuesAdditionConverter : IMultiValueConverter
{ {

View File

@ -1,6 +1,6 @@
using System; using System;
namespace Artemis.UI.Avalonia.Exceptions namespace Artemis.UI.Exceptions
{ {
public class ArtemisGraphicsContextException : Exception public class ArtemisGraphicsContextException : Exception
{ {

View File

@ -1,6 +1,6 @@
using System; using System;
namespace Artemis.UI.Avalonia.Exceptions namespace Artemis.UI.Exceptions
{ {
public class ArtemisUIException : Exception public class ArtemisUIException : Exception
{ {

View File

@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.Linq; using System.Linq;
namespace Artemis.UI.Avalonia.Extensions namespace Artemis.UI.Extensions
{ {
public static class ObservableCollectionExtensions public static class ObservableCollectionExtensions
{ {

View File

@ -3,7 +3,7 @@
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"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Avalonia.MainWindow" x:Class="Artemis.UI.MainWindow"
Icon="/Assets/Images/Logo/bow.ico" Icon="/Assets/Images/Logo/bow.ico"
Title="Artemis.UI.Avalonia" Title="Artemis.UI.Avalonia"
ExtendClientAreaToDecorationsHint="True" ExtendClientAreaToDecorationsHint="True"

View File

@ -1,9 +1,9 @@
using Artemis.UI.Avalonia.Screens.Root.ViewModels; using Artemis.UI.Screens.Root.ViewModels;
using Avalonia; using Avalonia;
using Avalonia.Markup.Xaml; using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI; using Avalonia.ReactiveUI;
namespace Artemis.UI.Avalonia namespace Artemis.UI
{ {
public class MainWindow : ReactiveWindow<RootViewModel> public class MainWindow : ReactiveWindow<RootViewModel>
{ {

View File

@ -1,15 +1,14 @@
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using Artemis.Core; using Artemis.Core;
using Artemis.UI.Avalonia.Screens.Device; using Artemis.UI.Screens.Device.Tabs.ViewModels;
using Artemis.UI.Avalonia.Screens.Device.Tabs.ViewModels; using Artemis.UI.Screens.Device.ViewModels;
using Artemis.UI.Avalonia.Screens.Device.ViewModels; using Artemis.UI.Screens.Plugins.ViewModels;
using Artemis.UI.Avalonia.Screens.Plugins.ViewModels; using Artemis.UI.Screens.Root.ViewModels;
using Artemis.UI.Avalonia.Screens.Root.ViewModels; using Artemis.UI.Screens.Settings.Tabs.ViewModels;
using Artemis.UI.Avalonia.Screens.Settings.Tabs.ViewModels; using Artemis.UI.Screens.SurfaceEditor.ViewModels;
using Artemis.UI.Avalonia.Screens.SurfaceEditor.ViewModels;
using ReactiveUI; using ReactiveUI;
namespace Artemis.UI.Avalonia.Ninject.Factories namespace Artemis.UI.Ninject.Factories
{ {
public interface IVmFactory public interface IVmFactory
{ {

View File

@ -1,13 +1,13 @@
using System; using System;
using Artemis.UI.Avalonia.Ninject.Factories; using Artemis.UI.Ninject.Factories;
using Artemis.UI.Avalonia.Screens; using Artemis.UI.Screens;
using Artemis.UI.Avalonia.Services.Interfaces; using Artemis.UI.Services.Interfaces;
using Artemis.UI.Avalonia.Shared; using Artemis.UI.Shared;
using Ninject.Extensions.Conventions; using Ninject.Extensions.Conventions;
using Ninject.Modules; using Ninject.Modules;
using Ninject.Planning.Bindings.Resolvers; using Ninject.Planning.Bindings.Resolvers;
namespace Artemis.UI.Avalonia.Ninject namespace Artemis.UI.Ninject
{ {
public class UIModule : NinjectModule public class UIModule : NinjectModule
{ {

View File

@ -1,6 +1,6 @@
using Artemis.Core.Services; using Artemis.Core.Services;
namespace Artemis.UI.Avalonia.Providers namespace Artemis.UI.Providers
{ {
public class AvaloniaInputProvider : InputProvider public class AvaloniaInputProvider : InputProvider
{ {

View File

@ -4,7 +4,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia" xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
mc:Ignorable="d" d:DesignWidth="1200" d:DesignHeight="800" mc:Ignorable="d" d:DesignWidth="1200" d:DesignHeight="800"
x:Class="Artemis.UI.Avalonia.Screens.Debugger.DebugView" x:Class="Artemis.UI.Screens.Debugger.DebugView"
Title="Artemis | Debugger" Title="Artemis | Debugger"
Width="1200" Width="1200"
Height="800" Height="800"

View File

@ -1,6 +1,6 @@
using System; using System;
using System.Reactive.Disposables; using System.Reactive.Disposables;
using Artemis.UI.Avalonia.Shared.Events; using Artemis.UI.Shared.Events;
using Avalonia.Controls; using Avalonia.Controls;
using Avalonia.Markup.Xaml; using Avalonia.Markup.Xaml;
using Avalonia.ReactiveUI; using Avalonia.ReactiveUI;
@ -8,7 +8,7 @@ using FluentAvalonia.Core;
using FluentAvalonia.UI.Controls; using FluentAvalonia.UI.Controls;
using ReactiveUI; using ReactiveUI;
namespace Artemis.UI.Avalonia.Screens.Debugger namespace Artemis.UI.Screens.Debugger
{ {
public class DebugView : ReactiveWindow<DebugViewModel> public class DebugView : ReactiveWindow<DebugViewModel>
{ {

View File

@ -1,17 +1,17 @@
using System; using System;
using System.Reactive.Disposables; using System.Reactive.Disposables;
using Artemis.UI.Avalonia.Screens.Debugger.Tabs.DataModel; using Artemis.UI.Screens.Debugger.Tabs.DataModel;
using Artemis.UI.Avalonia.Screens.Debugger.Tabs.Logs; using Artemis.UI.Screens.Debugger.Tabs.Logs;
using Artemis.UI.Avalonia.Screens.Debugger.Tabs.Performance; using Artemis.UI.Screens.Debugger.Tabs.Performance;
using Artemis.UI.Avalonia.Screens.Debugger.Tabs.Render; using Artemis.UI.Screens.Debugger.Tabs.Render;
using Artemis.UI.Avalonia.Services.Interfaces; using Artemis.UI.Services.Interfaces;
using Artemis.UI.Avalonia.Shared; using Artemis.UI.Shared;
using FluentAvalonia.UI.Controls; using FluentAvalonia.UI.Controls;
using Ninject; using Ninject;
using Ninject.Parameters; using Ninject.Parameters;
using ReactiveUI; using ReactiveUI;
namespace Artemis.UI.Avalonia.Screens.Debugger namespace Artemis.UI.Screens.Debugger
{ {
public class DebugViewModel : ActivatableViewModelBase, IScreen public class DebugViewModel : ActivatableViewModelBase, IScreen
{ {

View File

@ -3,6 +3,6 @@
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"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Avalonia.Screens.Debugger.Tabs.DataModel.DataModelDebugView"> x:Class="Artemis.UI.Screens.Debugger.Tabs.DataModel.DataModelDebugView">
<TextBlock>Data Model</TextBlock> <TextBlock>Data Model</TextBlock>
</UserControl> </UserControl>

Some files were not shown because too many files have changed in this diff Show More