├── .github
├── FUNDING.yml
├── workflows
│ └── build.yml
└── stale.yml
├── src
├── Core2D
│ ├── Assets
│ │ ├── Core2D.ico
│ │ └── Fonts
│ │ │ └── RobotoMono-Regular.ttf
│ ├── AppBuilderFactory.cs
│ ├── Views
│ │ ├── MainView.axaml.cs
│ │ ├── Renderer
│ │ │ ├── RenderType.cs
│ │ │ ├── GridView.axaml.cs
│ │ │ ├── ShapeStateView.axaml.cs
│ │ │ ├── ShapeRendererStateView.axaml.cs
│ │ │ ├── RenderState.cs
│ │ │ └── RenderView.axaml
│ │ ├── Data
│ │ │ ├── RecordView.axaml.cs
│ │ │ └── DataObjectView.axaml.cs
│ │ ├── MainWindow.axaml.cs
│ │ ├── Path
│ │ │ ├── PathSizeView.axaml.cs
│ │ │ ├── PathFigureView.axaml.cs
│ │ │ ├── Segments
│ │ │ │ ├── ArcSegmentView.axaml.cs
│ │ │ │ ├── LineSegmentView.axaml.cs
│ │ │ │ ├── CubicBezierSegmentView.axaml.cs
│ │ │ │ ├── QuadraticBezierSegmentView.axaml.cs
│ │ │ │ ├── LineSegmentView.axaml
│ │ │ │ └── QuadraticBezierSegmentView.axaml
│ │ │ └── PathSizeView.axaml
│ │ ├── Docking
│ │ │ ├── Views
│ │ │ │ ├── HomeView.axaml.cs
│ │ │ │ ├── DashboardView.axaml.cs
│ │ │ │ ├── HomeMenuView.axaml.cs
│ │ │ │ ├── DashboardMenuView.axaml.cs
│ │ │ │ ├── HomeStatusBarView.axaml.cs
│ │ │ │ └── HomeMenuView.axaml
│ │ │ ├── Documents
│ │ │ │ ├── PageView.axaml.cs
│ │ │ │ ├── TemplateView.axaml.cs
│ │ │ │ ├── BlockDocumentView.axaml.cs
│ │ │ │ ├── PageView.axaml
│ │ │ │ ├── TemplateView.axaml
│ │ │ │ └── BlockDocumentView.axaml
│ │ │ └── Tools
│ │ │ │ ├── ObjectBrowserView.axaml.cs
│ │ │ │ ├── ProjectExplorerView.axaml.cs
│ │ │ │ ├── Options
│ │ │ │ ├── ImageOptionsView.axaml.cs
│ │ │ │ ├── ZoomOptionsView.axaml.cs
│ │ │ │ ├── ProjectOptionsView.axaml.cs
│ │ │ │ ├── RendererOptionsView.axaml.cs
│ │ │ │ ├── ImageOptionsView.axaml
│ │ │ │ ├── ProjectOptionsView.axaml
│ │ │ │ └── RendererOptionsView.axaml
│ │ │ │ ├── Libraries
│ │ │ │ ├── BlockLibraryView.axaml.cs
│ │ │ │ ├── StyleLibraryView.axaml.cs
│ │ │ │ ├── ScriptLibraryView.axaml.cs
│ │ │ │ ├── DatabaseLibraryView.axaml.cs
│ │ │ │ ├── TemplateLibraryView.axaml.cs
│ │ │ │ ├── StyleLibraryView.axaml
│ │ │ │ ├── ScriptLibraryView.axaml
│ │ │ │ ├── DatabaseLibraryView.axaml
│ │ │ │ └── TemplateLibraryView.axaml
│ │ │ │ ├── Properties
│ │ │ │ ├── DataPropertiesView.axaml.cs
│ │ │ │ ├── PagePropertiesView.axaml.cs
│ │ │ │ ├── ShapePropertiesView.axaml.cs
│ │ │ │ ├── StatePropertiesView.axaml.cs
│ │ │ │ ├── StylePropertiesView.axaml.cs
│ │ │ │ └── PagePropertiesView.axaml
│ │ │ │ └── ProjectExplorerView.axaml
│ │ ├── Libraries
│ │ │ ├── ImagesView.axaml.cs
│ │ │ ├── StylesView.axaml.cs
│ │ │ ├── ScriptsView.axaml.cs
│ │ │ ├── DatabasesView.axaml.cs
│ │ │ ├── TemplatesView.axaml.cs
│ │ │ └── BlocksView.axaml.cs
│ │ ├── Scripting
│ │ │ └── ScriptView.axaml.cs
│ │ ├── Shapes
│ │ │ ├── ArcShapeView.axaml.cs
│ │ │ ├── BlockShapeView.axaml.cs
│ │ │ ├── ImageShapeView.axaml.cs
│ │ │ ├── LineShapeView.axaml.cs
│ │ │ ├── PathShapeView.axaml.cs
│ │ │ ├── PointShapeView.axaml.cs
│ │ │ ├── TextShapeView.axaml.cs
│ │ │ ├── WireShapeView.axaml.cs
│ │ │ ├── EllipseShapeView.axaml.cs
│ │ │ ├── RectangleShapeView.axaml.cs
│ │ │ ├── CubicBezierShapeView.axaml.cs
│ │ │ ├── InsertShapeView.axaml.cs
│ │ │ └── QuadraticBezierShapeView.axaml.cs
│ │ ├── Style
│ │ │ ├── ArgbColorView.axaml.cs
│ │ │ ├── FillStyleView.axaml.cs
│ │ │ ├── TextStyleView.axaml.cs
│ │ │ ├── ShapeStyleView.axaml.cs
│ │ │ ├── StrokeStyleView.axaml.cs
│ │ │ └── FillStyleView.axaml
│ │ ├── Containers
│ │ │ ├── OptionsView.axaml.cs
│ │ │ ├── LayerContainerView.axaml.cs
│ │ │ ├── PageContainerView.axaml.cs
│ │ │ ├── ProjectContainerView.axaml.cs
│ │ │ ├── DocumentContainerView.axaml.cs
│ │ │ ├── TemplateContainerView.axaml.cs
│ │ │ └── PageContainerView.axaml
│ │ ├── Editor
│ │ │ └── AboutInfoView.axaml.cs
│ │ ├── Editors
│ │ │ └── TextBindingEditorView.axaml.cs
│ │ └── Wizard
│ │ │ └── Export
│ │ │ └── ExportWizardView.axaml.cs
│ ├── Controls
│ │ ├── Editor
│ │ │ ├── MenuView.axaml.cs
│ │ │ └── ToolsView.axaml.cs
│ │ ├── Dialog
│ │ │ ├── DialogView.axaml.cs
│ │ │ └── DialogPresenterView.axaml.cs
│ │ └── ToggleItem.axaml.cs
│ ├── Rendering
│ │ ├── IRendererProvider.cs
│ │ ├── IRenderHost.cs
│ │ └── ImmediateRenderHost.cs
│ ├── Util
│ │ └── Utilities.cs
│ ├── Configuration
│ │ └── Windows
│ │ │ └── WindowConfiguration.cs
│ ├── Behaviors
│ │ ├── AttachEditorBehavior.cs
│ │ └── DragAndDrop
│ │ │ ├── ScriptsListBoxDropHandler.cs
│ │ │ └── TemplatesListBoxDropHandler.cs
│ ├── Converters
│ │ ├── IsBlockConverter.cs
│ │ ├── ObjectEqualityMultiConverter.cs
│ │ ├── IsCurrentToolConverter.cs
│ │ ├── SelectedShapesHasItemsValueConverter.cs
│ │ ├── ArgbColorToBrushConverter.cs
│ │ ├── SelectedShapesIsEmptyValueConverter.cs
│ │ ├── FontStyleFlagsConverter.cs
│ │ ├── ShapeStateFlagsConverter.cs
│ │ ├── SelectedShapesFirstItemValueConverter.cs
│ │ ├── ShapeToTypeStringConverter.cs
│ │ ├── ContainerToTypeStringConverter.cs
│ │ └── SelectedShapesFirstItemStyleValueConverter.cs
│ ├── App.axaml
│ └── Settings.cs
├── Core2D.Browser
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── wwwroot
│ │ ├── favicon.ico
│ │ └── main.js
│ ├── runtimeconfig.template.json
│ ├── Program.cs
│ └── Core2D.Browser.csproj
├── Core2D.Generators
│ ├── AnalyzerReleases.Shipped.md
│ └── AnalyzerReleases.Unshipped.md
├── Core2D.ViewModels
│ ├── Model
│ │ ├── Editor
│ │ │ ├── IPathTool.cs
│ │ │ ├── IEditorTool.cs
│ │ │ ├── MoveMode.cs
│ │ │ ├── IDialogPresenter.cs
│ │ │ ├── ITool.cs
│ │ │ ├── IEditorCanvasPlatform.cs
│ │ │ ├── IShapeEditor.cs
│ │ │ └── IBounds.cs
│ │ ├── Path
│ │ │ ├── FillRule.cs
│ │ │ └── SweepDirection.cs
│ │ ├── IPickerItem.cs
│ │ ├── Renderer
│ │ │ ├── IImageKey.cs
│ │ │ ├── Nodes
│ │ │ │ ├── IArcDrawNode.cs
│ │ │ │ ├── IPathDrawNode.cs
│ │ │ │ ├── IWireDrawNode.cs
│ │ │ │ ├── IEllipseDrawNode.cs
│ │ │ │ ├── IRectangleDrawNode.cs
│ │ │ │ ├── ICubicBezierDrawNode.cs
│ │ │ │ ├── IQuadraticBezierDrawNode.cs
│ │ │ │ ├── ITextDrawNode.cs
│ │ │ │ ├── IMarker.cs
│ │ │ │ ├── IPointDrawNode.cs
│ │ │ │ ├── IGridDrawNode.cs
│ │ │ │ ├── ILineDrawNode.cs
│ │ │ │ ├── IImageDrawNode.cs
│ │ │ │ ├── IFillDrawNode.cs
│ │ │ │ └── IDrawNode.cs
│ │ │ ├── PathOp.cs
│ │ │ ├── ICache.cs
│ │ │ ├── IContainerPresenter.cs
│ │ │ ├── ShapeStateFlags.cs
│ │ │ ├── IImageCache.cs
│ │ │ ├── IDecorator.cs
│ │ │ └── IGrid.cs
│ │ ├── IXamlExporter.cs
│ │ ├── ISvgExporter.cs
│ │ ├── Style
│ │ │ ├── LineCap.cs
│ │ │ ├── TextHAlignment.cs
│ │ │ ├── TextVAlignment.cs
│ │ │ ├── ArrowType.cs
│ │ │ └── FontStyleFlags.cs
│ │ ├── IStringExporter.cs
│ │ ├── IImageImporter.cs
│ │ ├── ITextFieldReader.cs
│ │ ├── IJsonSerializer.cs
│ │ ├── IFileWriter.cs
│ │ ├── IScriptRunner.cs
│ │ ├── ITextFieldWriter.cs
│ │ ├── Input
│ │ │ ├── ModifierFlags.cs
│ │ │ ├── InputSource.cs
│ │ │ ├── InputTarget.cs
│ │ │ ├── InputArgsObserver.cs
│ │ │ └── InputArgs.cs
│ │ ├── ITextClipboard.cs
│ │ ├── ISelectable.cs
│ │ ├── ISelection.cs
│ │ ├── History
│ │ │ └── IHistory.cs
│ │ ├── IConnectable.cs
│ │ ├── IProjectExporter.cs
│ │ ├── ISvgConverter.cs
│ │ ├── IDataObject.cs
│ │ ├── IMetafileExporter.cs
│ │ ├── IContainerFactory.cs
│ │ ├── IDrawable.cs
│ │ ├── IFileSystem.cs
│ │ ├── ILog.cs
│ │ ├── IWmfImporter.cs
│ │ ├── IDwgImporter.cs
│ │ ├── IVisioImporter.cs
│ │ └── IPathConverter.cs
│ ├── ViewModels
│ │ ├── Layout
│ │ │ ├── FlipMode.cs
│ │ │ ├── DistributeMode.cs
│ │ │ ├── StackMode.cs
│ │ │ ├── AlignMode.cs
│ │ │ ├── Box.cs
│ │ │ └── GraphLayoutEnums.cs
│ │ ├── Docking
│ │ │ ├── Views
│ │ │ │ ├── HomeViewModel.cs
│ │ │ │ ├── DashboardViewModel.cs
│ │ │ │ ├── HomeMenuViewModel.cs
│ │ │ │ ├── DashboardMenuViewModel.cs
│ │ │ │ └── HomeStatusBarViewModel.cs
│ │ │ ├── Tools
│ │ │ │ ├── ObjectBrowserViewModel.cs
│ │ │ │ ├── ProjectExplorerViewModel.cs
│ │ │ │ ├── Options
│ │ │ │ │ ├── ZoomOptionsViewModel.cs
│ │ │ │ │ ├── ImageOptionsViewModel.cs
│ │ │ │ │ ├── ProjectOptionsViewModel.cs
│ │ │ │ │ └── RendererOptionsViewModel.cs
│ │ │ │ ├── Libraries
│ │ │ │ │ ├── BlockLibraryViewModel.cs
│ │ │ │ │ ├── StyleLibraryViewModel.cs
│ │ │ │ │ ├── ScriptLibraryViewModel.cs
│ │ │ │ │ ├── DatabaseLibraryViewModel.cs
│ │ │ │ │ └── TemplateLibraryViewModel.cs
│ │ │ │ └── Properties
│ │ │ │ │ ├── DataPropertiesViewModel.cs
│ │ │ │ │ ├── PagePropertiesViewModel.cs
│ │ │ │ │ ├── ShapePropertiesViewModel.cs
│ │ │ │ │ ├── StatePropertiesViewModel.cs
│ │ │ │ │ └── StylePropertiesViewModel.cs
│ │ │ └── Documents
│ │ │ │ ├── PageViewModel.cs
│ │ │ │ ├── TemplateViewModel.cs
│ │ │ │ └── BlockDocumentViewModel.cs
│ │ ├── Renderer
│ │ │ └── RendererOption.cs
│ │ ├── Style
│ │ │ └── BaseColorViewModel.cs
│ │ ├── Editor
│ │ │ ├── IRendererSelectionService.cs
│ │ │ ├── History
│ │ │ │ └── UndoRedo.cs
│ │ │ ├── Tools
│ │ │ │ └── Selection
│ │ │ │ │ ├── WireSelection.cs
│ │ │ │ │ ├── PathSelection.cs
│ │ │ │ │ └── PointSelection.cs
│ │ │ ├── IClipboardService.cs
│ │ │ └── IGraphLayoutService.cs
│ │ ├── Containers
│ │ │ ├── BaseContainerViewModel.cs
│ │ │ └── ProjectContainerViewModelExtensions.cs
│ │ ├── Shapes
│ │ │ └── PointShapeExtensions.cs
│ │ ├── Data
│ │ │ ├── Bindings
│ │ │ │ └── BindingPart.cs
│ │ │ ├── ValueViewModel.cs
│ │ │ └── ColumnViewModel.cs
│ │ └── Path
│ │ │ └── PathSegmentViewModel.cs
│ ├── Wizard
│ │ └── Export
│ │ │ ├── Scopes
│ │ │ ├── ExportScopeKind.cs
│ │ │ ├── ExportScopeSelection.cs
│ │ │ └── ExportScopeFormatter.cs
│ │ │ ├── WizardStepState.cs
│ │ │ ├── Destination
│ │ │ └── DestinationPreviewItem.cs
│ │ │ ├── Execution
│ │ │ └── ExportJobStatus.cs
│ │ │ ├── IWizardStepViewModel.cs
│ │ │ ├── WizardNavigationService.cs
│ │ │ ├── Exporters
│ │ │ └── ExporterCategoryViewModel.cs
│ │ │ └── Steps
│ │ │ └── SummaryIssueViewModel.cs
│ └── Export
│ │ ├── IExportOptionsSerializable.cs
│ │ ├── ExportOptionsDto.cs
│ │ ├── IExportOptionsCatalog.cs
│ │ ├── ExportOptionsDescriptor.cs
│ │ └── Options
│ │ └── DefaultExportOptionsViewModel.cs
├── Core2D.Spatial
│ ├── Core2D.Spatial.csproj
│ └── Spatial
│ │ ├── Sat
│ │ ├── MinimumTranslationVector.cs
│ │ └── Projection.cs
│ │ ├── Size2.cs
│ │ └── Polygon2.cs
├── Core2D.Modules.Renderer.Avalonia
│ ├── Nodes
│ │ └── Markers
│ │ │ ├── NoneMarker.cs
│ │ │ ├── ArrowMarker.cs
│ │ │ ├── EllipseMarker.cs
│ │ │ └── RectangleMarker.cs
│ ├── AvaloniaRendererViewModel.cs
│ └── Core2D.Modules.Renderer.Avalonia.csproj
├── Core2D.Modules.Renderer.SkiaSharp
│ ├── Nodes
│ │ └── Markers
│ │ │ ├── NoneMarker.cs
│ │ │ ├── ArrowMarker.cs
│ │ │ ├── RectangleMarker.cs
│ │ │ └── EllipseMarker.cs
│ ├── SkiaSharpRendererViewModel.cs
│ └── Core2D.Modules.Renderer.SkiaSharp.csproj
├── Core2D.Modules.Log
│ └── Core2D.Modules.Log.csproj
├── Core2D.Modules.FileSystem
│ └── Core2D.Modules.FileSystem.csproj
├── Core2D.Modules.SvgExporter
│ └── Core2D.Modules.SvgExporter.csproj
├── Core2D.Modules.XamlExporter
│ └── Core2D.Modules.XamlExporter.csproj
├── Core2D.Modules.Renderer.OpenXml
│ ├── OpenXmlUnits.cs
│ ├── OpenXmlColorExtensions.cs
│ └── Core2D.Modules.Renderer.OpenXml.csproj
├── Core2D.Controls.Ruler
│ └── Core2D.Controls.Ruler.csproj
├── Core2D.Modules.ScriptRunner
│ └── Core2D.Modules.ScriptRunner.csproj
├── Core2D.Modules.TextFieldReader
│ └── Core2D.Modules.TextFieldReader.csproj
├── Core2D.Modules.TextFieldWriter
│ └── Core2D.Modules.TextFieldWriter.csproj
├── Core2D.Modules.Serializer
│ └── Core2D.Modules.Serializer.csproj
├── Core2D.Modules.Renderer.SparseStrips
│ └── Core2D.Modules.Renderer.SparseStrips.csproj
├── Core2D.Desktop
│ ├── app.manifest
│ └── Core2D.Desktop.csproj
├── Core2D.Modules.Renderer.WinForms
│ └── Core2D.Modules.Renderer.WinForms.csproj
├── Core2D.Modules.Renderer.Common
│ └── Core2D.Modules.Renderer.Common.csproj
├── Core2D.Modules.Renderer.VelloSharp
│ └── Core2D.Modules.Renderer.VelloSharp.csproj
├── Core2D.Modules.Renderer.Dwg
│ └── Core2D.Modules.Renderer.Dwg.csproj
└── Core2D.Modules.Renderer.Dxf
│ └── Core2D.Modules.Renderer.Dxf.csproj
├── global.json
├── external
└── Directory.Packages.props
├── .gitmodules
├── NuGet.Config
├── .gitattributes
├── Directory.Build.props
├── tests
└── Core2D.ViewModels.Tests
│ └── Core2D.ViewModels.Tests.csproj
└── LICENSE.TXT
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | github: [wieslawsoltes]
2 |
--------------------------------------------------------------------------------
/src/Core2D/Assets/Core2D.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wieslawsoltes/Core2D/HEAD/src/Core2D/Assets/Core2D.ico
--------------------------------------------------------------------------------
/src/Core2D.Browser/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | [assembly:System.Runtime.Versioning.SupportedOSPlatform("browser")]
2 |
--------------------------------------------------------------------------------
/src/Core2D.Browser/wwwroot/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wieslawsoltes/Core2D/HEAD/src/Core2D.Browser/wwwroot/favicon.ico
--------------------------------------------------------------------------------
/global.json:
--------------------------------------------------------------------------------
1 | {
2 | "sdk": {
3 | "version": "9.0.301",
4 | "rollForward": "latestMinor",
5 | "allowPrerelease": true
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/src/Core2D/Assets/Fonts/RobotoMono-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wieslawsoltes/Core2D/HEAD/src/Core2D/Assets/Fonts/RobotoMono-Regular.ttf
--------------------------------------------------------------------------------
/src/Core2D.Generators/AnalyzerReleases.Shipped.md:
--------------------------------------------------------------------------------
1 | ## Release 0.1.0
2 |
3 | ### New Rules
4 | Rule ID | Category | Severity | Notes
5 | --------|----------|----------|------
6 |
--------------------------------------------------------------------------------
/src/Core2D.Browser/runtimeconfig.template.json:
--------------------------------------------------------------------------------
1 | {
2 | "wasmHostProperties": {
3 | "perHostConfig": [
4 | {
5 | "name": "browser",
6 | "host": "browser"
7 | }
8 | ]
9 | }
10 | }
--------------------------------------------------------------------------------
/external/Directory.Packages.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | false
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "external/ACadSharp"]
2 | path = external/ACadSharp
3 | url = https://github.com/wieslawsoltes/ACadSharp.git
4 | [submodule "external/PdfPig.Rendering.Skia"]
5 | path = external/PdfPig.Rendering.Skia
6 | url = https://github.com/wieslawsoltes/PdfPig.Rendering.Skia.git
7 |
--------------------------------------------------------------------------------
/src/Core2D/AppBuilderFactory.cs:
--------------------------------------------------------------------------------
1 | using Avalonia;
2 |
3 | namespace Core2D;
4 |
5 | public static class AppBuilderFactory
6 | {
7 | public static AppBuilder BuildAvaloniaApp()
8 | => AppBuilder.Configure()
9 | .UsePlatformDetect()
10 | .LogToTrace();
11 | }
12 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/Model/Editor/IPathTool.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | #nullable enable
5 | namespace Core2D.Model.Editor;
6 |
7 | public interface IPathTool : ITool
8 | {
9 | }
10 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/Model/Editor/IEditorTool.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | #nullable enable
5 | namespace Core2D.Model.Editor;
6 |
7 | public interface IEditorTool : ITool
8 | {
9 | }
10 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/ViewModels/Layout/FlipMode.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | namespace Core2D.ViewModels.Layout;
5 |
6 | public enum FlipMode
7 | {
8 | Horizontal,
9 | Vertical
10 | }
11 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/Model/Editor/MoveMode.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | #nullable enable
5 | namespace Core2D.Model.Editor;
6 |
7 | public enum MoveMode
8 | {
9 | Point,
10 |
11 | Shape
12 | }
13 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/Model/Path/FillRule.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | #nullable enable
5 | namespace Core2D.Model.Path;
6 |
7 | public enum FillRule
8 | {
9 | Nonzero,
10 |
11 | EvenOdd
12 | }
13 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/ViewModels/Layout/DistributeMode.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | namespace Core2D.ViewModels.Layout;
5 |
6 | public enum DistributeMode
7 | {
8 | Horizontal,
9 | Vertical
10 | }
11 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/Model/IPickerItem.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | namespace Core2D.Model;
5 |
6 | public interface IPickerItem
7 | {
8 | string Name { get; }
9 |
10 | string Extension { get; }
11 | }
12 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/Model/Renderer/IImageKey.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | #nullable enable
5 | namespace Core2D.Model.Renderer;
6 |
7 | public interface IImageKey
8 | {
9 | string? Key { get; set; }
10 | }
11 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/Model/IXamlExporter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | #nullable enable
5 | namespace Core2D.Model;
6 |
7 | public interface IXamlExporter
8 | {
9 | string Create(object item, string? key);
10 | }
11 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/ViewModels/Layout/StackMode.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | #nullable enable
5 | namespace Core2D.ViewModels.Layout;
6 |
7 | public enum StackMode
8 | {
9 | Horizontal,
10 | Vertical
11 | }
12 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/Model/Path/SweepDirection.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | #nullable enable
5 | namespace Core2D.Model.Path;
6 |
7 | public enum SweepDirection
8 | {
9 | Clockwise,
10 |
11 | Counterclockwise
12 | }
13 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/Model/ISvgExporter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | #nullable enable
5 | namespace Core2D.Model;
6 |
7 | public interface ISvgExporter
8 | {
9 | string Create(object? item, double width, double height);
10 | }
11 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/Model/Style/LineCap.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | #nullable enable
5 | namespace Core2D.Model.Style;
6 |
7 | public enum LineCap
8 | {
9 | Flat = 0,
10 |
11 | Square = 1,
12 |
13 | Round = 2
14 | }
15 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/Model/Style/TextHAlignment.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | #nullable enable
5 | namespace Core2D.Model.Style;
6 |
7 | public enum TextHAlignment
8 | {
9 | Left,
10 |
11 | Center,
12 |
13 | Right
14 | }
15 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/Model/Style/TextVAlignment.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | #nullable enable
5 | namespace Core2D.Model.Style;
6 |
7 | public enum TextVAlignment
8 | {
9 | Top,
10 |
11 | Center,
12 |
13 | Bottom
14 | }
15 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/Model/IStringExporter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | #nullable enable
5 | namespace Core2D.Model;
6 |
7 | public interface IStringExporter
8 | {
9 | string ToXamlString();
10 |
11 | string ToSvgString();
12 | }
13 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/Model/Style/ArrowType.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | #nullable enable
5 | namespace Core2D.Model.Style;
6 |
7 | public enum ArrowType
8 | {
9 | None,
10 |
11 | Rectangle,
12 |
13 | Ellipse,
14 |
15 | Arrow
16 | }
17 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/ViewModels/Docking/Views/HomeViewModel.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | #nullable enable
5 | using Dock.Model.Mvvm.Core;
6 |
7 | namespace Core2D.ViewModels.Docking.Views;
8 |
9 | public class HomeViewModel : DockBase
10 | {
11 | }
12 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/Model/IImageImporter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | #nullable enable
5 | using System.Threading.Tasks;
6 |
7 | namespace Core2D.Model;
8 |
9 | public interface IImageImporter
10 | {
11 | Task GetImageKeyAsync();
12 | }
13 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/Model/ITextFieldReader.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | #nullable enable
5 | using System.IO;
6 |
7 | namespace Core2D.Model;
8 |
9 | public interface ITextFieldReader : IPickerItem
10 | {
11 | T? Read(Stream stream);
12 | }
13 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/ViewModels/Layout/AlignMode.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | namespace Core2D.ViewModels.Layout;
5 |
6 | public enum AlignMode
7 | {
8 | Left,
9 | Centered,
10 | Right,
11 | Top,
12 | Center,
13 | Bottom
14 | }
15 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/Model/IJsonSerializer.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | #nullable enable
5 | namespace Core2D.Model;
6 |
7 | public interface IJsonSerializer
8 | {
9 | string Serialize(T? value);
10 |
11 | T? Deserialize(string json);
12 | }
13 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/ViewModels/Docking/Views/DashboardViewModel.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | #nullable enable
5 | using Dock.Model.Mvvm.Core;
6 |
7 | namespace Core2D.ViewModels.Docking.Views;
8 |
9 | public class DashboardViewModel : DockBase
10 | {
11 | }
12 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/ViewModels/Docking/Views/HomeMenuViewModel.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | #nullable enable
5 | using Dock.Model.Mvvm.Core;
6 |
7 | namespace Core2D.ViewModels.Docking.Views;
8 |
9 | public class HomeMenuViewModel : DockBase
10 | {
11 | }
12 |
--------------------------------------------------------------------------------
/src/Core2D.Spatial/Core2D.Spatial.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | net9.0
4 | enable
5 | False
6 | True
7 | Core2D
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/Wizard/Export/Scopes/ExportScopeKind.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | #nullable enable
5 |
6 | namespace Core2D.ViewModels.Wizard.Export.Scopes;
7 |
8 | public enum ExportScopeKind
9 | {
10 | Project,
11 | Document,
12 | Page
13 | }
14 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/Wizard/Export/WizardStepState.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | #nullable enable
5 |
6 | namespace Core2D.ViewModels.Wizard.Export;
7 |
8 | public enum WizardStepState
9 | {
10 | Pending,
11 | Ready,
12 | Warning,
13 | Error
14 | }
15 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/Model/IFileWriter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | #nullable enable
5 | using System.IO;
6 |
7 | namespace Core2D.Model;
8 |
9 | public interface IFileWriter: IPickerItem
10 | {
11 | void Save(Stream stream, object item, object? options);
12 | }
13 |
--------------------------------------------------------------------------------
/src/Core2D.ViewModels/Model/IScriptRunner.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Wiesław Šoltés. All rights reserved.
2 | // Licensed under the MIT. See LICENSE.TXT file in the project root for details.
3 |
4 | #nullable enable
5 | using System.Threading.Tasks;
6 |
7 | namespace Core2D.Model;
8 |
9 | public interface IScriptRunner
10 | {
11 | Task