]> granicus.if.org Git - handbrake/commitdiff
WinGui:
authorsr55 <sr55.hb@outlook.com>
Fri, 21 Jan 2011 21:51:39 +0000 (21:51 +0000)
committersr55 <sr55.hb@outlook.com>
Fri, 21 Jan 2011 21:51:39 +0000 (21:51 +0000)
- Add initial WPF project. (Uses MVVM, Caliburn 1.1)
  This may one day replace the WinForms code.

git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3762 b64f7644-9d1e-0410-96f1-a4d463321fa5

13 files changed:
win/C#/HandBrake10.sln
win/C#/HandBrakeWPF/App.xaml [new file with mode: 0644]
win/C#/HandBrakeWPF/App.xaml.cs [new file with mode: 0644]
win/C#/HandBrakeWPF/HandBrakeWPF.csproj [new file with mode: 0644]
win/C#/HandBrakeWPF/Properties/AssemblyInfo.cs [new file with mode: 0644]
win/C#/HandBrakeWPF/Properties/Resources.Designer.cs [new file with mode: 0644]
win/C#/HandBrakeWPF/Properties/Resources.resx [new file with mode: 0644]
win/C#/HandBrakeWPF/Properties/Settings.Designer.cs [new file with mode: 0644]
win/C#/HandBrakeWPF/Properties/Settings.settings [new file with mode: 0644]
win/C#/HandBrakeWPF/Settings.StyleCop [new file with mode: 0644]
win/C#/HandBrakeWPF/ViewModels/MainViewModel.cs [new file with mode: 0644]
win/C#/HandBrakeWPF/Views/MainView.xaml [new file with mode: 0644]
win/C#/HandBrakeWPF/Views/MainView.xaml.cs [new file with mode: 0644]

index e5fda7222d003b7ed5c9fee871db238811b96b12..b7785d1d99b52fa8109e9111a0c67a59710eb100 100644 (file)
@@ -7,6 +7,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HandBrake.ApplicationServic
 EndProject\r
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HandBrake.Framework", "HandBrake.Framework\HandBrake.Framework.csproj", "{49AD42C1-BF9B-4D78-A644-020878FAADE6}"\r
 EndProject\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HandBrakeWPF", "HandBrakeWPF\HandBrakeWPF.csproj", "{DADE66CB-0E12-4959-ADE5-0ACD31D27C59}"\r
+EndProject\r
 Global\r
        GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
                Debug|Any CPU = Debug|Any CPU\r
@@ -103,6 +105,30 @@ Global
                {49AD42C1-BF9B-4D78-A644-020878FAADE6}.Release|Mixed Platforms.Build.0 = Release|Any CPU\r
                {49AD42C1-BF9B-4D78-A644-020878FAADE6}.Release|x64.ActiveCfg = Release|Any CPU\r
                {49AD42C1-BF9B-4D78-A644-020878FAADE6}.Release|x86.ActiveCfg = Release|Any CPU\r
