Added Vector Image ObjectModel and one DataFormat (Expression Blend) (incomplete)

This commit is contained in:
Michael Becker 2014-11-27 21:02:28 -05:00
parent 7ae6a1762b
commit bb311f2979
6 changed files with 168 additions and 2 deletions

View File

@ -0,0 +1,37 @@
namespace UniversalEditor.Editors.Multimedia.VectorImage
{
partial class VectorImageEditor
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
}
#endregion
}
}

View File

@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using UniversalEditor.ObjectModels.Multimedia.VectorImage;
using UniversalEditor.UserInterface;
using UniversalEditor.UserInterface.WindowsForms;
namespace UniversalEditor.Editors.Multimedia.VectorImage
{
public partial class VectorImageEditor : Editor
{
public VectorImageEditor()
{
InitializeComponent();
}
private static EditorReference _er = null;
public override EditorReference MakeReference()
{
if (_er == null)
{
_er = base.MakeReference();
_er.Title = "Vector Image";
_er.SupportedObjectModels.Add(typeof(VectorImageObjectModel));
}
return _er;
}
protected override void OnObjectModelChanged(EventArgs e)
{
base.OnObjectModelChanged(e);
VectorImageObjectModel vector = (ObjectModel as VectorImageObjectModel);
if (vector != null)
{
}
}
}
}

View File

@ -33,11 +33,9 @@
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Data" />
<Reference Include="System.Design" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Controls\Multimedia\Audio\Synthesized\PianoRoll\PianoRollControl.cs">
@ -144,6 +142,12 @@
<Compile Include="Editors\Multimedia\Subtitle\SubtitleEditor.Designer.cs">
<DependentUpon>SubtitleEditor.cs</DependentUpon>
</Compile>
<Compile Include="Editors\Multimedia\VectorImage\VectorImageEditor.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Editors\Multimedia\VectorImage\VectorImageEditor.Designer.cs">
<DependentUpon>VectorImageEditor.cs</DependentUpon>
</Compile>
<Compile Include="MyCursors.cs" />
<Compile Include="OptionPanels\Editors\Audio\Synthesized\EditorOptionPanel.cs">
<SubType>UserControl</SubType>

View File

@ -0,0 +1,50 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UniversalEditor.IO;
using UniversalEditor.ObjectModels.Multimedia.VectorImage;
namespace UniversalEditor.DataFormats.Multimedia.VectorImage.Microsoft.ExpressionDesign
{
public class ExpressionDesignDataFormat : DataFormat
{
private static DataFormatReference _dfr = null;
public override DataFormatReference MakeReference()
{
if (_dfr == null)
{
_dfr = base.MakeReference();
_dfr.Capabilities.Add(typeof(VectorImageObjectModel), DataFormatCapabilities.All);
_dfr.Filters.Add("Microsoft Expression Design image", new byte?[][] { new byte?[] { (byte)'<', (byte)'X', (byte)'D', (byte)'F', (byte)'V', (byte)':', (byte)'9', (byte)'>', (byte)0x0A } }, new string[] { "*.design" });
}
return _dfr;
}
protected override void LoadInternal(ref ObjectModel objectModel)
{
VectorImageObjectModel vector = (objectModel as VectorImageObjectModel);
if (vector == null) throw new ObjectModelNotSupportedException();
Reader reader = base.Accessor.Reader;
string signature = reader.ReadFixedLengthString(9);
if (signature != "<XDFV:9>\n") throw new InvalidDataFormatException();
reader.Accessor.Seek(32, SeekOrigin.Begin);
byte[] compressedData = reader.ReadToEnd();
System.IO.File.WriteAllBytes(@"C:\Users\Mike Becker\Documents\Expression\Expression Design\Untitled1.compressed", compressedData);
UniversalEditor.Compression.CompressionModule module = UniversalEditor.Compression.CompressionModule.FromKnownCompressionMethod(Compression.CompressionMethod.Zlib);
byte[] decompressedData = module.Decompress(compressedData);
System.IO.File.WriteAllBytes(@"C:\Users\Mike Becker\Documents\Expression\Expression Design\Untitled1.decompressed", decompressedData);
}
protected override void SaveInternal(ObjectModel objectModel)
{
throw new NotImplementedException();
}
}
}

View File

@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace UniversalEditor.ObjectModels.Multimedia.VectorImage
{
public class VectorImageObjectModel : ObjectModel
{
private static ObjectModelReference _omr = null;
public override ObjectModelReference MakeReference()
{
if (_omr == null)
{
_omr = base.MakeReference();
_omr.Title = "Vector image";
_omr.Path = new string[] { "Multimedia", "Picture" };
}
return _omr;
}
public override void Clear()
{
}
public override void CopyTo(ObjectModel where)
{
}
}
}

View File

@ -136,6 +136,7 @@
<Compile Include="DataFormats\Multimedia\Subtitle\QuickSub\QuickSubTextDataFormat.cs" />
<Compile Include="DataFormats\Multimedia\Subtitle\SubRip\SubRipDataFormat.cs" />
<Compile Include="DataFormats\Multimedia\Subtitle\SubStationAlpha\SubStationAlphaDataFormat.cs" />
<Compile Include="DataFormats\Multimedia\VectorImage\Microsoft\ExpressionDesign\ExpressionDesignDataFormat.cs" />
<Compile Include="DataFormats\Multimedia\Video\UVS\UVSColorspace.cs" />
<Compile Include="DataFormats\Multimedia\Video\UVS\UVSDataFormat.cs" />
<Compile Include="DataFormats\Multimedia\Video\UVS\UVSFlags.cs" />
@ -233,6 +234,7 @@
<Compile Include="ObjectModels\Multimedia\Subtitle\Event.cs" />
<Compile Include="ObjectModels\Multimedia\Subtitle\Style.cs" />
<Compile Include="ObjectModels\Multimedia\Subtitle\SubtitleObjectModel.cs" />
<Compile Include="ObjectModels\Multimedia\VectorImage\VectorImageObjectModel.cs" />
<Compile Include="ObjectModels\Multimedia\Video\AudioTrack.cs">
<SubType>Code</SubType>
</Compile>