|
@@ -1,9 +1,11 @@
|
|
-using Microsoft.Extensions.DependencyInjection;
|
|
|
|
|
|
+using System.Linq;
|
|
|
|
+using Microsoft.Extensions.DependencyInjection;
|
|
using PixiEditor.AvaloniaUI.Models.AppExtensions;
|
|
using PixiEditor.AvaloniaUI.Models.AppExtensions;
|
|
using PixiEditor.AvaloniaUI.Models.AppExtensions.Services;
|
|
using PixiEditor.AvaloniaUI.Models.AppExtensions.Services;
|
|
using PixiEditor.AvaloniaUI.Models.Commands;
|
|
using PixiEditor.AvaloniaUI.Models.Commands;
|
|
using PixiEditor.AvaloniaUI.Models.Controllers;
|
|
using PixiEditor.AvaloniaUI.Models.Controllers;
|
|
using PixiEditor.AvaloniaUI.Models.Handlers;
|
|
using PixiEditor.AvaloniaUI.Models.Handlers;
|
|
|
|
+using PixiEditor.AvaloniaUI.Models.Handlers.Tools;
|
|
using PixiEditor.AvaloniaUI.Models.IO.PaletteParsers;
|
|
using PixiEditor.AvaloniaUI.Models.IO.PaletteParsers;
|
|
using PixiEditor.AvaloniaUI.Models.IO.PaletteParsers.JascPalFile;
|
|
using PixiEditor.AvaloniaUI.Models.IO.PaletteParsers.JascPalFile;
|
|
using PixiEditor.AvaloniaUI.Models.Localization;
|
|
using PixiEditor.AvaloniaUI.Models.Localization;
|
|
@@ -29,63 +31,68 @@ internal static class ServiceCollectionHelpers
|
|
/// Adds all the services required to fully run PixiEditor's MainWindow
|
|
/// Adds all the services required to fully run PixiEditor's MainWindow
|
|
/// </summary>
|
|
/// </summary>
|
|
public static IServiceCollection
|
|
public static IServiceCollection
|
|
- AddPixiEditor(this IServiceCollection collection, ExtensionLoader extensionLoader) => collection
|
|
|
|
- .AddSingleton<ViewModelMain>()
|
|
|
|
- .AddSingleton<IPreferences, PreferencesSettings>()
|
|
|
|
- .AddSingleton<ILocalizationProvider, LocalizationProvider>(x => new LocalizationProvider(extensionLoader))
|
|
|
|
|
|
+ AddPixiEditor(this IServiceCollection collection, ExtensionLoader extensionLoader)
|
|
|
|
+ {
|
|
|
|
+ return collection
|
|
|
|
+ .AddSingleton<ViewModelMain>()
|
|
|
|
+ .AddSingleton<IPreferences, PreferencesSettings>()
|
|
|
|
+ .AddSingleton<ILocalizationProvider, LocalizationProvider>(x => new LocalizationProvider(extensionLoader))
|
|
|
|
|
|
- // View Models
|
|
|
|
- .AddSingleton<ToolsViewModel>()
|
|
|
|
- .AddSingleton<IToolsHandler, ToolsViewModel>()
|
|
|
|
- .AddSingleton<StylusViewModel>()
|
|
|
|
- .AddSingleton<WindowViewModel>()
|
|
|
|
- .AddSingleton<FileViewModel>()
|
|
|
|
- .AddSingleton<UpdateViewModel>()
|
|
|
|
- .AddSingleton<IoViewModel>()
|
|
|
|
- .AddSingleton<LayersViewModel>()
|
|
|
|
- .AddSingleton<ClipboardViewModel>()
|
|
|
|
- .AddSingleton<UndoViewModel>()
|
|
|
|
- .AddSingleton<SelectionViewModel>()
|
|
|
|
- .AddSingleton<ViewOptionsViewModel>()
|
|
|
|
- .AddSingleton<ColorsViewModel>()
|
|
|
|
- .AddSingleton<RegistryViewModel>()
|
|
|
|
- .AddSingleton(static x => new DiscordViewModel(x.GetService<ViewModelMain>(), "764168193685979138"))
|
|
|
|
- .AddSingleton<DebugViewModel>()
|
|
|
|
- .AddSingleton<ISearchHandler, SearchViewModel>()
|
|
|
|
- .AddSingleton<SearchViewModel>()
|
|
|
|
- .AddSingleton<AdditionalContentViewModel>()
|
|
|
|
- .AddSingleton<LayoutDockViewModel>()
|
|
|
|
- .AddSingleton(x => new ExtensionsViewModel(x.GetService<ViewModelMain>(), extensionLoader))
|
|
|
|
- // Controllers
|
|
|
|
- .AddSingleton<ShortcutController>()
|
|
|
|
- .AddSingleton<CommandController>()
|
|
|
|
- .AddSingleton<DocumentManagerViewModel>()
|
|
|
|
- // Tools
|
|
|
|
- .AddSingleton<IToolHandler, MoveViewportToolViewModel>()
|
|
|
|
- .AddSingleton<IToolHandler, RotateViewportToolViewModel>()
|
|
|
|
- .AddSingleton<IToolHandler, MoveToolViewModel>()
|
|
|
|
- .AddSingleton<IToolHandler, PenToolViewModel>()
|
|
|
|
- .AddSingleton<IToolHandler, SelectToolViewModel>()
|
|
|
|
- .AddSingleton<IToolHandler, MagicWandToolViewModel>()
|
|
|
|
- .AddSingleton<IToolHandler, LassoToolViewModel>()
|
|
|
|
- .AddSingleton<IToolHandler, FloodFillToolViewModel>()
|
|
|
|
- .AddSingleton<IToolHandler, LineToolViewModel>()
|
|
|
|
- .AddSingleton<IToolHandler, EllipseToolViewModel>()
|
|
|
|
- .AddSingleton<IToolHandler, RectangleToolViewModel>()
|
|
|
|
- .AddSingleton<IToolHandler, EraserToolViewModel>()
|
|
|
|
- .AddSingleton<IToolHandler, ColorPickerToolViewModel>()
|
|
|
|
- .AddSingleton<IToolHandler, BrightnessToolViewModel>()
|
|
|
|
- .AddSingleton<IToolHandler, ZoomToolViewModel>()
|
|
|
|
- // Palette Parsers
|
|
|
|
- .AddSingleton<PaletteFileParser, JascFileParser>()
|
|
|
|
- .AddSingleton<PaletteFileParser, ClsFileParser>()
|
|
|
|
- .AddSingleton<PaletteFileParser, PngPaletteParser>()
|
|
|
|
- .AddSingleton<PaletteFileParser, PaintNetTxtParser>()
|
|
|
|
- .AddSingleton<PaletteFileParser, HexPaletteParser>()
|
|
|
|
- .AddSingleton<PaletteFileParser, GimpGplParser>()
|
|
|
|
- .AddSingleton<PaletteFileParser, PixiPaletteParser>()
|
|
|
|
- // Palette data sources
|
|
|
|
- .AddSingleton<PaletteListDataSource, LocalPalettesFetcher>();
|
|
|
|
|
|
+ // View Models
|
|
|
|
+ .AddSingleton<ToolsViewModel>()
|
|
|
|
+ .AddSingleton<IToolsHandler, ToolsViewModel>()
|
|
|
|
+ .AddSingleton<IColorsHandler, ColorsViewModel>()
|
|
|
|
+ .AddSingleton<StylusViewModel>()
|
|
|
|
+ .AddSingleton<WindowViewModel>()
|
|
|
|
+ .AddSingleton<FileViewModel>()
|
|
|
|
+ .AddSingleton<UpdateViewModel>()
|
|
|
|
+ .AddSingleton<IoViewModel>()
|
|
|
|
+ .AddSingleton<LayersViewModel>()
|
|
|
|
+ .AddSingleton<ClipboardViewModel>()
|
|
|
|
+ .AddSingleton<UndoViewModel>()
|
|
|
|
+ .AddSingleton<SelectionViewModel>()
|
|
|
|
+ .AddSingleton<ViewOptionsViewModel>()
|
|
|
|
+ .AddSingleton<ColorsViewModel>()
|
|
|
|
+ .AddSingleton<RegistryViewModel>()
|
|
|
|
+ .AddSingleton(static x => new DiscordViewModel(x.GetService<ViewModelMain>(), "764168193685979138"))
|
|
|
|
+ .AddSingleton<DebugViewModel>()
|
|
|
|
+ .AddSingleton<ISearchHandler, SearchViewModel>()
|
|
|
|
+ .AddSingleton<SearchViewModel>()
|
|
|
|
+ .AddSingleton<AdditionalContentViewModel>()
|
|
|
|
+ .AddSingleton<LayoutDockViewModel>()
|
|
|
|
+ .AddSingleton(x => new ExtensionsViewModel(x.GetService<ViewModelMain>(), extensionLoader))
|
|
|
|
+ // Controllers
|
|
|
|
+ .AddSingleton<ShortcutController>()
|
|
|
|
+ .AddSingleton<CommandController>()
|
|
|
|
+ .AddSingleton<DocumentManagerViewModel>()
|
|
|
|
+ // Tools
|
|
|
|
+ .AddSingleton<IToolHandler, MoveViewportToolViewModel>()
|
|
|
|
+ .AddSingleton<IToolHandler, RotateViewportToolViewModel>()
|
|
|
|
+ .AddSingleton<IToolHandler, MoveToolViewModel>()
|
|
|
|
+ .AddSingleton<IToolHandler, PenToolViewModel>()
|
|
|
|
+ .AddSingleton<IPenToolHandler, PenToolViewModel>(x => x.GetServices<IToolHandler>().OfType<PenToolViewModel>().First())
|
|
|
|
+ .AddSingleton<IToolHandler, SelectToolViewModel>()
|
|
|
|
+ .AddSingleton<IToolHandler, MagicWandToolViewModel>()
|
|
|
|
+ .AddSingleton<IToolHandler, LassoToolViewModel>()
|
|
|
|
+ .AddSingleton<IToolHandler, FloodFillToolViewModel>()
|
|
|
|
+ .AddSingleton<IToolHandler, LineToolViewModel>()
|
|
|
|
+ .AddSingleton<IToolHandler, EllipseToolViewModel>()
|
|
|
|
+ .AddSingleton<IToolHandler, RectangleToolViewModel>()
|
|
|
|
+ .AddSingleton<IToolHandler, EraserToolViewModel>()
|
|
|
|
+ .AddSingleton<IToolHandler, ColorPickerToolViewModel>()
|
|
|
|
+ .AddSingleton<IToolHandler, BrightnessToolViewModel>()
|
|
|
|
+ .AddSingleton<IToolHandler, ZoomToolViewModel>()
|
|
|
|
+ // Palette Parsers
|
|
|
|
+ .AddSingleton<PaletteFileParser, JascFileParser>()
|
|
|
|
+ .AddSingleton<PaletteFileParser, ClsFileParser>()
|
|
|
|
+ .AddSingleton<PaletteFileParser, PngPaletteParser>()
|
|
|
|
+ .AddSingleton<PaletteFileParser, PaintNetTxtParser>()
|
|
|
|
+ .AddSingleton<PaletteFileParser, HexPaletteParser>()
|
|
|
|
+ .AddSingleton<PaletteFileParser, GimpGplParser>()
|
|
|
|
+ .AddSingleton<PaletteFileParser, PixiPaletteParser>()
|
|
|
|
+ // Palette data sources
|
|
|
|
+ .AddSingleton<PaletteListDataSource, LocalPalettesFetcher>();
|
|
|
|
+ }
|
|
|
|
|
|
public static IServiceCollection AddExtensionServices(this IServiceCollection collection) =>
|
|
public static IServiceCollection AddExtensionServices(this IServiceCollection collection) =>
|
|
collection.AddSingleton<IWindowProvider, WindowProvider>()
|
|
collection.AddSingleton<IWindowProvider, WindowProvider>()
|