├── .gitignore ├── LICENSE ├── Libraries ├── Readme.md ├── net46 │ ├── SharpVectors.Notifications.Wpf.dll │ ├── SharpVectors.Notifications.Wpf.xml │ ├── SharpVectors.ShellFileDialogs.dll │ ├── SharpVectors.ShellFileDialogs.dll.config │ └── SharpVectors.ShellFileDialogs.xml ├── net48 │ ├── SharpVectors.Notifications.Wpf.dll │ ├── SharpVectors.Notifications.Wpf.xml │ ├── SharpVectors.ShellFileDialogs.dll │ ├── SharpVectors.ShellFileDialogs.dll.config │ └── SharpVectors.ShellFileDialogs.xml ├── netcoreapp3.1 │ ├── SharpVectors.Notifications.Wpf.deps.json │ ├── SharpVectors.Notifications.Wpf.dll │ └── SharpVectors.Notifications.Wpf.xml └── netstandard2.1 │ ├── SharpVectors.ShellFileDialogs.deps.json │ ├── SharpVectors.ShellFileDialogs.dll │ ├── SharpVectors.ShellFileDialogs.dll.config │ └── SharpVectors.ShellFileDialogs.xml ├── Output ├── net46 │ ├── SharpVectors.Converters.Wpf.dll │ ├── SharpVectors.Core.dll │ ├── SharpVectors.Css.dll │ ├── SharpVectors.Dom.dll │ ├── SharpVectors.Model.dll │ ├── SharpVectors.Rendering.Gdi.dll │ ├── SharpVectors.Rendering.Wpf.dll │ ├── SharpVectors.Runtime.Wpf.dll │ ├── SvgViewer.exe │ └── SvgViewer.exe.config ├── net48 │ ├── SharpVectors.Converters.Wpf.dll │ ├── SharpVectors.Core.dll │ ├── SharpVectors.Css.dll │ ├── SharpVectors.Dom.dll │ ├── SharpVectors.Model.dll │ ├── SharpVectors.Rendering.Gdi.dll │ ├── SharpVectors.Rendering.Wpf.dll │ ├── SharpVectors.Runtime.Wpf.dll │ ├── SvgViewer.exe │ └── SvgViewer.exe.config └── netcoreapp3.1 │ ├── SharpVectors.Converters.Wpf.dll │ ├── SharpVectors.Core.dll │ ├── SharpVectors.Css.dll │ ├── SharpVectors.Dom.dll │ ├── SharpVectors.Model.dll │ ├── SharpVectors.Rendering.Gdi.dll │ ├── SharpVectors.Rendering.Wpf.dll │ ├── SharpVectors.Runtime.Wpf.dll │ ├── SvgViewer.deps.json │ ├── SvgViewer.dll │ ├── SvgViewer.dll.config │ ├── SvgViewer.exe │ ├── SvgViewer.runtimeconfig.dev.json │ └── SvgViewer.runtimeconfig.json ├── README.md └── Source ├── Readme.md ├── SharpVectorsSvgViewer.sln └── SvgViewer ├── App.xaml ├── App.xaml.cs ├── MainWindow.xaml ├── MainWindow.xaml.cs ├── MouseHandlingMode.cs ├── Properties ├── AssemblyInfo.cs ├── Resources.Designer.cs ├── Resources.resx ├── Settings.Designer.cs └── Settings.settings ├── SvgViewer.VS2017.csproj ├── SvgViewer.csproj └── app.config /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | ## 4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 5 | 6 | # User-specific files 7 | *.rsuser 8 | *.suo 9 | *.user 10 | *.userosscache 11 | *.sln.docstates 12 | 13 | # User-specific files (MonoDevelop/Xamarin Studio) 14 | *.userprefs 15 | 16 | # Mono auto generated files 17 | mono_crash.* 18 | 19 | # Build results 20 | [Dd]ebug/ 21 | [Dd]ebugPublic/ 22 | [Rr]elease/ 23 | [Rr]eleases/ 24 | x64/ 25 | x86/ 26 | [Aa][Rr][Mm]/ 27 | [Aa][Rr][Mm]64/ 28 | bld/ 29 | [Bb]in/ 30 | [Oo]bj/ 31 | [Ll]og/ 32 | [Ll]ogs/ 33 | 34 | # Visual Studio 2015/2017 cache/options directory 35 | .vs/ 36 | # Uncomment if you have tasks that create the project's static files in wwwroot 37 | #wwwroot/ 38 | 39 | # Visual Studio 2017 auto generated files 40 | Generated\ Files/ 41 | 42 | # MSTest test Results 43 | [Tt]est[Rr]esult*/ 44 | [Bb]uild[Ll]og.* 45 | 46 | # NUnit 47 | *.VisualState.xml 48 | TestResult.xml 49 | nunit-*.xml 50 | 51 | # Build Results of an ATL Project 52 | [Dd]ebugPS/ 53 | [Rr]eleasePS/ 54 | dlldata.c 55 | 56 | # Benchmark Results 57 | BenchmarkDotNet.Artifacts/ 58 | 59 | # .NET Core 60 | project.lock.json 61 | project.fragment.lock.json 62 | artifacts/ 63 | 64 | # StyleCop 65 | StyleCopReport.xml 66 | 67 | # Files built by Visual Studio 68 | *_i.c 69 | *_p.c 70 | *_h.h 71 | *.ilk 72 | *.meta 73 | *.obj 74 | *.iobj 75 | *.pch 76 | *.pdb 77 | *.ipdb 78 | *.pgc 79 | *.pgd 80 | *.rsp 81 | *.sbr 82 | *.tlb 83 | *.tli 84 | *.tlh 85 | *.tmp 86 | *.tmp_proj 87 | *_wpftmp.csproj 88 | *.log 89 | *.vspscc 90 | *.vssscc 91 | .builds 92 | *.pidb 93 | *.svclog 94 | *.scc 95 | 96 | # Chutzpah Test files 97 | _Chutzpah* 98 | 99 | # Visual C++ cache files 100 | ipch/ 101 | *.aps 102 | *.ncb 103 | *.opendb 104 | *.opensdf 105 | *.sdf 106 | *.cachefile 107 | *.VC.db 108 | *.VC.VC.opendb 109 | 110 | # Visual Studio profiler 111 | *.psess 112 | *.vsp 113 | *.vspx 114 | *.sap 115 | 116 | # Visual Studio Trace Files 117 | *.e2e 118 | 119 | # TFS 2012 Local Workspace 120 | $tf/ 121 | 122 | # Guidance Automation Toolkit 123 | *.gpState 124 | 125 | # ReSharper is a .NET coding add-in 126 | _ReSharper*/ 127 | *.[Rr]e[Ss]harper 128 | *.DotSettings.user 129 | 130 | # TeamCity is a build add-in 131 | _TeamCity* 132 | 133 | # DotCover is a Code Coverage Tool 134 | *.dotCover 135 | 136 | # AxoCover is a Code Coverage Tool 137 | .axoCover/* 138 | !.axoCover/settings.json 139 | 140 | # Visual Studio code coverage results 141 | *.coverage 142 | *.coveragexml 143 | 144 | # NCrunch 145 | _NCrunch_* 146 | .*crunch*.local.xml 147 | nCrunchTemp_* 148 | 149 | # MightyMoose 150 | *.mm.* 151 | AutoTest.Net/ 152 | 153 | # Web workbench (sass) 154 | .sass-cache/ 155 | 156 | # Installshield output folder 157 | [Ee]xpress/ 158 | 159 | # DocProject is a documentation generator add-in 160 | DocProject/buildhelp/ 161 | DocProject/Help/*.HxT 162 | DocProject/Help/*.HxC 163 | DocProject/Help/*.hhc 164 | DocProject/Help/*.hhk 165 | DocProject/Help/*.hhp 166 | DocProject/Help/Html2 167 | DocProject/Help/html 168 | 169 | # Click-Once directory 170 | publish/ 171 | 172 | # Publish Web Output 173 | *.[Pp]ublish.xml 174 | *.azurePubxml 175 | # Note: Comment the next line if you want to checkin your web deploy settings, 176 | # but database connection strings (with potential passwords) will be unencrypted 177 | *.pubxml 178 | *.publishproj 179 | 180 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 181 | # checkin your Azure Web App publish settings, but sensitive information contained 182 | # in these scripts will be unencrypted 183 | PublishScripts/ 184 | 185 | # NuGet Packages 186 | *.nupkg 187 | # NuGet Symbol Packages 188 | *.snupkg 189 | # The packages folder can be ignored because of Package Restore 190 | **/[Pp]ackages/* 191 | # except build/, which is used as an MSBuild target. 192 | !**/[Pp]ackages/build/ 193 | # Uncomment if necessary however generally it will be regenerated when needed 194 | #!**/[Pp]ackages/repositories.config 195 | # NuGet v3's project.json files produces more ignorable files 196 | *.nuget.props 197 | *.nuget.targets 198 | 199 | # Microsoft Azure Build Output 200 | csx/ 201 | *.build.csdef 202 | 203 | # Microsoft Azure Emulator 204 | ecf/ 205 | rcf/ 206 | 207 | # Windows Store app package directories and files 208 | AppPackages/ 209 | BundleArtifacts/ 210 | Package.StoreAssociation.xml 211 | _pkginfo.txt 212 | *.appx 213 | *.appxbundle 214 | *.appxupload 215 | 216 | # Visual Studio cache files 217 | # files ending in .cache can be ignored 218 | *.[Cc]ache 219 | # but keep track of directories ending in .cache 220 | !?*.[Cc]ache/ 221 | 222 | # Others 223 | ClientBin/ 224 | ~$* 225 | *~ 226 | *.dbmdl 227 | *.dbproj.schemaview 228 | *.jfm 229 | *.pfx 230 | *.publishsettings 231 | orleans.codegen.cs 232 | 233 | # Including strong name files can present a security risk 234 | # (https://github.com/github/gitignore/pull/2483#issue-259490424) 235 | #*.snk 236 | 237 | # Since there are multiple workflows, uncomment next line to ignore bower_components 238 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 239 | #bower_components/ 240 | 241 | # RIA/Silverlight projects 242 | Generated_Code/ 243 | 244 | # Backup & report files from converting an old project file 245 | # to a newer Visual Studio version. Backup files are not needed, 246 | # because we have git ;-) 247 | _UpgradeReport_Files/ 248 | Backup*/ 249 | UpgradeLog*.XML 250 | UpgradeLog*.htm 251 | ServiceFabricBackup/ 252 | *.rptproj.bak 253 | 254 | # SQL Server files 255 | *.mdf 256 | *.ldf 257 | *.ndf 258 | 259 | # Business Intelligence projects 260 | *.rdl.data 261 | *.bim.layout 262 | *.bim_*.settings 263 | *.rptproj.rsuser 264 | *- [Bb]ackup.rdl 265 | *- [Bb]ackup ([0-9]).rdl 266 | *- [Bb]ackup ([0-9][0-9]).rdl 267 | 268 | # Microsoft Fakes 269 | FakesAssemblies/ 270 | 271 | # GhostDoc plugin setting file 272 | *.GhostDoc.xml 273 | 274 | # Node.js Tools for Visual Studio 275 | .ntvs_analysis.dat 276 | node_modules/ 277 | 278 | # Visual Studio 6 build log 279 | *.plg 280 | 281 | # Visual Studio 6 workspace options file 282 | *.opt 283 | 284 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 285 | *.vbw 286 | 287 | # Visual Studio LightSwitch build output 288 | **/*.HTMLClient/GeneratedArtifacts 289 | **/*.DesktopClient/GeneratedArtifacts 290 | **/*.DesktopClient/ModelManifest.xml 291 | **/*.Server/GeneratedArtifacts 292 | **/*.Server/ModelManifest.xml 293 | _Pvt_Extensions 294 | 295 | # Paket dependency manager 296 | .paket/paket.exe 297 | paket-files/ 298 | 299 | # FAKE - F# Make 300 | .fake/ 301 | 302 | # CodeRush personal settings 303 | .cr/personal 304 | 305 | # Python Tools for Visual Studio (PTVS) 306 | __pycache__/ 307 | *.pyc 308 | 309 | # Cake - Uncomment if you are using it 310 | # tools/** 311 | # !tools/packages.config 312 | 313 | # Tabs Studio 314 | *.tss 315 | 316 | # Telerik's JustMock configuration file 317 | *.jmconfig 318 | 319 | # BizTalk build output 320 | *.btp.cs 321 | *.btm.cs 322 | *.odx.cs 323 | *.xsd.cs 324 | 325 | # OpenCover UI analysis results 326 | OpenCover/ 327 | 328 | # Azure Stream Analytics local run output 329 | ASALocalRun/ 330 | 331 | # MSBuild Binary and Structured Log 332 | *.binlog 333 | 334 | # NVidia Nsight GPU debugger configuration file 335 | *.nvuser 336 | 337 | # MFractors (Xamarin productivity tool) working folder 338 | .mfractor/ 339 | 340 | # Local History for Visual Studio 341 | .localhistory/ 342 | 343 | # BeatPulse healthcheck temp database 344 | healthchecksdb 345 | 346 | # Backup folder for Package Reference Convert tool in Visual Studio 2017 347 | MigrationBackup/ 348 | 349 | # Ionide (cross platform F# VS Code tools) working folder 350 | .ionide/ 351 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2020, ElinamLLC 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | 3. Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /Libraries/Readme.md: -------------------------------------------------------------------------------- 1 | ## SharpVectors: Libraries 2 | 3 | The directory contains third-party libraries customized and/or built for the multi-platform sample projects and test applications. 4 | 5 | The following are the list of the libraries and with a short description. 6 | 7 | * **ICSharpCode.TextEditor.dll** This the source code text editing component found in Windows Forms versions of the SharpDevelop IDE. The source code is archived. 8 | This is used as SVG editor and viewer in Windows Forms samples and test applications. 9 | Link: https://github.com/icsharpcode/SharpDevelop 10 | * **SharpVectors.HtmlRenderer.WinForms.dll** This is a customized version an HTML Rendering control. This packs all the necessary codes in a single DLL for used by Windows Forms samples and test applications in places where the FlowDocument is used in WPF samples. 11 | Link: https://github.com/ArthurHub/HTML-Renderer 12 | * **SharpVectors.ShellFileDialogs.dll** This is a customized version of ShellFileDialogs library, which is a extracted from the Microsoft Windows API Code Pack library (currently archived). 13 | This is used for post-Windows Vista modern Folder Browser dialog in both Windows Forms and WPF samples and test applications. 14 | Link: https://github.com/Jehoel/ShellFileDialogs 15 | * **WeifenLuo.WinFormsUI.Docking.dll** This a multi-platform built of the popular Windows Forms docking library or DockPanelSuite. 16 | This is used by the Windows Forms samples and test applications. 17 | Link: https://github.com/dockpanelsuite/dockpanelsuite 18 | * **WeifenLuo.WinFormsUI.Docking.ThemeVS2015.dll** The VS2015 theme library for the DockPanelSuite. 19 | 20 | The source codes are not included in the SharpVectors repository to reduce the size. Any of these dependencies can be dropped at anytime without notice. Please do not use these in your applications. 21 | 22 | -------------------------------------------------------------------------------- /Libraries/net46/SharpVectors.Notifications.Wpf.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Libraries/net46/SharpVectors.Notifications.Wpf.dll -------------------------------------------------------------------------------- /Libraries/net46/SharpVectors.Notifications.Wpf.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SharpVectors.Notifications.Wpf 5 | 6 | 7 | 8 | progress was finished 9 | 10 | 11 | progress was finished 12 | 13 | 14 | 15 | Interaction logic for ToastWindow.xaml 16 | 17 | 18 | NotificationsOverlayWindow 19 | 20 | 21 | 22 | 23 | InitializeComponent 24 | 25 | 26 | 27 | 28 | Логика взаимодействия для NotificationInfoView.xaml 29 | 30 | 31 | NotificationInfoView 32 | 33 | 34 | 35 | 36 | InitializeComponent 37 | 38 | 39 | 40 | 41 | Логика взаимодействия для NotificationProgress.xaml 42 | 43 | 44 | NotificationProgress 45 | 46 | 47 | 48 | 49 | InitializeComponent 50 | 51 | 52 | 53 | Видимость 54 | 55 | 56 | Видимость 57 | 58 | 59 | Видимость 60 | 61 | 62 | Видимость 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /Libraries/net46/SharpVectors.ShellFileDialogs.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Libraries/net46/SharpVectors.ShellFileDialogs.dll -------------------------------------------------------------------------------- /Libraries/net46/SharpVectors.ShellFileDialogs.dll.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Libraries/net46/SharpVectors.ShellFileDialogs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SharpVectors.ShellFileDialogs 5 | 6 | 7 | 8 | 0-based index of the filter to select. 9 | 10 | 11 | Shows the file open dialog for multiple filename selections. Returns null if the dialog cancelled. Otherwise returns all selected paths. 12 | 0-based index of the filter to select. 13 | 14 | 15 | Shows the file open dialog for a single filename selection. Returns null if the dialog cancelled. Otherwise returns the selected path. 16 | 0-based index of the filter to select. 17 | 18 | 19 | Shows the folder browser dialog. Returns null if the dialog cancelled. Otherwise returns the selected path. 20 | 21 | 22 | 23 | S_OK 24 | 25 | 26 | 27 | 28 | S_FALSE 29 | 30 | 31 | 32 | 33 | E_INVALIDARG 34 | 35 | 36 | 37 | 38 | E_OUTOFMEMORY 39 | 40 | 41 | 42 | 43 | E_NOINTERFACE 44 | 45 | 46 | 47 | 48 | E_FAIL 49 | 50 | 51 | 52 | 53 | E_ELEMENTNOTFOUND 54 | 55 | 56 | 57 | 58 | TYPE_E_ELEMENTNOTFOUND 59 | 60 | 61 | 62 | 63 | NO_OBJECT 64 | 65 | 66 | 67 | 68 | Win32 Error code: ERROR_CANCELLED 69 | 70 | 71 | 72 | 73 | ERROR_CANCELLED 74 | 75 | 76 | 77 | 78 | The requested resource is in use 79 | 80 | 81 | 82 | 83 | The requested resources is read-only. 84 | 85 | 86 | 87 | 88 | Indicate flags that modify the property store object retrieved by methods 89 | that create a property store, such as IShellItem2::GetPropertyStore or 90 | IPropertyStoreFactory::GetPropertyStore. 91 | 92 | 93 | 94 | 95 | Meaning to a calling process: Return a read-only property store that contains all 96 | properties. Slow items (offline files) are not opened. 97 | Combination with other flags: Can be overridden by other flags. 98 | 99 | 100 | 101 | 102 | Meaning to a calling process: Include only properties directly from the property 103 | handler, which opens the file on the disk, network, or device. Meaning to a file 104 | folder: Only include properties directly from the handler. 105 | 106 | Meaning to other folders: When delegating to a file folder, pass this flag on 107 | to the file folder; do not do any multiplexing (MUX). When not delegating to a 108 | file folder, ignore this flag instead of returning a failure code. 109 | 110 | Combination with other flags: Cannot be combined with GPS_TEMPORARY, 111 | GPS_FASTPROPERTIESONLY, or GPS_BESTEFFORT. 112 | 113 | 114 | 115 | 116 | Meaning to a calling process: Can write properties to the item. 117 | Note: The store may contain fewer properties than a read-only store. 118 | 119 | Meaning to a file folder: ReadWrite. 120 | 121 | Meaning to other folders: ReadWrite. Note: When using default MUX, 122 | return a single unmultiplexed store because the default MUX does not support ReadWrite. 123 | 124 | Combination with other flags: Cannot be combined with GPS_TEMPORARY, GPS_FASTPROPERTIESONLY, 125 | GPS_BESTEFFORT, or GPS_DELAYCREATION. Implies GPS_HANDLERPROPERTIESONLY. 126 | 127 | 128 | 129 | 130 | Meaning to a calling process: Provides a writable store, with no initial properties, 131 | that exists for the lifetime of the Shell item instance; basically, a property bag 132 | attached to the item instance. 133 | 134 | Meaning to a file folder: Not applicable. Handled by the Shell item. 135 | 136 | Meaning to other folders: Not applicable. Handled by the Shell item. 137 | 138 | Combination with other flags: Cannot be combined with any other flag. Implies GPS_READWRITE 139 | 140 | 141 | 142 | 143 | Meaning to a calling process: Provides a store that does not involve reading from the 144 | disk or network. Note: Some values may be different, or missing, compared to a store 145 | without this flag. 146 | 147 | Meaning to a file folder: Include the "innate" and "fallback" stores only. Do not load the handler. 148 | 149 | Meaning to other folders: Include only properties that are available in memory or can 150 | be computed very quickly (no properties from disk, network, or peripheral IO devices). 151 | This is normally only data sources from the IDLIST. When delegating to other folders, pass this flag on to them. 152 | 153 | Combination with other flags: Cannot be combined with GPS_TEMPORARY, GPS_READWRITE, 154 | GPS_HANDLERPROPERTIESONLY, or GPS_DELAYCREATION. 155 | 156 | 157 | 158 | 159 | Meaning to a calling process: Open a slow item (offline file) if necessary. 160 | Meaning to a file folder: Retrieve a file from offline storage, if necessary. 161 | Note: Without this flag, the handler is not created for offline files. 162 | 163 | Meaning to other folders: Do not return any properties that are very slow. 164 | 165 | Combination with other flags: Cannot be combined with GPS_TEMPORARY or GPS_FASTPROPERTIESONLY. 166 | 167 | 168 | 169 | 170 | Meaning to a calling process: Delay memory-intensive operations, such as file access, until 171 | a property is requested that requires such access. 172 | 173 | Meaning to a file folder: Do not create the handler until needed; for example, either 174 | GetCount/GetAt or GetValue, where the innate store does not satisfy the request. 175 | Note: GetValue might fail due to file access problems. 176 | 177 | Meaning to other folders: If the folder has memory-intensive properties, such as 178 | delegating to a file folder or network access, it can optimize performance by 179 | supporting IDelayedPropertyStoreFactory and splitting up its properties into a 180 | fast and a slow store. It can then use delayed MUX to recombine them. 181 | 182 | Combination with other flags: Cannot be combined with GPS_TEMPORARY or 183 | GPS_READWRITE 184 | 185 | 186 | 187 | 188 | Meaning to a calling process: Succeed at getting the store, even if some 189 | properties are not returned. Note: Some values may be different, or missing, 190 | compared to a store without this flag. 191 | 192 | Meaning to a file folder: Succeed and return a store, even if the handler or 193 | innate store has an error during creation. Only fail if substores fail. 194 | 195 | Meaning to other folders: Succeed on getting the store, even if some properties 196 | are not returned. 197 | 198 | Combination with other flags: Cannot be combined with GPS_TEMPORARY, 199 | GPS_READWRITE, or GPS_HANDLERPROPERTIESONLY. 200 | 201 | 202 | 203 | 204 | Mask for valid GETPROPERTYSTOREFLAGS values. 205 | 206 | 207 | 208 | 209 | The specified items can be copied. 210 | 211 | 212 | 213 | 214 | The specified items can be moved. 215 | 216 | 217 | 218 | 219 | Shortcuts can be created for the specified items. This flag has the same value as DROPEFFECT. 220 | The normal use of this flag is to add a Create Shortcut item to the shortcut menu that is displayed 221 | during drag-and-drop operations. However, SFGAO_CANLINK also adds a Create Shortcut item to the Microsoft 222 | Windows Explorer's File menu and to normal shortcut menus. 223 | If this item is selected, your application's IContextMenu::InvokeCommand is invoked with the lpVerb 224 | member of the CMINVOKECOMMANDINFO structure set to "link." Your application is responsible for creating the link. 225 | 226 | 227 | 228 | 229 | The specified items can be bound to an IStorage interface through IShellFolder::BindToObject. 230 | 231 | 232 | 233 | 234 | The specified items can be renamed. 235 | 236 | 237 | 238 | 239 | The specified items can be deleted. 240 | 241 | 242 | 243 | 244 | The specified items have property sheets. 245 | 246 | 247 | 248 | 249 | The specified items are drop targets. 250 | 251 | 252 | 253 | 254 | This flag is a mask for the capability flags. 255 | 256 | 257 | 258 | 259 | Windows 7 and later. The specified items are system items. 260 | 261 | 262 | 263 | 264 | The specified items are encrypted. 265 | 266 | 267 | 268 | 269 | Indicates that accessing the object = through IStream or other storage interfaces, 270 | is a slow operation. 271 | Applications should avoid accessing items flagged with SFGAO_ISSLOW. 272 | 273 | 274 | 275 | 276 | The specified items are ghosted icons. 277 | 278 | 279 | 280 | 281 | The specified items are shortcuts. 282 | 283 | 284 | 285 | 286 | The specified folder objects are shared. 287 | 288 | 289 | 290 | 291 | The specified items are read-only. In the case of folders, this means 292 | that new items cannot be created in those folders. 293 | 294 | 295 | 296 | 297 | The item is hidden and should not be displayed unless the 298 | Show hidden files and folders option is enabled in Folder Settings. 299 | 300 | 301 | 302 | 303 | This flag is a mask for the display attributes. 304 | 305 | 306 | 307 | 308 | The specified folders contain one or more file system folders. 309 | 310 | 311 | 312 | 313 | The specified items are folders. 314 | 315 | 316 | 317 | 318 | The specified folders or file objects are part of the file system 319 | that is, they are files, directories, or root directories). 320 | 321 | 322 | 323 | 324 | The specified folders have subfolders = and are, therefore, 325 | expandable in the left pane of Windows Explorer). 326 | 327 | 328 | 329 | 330 | This flag is a mask for the contents attributes. 331 | 332 | 333 | 334 | 335 | When specified as input, SFGAO_VALIDATE instructs the folder to validate that the items 336 | pointed to by the contents of apidl exist. If one or more of those items do not exist, 337 | IShellFolder::GetAttributesOf returns a failure code. 338 | When used with the file system folder, SFGAO_VALIDATE instructs the folder to discard cached 339 | properties retrieved by clients of IShellFolder2::GetDetailsEx that may 340 | have accumulated for the specified items. 341 | 342 | 343 | 344 | 345 | The specified items are on removable media or are themselves removable devices. 346 | 347 | 348 | 349 | 350 | The specified items are compressed. 351 | 352 | 353 | 354 | 355 | The specified items can be browsed in place. 356 | 357 | 358 | 359 | 360 | The items are nonenumerated items. 361 | 362 | 363 | 364 | 365 | The objects contain new content. 366 | 367 | 368 | 369 | 370 | It is possible to create monikers for the specified file objects or folders. 371 | 372 | 373 | 374 | 375 | Not supported. 376 | 377 | 378 | 379 | 380 | Indicates that the item has a stream associated with it that can be accessed 381 | by a call to IShellFolder::BindToObject with IID_IStream in the riid parameter. 382 | 383 | 384 | 385 | 386 | Children of this item are accessible through IStream or IStorage. 387 | Those children are flagged with SFGAO_STORAGE or SFGAO_STREAM. 388 | 389 | 390 | 391 | 392 | This flag is a mask for the storage capability attributes. 393 | 394 | 395 | 396 | 397 | Mask used by PKEY_SFGAOFlags to remove certain values that are considered 398 | to cause slow calculations or lack context. 399 | Equal to SFGAO_VALIDATE | SFGAO_ISSLOW | SFGAO_HASSUBFOLDER. 400 | 401 | 402 | 403 | Returns null if the string couldn't be parsed. 404 | 405 | 406 | 407 | Defines a unique key for a Shell Property 408 | 409 | 410 | 411 | 412 | A unique GUID for the property 413 | 414 | 415 | 416 | 417 | Property identifier (PID) 418 | 419 | 420 | 421 | 422 | PropertyKey Constructor 423 | 424 | A unique GUID for the property 425 | Property identifier (PID) 426 | 427 | 428 | 429 | PropertyKey Constructor 430 | 431 | A string represenstion of a GUID for the property 432 | Property identifier (PID) 433 | 434 | 435 | 436 | Returns whether this object is equal to another. This is vital for performance of value types. 437 | 438 | The object to compare against. 439 | Equality result. 440 | 441 | 442 | 443 | Returns the hash code of the object. This is vital for performance of value types. 444 | 445 | 446 | 447 | 448 | 449 | Returns whether this object is equal to another. This is vital for performance of value types. 450 | 451 | The object to compare against. 452 | Equality result. 453 | 454 | 455 | 456 | Implements the == (equality) operator. 457 | 458 | First property key to compare. 459 | Second property key to compare. 460 | true if object a equals object b. false otherwise. 461 | 462 | 463 | 464 | Implements the != (inequality) operator. 465 | 466 | First property key to compare 467 | Second property key to compare. 468 | true if object a does not equal object b. false otherwise. 469 | 470 | 471 | 472 | Override ToString() to provide a user friendly string representation 473 | 474 | String representing the property key 475 | 476 | 477 | 478 | -------------------------------------------------------------------------------- /Libraries/net48/SharpVectors.Notifications.Wpf.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Libraries/net48/SharpVectors.Notifications.Wpf.dll -------------------------------------------------------------------------------- /Libraries/net48/SharpVectors.Notifications.Wpf.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SharpVectors.Notifications.Wpf 5 | 6 | 7 | 8 | progress was finished 9 | 10 | 11 | progress was finished 12 | 13 | 14 | 15 | Interaction logic for ToastWindow.xaml 16 | 17 | 18 | NotificationsOverlayWindow 19 | 20 | 21 | 22 | 23 | InitializeComponent 24 | 25 | 26 | 27 | 28 | Логика взаимодействия для NotificationInfoView.xaml 29 | 30 | 31 | NotificationInfoView 32 | 33 | 34 | 35 | 36 | InitializeComponent 37 | 38 | 39 | 40 | 41 | Логика взаимодействия для NotificationProgress.xaml 42 | 43 | 44 | NotificationProgress 45 | 46 | 47 | 48 | 49 | InitializeComponent 50 | 51 | 52 | 53 | Видимость 54 | 55 | 56 | Видимость 57 | 58 | 59 | Видимость 60 | 61 | 62 | Видимость 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /Libraries/net48/SharpVectors.ShellFileDialogs.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Libraries/net48/SharpVectors.ShellFileDialogs.dll -------------------------------------------------------------------------------- /Libraries/net48/SharpVectors.ShellFileDialogs.dll.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Libraries/net48/SharpVectors.ShellFileDialogs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SharpVectors.ShellFileDialogs 5 | 6 | 7 | 8 | 0-based index of the filter to select. 9 | 10 | 11 | Shows the file open dialog for multiple filename selections. Returns null if the dialog cancelled. Otherwise returns all selected paths. 12 | 0-based index of the filter to select. 13 | 14 | 15 | Shows the file open dialog for a single filename selection. Returns null if the dialog cancelled. Otherwise returns the selected path. 16 | 0-based index of the filter to select. 17 | 18 | 19 | Shows the folder browser dialog. Returns null if the dialog cancelled. Otherwise returns the selected path. 20 | 21 | 22 | 23 | S_OK 24 | 25 | 26 | 27 | 28 | S_FALSE 29 | 30 | 31 | 32 | 33 | E_INVALIDARG 34 | 35 | 36 | 37 | 38 | E_OUTOFMEMORY 39 | 40 | 41 | 42 | 43 | E_NOINTERFACE 44 | 45 | 46 | 47 | 48 | E_FAIL 49 | 50 | 51 | 52 | 53 | E_ELEMENTNOTFOUND 54 | 55 | 56 | 57 | 58 | TYPE_E_ELEMENTNOTFOUND 59 | 60 | 61 | 62 | 63 | NO_OBJECT 64 | 65 | 66 | 67 | 68 | Win32 Error code: ERROR_CANCELLED 69 | 70 | 71 | 72 | 73 | ERROR_CANCELLED 74 | 75 | 76 | 77 | 78 | The requested resource is in use 79 | 80 | 81 | 82 | 83 | The requested resources is read-only. 84 | 85 | 86 | 87 | 88 | Indicate flags that modify the property store object retrieved by methods 89 | that create a property store, such as IShellItem2::GetPropertyStore or 90 | IPropertyStoreFactory::GetPropertyStore. 91 | 92 | 93 | 94 | 95 | Meaning to a calling process: Return a read-only property store that contains all 96 | properties. Slow items (offline files) are not opened. 97 | Combination with other flags: Can be overridden by other flags. 98 | 99 | 100 | 101 | 102 | Meaning to a calling process: Include only properties directly from the property 103 | handler, which opens the file on the disk, network, or device. Meaning to a file 104 | folder: Only include properties directly from the handler. 105 | 106 | Meaning to other folders: When delegating to a file folder, pass this flag on 107 | to the file folder; do not do any multiplexing (MUX). When not delegating to a 108 | file folder, ignore this flag instead of returning a failure code. 109 | 110 | Combination with other flags: Cannot be combined with GPS_TEMPORARY, 111 | GPS_FASTPROPERTIESONLY, or GPS_BESTEFFORT. 112 | 113 | 114 | 115 | 116 | Meaning to a calling process: Can write properties to the item. 117 | Note: The store may contain fewer properties than a read-only store. 118 | 119 | Meaning to a file folder: ReadWrite. 120 | 121 | Meaning to other folders: ReadWrite. Note: When using default MUX, 122 | return a single unmultiplexed store because the default MUX does not support ReadWrite. 123 | 124 | Combination with other flags: Cannot be combined with GPS_TEMPORARY, GPS_FASTPROPERTIESONLY, 125 | GPS_BESTEFFORT, or GPS_DELAYCREATION. Implies GPS_HANDLERPROPERTIESONLY. 126 | 127 | 128 | 129 | 130 | Meaning to a calling process: Provides a writable store, with no initial properties, 131 | that exists for the lifetime of the Shell item instance; basically, a property bag 132 | attached to the item instance. 133 | 134 | Meaning to a file folder: Not applicable. Handled by the Shell item. 135 | 136 | Meaning to other folders: Not applicable. Handled by the Shell item. 137 | 138 | Combination with other flags: Cannot be combined with any other flag. Implies GPS_READWRITE 139 | 140 | 141 | 142 | 143 | Meaning to a calling process: Provides a store that does not involve reading from the 144 | disk or network. Note: Some values may be different, or missing, compared to a store 145 | without this flag. 146 | 147 | Meaning to a file folder: Include the "innate" and "fallback" stores only. Do not load the handler. 148 | 149 | Meaning to other folders: Include only properties that are available in memory or can 150 | be computed very quickly (no properties from disk, network, or peripheral IO devices). 151 | This is normally only data sources from the IDLIST. When delegating to other folders, pass this flag on to them. 152 | 153 | Combination with other flags: Cannot be combined with GPS_TEMPORARY, GPS_READWRITE, 154 | GPS_HANDLERPROPERTIESONLY, or GPS_DELAYCREATION. 155 | 156 | 157 | 158 | 159 | Meaning to a calling process: Open a slow item (offline file) if necessary. 160 | Meaning to a file folder: Retrieve a file from offline storage, if necessary. 161 | Note: Without this flag, the handler is not created for offline files. 162 | 163 | Meaning to other folders: Do not return any properties that are very slow. 164 | 165 | Combination with other flags: Cannot be combined with GPS_TEMPORARY or GPS_FASTPROPERTIESONLY. 166 | 167 | 168 | 169 | 170 | Meaning to a calling process: Delay memory-intensive operations, such as file access, until 171 | a property is requested that requires such access. 172 | 173 | Meaning to a file folder: Do not create the handler until needed; for example, either 174 | GetCount/GetAt or GetValue, where the innate store does not satisfy the request. 175 | Note: GetValue might fail due to file access problems. 176 | 177 | Meaning to other folders: If the folder has memory-intensive properties, such as 178 | delegating to a file folder or network access, it can optimize performance by 179 | supporting IDelayedPropertyStoreFactory and splitting up its properties into a 180 | fast and a slow store. It can then use delayed MUX to recombine them. 181 | 182 | Combination with other flags: Cannot be combined with GPS_TEMPORARY or 183 | GPS_READWRITE 184 | 185 | 186 | 187 | 188 | Meaning to a calling process: Succeed at getting the store, even if some 189 | properties are not returned. Note: Some values may be different, or missing, 190 | compared to a store without this flag. 191 | 192 | Meaning to a file folder: Succeed and return a store, even if the handler or 193 | innate store has an error during creation. Only fail if substores fail. 194 | 195 | Meaning to other folders: Succeed on getting the store, even if some properties 196 | are not returned. 197 | 198 | Combination with other flags: Cannot be combined with GPS_TEMPORARY, 199 | GPS_READWRITE, or GPS_HANDLERPROPERTIESONLY. 200 | 201 | 202 | 203 | 204 | Mask for valid GETPROPERTYSTOREFLAGS values. 205 | 206 | 207 | 208 | 209 | The specified items can be copied. 210 | 211 | 212 | 213 | 214 | The specified items can be moved. 215 | 216 | 217 | 218 | 219 | Shortcuts can be created for the specified items. This flag has the same value as DROPEFFECT. 220 | The normal use of this flag is to add a Create Shortcut item to the shortcut menu that is displayed 221 | during drag-and-drop operations. However, SFGAO_CANLINK also adds a Create Shortcut item to the Microsoft 222 | Windows Explorer's File menu and to normal shortcut menus. 223 | If this item is selected, your application's IContextMenu::InvokeCommand is invoked with the lpVerb 224 | member of the CMINVOKECOMMANDINFO structure set to "link." Your application is responsible for creating the link. 225 | 226 | 227 | 228 | 229 | The specified items can be bound to an IStorage interface through IShellFolder::BindToObject. 230 | 231 | 232 | 233 | 234 | The specified items can be renamed. 235 | 236 | 237 | 238 | 239 | The specified items can be deleted. 240 | 241 | 242 | 243 | 244 | The specified items have property sheets. 245 | 246 | 247 | 248 | 249 | The specified items are drop targets. 250 | 251 | 252 | 253 | 254 | This flag is a mask for the capability flags. 255 | 256 | 257 | 258 | 259 | Windows 7 and later. The specified items are system items. 260 | 261 | 262 | 263 | 264 | The specified items are encrypted. 265 | 266 | 267 | 268 | 269 | Indicates that accessing the object = through IStream or other storage interfaces, 270 | is a slow operation. 271 | Applications should avoid accessing items flagged with SFGAO_ISSLOW. 272 | 273 | 274 | 275 | 276 | The specified items are ghosted icons. 277 | 278 | 279 | 280 | 281 | The specified items are shortcuts. 282 | 283 | 284 | 285 | 286 | The specified folder objects are shared. 287 | 288 | 289 | 290 | 291 | The specified items are read-only. In the case of folders, this means 292 | that new items cannot be created in those folders. 293 | 294 | 295 | 296 | 297 | The item is hidden and should not be displayed unless the 298 | Show hidden files and folders option is enabled in Folder Settings. 299 | 300 | 301 | 302 | 303 | This flag is a mask for the display attributes. 304 | 305 | 306 | 307 | 308 | The specified folders contain one or more file system folders. 309 | 310 | 311 | 312 | 313 | The specified items are folders. 314 | 315 | 316 | 317 | 318 | The specified folders or file objects are part of the file system 319 | that is, they are files, directories, or root directories). 320 | 321 | 322 | 323 | 324 | The specified folders have subfolders = and are, therefore, 325 | expandable in the left pane of Windows Explorer). 326 | 327 | 328 | 329 | 330 | This flag is a mask for the contents attributes. 331 | 332 | 333 | 334 | 335 | When specified as input, SFGAO_VALIDATE instructs the folder to validate that the items 336 | pointed to by the contents of apidl exist. If one or more of those items do not exist, 337 | IShellFolder::GetAttributesOf returns a failure code. 338 | When used with the file system folder, SFGAO_VALIDATE instructs the folder to discard cached 339 | properties retrieved by clients of IShellFolder2::GetDetailsEx that may 340 | have accumulated for the specified items. 341 | 342 | 343 | 344 | 345 | The specified items are on removable media or are themselves removable devices. 346 | 347 | 348 | 349 | 350 | The specified items are compressed. 351 | 352 | 353 | 354 | 355 | The specified items can be browsed in place. 356 | 357 | 358 | 359 | 360 | The items are nonenumerated items. 361 | 362 | 363 | 364 | 365 | The objects contain new content. 366 | 367 | 368 | 369 | 370 | It is possible to create monikers for the specified file objects or folders. 371 | 372 | 373 | 374 | 375 | Not supported. 376 | 377 | 378 | 379 | 380 | Indicates that the item has a stream associated with it that can be accessed 381 | by a call to IShellFolder::BindToObject with IID_IStream in the riid parameter. 382 | 383 | 384 | 385 | 386 | Children of this item are accessible through IStream or IStorage. 387 | Those children are flagged with SFGAO_STORAGE or SFGAO_STREAM. 388 | 389 | 390 | 391 | 392 | This flag is a mask for the storage capability attributes. 393 | 394 | 395 | 396 | 397 | Mask used by PKEY_SFGAOFlags to remove certain values that are considered 398 | to cause slow calculations or lack context. 399 | Equal to SFGAO_VALIDATE | SFGAO_ISSLOW | SFGAO_HASSUBFOLDER. 400 | 401 | 402 | 403 | Returns null if the string couldn't be parsed. 404 | 405 | 406 | 407 | Defines a unique key for a Shell Property 408 | 409 | 410 | 411 | 412 | A unique GUID for the property 413 | 414 | 415 | 416 | 417 | Property identifier (PID) 418 | 419 | 420 | 421 | 422 | PropertyKey Constructor 423 | 424 | A unique GUID for the property 425 | Property identifier (PID) 426 | 427 | 428 | 429 | PropertyKey Constructor 430 | 431 | A string represenstion of a GUID for the property 432 | Property identifier (PID) 433 | 434 | 435 | 436 | Returns whether this object is equal to another. This is vital for performance of value types. 437 | 438 | The object to compare against. 439 | Equality result. 440 | 441 | 442 | 443 | Returns the hash code of the object. This is vital for performance of value types. 444 | 445 | 446 | 447 | 448 | 449 | Returns whether this object is equal to another. This is vital for performance of value types. 450 | 451 | The object to compare against. 452 | Equality result. 453 | 454 | 455 | 456 | Implements the == (equality) operator. 457 | 458 | First property key to compare. 459 | Second property key to compare. 460 | true if object a equals object b. false otherwise. 461 | 462 | 463 | 464 | Implements the != (inequality) operator. 465 | 466 | First property key to compare 467 | Second property key to compare. 468 | true if object a does not equal object b. false otherwise. 469 | 470 | 471 | 472 | Override ToString() to provide a user friendly string representation 473 | 474 | String representing the property key 475 | 476 | 477 | 478 | -------------------------------------------------------------------------------- /Libraries/netcoreapp3.1/SharpVectors.Notifications.Wpf.deps.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeTarget": { 3 | "name": ".NETCoreApp,Version=v3.1", 4 | "signature": "" 5 | }, 6 | "compilationOptions": {}, 7 | "targets": { 8 | ".NETCoreApp,Version=v3.1": { 9 | "SharpVectors.Notifications.Wpf/1.0.0": { 10 | "runtime": { 11 | "SharpVectors.Notifications.Wpf.dll": {} 12 | } 13 | } 14 | } 15 | }, 16 | "libraries": { 17 | "SharpVectors.Notifications.Wpf/1.0.0": { 18 | "type": "project", 19 | "serviceable": false, 20 | "sha512": "" 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /Libraries/netcoreapp3.1/SharpVectors.Notifications.Wpf.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Libraries/netcoreapp3.1/SharpVectors.Notifications.Wpf.dll -------------------------------------------------------------------------------- /Libraries/netcoreapp3.1/SharpVectors.Notifications.Wpf.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SharpVectors.Notifications.Wpf 5 | 6 | 7 | 8 | progress was finished 9 | 10 | 11 | progress was finished 12 | 13 | 14 | 15 | Interaction logic for ToastWindow.xaml 16 | 17 | 18 | NotificationsOverlayWindow 19 | 20 | 21 | 22 | 23 | InitializeComponent 24 | 25 | 26 | 27 | 28 | Логика взаимодействия для NotificationInfoView.xaml 29 | 30 | 31 | NotificationInfoView 32 | 33 | 34 | 35 | 36 | InitializeComponent 37 | 38 | 39 | 40 | 41 | Логика взаимодействия для NotificationProgress.xaml 42 | 43 | 44 | NotificationProgress 45 | 46 | 47 | 48 | 49 | InitializeComponent 50 | 51 | 52 | 53 | Видимость 54 | 55 | 56 | Видимость 57 | 58 | 59 | Видимость 60 | 61 | 62 | Видимость 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /Libraries/netstandard2.1/SharpVectors.ShellFileDialogs.deps.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeTarget": { 3 | "name": ".NETStandard,Version=v2.1/", 4 | "signature": "" 5 | }, 6 | "compilationOptions": {}, 7 | "targets": { 8 | ".NETStandard,Version=v2.1": {}, 9 | ".NETStandard,Version=v2.1/": { 10 | "SharpVectors.ShellFileDialogs/1.0.0": { 11 | "runtime": { 12 | "SharpVectors.ShellFileDialogs.dll": {} 13 | } 14 | } 15 | } 16 | }, 17 | "libraries": { 18 | "SharpVectors.ShellFileDialogs/1.0.0": { 19 | "type": "project", 20 | "serviceable": false, 21 | "sha512": "" 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /Libraries/netstandard2.1/SharpVectors.ShellFileDialogs.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Libraries/netstandard2.1/SharpVectors.ShellFileDialogs.dll -------------------------------------------------------------------------------- /Libraries/netstandard2.1/SharpVectors.ShellFileDialogs.dll.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Libraries/netstandard2.1/SharpVectors.ShellFileDialogs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SharpVectors.ShellFileDialogs 5 | 6 | 7 | 8 | 0-based index of the filter to select. 9 | 10 | 11 | Shows the file open dialog for multiple filename selections. Returns null if the dialog cancelled. Otherwise returns all selected paths. 12 | 0-based index of the filter to select. 13 | 14 | 15 | Shows the file open dialog for a single filename selection. Returns null if the dialog cancelled. Otherwise returns the selected path. 16 | 0-based index of the filter to select. 17 | 18 | 19 | Shows the folder browser dialog. Returns null if the dialog cancelled. Otherwise returns the selected path. 20 | 21 | 22 | 23 | S_OK 24 | 25 | 26 | 27 | 28 | S_FALSE 29 | 30 | 31 | 32 | 33 | E_INVALIDARG 34 | 35 | 36 | 37 | 38 | E_OUTOFMEMORY 39 | 40 | 41 | 42 | 43 | E_NOINTERFACE 44 | 45 | 46 | 47 | 48 | E_FAIL 49 | 50 | 51 | 52 | 53 | E_ELEMENTNOTFOUND 54 | 55 | 56 | 57 | 58 | TYPE_E_ELEMENTNOTFOUND 59 | 60 | 61 | 62 | 63 | NO_OBJECT 64 | 65 | 66 | 67 | 68 | Win32 Error code: ERROR_CANCELLED 69 | 70 | 71 | 72 | 73 | ERROR_CANCELLED 74 | 75 | 76 | 77 | 78 | The requested resource is in use 79 | 80 | 81 | 82 | 83 | The requested resources is read-only. 84 | 85 | 86 | 87 | 88 | Indicate flags that modify the property store object retrieved by methods 89 | that create a property store, such as IShellItem2::GetPropertyStore or 90 | IPropertyStoreFactory::GetPropertyStore. 91 | 92 | 93 | 94 | 95 | Meaning to a calling process: Return a read-only property store that contains all 96 | properties. Slow items (offline files) are not opened. 97 | Combination with other flags: Can be overridden by other flags. 98 | 99 | 100 | 101 | 102 | Meaning to a calling process: Include only properties directly from the property 103 | handler, which opens the file on the disk, network, or device. Meaning to a file 104 | folder: Only include properties directly from the handler. 105 | 106 | Meaning to other folders: When delegating to a file folder, pass this flag on 107 | to the file folder; do not do any multiplexing (MUX). When not delegating to a 108 | file folder, ignore this flag instead of returning a failure code. 109 | 110 | Combination with other flags: Cannot be combined with GPS_TEMPORARY, 111 | GPS_FASTPROPERTIESONLY, or GPS_BESTEFFORT. 112 | 113 | 114 | 115 | 116 | Meaning to a calling process: Can write properties to the item. 117 | Note: The store may contain fewer properties than a read-only store. 118 | 119 | Meaning to a file folder: ReadWrite. 120 | 121 | Meaning to other folders: ReadWrite. Note: When using default MUX, 122 | return a single unmultiplexed store because the default MUX does not support ReadWrite. 123 | 124 | Combination with other flags: Cannot be combined with GPS_TEMPORARY, GPS_FASTPROPERTIESONLY, 125 | GPS_BESTEFFORT, or GPS_DELAYCREATION. Implies GPS_HANDLERPROPERTIESONLY. 126 | 127 | 128 | 129 | 130 | Meaning to a calling process: Provides a writable store, with no initial properties, 131 | that exists for the lifetime of the Shell item instance; basically, a property bag 132 | attached to the item instance. 133 | 134 | Meaning to a file folder: Not applicable. Handled by the Shell item. 135 | 136 | Meaning to other folders: Not applicable. Handled by the Shell item. 137 | 138 | Combination with other flags: Cannot be combined with any other flag. Implies GPS_READWRITE 139 | 140 | 141 | 142 | 143 | Meaning to a calling process: Provides a store that does not involve reading from the 144 | disk or network. Note: Some values may be different, or missing, compared to a store 145 | without this flag. 146 | 147 | Meaning to a file folder: Include the "innate" and "fallback" stores only. Do not load the handler. 148 | 149 | Meaning to other folders: Include only properties that are available in memory or can 150 | be computed very quickly (no properties from disk, network, or peripheral IO devices). 151 | This is normally only data sources from the IDLIST. When delegating to other folders, pass this flag on to them. 152 | 153 | Combination with other flags: Cannot be combined with GPS_TEMPORARY, GPS_READWRITE, 154 | GPS_HANDLERPROPERTIESONLY, or GPS_DELAYCREATION. 155 | 156 | 157 | 158 | 159 | Meaning to a calling process: Open a slow item (offline file) if necessary. 160 | Meaning to a file folder: Retrieve a file from offline storage, if necessary. 161 | Note: Without this flag, the handler is not created for offline files. 162 | 163 | Meaning to other folders: Do not return any properties that are very slow. 164 | 165 | Combination with other flags: Cannot be combined with GPS_TEMPORARY or GPS_FASTPROPERTIESONLY. 166 | 167 | 168 | 169 | 170 | Meaning to a calling process: Delay memory-intensive operations, such as file access, until 171 | a property is requested that requires such access. 172 | 173 | Meaning to a file folder: Do not create the handler until needed; for example, either 174 | GetCount/GetAt or GetValue, where the innate store does not satisfy the request. 175 | Note: GetValue might fail due to file access problems. 176 | 177 | Meaning to other folders: If the folder has memory-intensive properties, such as 178 | delegating to a file folder or network access, it can optimize performance by 179 | supporting IDelayedPropertyStoreFactory and splitting up its properties into a 180 | fast and a slow store. It can then use delayed MUX to recombine them. 181 | 182 | Combination with other flags: Cannot be combined with GPS_TEMPORARY or 183 | GPS_READWRITE 184 | 185 | 186 | 187 | 188 | Meaning to a calling process: Succeed at getting the store, even if some 189 | properties are not returned. Note: Some values may be different, or missing, 190 | compared to a store without this flag. 191 | 192 | Meaning to a file folder: Succeed and return a store, even if the handler or 193 | innate store has an error during creation. Only fail if substores fail. 194 | 195 | Meaning to other folders: Succeed on getting the store, even if some properties 196 | are not returned. 197 | 198 | Combination with other flags: Cannot be combined with GPS_TEMPORARY, 199 | GPS_READWRITE, or GPS_HANDLERPROPERTIESONLY. 200 | 201 | 202 | 203 | 204 | Mask for valid GETPROPERTYSTOREFLAGS values. 205 | 206 | 207 | 208 | 209 | The specified items can be copied. 210 | 211 | 212 | 213 | 214 | The specified items can be moved. 215 | 216 | 217 | 218 | 219 | Shortcuts can be created for the specified items. This flag has the same value as DROPEFFECT. 220 | The normal use of this flag is to add a Create Shortcut item to the shortcut menu that is displayed 221 | during drag-and-drop operations. However, SFGAO_CANLINK also adds a Create Shortcut item to the Microsoft 222 | Windows Explorer's File menu and to normal shortcut menus. 223 | If this item is selected, your application's IContextMenu::InvokeCommand is invoked with the lpVerb 224 | member of the CMINVOKECOMMANDINFO structure set to "link." Your application is responsible for creating the link. 225 | 226 | 227 | 228 | 229 | The specified items can be bound to an IStorage interface through IShellFolder::BindToObject. 230 | 231 | 232 | 233 | 234 | The specified items can be renamed. 235 | 236 | 237 | 238 | 239 | The specified items can be deleted. 240 | 241 | 242 | 243 | 244 | The specified items have property sheets. 245 | 246 | 247 | 248 | 249 | The specified items are drop targets. 250 | 251 | 252 | 253 | 254 | This flag is a mask for the capability flags. 255 | 256 | 257 | 258 | 259 | Windows 7 and later. The specified items are system items. 260 | 261 | 262 | 263 | 264 | The specified items are encrypted. 265 | 266 | 267 | 268 | 269 | Indicates that accessing the object = through IStream or other storage interfaces, 270 | is a slow operation. 271 | Applications should avoid accessing items flagged with SFGAO_ISSLOW. 272 | 273 | 274 | 275 | 276 | The specified items are ghosted icons. 277 | 278 | 279 | 280 | 281 | The specified items are shortcuts. 282 | 283 | 284 | 285 | 286 | The specified folder objects are shared. 287 | 288 | 289 | 290 | 291 | The specified items are read-only. In the case of folders, this means 292 | that new items cannot be created in those folders. 293 | 294 | 295 | 296 | 297 | The item is hidden and should not be displayed unless the 298 | Show hidden files and folders option is enabled in Folder Settings. 299 | 300 | 301 | 302 | 303 | This flag is a mask for the display attributes. 304 | 305 | 306 | 307 | 308 | The specified folders contain one or more file system folders. 309 | 310 | 311 | 312 | 313 | The specified items are folders. 314 | 315 | 316 | 317 | 318 | The specified folders or file objects are part of the file system 319 | that is, they are files, directories, or root directories). 320 | 321 | 322 | 323 | 324 | The specified folders have subfolders = and are, therefore, 325 | expandable in the left pane of Windows Explorer). 326 | 327 | 328 | 329 | 330 | This flag is a mask for the contents attributes. 331 | 332 | 333 | 334 | 335 | When specified as input, SFGAO_VALIDATE instructs the folder to validate that the items 336 | pointed to by the contents of apidl exist. If one or more of those items do not exist, 337 | IShellFolder::GetAttributesOf returns a failure code. 338 | When used with the file system folder, SFGAO_VALIDATE instructs the folder to discard cached 339 | properties retrieved by clients of IShellFolder2::GetDetailsEx that may 340 | have accumulated for the specified items. 341 | 342 | 343 | 344 | 345 | The specified items are on removable media or are themselves removable devices. 346 | 347 | 348 | 349 | 350 | The specified items are compressed. 351 | 352 | 353 | 354 | 355 | The specified items can be browsed in place. 356 | 357 | 358 | 359 | 360 | The items are nonenumerated items. 361 | 362 | 363 | 364 | 365 | The objects contain new content. 366 | 367 | 368 | 369 | 370 | It is possible to create monikers for the specified file objects or folders. 371 | 372 | 373 | 374 | 375 | Not supported. 376 | 377 | 378 | 379 | 380 | Indicates that the item has a stream associated with it that can be accessed 381 | by a call to IShellFolder::BindToObject with IID_IStream in the riid parameter. 382 | 383 | 384 | 385 | 386 | Children of this item are accessible through IStream or IStorage. 387 | Those children are flagged with SFGAO_STORAGE or SFGAO_STREAM. 388 | 389 | 390 | 391 | 392 | This flag is a mask for the storage capability attributes. 393 | 394 | 395 | 396 | 397 | Mask used by PKEY_SFGAOFlags to remove certain values that are considered 398 | to cause slow calculations or lack context. 399 | Equal to SFGAO_VALIDATE | SFGAO_ISSLOW | SFGAO_HASSUBFOLDER. 400 | 401 | 402 | 403 | Returns null if the string couldn't be parsed. 404 | 405 | 406 | 407 | Defines a unique key for a Shell Property 408 | 409 | 410 | 411 | 412 | A unique GUID for the property 413 | 414 | 415 | 416 | 417 | Property identifier (PID) 418 | 419 | 420 | 421 | 422 | PropertyKey Constructor 423 | 424 | A unique GUID for the property 425 | Property identifier (PID) 426 | 427 | 428 | 429 | PropertyKey Constructor 430 | 431 | A string represenstion of a GUID for the property 432 | Property identifier (PID) 433 | 434 | 435 | 436 | Returns whether this object is equal to another. This is vital for performance of value types. 437 | 438 | The object to compare against. 439 | Equality result. 440 | 441 | 442 | 443 | Returns the hash code of the object. This is vital for performance of value types. 444 | 445 | 446 | 447 | 448 | 449 | Returns whether this object is equal to another. This is vital for performance of value types. 450 | 451 | The object to compare against. 452 | Equality result. 453 | 454 | 455 | 456 | Implements the == (equality) operator. 457 | 458 | First property key to compare. 459 | Second property key to compare. 460 | true if object a equals object b. false otherwise. 461 | 462 | 463 | 464 | Implements the != (inequality) operator. 465 | 466 | First property key to compare 467 | Second property key to compare. 468 | true if object a does not equal object b. false otherwise. 469 | 470 | 471 | 472 | Override ToString() to provide a user friendly string representation 473 | 474 | String representing the property key 475 | 476 | 477 | 478 | -------------------------------------------------------------------------------- /Output/net46/SharpVectors.Converters.Wpf.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/net46/SharpVectors.Converters.Wpf.dll -------------------------------------------------------------------------------- /Output/net46/SharpVectors.Core.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/net46/SharpVectors.Core.dll -------------------------------------------------------------------------------- /Output/net46/SharpVectors.Css.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/net46/SharpVectors.Css.dll -------------------------------------------------------------------------------- /Output/net46/SharpVectors.Dom.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/net46/SharpVectors.Dom.dll -------------------------------------------------------------------------------- /Output/net46/SharpVectors.Model.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/net46/SharpVectors.Model.dll -------------------------------------------------------------------------------- /Output/net46/SharpVectors.Rendering.Gdi.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/net46/SharpVectors.Rendering.Gdi.dll -------------------------------------------------------------------------------- /Output/net46/SharpVectors.Rendering.Wpf.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/net46/SharpVectors.Rendering.Wpf.dll -------------------------------------------------------------------------------- /Output/net46/SharpVectors.Runtime.Wpf.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/net46/SharpVectors.Runtime.Wpf.dll -------------------------------------------------------------------------------- /Output/net46/SvgViewer.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/net46/SvgViewer.exe -------------------------------------------------------------------------------- /Output/net46/SvgViewer.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Output/net48/SharpVectors.Converters.Wpf.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/net48/SharpVectors.Converters.Wpf.dll -------------------------------------------------------------------------------- /Output/net48/SharpVectors.Core.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/net48/SharpVectors.Core.dll -------------------------------------------------------------------------------- /Output/net48/SharpVectors.Css.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/net48/SharpVectors.Css.dll -------------------------------------------------------------------------------- /Output/net48/SharpVectors.Dom.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/net48/SharpVectors.Dom.dll -------------------------------------------------------------------------------- /Output/net48/SharpVectors.Model.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/net48/SharpVectors.Model.dll -------------------------------------------------------------------------------- /Output/net48/SharpVectors.Rendering.Gdi.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/net48/SharpVectors.Rendering.Gdi.dll -------------------------------------------------------------------------------- /Output/net48/SharpVectors.Rendering.Wpf.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/net48/SharpVectors.Rendering.Wpf.dll -------------------------------------------------------------------------------- /Output/net48/SharpVectors.Runtime.Wpf.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/net48/SharpVectors.Runtime.Wpf.dll -------------------------------------------------------------------------------- /Output/net48/SvgViewer.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/net48/SvgViewer.exe -------------------------------------------------------------------------------- /Output/net48/SvgViewer.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Output/netcoreapp3.1/SharpVectors.Converters.Wpf.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/netcoreapp3.1/SharpVectors.Converters.Wpf.dll -------------------------------------------------------------------------------- /Output/netcoreapp3.1/SharpVectors.Core.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/netcoreapp3.1/SharpVectors.Core.dll -------------------------------------------------------------------------------- /Output/netcoreapp3.1/SharpVectors.Css.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/netcoreapp3.1/SharpVectors.Css.dll -------------------------------------------------------------------------------- /Output/netcoreapp3.1/SharpVectors.Dom.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/netcoreapp3.1/SharpVectors.Dom.dll -------------------------------------------------------------------------------- /Output/netcoreapp3.1/SharpVectors.Model.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/netcoreapp3.1/SharpVectors.Model.dll -------------------------------------------------------------------------------- /Output/netcoreapp3.1/SharpVectors.Rendering.Gdi.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/netcoreapp3.1/SharpVectors.Rendering.Gdi.dll -------------------------------------------------------------------------------- /Output/netcoreapp3.1/SharpVectors.Rendering.Wpf.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/netcoreapp3.1/SharpVectors.Rendering.Wpf.dll -------------------------------------------------------------------------------- /Output/netcoreapp3.1/SharpVectors.Runtime.Wpf.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/netcoreapp3.1/SharpVectors.Runtime.Wpf.dll -------------------------------------------------------------------------------- /Output/netcoreapp3.1/SvgViewer.deps.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeTarget": { 3 | "name": ".NETCoreApp,Version=v3.1", 4 | "signature": "" 5 | }, 6 | "compilationOptions": {}, 7 | "targets": { 8 | ".NETCoreApp,Version=v3.1": { 9 | "SvgViewer/1.0.0": { 10 | "dependencies": { 11 | "Microsoft.CodeAnalysis.FxCopAnalyzers": "3.3.0", 12 | "SharpVectors.Reloaded": "1.6.0" 13 | }, 14 | "runtime": { 15 | "SvgViewer.dll": {} 16 | } 17 | }, 18 | "Microsoft.CodeAnalysis.FxCopAnalyzers/3.3.0": { 19 | "dependencies": { 20 | "Microsoft.CodeAnalysis.VersionCheckAnalyzer": "3.3.0", 21 | "Microsoft.CodeQuality.Analyzers": "3.3.0", 22 | "Microsoft.NetCore.Analyzers": "3.3.0", 23 | "Microsoft.NetFramework.Analyzers": "3.3.0" 24 | } 25 | }, 26 | "Microsoft.CodeAnalysis.VersionCheckAnalyzer/3.3.0": {}, 27 | "Microsoft.CodeQuality.Analyzers/3.3.0": {}, 28 | "Microsoft.NetCore.Analyzers/3.3.0": {}, 29 | "Microsoft.NetFramework.Analyzers/3.3.0": {}, 30 | "SharpVectors.Reloaded/1.6.0": { 31 | "runtime": { 32 | "lib/netcoreapp3.1/SharpVectors.Converters.Wpf.dll": { 33 | "assemblyVersion": "1.6.0.0", 34 | "fileVersion": "1.6.0.0" 35 | }, 36 | "lib/netcoreapp3.1/SharpVectors.Core.dll": { 37 | "assemblyVersion": "1.6.0.0", 38 | "fileVersion": "1.6.0.0" 39 | }, 40 | "lib/netcoreapp3.1/SharpVectors.Css.dll": { 41 | "assemblyVersion": "1.6.0.0", 42 | "fileVersion": "1.6.0.0" 43 | }, 44 | "lib/netcoreapp3.1/SharpVectors.Dom.dll": { 45 | "assemblyVersion": "1.6.0.0", 46 | "fileVersion": "1.6.0.0" 47 | }, 48 | "lib/netcoreapp3.1/SharpVectors.Model.dll": { 49 | "assemblyVersion": "1.6.0.0", 50 | "fileVersion": "1.6.0.0" 51 | }, 52 | "lib/netcoreapp3.1/SharpVectors.Rendering.Gdi.dll": { 53 | "assemblyVersion": "1.6.0.0", 54 | "fileVersion": "1.6.0.0" 55 | }, 56 | "lib/netcoreapp3.1/SharpVectors.Rendering.Wpf.dll": { 57 | "assemblyVersion": "1.6.0.0", 58 | "fileVersion": "1.6.0.0" 59 | }, 60 | "lib/netcoreapp3.1/SharpVectors.Runtime.Wpf.dll": { 61 | "assemblyVersion": "1.6.0.0", 62 | "fileVersion": "1.6.0.0" 63 | } 64 | } 65 | } 66 | } 67 | }, 68 | "libraries": { 69 | "SvgViewer/1.0.0": { 70 | "type": "project", 71 | "serviceable": false, 72 | "sha512": "" 73 | }, 74 | "Microsoft.CodeAnalysis.FxCopAnalyzers/3.3.0": { 75 | "type": "package", 76 | "serviceable": true, 77 | "sha512": "sha512-k3Icqx8kc+NrHImuiB8Jc/wd32Xeyd2B/7HOR5Qu9pyKzXQ4ikPeBAwzG2FSTuYhyIuNWvwL5k9yYBbbVz6w9w==", 78 | "path": "microsoft.codeanalysis.fxcopanalyzers/3.3.0", 79 | "hashPath": "microsoft.codeanalysis.fxcopanalyzers.3.3.0.nupkg.sha512" 80 | }, 81 | "Microsoft.CodeAnalysis.VersionCheckAnalyzer/3.3.0": { 82 | "type": "package", 83 | "serviceable": true, 84 | "sha512": "sha512-xjLM3DRFZMan3nQyBQEM1mBw6VqQybi4iMJhMFW6Ic1E1GCvqJR3ABOwEL7WtQjDUzxyrGld9bASnAos7G/Xyg==", 85 | "path": "microsoft.codeanalysis.versioncheckanalyzer/3.3.0", 86 | "hashPath": "microsoft.codeanalysis.versioncheckanalyzer.3.3.0.nupkg.sha512" 87 | }, 88 | "Microsoft.CodeQuality.Analyzers/3.3.0": { 89 | "type": "package", 90 | "serviceable": true, 91 | "sha512": "sha512-zZ3miq6u22UFQKhfJyLnVEJ+DgeOopLh3eKJnKAcOetPP2hiv3wa7kHZlBDeTvtqJQiAQhAVbttket8XxjN1zw==", 92 | "path": "microsoft.codequality.analyzers/3.3.0", 93 | "hashPath": "microsoft.codequality.analyzers.3.3.0.nupkg.sha512" 94 | }, 95 | "Microsoft.NetCore.Analyzers/3.3.0": { 96 | "type": "package", 97 | "serviceable": true, 98 | "sha512": "sha512-6qptTHUu1Wfszuf83NhU0IoAb4j7YWOpJs6oc6S4G/nI6aGGWKH/Xi5Vs9L/8lrI74ijEEzPcIwafSQW5ASHtA==", 99 | "path": "microsoft.netcore.analyzers/3.3.0", 100 | "hashPath": "microsoft.netcore.analyzers.3.3.0.nupkg.sha512" 101 | }, 102 | "Microsoft.NetFramework.Analyzers/3.3.0": { 103 | "type": "package", 104 | "serviceable": true, 105 | "sha512": "sha512-JTfMic5fEFWICePbr7GXOGPranqS9Qxu2U/BZEcnnGbK1SFW8TxRyGp6O1L52xsbfOdqmzjc0t5ubhDrjj+Xpg==", 106 | "path": "microsoft.netframework.analyzers/3.3.0", 107 | "hashPath": "microsoft.netframework.analyzers.3.3.0.nupkg.sha512" 108 | }, 109 | "SharpVectors.Reloaded/1.6.0": { 110 | "type": "package", 111 | "serviceable": true, 112 | "sha512": "sha512-1YyfNpC9ARGQN2rQeEebhIPErcMCOxGxNL/oLcnKbnDI+OEgDzsd4efIk54Ac3R0FvlOC0hx3q4tLhRWsC1XIg==", 113 | "path": "sharpvectors.reloaded/1.6.0", 114 | "hashPath": "sharpvectors.reloaded.1.6.0.nupkg.sha512" 115 | } 116 | } 117 | } -------------------------------------------------------------------------------- /Output/netcoreapp3.1/SvgViewer.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/netcoreapp3.1/SvgViewer.dll -------------------------------------------------------------------------------- /Output/netcoreapp3.1/SvgViewer.dll.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Output/netcoreapp3.1/SvgViewer.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElinamLLC/SvgViewer/f8ae4485bea8edee22685205919c51f075e7fbb2/Output/netcoreapp3.1/SvgViewer.exe -------------------------------------------------------------------------------- /Output/netcoreapp3.1/SvgViewer.runtimeconfig.dev.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeOptions": { 3 | "additionalProbingPaths": [ 4 | "C:\\Users\\Paul Selormey\\.dotnet\\store\\|arch|\\|tfm|", 5 | "C:\\Users\\Paul Selormey\\.nuget\\packages", 6 | "C:\\Microsoft\\Xamarin\\NuGet", 7 | "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder" 8 | ] 9 | } 10 | } -------------------------------------------------------------------------------- /Output/netcoreapp3.1/SvgViewer.runtimeconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeOptions": { 3 | "tfm": "netcoreapp3.1", 4 | "framework": { 5 | "name": "Microsoft.WindowsDesktop.App", 6 | "version": "3.1.0" 7 | } 8 | } 9 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## SvgViewer 2 | SharpVectors based SVG viewer application. The purpose is to showcase the features of the SharpVectors library. 3 | 4 | ## Installation 5 | The SharpVectors viewer application targets the following frameworks 6 | * .NET Framework, Version 4.6 7 | * .NET Framework, Version 4.8 8 | * .NET Core, Version 3.1 9 | -------------------------------------------------------------------------------- /Source/Readme.md: -------------------------------------------------------------------------------- 1 | ## Applications 2 | The SVG# Reloaded comes with one main end-user application, an SVG Viewer or Browser. 3 | The viewer is named SharpVectorSquiggle or Squiggle.NET or simply Squiggle, after a similar viewer in the 4 | [Batik SVG Toolkit](http://xmlgraphics.apache.org/batik/) (since the target is to produce something similar to the [Batik Squiggle](http://xmlgraphics.apache.org/batik/tools/browser.html)). 5 | 6 | -------------------------------------------------------------------------------- /Source/SharpVectorsSvgViewer.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 12.00 2 | # Visual Studio Version 16 3 | VisualStudioVersion = 16.0.29613.14 4 | MinimumVisualStudioVersion = 10.0.40219.1 5 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SvgViewer.Wpf", "SvgViewer\SvgViewer.csproj", "{950268C7-328C-4921-A554-B806DD966869}" 6 | EndProject 7 | Global 8 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 9 | Debug|Any CPU = Debug|Any CPU 10 | Release|Any CPU = Release|Any CPU 11 | EndGlobalSection 12 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 13 | {950268C7-328C-4921-A554-B806DD966869}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 14 | {950268C7-328C-4921-A554-B806DD966869}.Debug|Any CPU.Build.0 = Debug|Any CPU 15 | {950268C7-328C-4921-A554-B806DD966869}.Release|Any CPU.ActiveCfg = Release|Any CPU 16 | {950268C7-328C-4921-A554-B806DD966869}.Release|Any CPU.Build.0 = Release|Any CPU 17 | EndGlobalSection 18 | GlobalSection(SolutionProperties) = preSolution 19 | HideSolutionNode = FALSE 20 | EndGlobalSection 21 | GlobalSection(NestedProjects) = preSolution 22 | {950268C7-328C-4921-A554-B806DD966869} = {B86D794E-1A2E-4F5D-AEFB-30D6A2A295E2} 23 | EndGlobalSection 24 | GlobalSection(ExtensibilityGlobals) = postSolution 25 | SolutionGuid = {ECBBFB65-D6D1-4727-BE82-54D52CE8FCF3} 26 | EndGlobalSection 27 | EndGlobal 28 | -------------------------------------------------------------------------------- /Source/SvgViewer/App.xaml: -------------------------------------------------------------------------------- 1 |  5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Source/SvgViewer/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Configuration; 4 | using System.Data; 5 | using System.Linq; 6 | using System.Windows; 7 | 8 | namespace SharpVectors.Squiggle 9 | { 10 | /// 11 | /// Interaction logic for App.xaml 12 | /// 13 | public partial class App : Application 14 | { 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Source/SvgViewer/MainWindow.xaml: -------------------------------------------------------------------------------- 1 |  8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 24 | 26 | 27 | 28 | 29 | 30 | 33 | 35 | 36 | 37 | 40 | 41 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /Source/SvgViewer/MainWindow.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Linq; 4 | using System.Text; 5 | using System.ComponentModel; 6 | using System.Collections.Generic; 7 | 8 | using System.Windows; 9 | using System.Windows.Controls; 10 | //using System.Windows.Data; 11 | //using System.Windows.Documents; 12 | using System.Windows.Input; 13 | using System.Windows.Media; 14 | //using System.Windows.Media.Imaging; 15 | //using System.Windows.Navigation; 16 | 17 | using Microsoft.Win32; 18 | 19 | using SharpVectors.Runtime; 20 | using SharpVectors.Converters; 21 | using SharpVectors.Renderers.Wpf; 22 | 23 | namespace SharpVectors.Squiggle 24 | { 25 | /// 26 | /// Interaction logic for MainWindow.xaml 27 | /// 28 | public partial class MainWindow : Window 29 | { 30 | #region Private Fields 31 | 32 | private delegate void FileChangedToUIThread(FileSystemEventArgs e); 33 | 34 | private string _titleBase; 35 | 36 | //private string _svgFilePath; 37 | //private string _xamlFilePath; 38 | 39 | private FileSystemWatcher _fileWatcher; 40 | 41 | /// 42 | /// Specifies the current state of the mouse handling logic. 43 | /// 44 | private MouseHandlingMode mouseHandlingMode = MouseHandlingMode.None; 45 | 46 | /// 47 | /// The point that was clicked relative to the ZoomAndPanControl. 48 | /// 49 | private Point origZoomAndPanControlMouseDownPoint; 50 | 51 | /// 52 | /// The point that was clicked relative to the content that is contained within the ZoomAndPanControl. 53 | /// 54 | private Point origContentMouseDownPoint; 55 | 56 | /// 57 | /// Records which mouse button clicked during mouse dragging. 58 | /// 59 | private MouseButton mouseButtonDown; 60 | 61 | private FileSvgReader _fileReader; 62 | private WpfDrawingSettings _wpfSettings; 63 | 64 | #endregion 65 | 66 | #region Constructors and Destructor 67 | 68 | public MainWindow() 69 | { 70 | InitializeComponent(); 71 | 72 | _titleBase = this.Title; 73 | 74 | this.Loaded += new RoutedEventHandler(OnWindowLoaded); 75 | //this.Unloaded += new RoutedEventHandler(OnWindowUnloaded); 76 | this.Closing += new CancelEventHandler(OnWindowClosing); 77 | 78 | _wpfSettings = new WpfDrawingSettings(); 79 | _wpfSettings.CultureInfo = _wpfSettings.NeutralCultureInfo; 80 | 81 | _fileReader = new FileSvgReader(_wpfSettings); 82 | _fileReader.SaveXaml = false; 83 | _fileReader.SaveZaml = false; 84 | } 85 | 86 | #endregion 87 | 88 | #region Protected Methods 89 | 90 | protected override void OnInitialized(EventArgs e) 91 | { 92 | base.OnInitialized(e); 93 | 94 | double width = SystemParameters.PrimaryScreenWidth; 95 | double height = SystemParameters.PrimaryScreenHeight; 96 | 97 | this.Width = Math.Min(1600, width) * 0.85; 98 | this.Height = height * 0.85; 99 | 100 | this.Left = (width - this.Width) / 2.0; 101 | this.Top = (height - this.Height) / 2.0; 102 | 103 | this.WindowStartupLocation = WindowStartupLocation.Manual; 104 | } 105 | 106 | #endregion 107 | 108 | #region Private Event Handlers 109 | 110 | private void OnWindowLoaded(object sender, RoutedEventArgs e) 111 | { 112 | } 113 | 114 | private void OnWindowUnloaded(object sender, RoutedEventArgs e) 115 | { 116 | } 117 | 118 | private void OnWindowClosing(object sender, CancelEventArgs e) 119 | { 120 | } 121 | 122 | #region Drag/Drop Methods 123 | 124 | private void OnDragEnter(object sender, DragEventArgs de) 125 | { 126 | if (de.Data.GetDataPresent(DataFormats.Text) || 127 | de.Data.GetDataPresent(DataFormats.FileDrop)) 128 | { 129 | de.Effects = DragDropEffects.Copy; 130 | } 131 | else 132 | { 133 | de.Effects = DragDropEffects.None; 134 | } 135 | } 136 | 137 | private void OnDragLeave(object sender, DragEventArgs e) 138 | { 139 | 140 | } 141 | 142 | private void OnDragDrop(object sender, DragEventArgs de) 143 | { 144 | string fileName = ""; 145 | if (de.Data.GetDataPresent(DataFormats.Text)) 146 | { 147 | fileName = (string)de.Data.GetData(DataFormats.Text); 148 | } 149 | else if (de.Data.GetDataPresent(DataFormats.FileDrop)) 150 | { 151 | string[] fileNames; 152 | fileNames = (string[])de.Data.GetData(DataFormats.FileDrop); 153 | fileName = fileNames[0]; 154 | } 155 | 156 | if (!String.IsNullOrEmpty(fileName)) 157 | { 158 | } 159 | if (String.IsNullOrEmpty(fileName) || !File.Exists(fileName)) 160 | { 161 | return; 162 | } 163 | 164 | this.CloseFile(); 165 | 166 | try 167 | { 168 | this.Cursor = Cursors.Wait; 169 | this.ForceCursor = true; 170 | 171 | this.LoadFile(fileName); 172 | } 173 | catch (Exception ex) 174 | { 175 | MessageBox.Show(ex.ToString(), _titleBase, 176 | MessageBoxButton.OK, MessageBoxImage.Error); 177 | } 178 | finally 179 | { 180 | this.Cursor = Cursors.Arrow; 181 | this.ForceCursor = false; 182 | } 183 | } 184 | 185 | #endregion 186 | 187 | #region FileSystemWatcher Event Handlers 188 | 189 | private void OnFileChangedToUIThread(FileSystemEventArgs e) 190 | { 191 | // Stop watching. 192 | _fileWatcher.EnableRaisingEvents = false; 193 | 194 | try 195 | { 196 | this.Cursor = Cursors.Wait; 197 | this.ForceCursor = true; 198 | 199 | this.LoadFile(e.FullPath); 200 | } 201 | catch (Exception ex) 202 | { 203 | MessageBox.Show(ex.ToString(), _titleBase, 204 | MessageBoxButton.OK, MessageBoxImage.Error); 205 | } 206 | finally 207 | { 208 | this.Cursor = Cursors.Arrow; 209 | this.ForceCursor = false; 210 | } 211 | } 212 | 213 | // Define the event handlers. 214 | private void OnFileChanged(object source, FileSystemEventArgs e) 215 | { 216 | if (e.ChangeType == WatcherChangeTypes.Changed) 217 | { 218 | this.Dispatcher.BeginInvoke(new FileChangedToUIThread(OnFileChangedToUIThread), 219 | System.Windows.Threading.DispatcherPriority.Normal, e); 220 | } 221 | } 222 | 223 | private void OnFileRenamed(object source, RenamedEventArgs e) 224 | { 225 | } 226 | 227 | #endregion 228 | 229 | #region Private Zoom Panel Handlers 230 | 231 | /// 232 | /// Event raised on mouse down in the ZoomAndPanControl. 233 | /// 234 | private void OnZoomPanMouseDown(object sender, MouseButtonEventArgs e) 235 | { 236 | svgViewer.Focus(); 237 | Keyboard.Focus(svgViewer); 238 | 239 | mouseButtonDown = e.ChangedButton; 240 | origZoomAndPanControlMouseDownPoint = e.GetPosition(zoomPanControl); 241 | origContentMouseDownPoint = e.GetPosition(svgViewer); 242 | 243 | if ((Keyboard.Modifiers & ModifierKeys.Shift) != 0 && 244 | (e.ChangedButton == MouseButton.Left || 245 | e.ChangedButton == MouseButton.Right)) 246 | { 247 | // Shift + left- or right-down initiates zooming mode. 248 | mouseHandlingMode = MouseHandlingMode.Zooming; 249 | } 250 | else if (mouseButtonDown == MouseButton.Left) 251 | { 252 | // Just a plain old left-down initiates panning mode. 253 | mouseHandlingMode = MouseHandlingMode.Panning; 254 | } 255 | 256 | if (mouseHandlingMode != MouseHandlingMode.None) 257 | { 258 | // Capture the mouse so that we eventually receive the mouse up event. 259 | zoomPanControl.CaptureMouse(); 260 | e.Handled = true; 261 | } 262 | } 263 | 264 | /// 265 | /// Event raised on mouse up in the ZoomAndPanControl. 266 | /// 267 | private void OnZoomPanMouseUp(object sender, MouseButtonEventArgs e) 268 | { 269 | if (mouseHandlingMode != MouseHandlingMode.None) 270 | { 271 | if (mouseHandlingMode == MouseHandlingMode.Zooming) 272 | { 273 | if (mouseButtonDown == MouseButton.Left) 274 | { 275 | // Shift + left-click zooms in on the content. 276 | ZoomIn(); 277 | } 278 | else if (mouseButtonDown == MouseButton.Right) 279 | { 280 | // Shift + left-click zooms out from the content. 281 | ZoomOut(); 282 | } 283 | } 284 | 285 | zoomPanControl.ReleaseMouseCapture(); 286 | mouseHandlingMode = MouseHandlingMode.None; 287 | e.Handled = true; 288 | } 289 | } 290 | 291 | /// 292 | /// Event raised on mouse move in the ZoomAndPanControl. 293 | /// 294 | private void OnZoomPanMouseMove(object sender, MouseEventArgs e) 295 | { 296 | if (mouseHandlingMode == MouseHandlingMode.Panning) 297 | { 298 | // 299 | // The user is left-dragging the mouse. 300 | // Pan the viewport by the appropriate amount. 301 | // 302 | Point curContentMousePoint = e.GetPosition(svgViewer); 303 | Vector dragOffset = curContentMousePoint - origContentMouseDownPoint; 304 | 305 | zoomPanControl.ContentOffsetX -= dragOffset.X; 306 | zoomPanControl.ContentOffsetY -= dragOffset.Y; 307 | 308 | e.Handled = true; 309 | } 310 | } 311 | 312 | /// 313 | /// Event raised by rotating the mouse wheel 314 | /// 315 | private void OnZoomPanMouseWheel(object sender, MouseWheelEventArgs e) 316 | { 317 | e.Handled = true; 318 | 319 | if (e.Delta > 0) 320 | { 321 | ZoomIn(); 322 | } 323 | else if (e.Delta < 0) 324 | { 325 | ZoomOut(); 326 | } 327 | } 328 | 329 | /// 330 | /// The 'ZoomIn' command (bound to the plus key) was executed. 331 | /// 332 | private void OnZoomIn(object sender, ExecutedRoutedEventArgs e) 333 | { 334 | ZoomIn(); 335 | } 336 | 337 | /// 338 | /// The 'ZoomOut' command (bound to the minus key) was executed. 339 | /// 340 | private void OnZoomOut(object sender, ExecutedRoutedEventArgs e) 341 | { 342 | ZoomOut(); 343 | } 344 | 345 | /// 346 | /// Zoom the viewport out by a small increment. 347 | /// 348 | private void ZoomOut() 349 | { 350 | zoomPanControl.ContentScale -= 0.1; 351 | } 352 | 353 | /// 354 | /// Zoom the viewport in by a small increment. 355 | /// 356 | private void ZoomIn() 357 | { 358 | zoomPanControl.ContentScale += 0.1; 359 | } 360 | 361 | #endregion 362 | 363 | #endregion 364 | 365 | #region Private Methods 366 | 367 | private void LoadFile(string fileName) 368 | { 369 | string fileExt = Path.GetExtension(fileName); 370 | if (string.IsNullOrEmpty(fileExt)) 371 | { 372 | return; 373 | } 374 | 375 | if (_fileWatcher != null) 376 | { 377 | _fileWatcher.EnableRaisingEvents = false; 378 | } 379 | 380 | if (string.Equals(fileExt, ".svgz", StringComparison.OrdinalIgnoreCase) || 381 | string.Equals(fileExt, ".svg", StringComparison.OrdinalIgnoreCase)) 382 | { 383 | try 384 | { 385 | this.CloseFile(); 386 | 387 | DrawingGroup drawing = _fileReader.Read(fileName); 388 | 389 | svgViewer.UnloadDiagrams(); 390 | 391 | if (drawing != null) 392 | { 393 | svgViewer.RenderDiagrams(drawing); 394 | } 395 | else 396 | { 397 | return; 398 | } 399 | zoomPanControl.InvalidateMeasure(); 400 | 401 | Rect bounds = drawing.Bounds; 402 | 403 | //zoomPanControl.AnimatedScaleToFit(); 404 | //Rect rect = new Rect(0, 0, 405 | // mainFrame.RenderSize.Width, mainFrame.RenderSize.Height); 406 | //Rect rect = new Rect(0, 0, 407 | // bounds.Width, bounds.Height); 408 | if (bounds.IsEmpty) 409 | { 410 | bounds = new Rect(0, 0, 411 | mainFrame.ActualWidth, mainFrame.ActualHeight); 412 | } 413 | zoomPanControl.AnimatedZoomTo(bounds); 414 | 415 | if (_fileWatcher == null) 416 | { 417 | // Create a new FileSystemWatcher and set its properties. 418 | _fileWatcher = new FileSystemWatcher(); 419 | // Watch for changes in LastAccess and LastWrite times 420 | _fileWatcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite; 421 | 422 | _fileWatcher.IncludeSubdirectories = false; 423 | 424 | // Add event handlers. 425 | _fileWatcher.Changed += new FileSystemEventHandler(OnFileChanged); 426 | _fileWatcher.Created += new FileSystemEventHandler(OnFileChanged); 427 | _fileWatcher.Deleted += new FileSystemEventHandler(OnFileChanged); 428 | _fileWatcher.Renamed += new RenamedEventHandler(OnFileRenamed); 429 | } 430 | 431 | _fileWatcher.Path = Path.GetDirectoryName(fileName); 432 | // Only watch current file 433 | _fileWatcher.Filter = Path.GetFileName(fileName); 434 | // Begin watching. 435 | _fileWatcher.EnableRaisingEvents = true; 436 | } 437 | catch 438 | { 439 | //svgViewer.Source = null; 440 | svgViewer.UnloadDiagrams(); 441 | } 442 | } 443 | } 444 | 445 | private void CloseFile() 446 | { 447 | try 448 | { 449 | if (svgViewer != null) 450 | { 451 | //svgViewer.Source = null; 452 | svgViewer.UnloadDiagrams(); 453 | } 454 | } 455 | catch 456 | { 457 | } 458 | } 459 | 460 | #endregion 461 | } 462 | } 463 | -------------------------------------------------------------------------------- /Source/SvgViewer/MouseHandlingMode.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SharpVectors.Squiggle 4 | { 5 | /// 6 | /// Defines the current state of the mouse handling logic. 7 | /// 8 | public enum MouseHandlingMode 9 | { 10 | /// 11 | /// Not in any special mode. 12 | /// 13 | None, 14 | 15 | /// 16 | /// The user is left-dragging rectangles with the mouse. 17 | /// 18 | DraggingRectangles, 19 | 20 | /// 21 | /// The user is left-mouse-button-dragging to pan the viewport. 22 | /// 23 | Panning, 24 | 25 | /// 26 | /// The user is holding down shift and left-clicking or right-clicking to zoom in or out. 27 | /// 28 | Zooming, 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Source/SvgViewer/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Resources; 3 | using System.Runtime.CompilerServices; 4 | using System.Runtime.InteropServices; 5 | using System.Windows; 6 | 7 | // General Information about an assembly is controlled through the following 8 | // set of attributes. Change these attribute values to modify the information 9 | // associated with an assembly. 10 | [assembly: AssemblyTitle("SharpVectors.Squiggle")] 11 | [assembly: AssemblyDescription("")] 12 | [assembly: AssemblyConfiguration("")] 13 | [assembly: AssemblyCompany("")] 14 | [assembly: AssemblyProduct("SharpVectors.Squiggle")] 15 | [assembly: AssemblyCopyright("Copyright © 2010")] 16 | [assembly: AssemblyTrademark("")] 17 | [assembly: AssemblyCulture("")] 18 | 19 | // Setting ComVisible to false makes the types in this assembly not visible 20 | // to COM components. If you need to access a type in this assembly from 21 | // COM, set the ComVisible attribute to true on that type. 22 | [assembly: ComVisible(false)] 23 | 24 | //In order to begin building localizable applications, set 25 | //CultureYouAreCodingWith in your .csproj file 26 | //inside a . For example, if you are using US english 27 | //in your source files, set the to en-US. Then uncomment 28 | //the NeutralResourceLanguage attribute below. Update the "en-US" in 29 | //the line below to match the UICulture setting in the project file. 30 | 31 | //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] 32 | 33 | 34 | [assembly: ThemeInfo( 35 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located 36 | //(used if a resource is not found in the page, 37 | // or application resource dictionaries) 38 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located 39 | //(used if a resource is not found in the page, 40 | // app, or any theme specific resource dictionaries) 41 | )] 42 | 43 | 44 | // Version information for an assembly consists of the following four values: 45 | // 46 | // Major Version 47 | // Minor Version 48 | // Build Number 49 | // Revision 50 | // 51 | // You can specify all the values or you can default the Build and Revision Numbers 52 | // by using the '*' as shown below: 53 | // [assembly: AssemblyVersion("1.0.*")] 54 | [assembly: AssemblyVersion("1.6.0.0")] 55 | [assembly: AssemblyFileVersion("1.6.0.0")] 56 | -------------------------------------------------------------------------------- /Source/SvgViewer/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace SharpVectors.Squiggle.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SharpVectors.Squiggle.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /Source/SvgViewer/Properties/Resources.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | text/microsoft-resx 107 | 108 | 109 | 2.0 110 | 111 | 112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 113 | 114 | 115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | -------------------------------------------------------------------------------- /Source/SvgViewer/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace SharpVectors.Squiggle.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.8.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Source/SvgViewer/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Source/SvgViewer/SvgViewer.VS2017.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | net46;net48 4 | WinExe 5 | true 6 | true 7 | SharpVectors.Squiggle 8 | SharpVectors.Squiggle 9 | false 10 | true 11 | false 12 | false 13 | 14 | 15 | full 16 | true 17 | DEBUG;TRACE 18 | Output\ 19 | 20 | 21 | TRACE 22 | Output\ 23 | 24 | 25 | $(DefineConstants);DOTNET40;NETFULL 26 | $(DefineConstants);DOTNET45;NETFULL 27 | $(DefineConstants);DOTNET46;NETFULL 28 | $(DefineConstants);DOTNET47;NETFULL 29 | $(DefineConstants);DOTNET48;NETFULL 30 | $(DefineConstants);NETCORE 31 | $(DefineConstants);NETSTANDARD 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | all 45 | runtime; build; native; contentfiles; analyzers; buildtransitive 46 | 47 | 48 | 49 | 50 | MSBuild:Compile 51 | 52 | 53 | MSBuild:Compile 54 | 55 | 56 | -------------------------------------------------------------------------------- /Source/SvgViewer/SvgViewer.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | net46;net48;netcoreapp3.1 4 | WinExe 5 | true 6 | SharpVectors.Squiggle 7 | SvgViewer 8 | false 9 | true 10 | false 11 | false 12 | 13 | 14 | full 15 | true 16 | DEBUG;TRACE 17 | ..\..\Output\ 18 | 19 | 20 | TRACE 21 | ..\..\Output\ 22 | 23 | 24 | $(DefineConstants);DOTNET40;NETFULL 25 | $(DefineConstants);DOTNET45;NETFULL 26 | $(DefineConstants);DOTNET46;NETFULL 27 | $(DefineConstants);DOTNET47;NETFULL 28 | $(DefineConstants);DOTNET48;NETFULL 29 | $(DefineConstants);NETCORE 30 | $(DefineConstants);NETSTANDARD 31 | 32 | 33 | 34 | all 35 | runtime; build; native; contentfiles; analyzers; buildtransitive 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /Source/SvgViewer/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | --------------------------------------------------------------------------------