+               {DADE66CB-0E12-4959-ADE5-0ACD31D27C59}.Debug|Any CPU.ActiveCfg = Debug|x86\r
+               {DADE66CB-0E12-4959-ADE5-0ACD31D27C59}.Debug|Mixed Platforms.ActiveCfg = Debug|x86\r
+               {DADE66CB-0E12-4959-ADE5-0ACD31D27C59}.Debug|Mixed Platforms.Build.0 = Debug|x86\r
+               {DADE66CB-0E12-4959-ADE5-0ACD31D27C59}.Debug|x64.ActiveCfg = Debug|x86\r
+               {DADE66CB-0E12-4959-ADE5-0ACD31D27C59}.Debug|x86.ActiveCfg = Debug|x86\r
+               {DADE66CB-0E12-4959-ADE5-0ACD31D27C59}.Debug|x86.Build.0 = Debug|x86\r
+               {DADE66CB-0E12-4959-ADE5-0ACD31D27C59}.Install|Any CPU.ActiveCfg = Release|x86\r
+               {DADE66CB-0E12-4959-ADE5-0ACD31D27C59}.Install|Mixed Platforms.ActiveCfg = Release|x86\r
+               {DADE66CB-0E12-4959-ADE5-0ACD31D27C59}.Install|Mixed Platforms.Build.0 = Release|x86\r
+               {DADE66CB-0E12-4959-ADE5-0ACD31D27C59}.Install|x64.ActiveCfg = Release|x86\r
+               {DADE66CB-0E12-4959-ADE5-0ACD31D27C59}.Install|x86.ActiveCfg = Release|x86\r
+               {DADE66CB-0E12-4959-ADE5-0ACD31D27C59}.Install|x86.Build.0 = Release|x86\r
+               {DADE66CB-0E12-4959-ADE5-0ACD31D27C59}.NightlyBuild|Any CPU.ActiveCfg = Release|x86\r
+               {DADE66CB-0E12-4959-ADE5-0ACD31D27C59}.NightlyBuild|Mixed Platforms.ActiveCfg = Release|x86\r
+               {DADE66CB-0E12-4959-ADE5-0ACD31D27C59}.NightlyBuild|Mixed Platforms.Build.0 = Release|x86\r
+               {DADE66CB-0E12-4959-ADE5-0ACD31D27C59}.NightlyBuild|x64.ActiveCfg = Release|x86\r
+               {DADE66CB-0E12-4959-ADE5-0ACD31D27C59}.NightlyBuild|x86.ActiveCfg = Release|x86\r
+               {DADE66CB-0E12-4959-ADE5-0ACD31D27C59}.NightlyBuild|x86.Build.0 = Release|x86\r
+               {DADE66CB-0E12-4959-ADE5-0ACD31D27C59}.Release|Any CPU.ActiveCfg = Release|x86\r
+               {DADE66CB-0E12-4959-ADE5-0ACD31D27C59}.Release|Mixed Platforms.ActiveCfg = Release|x86\r
+               {DADE66CB-0E12-4959-ADE5-0ACD31D27C59}.Release|Mixed Platforms.Build.0 = Release|x86\r
+               {DADE66CB-0E12-4959-ADE5-0ACD31D27C59}.Release|x64.ActiveCfg = Release|x86\r
+               {DADE66CB-0E12-4959-ADE5-0ACD31D27C59}.Release|x86.ActiveCfg = Release|x86\r
+               {DADE66CB-0E12-4959-ADE5-0ACD31D27C59}.Release|x86.Build.0 = Release|x86\r
        EndGlobalSection\r
        GlobalSection(SolutionProperties) = preSolution\r
                HideSolutionNode = FALSE\r
diff --git a/win/C#/HandBrakeWPF/App.xaml b/win/C#/HandBrakeWPF/App.xaml
new file mode 100644 (file)
index 0000000..903288b
--- /dev/null
@@ -0,0 +1,8 @@
+<ApplicationModel:CaliburnApplication x:Class="HandBrakeWPF.App"\r
+             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"\r
+             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" \r
+             xmlns:ApplicationModel="clr-namespace:Caliburn.PresentationFramework.ApplicationModel;assembly=Caliburn.PresentationFramework">\r
+    <Application.Resources>\r
+         \r
+    </Application.Resources>\r
+</ApplicationModel:CaliburnApplication>\r
diff --git a/win/C#/HandBrakeWPF/App.xaml.cs b/win/C#/HandBrakeWPF/App.xaml.cs
new file mode 100644 (file)
index 0000000..ae8d6a3
--- /dev/null
@@ -0,0 +1,48 @@
+/*  App.xaml.cs $\r
+    This file is part of the HandBrake source code.\r
+    Homepage: <http://handbrake.fr>.\r
+    It may be used under the terms of the GNU General Public License. */\r
+\r
+namespace HandBrakeWPF\r
+{\r
+    using Caliburn.PresentationFramework.ApplicationModel;\r
+\r
+    using HandBrakeWPF.ViewModels;\r
+\r
+    /// <summary>\r
+    /// Interaction logic for App.xaml\r
+    /// </summary>\r
+    public partial class App : CaliburnApplication\r
+    {\r
+        /*\r
+         * TODO:\r
+         * - Setup Castle Windsor support for services.\r
+         * \r
+         * \r
+         */\r
+\r
+\r
+        /// <summary>\r
+        /// Initializes a new instance of the <see cref="App"/> class.\r
+        /// </summary>\r
+        public App()\r
+        {\r
+        }\r
+\r
+        /// <summary>\r
+        /// Create the Root View\r
+        /// </summary>\r
+        /// <returns>\r
+        /// A MainViewMOdel\r
+        /// </returns>\r
+        protected override object CreateRootModel()\r
+        {\r
+            var binder = (DefaultBinder)Container.GetInstance<IBinder>();\r
+\r
+            binder.EnableBindingConventions();\r
+            binder.EnableMessageConventions();\r
+\r
+            return new MainViewModel();\r
+        }\r
+    }\r
+}\r
diff --git a/win/C#/HandBrakeWPF/HandBrakeWPF.csproj b/win/C#/HandBrakeWPF/HandBrakeWPF.csproj
new file mode 100644 (file)
index 0000000..a110b96
--- /dev/null
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <PropertyGroup>\r
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
+    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>\r
+    <ProductVersion>8.0.30703</ProductVersion>\r
+    <SchemaVersion>2.0</SchemaVersion>\r
+    <ProjectGuid>{DADE66CB-0E12-4959-ADE5-0ACD31D27C59}</ProjectGuid>\r
+    <OutputType>WinExe</OutputType>\r
+    <AppDesignerFolder>Properties</AppDesignerFolder>\r
+    <RootNamespace>HandBrakeWPF</RootNamespace>\r
+    <AssemblyName>HandBrakeWPF</AssemblyName>\r
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>\r
+    <TargetFrameworkProfile>Client</TargetFrameworkProfile>\r
+    <FileAlignment>512</FileAlignment>\r
+    <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>\r
+    <WarningLevel>4</WarningLevel>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">\r
+    <PlatformTarget>x86</PlatformTarget>\r
+    <DebugSymbols>true</DebugSymbols>\r
+    <DebugType>full</DebugType>\r
+    <Optimize>false</Optimize>\r
+    <OutputPath>bin\Debug\</OutputPath>\r
+    <DefineConstants>DEBUG;TRACE</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">\r
+    <PlatformTarget>x86</PlatformTarget>\r
+    <DebugType>pdbonly</DebugType>\r
+    <Optimize>true</Optimize>\r
+    <OutputPath>bin\Release\</OutputPath>\r
+    <DefineConstants>TRACE</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+  </PropertyGroup>\r
+  <ItemGroup>\r
+    <Reference Include="Caliburn.Core">\r
+      <HintPath>..\libraries\caliburn\Caliburn.Core.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="Caliburn.ModelFramework">\r
+      <HintPath>..\libraries\caliburn\Caliburn.ModelFramework.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="Caliburn.PresentationFramework">\r
+      <HintPath>..\libraries\caliburn\Caliburn.PresentationFramework.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="Microsoft.Practices.ServiceLocation">\r
+      <HintPath>..\libraries\caliburn\Microsoft.Practices.ServiceLocation.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="System" />\r
+    <Reference Include="System.Data" />\r
+    <Reference Include="System.Xml" />\r
+    <Reference Include="Microsoft.CSharp" />\r
+    <Reference Include="System.Core" />\r
+    <Reference Include="System.Xml.Linq" />\r
+    <Reference Include="System.Data.DataSetExtensions" />\r
+    <Reference Include="System.Xaml">\r
+      <RequiredTargetFramework>4.0</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="WindowsBase" />\r
+    <Reference Include="PresentationCore" />\r
+    <Reference Include="PresentationFramework" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ApplicationDefinition Include="App.xaml">\r
+      <Generator>MSBuild:Compile</Generator>\r
+      <SubType>Designer</SubType>\r
+    </ApplicationDefinition>\r
+    <Compile Include="App.xaml.cs">\r
+      <DependentUpon>App.xaml</DependentUpon>\r
+      <SubType>Code</SubType>\r
+    </Compile>\r
+    <Compile Include="ViewModels\MainViewModel.cs" />\r
+    <Compile Include="Views\MainView.xaml.cs">\r
+      <DependentUpon>MainView.xaml</DependentUpon>\r
+    </Compile>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Compile Include="Properties\AssemblyInfo.cs">\r
+      <SubType>Code</SubType>\r
+    </Compile>\r
+    <Compile Include="Properties\Resources.Designer.cs">\r
+      <AutoGen>True</AutoGen>\r
+      <DesignTime>True</DesignTime>\r
+      <DependentUpon>Resources.resx</DependentUpon>\r
+    </Compile>\r
+    <Compile Include="Properties\Settings.Designer.cs">\r
+      <AutoGen>True</AutoGen>\r
+      <DependentUpon>Settings.settings</DependentUpon>\r
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>\r
+    </Compile>\r
+    <EmbeddedResource Include="Properties\Resources.resx">\r
+      <Generator>ResXFileCodeGenerator</Generator>\r
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>\r
+    </EmbeddedResource>\r
+    <None Include="Properties\Settings.settings">\r
+      <Generator>SettingsSingleFileGenerator</Generator>\r
+      <LastGenOutput>Settings.Designer.cs</LastGenOutput>\r
+    </None>\r
+    <AppDesigner Include="Properties\" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Page Include="Views\MainView.xaml">\r
+      <SubType>Designer</SubType>\r
+      <Generator>MSBuild:Compile</Generator>\r
+    </Page>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Folder Include="Model\" />\r
+  </ItemGroup>\r
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />\r
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \r
+       Other similar extension points exist, see Microsoft.Common.targets.\r
+  <Target Name="BeforeBuild">\r
+  </Target>\r
+  <Target Name="AfterBuild">\r
+  </Target>\r
+  -->\r
+</Project>
\ No newline at end of file
diff --git a/win/C#/HandBrakeWPF/Properties/AssemblyInfo.cs b/win/C#/HandBrakeWPF/Properties/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..0e7cf6f
--- /dev/null
@@ -0,0 +1,55 @@
+using System.Reflection;\r
+using System.Resources;\r
+using System.Runtime.CompilerServices;\r
+using System.Runtime.InteropServices;\r
+using System.Windows;\r
+\r
+// General Information about an assembly is controlled through the following \r
+// set of attributes. Change these attribute values to modify the information\r
+// associated with an assembly.\r
+[assembly: AssemblyTitle("HandBrake")]\r
+[assembly: AssemblyDescription("A WPF MVVM based GUI for HandBrake.")]\r
+[assembly: AssemblyConfiguration("")]\r
+[assembly: AssemblyCompany("HandBrake Team")]\r
+[assembly: AssemblyProduct("HandBrake")]\r
+[assembly: AssemblyCopyright("Copyright © HandBrake Team 2011")]\r
+[assembly: AssemblyTrademark("")]\r
+[assembly: AssemblyCulture("")]\r
+\r
+// Setting ComVisible to false makes the types in this assembly not visible \r
+// to COM components.  If you need to access a type in this assembly from \r
+// COM, set the ComVisible attribute to true on that type.\r
+[assembly: ComVisible(false)]\r
+\r
+//In order to begin building localizable applications, set \r
+//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file\r
+//inside a <PropertyGroup>.  For example, if you are using US english\r
+//in your source files, set the <UICulture> to en-US.  Then uncomment\r
+//the NeutralResourceLanguage attribute below.  Update the "en-US" in\r
+//the line below to match the UICulture setting in the project file.\r
+\r
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]\r
+\r
+\r
+[assembly: ThemeInfo(\r
+    ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located\r
+    //(used if a resource is not found in the page, \r
+    // or application resource dictionaries)\r
+    ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located\r
+    //(used if a resource is not found in the page, \r
+    // app, or any theme specific resource dictionaries)\r
+)]\r
+\r
+\r
+// Version information for an assembly consists of the following four values:\r
+//\r
+//      Major Version\r
+//      Minor Version \r
+//      Build Number\r
+//      Revision\r
+//\r
+// You can specify all the values or you can default the Build and Revision Numbers \r
+// by using the '*' as shown below:\r
+// [assembly: AssemblyVersion("1.0.*")]\r
+[assembly: AssemblyVersion("0.9.5.0")]\r
+[assembly: AssemblyFileVersion("0.9.5.0")]\r
diff --git a/win/C#/HandBrakeWPF/Properties/Resources.Designer.cs b/win/C#/HandBrakeWPF/Properties/Resources.Designer.cs
new file mode 100644 (file)
index 0000000..b9eb477
--- /dev/null
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------\r
+// <auto-generated>\r
+//     This code was generated by a tool.\r
+//     Runtime Version:4.0.30319.1\r
+//\r
+//     Changes to this file may cause incorrect behavior and will be lost if\r
+//     the code is regenerated.\r
+// </auto-generated>\r
+//------------------------------------------------------------------------------\r
+\r
+namespace HandBrakeWPF.Properties\r
+{\r
+\r
+\r
+    /// <summary>\r
+    ///   A strongly-typed resource class, for looking up localized strings, etc.\r
+    /// </summary>\r
+    // This class was auto-generated by the StronglyTypedResourceBuilder\r
+    // class via a tool like ResGen or Visual Studio.\r
+    // To add or remove a member, edit your .ResX file then rerun ResGen\r
+    // with the /str option, or rebuild your VS project.\r
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]\r
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\r
+    internal class Resources\r
+    {\r
+\r
+        private static global::System.Resources.ResourceManager resourceMan;\r
+\r
+        private static global::System.Globalization.CultureInfo resourceCulture;\r
+\r
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]\r
+        internal Resources()\r
+        {\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Returns the cached ResourceManager instance used by this class.\r
+        /// </summary>\r
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\r
+        internal static global::System.Resources.ResourceManager ResourceManager\r
+        {\r
+            get\r
+            {\r
+                if ((resourceMan == null))\r
+                {\r
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HandBrakeWPF.Properties.Resources", typeof(Resources).Assembly);\r
+                    resourceMan = temp;\r
+                }\r
+                return resourceMan;\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///   Overrides the current thread's CurrentUICulture property for all\r
+        ///   resource lookups using this strongly typed resource class.\r
+        /// </summary>\r
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\r
+        internal static global::System.Globalization.CultureInfo Culture\r
+        {\r
+            get\r
+            {\r
+                return resourceCulture;\r
+            }\r
+            set\r
+            {\r
+                resourceCulture = value;\r
+            }\r
+        }\r
+    }\r
+}\r
diff --git a/win/C#/HandBrakeWPF/Properties/Resources.resx b/win/C#/HandBrakeWPF/Properties/Resources.resx
new file mode 100644 (file)
index 0000000..ffecec8
--- /dev/null
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<root>\r
+  <!-- \r
+    Microsoft ResX Schema \r
+    \r
+    Version 2.0\r
+    \r
+    The primary goals of this format is to allow a simple XML format \r
+    that is mostly human readable. The generation and parsing of the \r
+    various data types are done through the TypeConverter classes \r
+    associated with the data types.\r
+    \r
+    Example:\r
+    \r
+    ... ado.net/XML headers & schema ...\r
+    <resheader name="resmimetype">text/microsoft-resx</resheader>\r
+    <resheader name="version">2.0</resheader>\r
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>\r
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>\r
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>\r
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>\r
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">\r
+        <value>[base64 mime encoded serialized .NET Framework object]</value>\r
+    </data>\r
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>\r
+        <comment>This is a comment</comment>\r
+    </data>\r
+                \r
+    There are any number of "resheader" rows that contain simple \r
+    name/value pairs.\r
+    \r
+    Each data row contains a name, and value. The row also contains a \r
+    type or mimetype. Type corresponds to a .NET class that support \r
+    text/value conversion through the TypeConverter architecture. \r
+    Classes that don't support this are serialized and stored with the \r
+    mimetype set.\r
+    \r
+    The mimetype is used for serialized objects, and tells the \r
+    ResXResourceReader how to depersist the object. This is currently not \r
+    extensible. For a given mimetype the value must be set accordingly:\r
+    \r
+    Note - application/x-microsoft.net.object.binary.base64 is the format \r
+    that the ResXResourceWriter will generate, however the reader can \r
+    read any of the formats listed below.\r
+    \r
+    mimetype: application/x-microsoft.net.object.binary.base64\r
+    value   : The object must be serialized with \r
+            : System.Serialization.Formatters.Binary.BinaryFormatter\r
+            : and then encoded with base64 encoding.\r
+    \r
+    mimetype: application/x-microsoft.net.object.soap.base64\r
+    value   : The object must be serialized with \r
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter\r
+            : and then encoded with base64 encoding.\r
+\r
+    mimetype: application/x-microsoft.net.object.bytearray.base64\r
+    value   : The object must be serialized into a byte array \r
+            : using a System.ComponentModel.TypeConverter\r
+            : and then encoded with base64 encoding.\r
+    -->\r
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">\r
+    <xsd:element name="root" msdata:IsDataSet="true">\r
+      <xsd:complexType>\r
+        <xsd:choice maxOccurs="unbounded">\r
+          <xsd:element name="metadata">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" type="xsd:string" />\r
+              <xsd:attribute name="type" type="xsd:string" />\r
+              <xsd:attribute name="mimetype" type="xsd:string" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="assembly">\r
+            <xsd:complexType>\r
+              <xsd:attribute name="alias" type="xsd:string" />\r
+              <xsd:attribute name="name" type="xsd:string" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="data">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />\r
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />\r
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />\r
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="resheader">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" type="xsd:string" use="required" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+        </xsd:choice>\r
+      </xsd:complexType>\r
+    </xsd:element>\r
+  </xsd:schema>\r
+  <resheader name="resmimetype">\r
+    <value>text/microsoft-resx</value>\r
+  </resheader>\r
+  <resheader name="version">\r
+    <value>2.0</value>\r
+  </resheader>\r
+  <resheader name="reader">\r
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
+  </resheader>\r
+  <resheader name="writer">\r
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
+  </resheader>\r
+</root>
\ No newline at end of file
diff --git a/win/C#/HandBrakeWPF/Properties/Settings.Designer.cs b/win/C#/HandBrakeWPF/Properties/Settings.Designer.cs
new file mode 100644 (file)
index 0000000..ae1b865
--- /dev/null
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------\r
+// <auto-generated>\r
+//     This code was generated by a tool.\r
+//     Runtime Version:4.0.30319.1\r
+//\r
+//     Changes to this file may cause incorrect behavior and will be lost if\r
+//     the code is regenerated.\r
+// </auto-generated>\r
+//------------------------------------------------------------------------------\r
+\r
+namespace HandBrakeWPF.Properties\r
+{\r
+\r
+\r
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\r
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]\r
+    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase\r
+    {\r
+\r
+        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));\r
+\r
+        public static Settings Default\r
+        {\r
+            get\r
+            {\r
+                return defaultInstance;\r
+            }\r
+        }\r
+    }\r
+}\r
diff --git a/win/C#/HandBrakeWPF/Properties/Settings.settings b/win/C#/HandBrakeWPF/Properties/Settings.settings
new file mode 100644 (file)
index 0000000..8f2fd95
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='utf-8'?>\r
+<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">\r
+  <Profiles>\r
+    <Profile Name="(Default)" />\r
+  </Profiles>\r
+  <Settings />\r
+</SettingsFile>
\ No newline at end of file
diff --git a/win/C#/HandBrakeWPF/Settings.StyleCop b/win/C#/HandBrakeWPF/Settings.StyleCop
new file mode 100644 (file)
index 0000000..7f55ce6
--- /dev/null
@@ -0,0 +1 @@
+<StyleCopSettings Version="4.3" />
\ No newline at end of file
diff --git a/win/C#/HandBrakeWPF/ViewModels/MainViewModel.cs b/win/C#/HandBrakeWPF/ViewModels/MainViewModel.cs
new file mode 100644 (file)
index 0000000..8008064
--- /dev/null
@@ -0,0 +1,48 @@
+/*  MainViewModel.cs $\r
+    This file is part of the HandBrake source code.\r
+    Homepage: <http://handbrake.fr>.\r
+    It may be used under the terms of the GNU General Public License. */\r
+\r
+namespace HandBrakeWPF.ViewModels\r
+{\r
+    using Caliburn.Core;\r
+\r
+    /// <summary>\r
+    /// HandBrakes Main Window\r
+    /// </summary>\r
+    public class MainViewModel : PropertyChangedBase\r
+    {\r
+        /// <summary>\r
+        /// HandBrakes Main Window Title\r
+        /// </summary>\r
+        private string windowName;\r
+\r
+        /// <summary>\r
+        /// Initializes a new instance of the <see cref="MainViewModel"/> class.\r
+        /// </summary>\r
+        public MainViewModel()\r
+        {\r
+            this.WindowTitle = "HandBrake WPF Test Application";\r
+        }\r
+\r
+        /// <summary>\r
+        /// Gets or sets TestProperty.\r
+        /// </summary>\r
+        public string WindowTitle\r
+        {\r
+            get\r
+            {\r
+                return this.windowName;\r
+            }\r
+\r
+            set\r
+            {\r
+                if (!object.Equals(this.windowName, value))\r
+                {\r
+                    this.windowName = value;\r
+                    this.NotifyOfPropertyChange("TestProperty");\r
+                }\r
+            }\r
+        }\r
+    }\r
+}\r
diff --git a/win/C#/HandBrakeWPF/Views/MainView.xaml b/win/C#/HandBrakeWPF/Views/MainView.xaml
new file mode 100644 (file)
index 0000000..438192e
--- /dev/null
@@ -0,0 +1,8 @@
+<Window x:Class="HandBrakeWPF.Views.MainView"\r
+        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"\r
+        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"\r
+        Title="{Binding Path=WindowTitle}" Height="300" Width="300">\r
+    <Grid>\r
+        <TextBlock Text="{Binding Path=WindowTitle}" /> \r
+    </Grid>\r
+</Window>\r
diff --git a/win/C#/HandBrakeWPF/Views/MainView.xaml.cs b/win/C#/HandBrakeWPF/Views/MainView.xaml.cs
new file mode 100644 (file)
index 0000000..efb3e7d
--- /dev/null
@@ -0,0 +1,23 @@
+/*  MainView.xaml.cs $\r
+    This file is part of the HandBrake source code.\r
+    Homepage: <http://handbrake.fr>.\r
+    It may be used under the terms of the GNU General Public License. */\r
+\r
+namespace HandBrakeWPF.Views\r
+{\r
+    using System.Windows;\r
+\r
+    /// <summary>\r
+    /// Interaction logic for MainView.xaml\r
+    /// </summary>\r
+    public partial class MainView : Window\r
+    {\r
+        /// <summary>\r
+        /// Initializes a new instance of the <see cref="MainView"/> class.\r
+        /// </summary>\r
+        public MainView()\r
+        {\r
+            InitializeComponent();\r
+        }\r
+    }\r
+}\r