OSDN Git Service

Initial commit of the WPF version
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Mon, 4 Apr 2016 10:33:14 +0000 (19:33 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Wed, 21 Sep 2016 11:43:23 +0000 (20:43 +0900)
35 files changed:
.gitignore
BurageSnap.sln
BurageSnap/App.xaml [new file with mode: 0644]
BurageSnap/App.xaml.cs [new file with mode: 0644]
BurageSnap/BurageSnap.csproj
BurageSnap/Config.cs
BurageSnap/ConfirmDialog.Designer.cs [deleted file]
BurageSnap/ConfirmDialog.ja.resx [deleted file]
BurageSnap/ConfirmDialog.resx [deleted file]
BurageSnap/ConfirmView.xaml [new file with mode: 0644]
BurageSnap/ConfirmView.xaml.cs [new file with mode: 0644]
BurageSnap/ConfirmViewModel.cs [new file with mode: 0644]
BurageSnap/FormMain.Designer.cs [deleted file]
BurageSnap/FormMain.cs [deleted file]
BurageSnap/FormMain.ja.resx [deleted file]
BurageSnap/FormMain.resx [deleted file]
BurageSnap/Main.cs [new file with mode: 0644]
BurageSnap/MainWindow.xaml [new file with mode: 0644]
BurageSnap/MainWindow.xaml.cs [new file with mode: 0644]
BurageSnap/MainWindowViewModel.cs [new file with mode: 0644]
BurageSnap/MetroPopupWindowAction.cs [moved from BurageSnap/ConfirmDialog.cs with 59% similarity]
BurageSnap/OctreeQuantizer.cs [deleted file]
BurageSnap/OptionDialog.Designer.cs [deleted file]
BurageSnap/OptionDialog.cs [deleted file]
BurageSnap/OptionDialog.ja.resx [deleted file]
BurageSnap/OptionDialog.resx [deleted file]
BurageSnap/Program.cs [deleted file]
BurageSnap/Properties/AssemblyInfo.cs
BurageSnap/Properties/Resources.Designer.cs
BurageSnap/Properties/Resources.ja.resx
BurageSnap/Properties/Resources.resx
BurageSnap/Properties/Settings.Designer.cs
BurageSnap/Properties/Settings.settings
BurageSnap/app_16.ico [new file with mode: 0644]
BurageSnap/packages.config [new file with mode: 0644]

index 1aa28bc..aee8e2c 100644 (file)
@@ -2,3 +2,5 @@
 *.user
 bin/
 obj/
+packages/
+*.sdf
index 1108eb1..8847e54 100644 (file)
@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio 14
 VisualStudioVersion = 14.0.23107.0
 MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BurageSnap", "BurageSnap\BurageSnap.csproj", "{78D1E361-7242-4EDB-A69E-D477C396A68D}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BurageSnap", "BurageSnap\BurageSnap.csproj", "{16E7C5B7-745E-43B8-8C06-A79D76E52E08}"
 EndProject
 Global
        GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -11,10 +11,10 @@ Global
                Release|Any CPU = Release|Any CPU
        EndGlobalSection
        GlobalSection(ProjectConfigurationPlatforms) = postSolution
-               {78D1E361-7242-4EDB-A69E-D477C396A68D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-               {78D1E361-7242-4EDB-A69E-D477C396A68D}.Debug|Any CPU.Build.0 = Debug|Any CPU
-               {78D1E361-7242-4EDB-A69E-D477C396A68D}.Release|Any CPU.ActiveCfg = Release|Any CPU
-               {78D1E361-7242-4EDB-A69E-D477C396A68D}.Release|Any CPU.Build.0 = Release|Any CPU
+               {16E7C5B7-745E-43B8-8C06-A79D76E52E08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {16E7C5B7-745E-43B8-8C06-A79D76E52E08}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {16E7C5B7-745E-43B8-8C06-A79D76E52E08}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {16E7C5B7-745E-43B8-8C06-A79D76E52E08}.Release|Any CPU.Build.0 = Release|Any CPU
        EndGlobalSection
        GlobalSection(SolutionProperties) = preSolution
                HideSolutionNode = FALSE
diff --git a/BurageSnap/App.xaml b/BurageSnap/App.xaml
new file mode 100644 (file)
index 0000000..14a0e27
--- /dev/null
@@ -0,0 +1,46 @@
+<Application x:Class="BurageSnap.App"
+             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+             xmlns:local="clr-namespace:BurageSnap"
+             xmlns:system="clr-namespace:System;assembly=mscorlib"
+             xmlns:controls="http://metro.mahapps.com/winfx/xaml/controls"
+             StartupUri="MainWindow.xaml">
+    <Application.Resources>
+        <ResourceDictionary>
+            <ResourceDictionary.MergedDictionaries>
+                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
+                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Themes/MetroWindow.xaml" />
+                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
+                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Steel.xaml" />
+                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
+                <ResourceDictionary>
+                    <Style x:Key="WindowButtonStyle" TargetType="Button" BasedOn="{StaticResource MetroBaseWindowButtonStyle}">
+                        <Setter Property="Width" Value="26"/>
+                    </Style>
+                    <DataTemplate x:Key="WindowIconTemplate">
+                        <Grid Width="16" Height="16" Margin="4 0 0 0">
+                            <Image Source="app_16.ico"/>
+                        </Grid>
+                    </DataTemplate>
+                    <Style x:Key="WindowStyle" TargetType="controls:MetroWindow">
+                        <Setter Property="WindowTransitionsEnabled" Value="False"/>
+                        <Setter Property="BorderThickness" Value="1"/>
+                        <Setter Property="BorderBrush" Value="{DynamicResource AccentColorBrush}"/>
+                        <Setter Property="TitlebarHeight" Value="24"/>
+                        <Setter Property="FontFamily" Value="Meiryo UI, Segoe UI"/>
+                        <Setter Property="WindowMinButtonStyle" Value="{StaticResource WindowButtonStyle}"/>
+                        <Setter Property="WindowCloseButtonStyle" Value="{StaticResource WindowButtonStyle}"/>
+                        <Setter Property="IconTemplate" Value="{StaticResource WindowIconTemplate}"/>
+                        <Setter Property="TitleCaps" Value="False"/>
+                    </Style>
+                    <Style x:Key="ButtonStyle" TargetType="Button" BasedOn="{StaticResource MetroButton}">
+                        <Setter Property="controls:ButtonHelper.PreserveTextCase" Value="True"/>
+                        <Setter Property="FontWeight" Value="Normal"/>
+                    </Style>
+                    <system:Double x:Key="WindowTitleFontSize">14</system:Double>
+                    <Brush x:Key="ButtonMouseOverBorderBrush">DarkGray</Brush>
+                </ResourceDictionary>
+            </ResourceDictionary.MergedDictionaries>
+        </ResourceDictionary>
+    </Application.Resources>
+</Application>
diff --git a/BurageSnap/App.xaml.cs b/BurageSnap/App.xaml.cs
new file mode 100644 (file)
index 0000000..e43cb63
--- /dev/null
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Data;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows;
+
+namespace BurageSnap
+{
+    /// <summary>
+    /// App.xaml の相互作用ロジック
+    /// </summary>
+    public partial class App : Application
+    {
+    }
+}
index d993dfd..d6dd562 100644 (file)
@@ -4,13 +4,15 @@
   <PropertyGroup>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{78D1E361-7242-4EDB-A69E-D477C396A68D}</ProjectGuid>
+    <ProjectGuid>{16E7C5B7-745E-43B8-8C06-A79D76E52E08}</ProjectGuid>
     <OutputType>WinExe</OutputType>
     <AppDesignerFolder>Properties</AppDesignerFolder>
     <RootNamespace>BurageSnap</RootNamespace>
     <AssemblyName>BurageSnap</AssemblyName>
     <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <WarningLevel>4</WarningLevel>
     <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <ApplicationIcon>app.ico</ApplicationIcon>
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="MahApps.Metro, Version=1.2.4.0, Culture=neutral, PublicKeyToken=f4fb5a3c4d1e5b4f, processorArchitecture=MSIL">
+      <HintPath>..\packages\MahApps.Metro.1.2.4.0\lib\net45\MahApps.Metro.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="Microsoft.Practices.ServiceLocation, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\CommonServiceLocator.1.3\lib\portable-net4+sl5+netcore45+wpa81+wp8\Microsoft.Practices.ServiceLocation.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="Prism, Version=6.1.0.0, Culture=neutral, PublicKeyToken=91a96d2a154366d8, processorArchitecture=MSIL">
+      <HintPath>..\packages\Prism.Core.6.1.0\lib\net45\Prism.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="Prism.Wpf, Version=6.1.0.0, Culture=neutral, PublicKeyToken=91a96d2a154366d8, processorArchitecture=MSIL">
+      <HintPath>..\packages\Prism.Wpf.6.1.0\lib\net45\Prism.Wpf.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
     <Reference Include="System" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\MahApps.Metro.1.2.4.0\lib\net45\System.Windows.Interactivity.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Xml" />
+    <Reference Include="Microsoft.CSharp" />
     <Reference Include="System.Core" />
     <Reference Include="System.Xml.Linq" />
     <Reference Include="System.Data.DataSetExtensions" />
-    <Reference Include="Microsoft.CSharp" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Deployment" />
-    <Reference Include="System.Drawing" />
     <Reference Include="System.Net.Http" />
-    <Reference Include="System.Windows.Forms" />
-    <Reference Include="System.Xml" />
+    <Reference Include="System.Xaml">
+      <RequiredTargetFramework>4.0</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="WindowsBase" />
+    <Reference Include="PresentationCore" />
+    <Reference Include="PresentationFramework" />
   </ItemGroup>
   <ItemGroup>
+    <ApplicationDefinition Include="App.xaml">
+      <Generator>MSBuild:Compile</Generator>
+      <SubType>Designer</SubType>
+    </ApplicationDefinition>
     <Compile Include="AnimationGifEncoder.cs" />
     <Compile Include="Capture.cs" />
-    <Compile Include="ConfirmDialog.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="ConfirmDialog.Designer.cs">
-      <DependentUpon>ConfirmDialog.cs</DependentUpon>
+    <Compile Include="ConfirmView.xaml.cs">
+      <DependentUpon>ConfirmView.xaml</DependentUpon>
     </Compile>
+    <Compile Include="ConfirmViewModel.cs" />
+    <Compile Include="MetroPopupWindowAction.cs" />
     <Compile Include="NeuQuant.cs" />
-    <Compile Include="OctreeQuantizer.cs" />
     <Compile Include="Recorder.cs" />
-    <Compile Include="Config.cs" />
-    <Compile Include="OptionDialog.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="OptionDialog.Designer.cs">
-      <DependentUpon>OptionDialog.cs</DependentUpon>
-    </Compile>
-    <Compile Include="FormMain.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="FormMain.Designer.cs">
-      <DependentUpon>FormMain.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Program.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <EmbeddedResource Include="ConfirmDialog.ja.resx">
-      <DependentUpon>ConfirmDialog.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="ConfirmDialog.resx">
-      <DependentUpon>ConfirmDialog.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="FormMain.ja.resx">
-      <DependentUpon>FormMain.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="FormMain.resx">
-      <DependentUpon>FormMain.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="OptionDialog.ja.resx">
-      <DependentUpon>OptionDialog.cs</DependentUpon>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="OptionDialog.resx">
-      <DependentUpon>OptionDialog.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="Properties\Resources.resx">
-      <Generator>ResXFileCodeGenerator</Generator>
-      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
     <Compile Include="Properties\Resources.Designer.cs">
-      <AutoGen>True</AutoGen>
       <DependentUpon>Resources.resx</DependentUpon>
+      <AutoGen>True</AutoGen>
       <DesignTime>True</DesignTime>
     </Compile>
-    <EmbeddedResource Include="Properties\Resources.ja.resx">
+    <Page Include="ConfirmView.xaml">
       <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <None Include="Properties\Settings.settings">
-      <Generator>SettingsSingleFileGenerator</Generator>
-      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
-    </None>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+    <Page Include="MainWindow.xaml">
+      <Generator>MSBuild:Compile</Generator>
+      <SubType>Designer</SubType>
+    </Page>
+    <Compile Include="App.xaml.cs">
+      <DependentUpon>App.xaml</DependentUpon>
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Main.cs" />
+    <Compile Include="Config.cs" />
+    <Compile Include="MainWindow.xaml.cs">
+      <DependentUpon>MainWindow.xaml</DependentUpon>
+      <SubType>Code</SubType>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="MainWindowViewModel.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs">
+      <SubType>Code</SubType>
+    </Compile>
     <Compile Include="Properties\Settings.Designer.cs">
       <AutoGen>True</AutoGen>
       <DependentUpon>Settings.settings</DependentUpon>
       <DesignTimeSharedInput>True</DesignTimeSharedInput>
     </Compile>
+    <None Include="packages.config" />
+    <None Include="Properties\Settings.settings">
+      <Generator>SettingsSingleFileGenerator</Generator>
+      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+    </None>
+    <AppDesigner Include="Properties\" />
   </ItemGroup>
   <ItemGroup>
     <None Include="App.config" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="folder_open.ico" />
+    <Resource Include="app.ico" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="cogs.ico" />
+    <Resource Include="cogs.ico" />
+    <Resource Include="folder_open.ico" />
+    <Resource Include="folder_open_16.ico" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="folder_open_16.ico" />
+    <Resource Include="app_16.ico" />
   </ItemGroup>
   <ItemGroup>
-    <Content Include="app.ico" />
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>PublicResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Properties\Resources.ja.resx">
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
index b1d1c38..74fc985 100644 (file)
@@ -13,8 +13,8 @@
 // limitations under the License.
 
 using System;
-using System.Drawing;
 using System.IO;
+using System.Windows;
 using System.Xml.Serialization;
 
 namespace BurageSnap
@@ -27,8 +27,9 @@ namespace BurageSnap
 
     public class Config
     {
+
         private static readonly string BaseDir = AppDomain.CurrentDomain.BaseDirectory;
-        public Point Location { get; set; }
+        public Point Location { get; set; } = new Point(double.MinValue, double.MinValue);
         public bool TopMost { get; set; }
         public int Interval { get; set; } = 200;
         public int RingBuffer { get; set; } = 25;
diff --git a/BurageSnap/ConfirmDialog.Designer.cs b/BurageSnap/ConfirmDialog.Designer.cs
deleted file mode 100644 (file)
index 2fe5084..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-// Copyright (C) 2015 Kazuhiro Fujieda <fujieda@users.osdn.me>
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//    http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-namespace BurageSnap
-{
-    partial class ConfirmDialog
-    {
-        /// <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 Windows Form 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()
-        {
-            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ConfirmDialog));
-            this.label1 = new System.Windows.Forms.Label();
-            this.buttonYes = new System.Windows.Forms.Button();
-            this.buttonNo = new System.Windows.Forms.Button();
-            this.SuspendLayout();
-            // 
-            // label1
-            // 
-            resources.ApplyResources(this.label1, "label1");
-            this.label1.Name = "label1";
-            // 
-            // buttonYes
-            // 
-            this.buttonYes.DialogResult = System.Windows.Forms.DialogResult.Yes;
-            resources.ApplyResources(this.buttonYes, "buttonYes");
-            this.buttonYes.Name = "buttonYes";
-            this.buttonYes.UseVisualStyleBackColor = true;
-            // 
-            // buttonNo
-            // 
-            this.buttonNo.DialogResult = System.Windows.Forms.DialogResult.No;
-            resources.ApplyResources(this.buttonNo, "buttonNo");
-            this.buttonNo.Name = "buttonNo";
-            this.buttonNo.UseVisualStyleBackColor = true;
-            // 
-            // ConfirmDialog
-            // 
-            this.AcceptButton = this.buttonYes;
-            resources.ApplyResources(this, "$this");
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.CancelButton = this.buttonNo;
-            this.Controls.Add(this.buttonNo);
-            this.Controls.Add(this.buttonYes);
-            this.Controls.Add(this.label1);
-            this.MaximizeBox = false;
-            this.MinimizeBox = false;
-            this.Name = "ConfirmDialog";
-            this.ShowIcon = false;
-            this.ShowInTaskbar = false;
-            this.ResumeLayout(false);
-            this.PerformLayout();
-
-        }
-
-        #endregion
-
-        private System.Windows.Forms.Label label1;
-        private System.Windows.Forms.Button buttonYes;
-        private System.Windows.Forms.Button buttonNo;
-    }
-}
\ No newline at end of file
diff --git a/BurageSnap/ConfirmDialog.ja.resx b/BurageSnap/ConfirmDialog.ja.resx
deleted file mode 100644 (file)
index 69c3592..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-  <data name="label1.Location" type="System.Drawing.Point, System.Drawing">
-    <value>13, 9</value>
-  </data>
-  <data name="label1.Size" type="System.Drawing.Size, System.Drawing">
-    <value>112, 12</value>
-  </data>
-  <data name="label1.Text" xml:space="preserve">
-    <value>画像を出力しますか?</value>
-  </data>
-  <data name="buttonYes.Text" xml:space="preserve">
-    <value>はい</value>
-  </data>
-  <data name="buttonNo.Text" xml:space="preserve">
-    <value>いいえ</value>
-  </data>
-  <data name="$this.Text" xml:space="preserve">
-    <value>確認</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/BurageSnap/ConfirmDialog.resx b/BurageSnap/ConfirmDialog.resx
deleted file mode 100644 (file)
index 77b6633..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="label1.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-  <data name="label1.Location" type="System.Drawing.Point, System.Drawing">
-    <value>16, 9</value>
-  </data>
-  <data name="label1.Size" type="System.Drawing.Size, System.Drawing">
-    <value>104, 12</value>
-  </data>
-  <data name="label1.TabIndex" type="System.Int32, mscorlib">
-    <value>0</value>
-  </data>
-  <data name="label1.Text" xml:space="preserve">
-    <value>Output the images?</value>
-  </data>
-  <data name="&gt;&gt;label1.Name" xml:space="preserve">
-    <value>label1</value>
-  </data>
-  <data name="&gt;&gt;label1.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label1.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
-    <value>2</value>
-  </data>
-  <data name="buttonYes.Location" type="System.Drawing.Point, System.Drawing">
-    <value>6, 30</value>
-  </data>
-  <data name="buttonYes.Size" type="System.Drawing.Size, System.Drawing">
-    <value>57, 38</value>
-  </data>
-  <data name="buttonYes.TabIndex" type="System.Int32, mscorlib">
-    <value>1</value>
-  </data>
-  <data name="buttonYes.Text" xml:space="preserve">
-    <value>Yes</value>
-  </data>
-  <data name="&gt;&gt;buttonYes.Name" xml:space="preserve">
-    <value>buttonYes</value>
-  </data>
-  <data name="&gt;&gt;buttonYes.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;buttonYes.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;buttonYes.ZOrder" xml:space="preserve">
-    <value>1</value>
-  </data>
-  <data name="buttonNo.Location" type="System.Drawing.Point, System.Drawing">
-    <value>69, 30</value>
-  </data>
-  <data name="buttonNo.Size" type="System.Drawing.Size, System.Drawing">
-    <value>59, 38</value>
-  </data>
-  <data name="buttonNo.TabIndex" type="System.Int32, mscorlib">
-    <value>2</value>
-  </data>
-  <data name="buttonNo.Text" xml:space="preserve">
-    <value>No</value>
-  </data>
-  <data name="&gt;&gt;buttonNo.Name" xml:space="preserve">
-    <value>buttonNo</value>
-  </data>
-  <data name="&gt;&gt;buttonNo.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;buttonNo.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;buttonNo.ZOrder" xml:space="preserve">
-    <value>0</value>
-  </data>
-  <metadata name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>ja</value>
-  </metadata>
-  <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
-    <value>6, 12</value>
-  </data>
-  <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
-    <value>134, 74</value>
-  </data>
-  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
-    <value>CenterParent</value>
-  </data>
-  <data name="$this.Text" xml:space="preserve">
-    <value>Confirmation</value>
-  </data>
-  <data name="&gt;&gt;$this.Name" xml:space="preserve">
-    <value>ConfirmDialog</value>
-  </data>
-  <data name="&gt;&gt;$this.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/BurageSnap/ConfirmView.xaml b/BurageSnap/ConfirmView.xaml
new file mode 100644 (file)
index 0000000..87f2fb1
--- /dev/null
@@ -0,0 +1,24 @@
+<UserControl x:Class="BurageSnap.ConfirmView"
+        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+        xmlns:controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
+        xmlns:local="clr-namespace:BurageSnap"
+        xmlns:properties="clr-namespace:BurageSnap.Properties"
+        mc:Ignorable="d"
+        FocusManager.FocusedElement="{Binding ElementName=buttonNo}">
+    <UserControl.DataContext>
+        <local:ConfirmViewModel/>
+    </UserControl.DataContext>
+    <UserControl.Resources>
+        <ResourceDictionary>
+            <Style TargetType="Button" BasedOn="{StaticResource ButtonStyle}"/>
+        </ResourceDictionary>
+    </UserControl.Resources>
+    <Grid Height="75" Width="137" Margin="0,0,0,0" VerticalAlignment="Bottom">
+        <Button x:Name="buttonYes" Content="{x:Static properties:Resources.ConfirmView_Yes}" HorizontalAlignment="Left" Margin="8,29,0,0" VerticalAlignment="Top" Width="57" Height="38" Command="{Binding YesCommand}"/>
+        <Button x:Name="buttonNo" Content="{x:Static properties:Resources.ConfirmView_No}" HorizontalAlignment="Left" Margin="72,29,0,0" VerticalAlignment="Top" Width="57" Height="38"  Command="{Binding NoCommand}"/>
+        <Label x:Name="labelMessage" Content="{x:Static properties:Resources.ConfirmView_Message}" HorizontalAlignment="Center" Margin="5,0" VerticalAlignment="Top"/>
+    </Grid>
+</UserControl>
diff --git a/BurageSnap/ConfirmView.xaml.cs b/BurageSnap/ConfirmView.xaml.cs
new file mode 100644 (file)
index 0000000..32b86a0
--- /dev/null
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Shapes;
+using MahApps.Metro.Controls;
+
+namespace BurageSnap
+{
+    /// <summary>
+    /// ConfirmWindow.xaml の相互作用ロジック
+    /// </summary>
+    public partial class ConfirmView : UserControl
+    {
+        public ConfirmView()
+        {
+            InitializeComponent();
+        }
+    }
+}
diff --git a/BurageSnap/ConfirmViewModel.cs b/BurageSnap/ConfirmViewModel.cs
new file mode 100644 (file)
index 0000000..e462631
--- /dev/null
@@ -0,0 +1,49 @@
+// Copyright (C) 2016 Kazuhiro Fujieda <fujieda@users.osdn.me>
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//    http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+using System;
+using System.Windows.Input;
+using Prism.Commands;
+using Prism.Interactivity.InteractionRequest;
+using Prism.Mvvm;
+
+namespace BurageSnap
+{
+    public class ConfirmViewModel : BindableBase, IInteractionRequestAware
+    {
+        public INotification Notification { get; set; }
+        public Action FinishInteraction { get; set; }
+
+        public ICommand YesCommand { get; private set; }
+        public ICommand NoCommand { get; private set; }
+
+        public ConfirmViewModel()
+        {
+            YesCommand = new DelegateCommand(YesInteraction);
+            NoCommand = new DelegateCommand(NoInteraction);
+        }
+
+        public void YesInteraction()
+        {
+            ((IConfirmation)Notification).Confirmed = true;
+            FinishInteraction();
+        }
+
+        public void NoInteraction()
+        {
+            ((IConfirmation)Notification).Confirmed = false;
+            FinishInteraction();
+        }
+    }
+}
\ No newline at end of file
diff --git a/BurageSnap/FormMain.Designer.cs b/BurageSnap/FormMain.Designer.cs
deleted file mode 100644 (file)
index f4a0ea2..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-// Copyright (C) 2015 Kazuhiro Fujieda <fujieda@users.osdn.me>
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//    http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-using System.ComponentModel;
-using System.Windows.Forms;
-
-namespace BurageSnap
-{
-    partial class FormMain
-    {
-        /// <summary>
-        /// 必要なデザイナー変数です。
-        /// </summary>
-        private IContainer components = null;
-
-        /// <summary>
-        /// 使用中のリソースをすべてクリーンアップします。
-        /// </summary>
-        /// <param name="disposing">マネージ リソースを破棄する場合は true を指定し、その他の場合は false を指定します。</param>
-        protected override void Dispose(bool disposing)
-        {
-            if (disposing && (components != null))
-            {
-                components.Dispose();
-            }
-            base.Dispose(disposing);
-        }
-
-        #region Windows フォーム デザイナーで生成されたコード
-
-        /// <summary>
-        /// デザイナー サポートに必要なメソッドです。このメソッドの内容を
-        /// コード エディターで変更しないでください。
-        /// </summary>
-        private void InitializeComponent()
-        {
-            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormMain));
-            this.buttonCapture = new System.Windows.Forms.Button();
-            this.buttonOption = new System.Windows.Forms.Button();
-            this.buttonBrowse = new System.Windows.Forms.Button();
-            this.labelTimeStamp = new System.Windows.Forms.Label();
-            this.checkBoxContinuous = new System.Windows.Forms.CheckBox();
-            this.label1 = new System.Windows.Forms.Label();
-            this.SuspendLayout();
-            // 
-            // buttonCapture
-            // 
-            resources.ApplyResources(this.buttonCapture, "buttonCapture");
-            this.buttonCapture.Name = "buttonCapture";
-            this.buttonCapture.UseVisualStyleBackColor = true;
-            this.buttonCapture.Click += new System.EventHandler(this.buttonCapture_Click);
-            // 
-            // buttonOption
-            // 
-            resources.ApplyResources(this.buttonOption, "buttonOption");
-            this.buttonOption.Name = "buttonOption";
-            this.buttonOption.UseVisualStyleBackColor = true;
-            this.buttonOption.Click += new System.EventHandler(this.buttonOption_Click);
-            // 
-            // buttonBrowse
-            // 
-            resources.ApplyResources(this.buttonBrowse, "buttonBrowse");
-            this.buttonBrowse.Name = "buttonBrowse";
-            this.buttonBrowse.UseVisualStyleBackColor = true;
-            this.buttonBrowse.Click += new System.EventHandler(this.buttonBrowse_Click);
-            // 
-            // labelTimeStamp
-            // 
-            resources.ApplyResources(this.labelTimeStamp, "labelTimeStamp");
-            this.labelTimeStamp.Name = "labelTimeStamp";
-            // 
-            // checkBoxContinuous
-            // 
-            resources.ApplyResources(this.checkBoxContinuous, "checkBoxContinuous");
-            this.checkBoxContinuous.Name = "checkBoxContinuous";
-            this.checkBoxContinuous.UseVisualStyleBackColor = true;
-            this.checkBoxContinuous.CheckedChanged += new System.EventHandler(this.checkBoxContinuous_CheckedChanged);
-            // 
-            // label1
-            // 
-            resources.ApplyResources(this.label1, "label1");
-            this.label1.Name = "label1";
-            // 
-            // FormMain
-            // 
-            resources.ApplyResources(this, "$this");
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.Controls.Add(this.label1);
-            this.Controls.Add(this.checkBoxContinuous);
-            this.Controls.Add(this.labelTimeStamp);
-            this.Controls.Add(this.buttonBrowse);
-            this.Controls.Add(this.buttonOption);
-            this.Controls.Add(this.buttonCapture);
-            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
-            this.MaximizeBox = false;
-            this.Name = "FormMain";
-            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormMain_FormClosing);
-            this.Load += new System.EventHandler(this.FormMain_Load);
-            this.ResumeLayout(false);
-            this.PerformLayout();
-
-        }
-
-        #endregion
-
-        private Button buttonCapture;
-        private Button buttonOption;
-        private Button buttonBrowse;
-        private Label labelTimeStamp;
-        private CheckBox checkBoxContinuous;
-        private Label label1;
-    }
-}
-
diff --git a/BurageSnap/FormMain.cs b/BurageSnap/FormMain.cs
deleted file mode 100644 (file)
index 8c643dc..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-// Copyright (C) 2015 Kazuhiro Fujieda <fujieda@users.osdn.me>
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//    http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-using System;
-using System.Diagnostics;
-using System.Drawing;
-using System.IO;
-using System.Linq;
-using System.Windows.Forms;
-using BurageSnap.Properties;
-
-namespace BurageSnap
-{
-    public partial class FormMain : Form
-    {
-        private readonly Config _config;
-        private readonly OptionDialog _optionDialog;
-        private readonly ConfirmDialog _confirmDialog = new ConfirmDialog();
-        private readonly Recorder _recorder;
-        private bool _captureing;
-
-        public FormMain()
-        {
-            InitializeComponent();
-            _config = Config.Load();
-            _optionDialog = new OptionDialog(_config);
-            _recorder = new Recorder(_config) {ReportCaptureResult = ReportCaptureResult};
-        }
-
-        private void ReportCaptureResult(object obj)
-        {
-            BeginInvoke(new Action(() =>
-            {
-                if (obj is DateTime)
-                {
-                    var time = (DateTime)obj;
-                    labelTimeStamp.Text = time.ToString("HH:mm:ss.fff");
-                    if (time == DateTime.MinValue && _captureing)
-                        AbortRecording();
-                }
-                // ReSharper disable once CanBeReplacedWithTryCastAndCheckForNull
-                else if (obj is string)
-                {
-                    labelTimeStamp.Text = (string)obj;
-                    if (_captureing)
-                        AbortRecording();
-                }
-            }));
-        }
-
-        private void FormMain_Load(object sender, EventArgs e)
-        {
-            TopMost = _config.TopMost;
-            checkBoxContinuous.Checked = _config.Continuous;
-            if (_config.Location.IsEmpty)
-                return;
-            var newb = Bounds;
-            newb.Location = _config.Location;
-            if (IsVisibleOnAnyScreen(newb))
-                Location = _config.Location;
-        }
-
-        private void FormMain_FormClosing(object sender, FormClosingEventArgs e)
-        {
-            _config.Continuous = checkBoxContinuous.Checked;
-            _config.Location = Location;
-            _config.Save();
-        }
-
-        public static bool IsVisibleOnAnyScreen(Rectangle rect)
-        {
-            return Screen.AllScreens.Any(screen => screen.WorkingArea.IntersectsWith(rect));
-        }
-
-        private void buttonOption_Click(object sender, EventArgs e)
-        {
-            if (_optionDialog.ShowDialog(this) != DialogResult.OK)
-                return;
-            TopMost = _config.TopMost;
-        }
-
-        private void buttonCapture_Click(object sender, EventArgs e)
-        {
-            if (!checkBoxContinuous.Checked)
-            {
-                _recorder.OneShot();
-                return;
-            }
-            if (!_captureing)
-            {
-                buttonCapture.Text = Resources.FormMain_buttonCapture_Click_Stop;
-                checkBoxContinuous.Enabled = false;
-                buttonOption.Enabled = false;
-                _recorder.Start();
-                _captureing = true;
-            }
-            else
-            {
-                _recorder.Stop();
-                if (_config.RingBuffer > 0)
-                {
-                   if (_confirmDialog.ShowDialog(this) == DialogResult.Yes)
-                        _recorder.SaveBuffer();
-                   else
-                        _recorder.DiscardBuffer();
-                }
-                AbortRecording();
-            }
-        }
-
-        private void AbortRecording()
-        {
-            buttonCapture.Text = Resources.FormMain_buttonCapture_Click_Start;
-            checkBoxContinuous.Enabled = true;
-            buttonOption.Enabled = true;
-            _captureing = false;
-        }
-
-        private void checkBoxContinuous_CheckedChanged(object sender, EventArgs e)
-        {
-            buttonCapture.Text = checkBoxContinuous.Checked
-                ? Resources.FormMain_buttonCapture_Click_Start
-                : Resources.FormMain_checkBoxContinuous_CheckedChanged_Capture;
-        }
-
-        private void buttonBrowse_Click(object sender, EventArgs e)
-        {
-            var dir = _config.Folder;
-            if (_config.DailyFolder)
-            {
-                var now = DateTime.Now;
-                dir = Path.Combine(_config.Folder, now.ToString(Recorder.DateFormat));
-            }
-            Directory.CreateDirectory(dir);
-            Process.Start(dir);
-        }
-    }
-}
\ No newline at end of file
diff --git a/BurageSnap/FormMain.ja.resx b/BurageSnap/FormMain.ja.resx
deleted file mode 100644 (file)
index 12ef6af..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="buttonCapture.Text" xml:space="preserve">
-    <value>撮影</value>
-  </data>
-  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-  <data name="checkBoxContinuous.Text" xml:space="preserve">
-    <value>連射</value>
-  </data>
-  <data name="label1.Text" xml:space="preserve">
-    <value>撮影時刻:</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/BurageSnap/FormMain.resx b/BurageSnap/FormMain.resx
deleted file mode 100644 (file)
index 760bf85..0000000
+++ /dev/null
@@ -1,606 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-  <data name="buttonCapture.Location" type="System.Drawing.Point, System.Drawing">
-    <value>6, 6</value>
-  </data>
-  <data name="buttonCapture.Size" type="System.Drawing.Size, System.Drawing">
-    <value>74, 50</value>
-  </data>
-  <assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="buttonCapture.TabIndex" type="System.Int32, mscorlib">
-    <value>0</value>
-  </data>
-  <data name="buttonCapture.Text" xml:space="preserve">
-    <value>Capture</value>
-  </data>
-  <data name="&gt;&gt;buttonCapture.Name" xml:space="preserve">
-    <value>buttonCapture</value>
-  </data>
-  <data name="&gt;&gt;buttonCapture.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;buttonCapture.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;buttonCapture.ZOrder" xml:space="preserve">
-    <value>5</value>
-  </data>
-  <data name="buttonOption.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
-        YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAT7SURBVEhLrZUNUNN1GMfJfKuuuvN6A68yz+qyUy8VvcQr
-        X863O08i7dJeqMjMfEsrj8xQkMMJp/hCIIwMQePQQBm4IRPYmIO9MTbGcBsMhoNtCAzmGAhj49uz8b9O
-        Y15mfW7P/X57Xv//5/fyD/onGtvswSpd48c5uXlzGNV/p72jc82yZUun+OZV9S1HSxRmFFXWug8kJIb4
-        dHpr33Z+vXO2b/6vUd0wHi66JsHx1F8VFzlFO0X1rT1S4yAarB7wKqWFakNLQrsHkJh63cEhLz3NhD04
-        mXlXz5bWWCAzOFCld6C6sR8HYuOcZJqguQWorEAXgPgTKT7dg2FyjTxXrrLY/iip3HhFKN8k1NohMTih
-        agcaHSSd3TD3u2H1AgYXYKECPHHVzXJpDctqtR9NOZU+k0kVkEnFIk2zWOdAqawVNaZBKG96obcDzT1A
-        UXk1uMIqL08kQ127HS1uj79AL0mH1wuqiSplXRPlmTiabiyPXeTXNkuMA2igFmioBcY+QNvejYgN6/Of
-        eSHYv5jL133w/PpPor4vU+lcFvcwuimxjYReCF/u3N1KLvct4CePK6ppGgBk1GCBrg1hixelM6Z7yBfV
-        LjqWxxusH7gDcodAobwTunDxPMYckHHFIsmu0qbe2+I7tIgjwOHTWRbSTxo1j2XeyojDJV0DMFGBSqsN
-        7PMFW0g9edT6NwR6W6PM6YGKnGNiD0Hi7MeHX3yVxJgDErUvcS3PRrsrgYXqoSH0U2y+VKZjzPeSwb1u
-        rO7pRRM5yTSaYLnThcitO+MZc0Auqc17rna6IFbIghsozkwSdyY78LaNjj/y5OzQRZvTyq67O8ixkYT1
-        y28axhwQQb2JLaPd5GuRsKcHc5csTya1/5TfF/YVvlRJAbU+6XJiXmiYr69jyL7e8Kquw2bnOYGSYSBd
-        pBhcu2TBs4w5II+UKNQ3fNtOT6ImqSeRmtpxkp19KPfC5b+CCxX6t1osrVZumxdZ5Px7kxf5tK2jE9P5
-        OZcr1AeT0jIY13tZsDL8W2l3L0oNRsiHBiGhAiKSukGgos4wcKn6RhdPqXdKzQ7kUnW2HMiUu5CptIHF
-        ESOlQAiJ1oIf4lNMrJSs988XVequSA3vMun9THx9ftg3NK6Iyy3RlLmBXGrwOZIM6tmP8clI5HUhrYpa
-        IhhGvsSOVGEz8vjVUBpMMNtd/vuJDj7UrZ2eYdrqcq2xMzmHO3U0/V1c0A1pC6lf2fSkKWIgqQy4xJeE
-        sQrakMTpQDKnGRnXbEiv0EJtdY7cpqQGWx+i9sSKE9OzDPTXT3jkDiGlGz+a9S7Ct8VlsopbER4VbZ45
-        e9bpzw/mOE5UAJtZHMwNnV+wKuKjC6u2pnq+3p+mvXnbNeykp53x2hvfMeFBCSdOieykO3SSvY9RjSU4
-        5MXVNPhfL2JTZMy2YwIsXLXJd6H5GT95UhSn8DKflggaRz8+3b7vZ8YUtD3maGwDfS/o530vPOIzRn1/
-        3lm29KmXX5keSdMFoxpK8hNrfi5XDN+T0m2OCpPFFM/mGBLOFJvkXbBIaUEa6KKK3BXDZUL+PbuPnKUe
-        P3qQ6/so3XJDYO4fEZoHILUMYcv+49rHp765e0rItBmM+8MxbebbT6QWq1Co82DHkWywzpUjr6YDoas3
-        Bj4PD8G4dVF7eSsi9/ZNCJk1Z/riDdFrNsdixpyFAW+B/4txzEgEBf0JM4FqPfWy8mUAAAAASUVORK5C
-        YII=
-</value>
-  </data>
-  <data name="buttonOption.Location" type="System.Drawing.Point, System.Drawing">
-    <value>122, 6</value>
-  </data>
-  <data name="buttonOption.Size" type="System.Drawing.Size, System.Drawing">
-    <value>30, 30</value>
-  </data>
-  <data name="buttonOption.TabIndex" type="System.Int32, mscorlib">
-    <value>1</value>
-  </data>
-  <data name="&gt;&gt;buttonOption.Name" xml:space="preserve">
-    <value>buttonOption</value>
-  </data>
-  <data name="&gt;&gt;buttonOption.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;buttonOption.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;buttonOption.ZOrder" xml:space="preserve">
-    <value>4</value>
-  </data>
-  <data name="buttonBrowse.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
-        YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAgSSURBVFhHvZZ5UJT3Gcft3ek5baedzDSd/FNnMs60mUyS
-        aZtJk0xbayaJUTRRkaIRFK9G44HxAAVFQEWsyqEoAgqiIIvch4ugHGsRWO5jYQ8Wlj1Ydhf2Znf59vsC
-        NsmEGsJ08sx8Z9/3/c0+z+f3PL/ned9FT8ypvb/EoS29YxtJPmbVRP2JemZ26esxh7Yk32spg1NbBZv+
-        HlymAtgN6ZN2fXK7beRcrnU4KoYKoV6ifjn7t/+fOUbEgL0CXksJnDoxNL1ZsOp5baqEy1wBl6UCTjPv
-        jbdh16fCNnLePjEU3TQxFJVGRVIfUi9RP511+dVsBqASU/prmHJWw6mvgbwpiTqB8eFLsOtuMHge3BYx
-        vLYm+Bxd8Dp74XFIMTlRS9AiOAxpsGrOghBJs27nb3bNvf8CwFmKKbcU7rEGKJsvQ1odBm3vBTj01+Ec
-        vQWXADJWgElmxDNRB6+jEz6XkhqkFJhQR2HW7fzNPlz5GYBCwP0Q8OngtXZAJU1BKyEULXGwDKXCZciG
-        azQXboK4jPn8LSBQMdxmMQEGMD64AADbUMXnAaYh6oGpSQhrkpK96K6PnIbQy5J5BpgNgjj1t+A25PCa
-        QKZ78Np7MK46uRCAsi8COIsBeAhQhuqcrZCKD0PWGA11ezy0fYmwqFLhGOHZ0FK6m8xGMQE6+XwBAFZ1
-        6f8A8EJYK7++CZLiPeiui4BCegYjXRcwKkuCWXEZds01OLTpBCjBpFUKi3IBABODJXMAFLEE4xDWStMC
-        8VC0A633j2CAWdB0nIO+7wJMA4ms+SU4NKlwjxYToJlQCwFQcbdzAXh5qrlWlLoe93NC0Fx5ADLJcajb
-        TkPXfQ7G/vOwKBJhH05hhxSyJRthkkd/dYBxJQPOBeDphrBWeHUdqrKD8bhsH3rqjkEtjWEZ4mDsi4dZ
-        fh42dRI7o4it+ZBZWQCARVEwN8BkO3dYgMKUNai6GYTGkt3oqQ3jfIhiGWJh6D0NU/9Z2AbPsyM4H0xi
-        jMkWAGCW538RwFHAgcSacq0g5QOIszbiUdFH6HpwEMrHkdC0nYS+OwZjfbGwquJg12byIJYyKzELABgQ
-        fR7AkY8pWx6mHA8grN29tBqVWRsgKdqOzppQKP4djiFpBHSdJ2DsOY4JRQy7IY3zIA/G3gUAmPrzZgB0
-        qZiyixg8F1MTt+GzlTLFeQRYhcrMADQUbkNH9T7IHx2CuiUc2vZwGLrCMS4/DuvgRTh02RjtWQDAmCwX
-        sFXAp72CKWsOfBM34bPcgG9cxJrmIj95BSqu+6MhfzPaq3ajXxIKVdNhaFoPQt95COP9YcxCFOyckKPd
-        pwSA7854nqcZ+3IYuBS+kUsMmgWfOQPesavwmrJZ0xyIkpajIn0t6vOD0SbeCVn9Higb92O4ZT907Xth
-        6TsAi+wg2zGVJYlHXdG+n9PtN2a8z8NG+24x5YXwaRLhNacxeAo8o5cwaUiCsCZKfAfl6e+j/s5GtFZs
-        R1/tLp6Dj6Fu2gWt9COYe3bD3PsxLPIIds1Fno+TV66cDRAgvkV9OchobzZTLoJ3+AI8xsvwGBIwqTsH
-        53A8BvlKzkt4G2Xpq1GbFwhpxWb0PtgBecNOqBt3QNO8FaaubTB1b4ep558w9+3hLDiHAUlkGF3/gBLK
-        8XQQQ08W050Dz2A8PPoLmNSehVtzii2WhjrRLogS3kJ5mh/q89YTIAg9NSEE2ArVoy3QPN4EY3sQxjqC
-        GPwAfB4zAeLRW3vsPF3/jPox9XQQfXcmvMYseFRnGDyOwWPgGjrBPs/EzdNvEGAZKjNWokHkD2n5RnRX
-        B2GgNgiqhg9haN0AY1sAjK0BzMAeTHkd7Jw4tFaFCV9Gv6Z+RQnl+Ak1N4iu6zrTno5JZQzcw9FwqSPh
-        Uh2F8Dzr9J9ZgqW4d30FJHfXobXsH+iq2oD+hxswKGFg6TqMSj+AgRrr3kkAO0yy0xzbB1Po+rfUc9Rn
-        QYSMfJ/6NjVjus4M1vwKJuUn4BqMgFMVBqfiEAdNBm7G/XUWYDke5a8lgD8B1kNWsx6qurUwtKyGoXkl
-        tQLGzi3TAGOyWNQXhF6j699Rz1NPQITPfeHD9XvUN6kZ07aniq2Kf8EtPwan8jCDfwKHPBTajnRm4A0C
-        LIP4xmo8uhvALghEpzgAvdVroax7fzqwoXk59S4BgmcAOA0f5O3PoOtXqBcpAUSAELIg7P7T4IKNtKe9
-        pu1IhV1+FE75ATgG9k2Lz5F15i+4k/A3VM6WQFo+U4K+mkAo69cx9X7QM7i+6R2+pDYhU6LmLIhG1e29
-        mXT9GvVHSoAQMvBDau5uGGlLDTV0JswG3zstPkP6yRXuOwnrOYqDISncAmllEDrE/uipXgdFHWvfsmIG
-        oIUAjf6IvV1NgCiUZe4SMvAmJQAIZRDq/2nd5zJN29WLJs7yJwC8R/CyZ6MjQv6QkB67Jqc8Y2ejJP+A
-        o7UynG/FTxhwN9O+iVlgGaTvQcdyaJtDMNIci6WvL1lJl0IJFlO/oITT//ShpGm98gyFib4jMwC8Dl72
-        m+ityxfv3bbq9/4hq15eutnvlVdFySF+XVWREcqGmPKhxlM2Xesp6NuPcCaEIi9lW8zfX1+ylO6WUM9S
-        P6KEtpufDUtTAkfa+JnVvx+qx8nO4LeeCw957/mtIX4vvrvZ72VhN8IhemLCjr5Tkxv6ZmPxkX1nj655
-        lfdPWk7o+y/f9VxGiJjRzjN4XHIiO/jtxRsJ8AIfC86+PhtquRzIH+HQCD07/xTO2xYt+g++n2HeZ8zW
-        RQAAAABJRU5ErkJggg==
-</value>
-  </data>
-  <data name="buttonBrowse.Location" type="System.Drawing.Point, System.Drawing">
-    <value>86, 6</value>
-  </data>
-  <data name="buttonBrowse.Size" type="System.Drawing.Size, System.Drawing">
-    <value>30, 30</value>
-  </data>
-  <data name="buttonBrowse.TabIndex" type="System.Int32, mscorlib">
-    <value>17</value>
-  </data>
-  <data name="&gt;&gt;buttonBrowse.Name" xml:space="preserve">
-    <value>buttonBrowse</value>
-  </data>
-  <data name="&gt;&gt;buttonBrowse.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;buttonBrowse.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;buttonBrowse.ZOrder" xml:space="preserve">
-    <value>3</value>
-  </data>
-  <data name="labelTimeStamp.Location" type="System.Drawing.Point, System.Drawing">
-    <value>87, 65</value>
-  </data>
-  <data name="labelTimeStamp.Size" type="System.Drawing.Size, System.Drawing">
-    <value>65, 12</value>
-  </data>
-  <data name="labelTimeStamp.TabIndex" type="System.Int32, mscorlib">
-    <value>18</value>
-  </data>
-  <data name="labelTimeStamp.Text" xml:space="preserve">
-    <value>00:00:00.000</value>
-  </data>
-  <data name="&gt;&gt;labelTimeStamp.Name" xml:space="preserve">
-    <value>labelTimeStamp</value>
-  </data>
-  <data name="&gt;&gt;labelTimeStamp.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;labelTimeStamp.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;labelTimeStamp.ZOrder" xml:space="preserve">
-    <value>2</value>
-  </data>
-  <data name="checkBoxContinuous.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="checkBoxContinuous.Location" type="System.Drawing.Point, System.Drawing">
-    <value>7, 61</value>
-  </data>
-  <data name="checkBoxContinuous.Size" type="System.Drawing.Size, System.Drawing">
-    <value>81, 16</value>
-  </data>
-  <data name="checkBoxContinuous.TabIndex" type="System.Int32, mscorlib">
-    <value>19</value>
-  </data>
-  <data name="checkBoxContinuous.Text" xml:space="preserve">
-    <value>Continuous</value>
-  </data>
-  <data name="&gt;&gt;checkBoxContinuous.Name" xml:space="preserve">
-    <value>checkBoxContinuous</value>
-  </data>
-  <data name="&gt;&gt;checkBoxContinuous.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;checkBoxContinuous.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;checkBoxContinuous.ZOrder" xml:space="preserve">
-    <value>1</value>
-  </data>
-  <data name="label1.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="label1.Location" type="System.Drawing.Point, System.Drawing">
-    <value>87, 51</value>
-  </data>
-  <data name="label1.Size" type="System.Drawing.Size, System.Drawing">
-    <value>57, 12</value>
-  </data>
-  <data name="label1.TabIndex" type="System.Int32, mscorlib">
-    <value>20</value>
-  </data>
-  <data name="label1.Text" xml:space="preserve">
-    <value>Last snap:</value>
-  </data>
-  <data name="&gt;&gt;label1.Name" xml:space="preserve">
-    <value>label1</value>
-  </data>
-  <data name="&gt;&gt;label1.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label1.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
-    <value>0</value>
-  </data>
-  <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
-    <value>6, 12</value>
-  </data>
-  <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
-    <value>158, 82</value>
-  </data>
-  <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        AAABAAMAEBAAAAEAIABoBAAANgAAACAgAAABACAAqBAAAJ4EAAAwMAAAAQAgAKglAABGFQAAKAAAABAA
-        AAAgAAAAAQAgAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOZf/GzyW/yI8lv8iPJb/IjyW
-        /yI8lv8iPJb/IjyW/yI8lv8iPJb/IjyW/yI8lv8iPJb/Ij6V/x0AAAAATJ3+r16p/uZbp/7nUaH+50ed
-        /ec9l/3nO5b95zuW/ec7lv3nO5b95zuW/ec7lv3nO5b95zuW/ec7lv3mPJb8uFem/uKn0P7/j8P+/3i2
-        /v9gqv3/SJ39/zuW/f88lv3/h7/+/9Ln///l8f//yeL+/3K0/v87lv3/O5b9/zuW/eRapv7jr9T+/5fH
-        /v9/u/7/aK79/1Ch/f88lv3/wN3+//j7//+p0f7/jMH+/7fY/v/9/v//ncr+/zuW/f87lv3kW6f+47bY
-        /v+fy/7/h7/+/2+y/v9Ypf3/jcL+//f7//9eqf3/O5b9/zuW/f87lv3/erj+//3+//9orv3/O5b95F2p
-        /uO+3P7/ps/+/4/D/v93tv7/X6n9/9rr//+kzv7/O5b9/zuW/f87lv3/O5b9/zuW/f/I4f7/tNf+/zuW
-        /eReqf7jxuD+/67U/v+Wx/7/f7r+/2eu/f/u9v//hr7+/zuW/f87lv3/O5b9/zuW/f87lv3/qtH+/8ji
-        /v87lv3kYar+483k/v+22P7/nsv+/4a+/v9vsv7/2ev//67T/v87lv3/O5b9/zuW/f87lv3/O5b9/9Hm
-        //+v1P7/O5b95GKr/uPV6P//vdz+/6bP/v+Owv7/drb+/5XG/v/8/f//b7L+/zuW/f87lv3/O5b9/5DD
-        /v/6/f//Xqn9/zuW/eRkrP7j3O3//8Xg/v+hzP7/e7j+/4rB/v9prv3/s9b+//3+//++3P7/pM7+/83k
-        /v/7/f//isD+/zuW/f87lv3kY6z+4uTx///M5P7/qdH+/4S9/v+Txf7/brL9/1al/f90tf7/vtz+/8/l
-        //+01/7/X6n9/zuW/f87lv3/OpX95FSk/Zdiq/7jUqL+7U2f/e9Knv3vRZz970Oa/e9Dmv3kPpj94zqV
-        /eM6lf3jOpX94zqV/eM6lf3jPJf94zuX/aAAAAAAAAAAADyX/qs7lv3/O5b9/zuW/f87lv3TAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6mf8jO5b+zzuW/sc7lvzEOpb8SwAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAAgAEAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwf8AAMH/AAD//wAAKAAAACAAAABAAAAAAQAgAAAA
-        AACAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOJX/KTyW
-        +0Q8lvtEPJb7RDyW+0Q8lvtEPJb7RDyW+0Q8lvtEPJb7RDyW+0Q8lvtEPJb7RDyW+0Q8lvtEPJb7RDyW
-        +0Q8lvtEPJb7RDyW+0Q8lvtEPJb7RDyW+0Q8lvtEPJb7RDyW+0Q8lvtEOZP/LQAAAAMAAAAAPZL/FT2X
-        /MU7lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/PJX90jqU
-        /x88l/2lRJr9+4i//f+Ow/7/hL3+/3q4/v9ws/7/Zq39/1un/f9Rov3/Rpz9/z2X/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /P87lv37O5b+vT2Y/e97uP3/q9L+/5/M/v+Txf7/h7/+/3y5/v9wsv7/ZKz9/1im/f9Mn/3/QJn9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/VKP9/5LF/v+93P7/0eb//8ni/v+y1v7/fLn+/0Oa/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87l/38O5b9/Ya+/f+v1P7/o87+/5fH/v+Lwf7/f7v+/3S0/v9orv3/XKj9/1Ch
-        /f9Em/3/O5b9/zuW/f87lv3/SZ39/7HV/v/8/f//////////////////////////////////7PX//4a+
-        /v87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv39iL/9/7PW/v+n0P7/m8n+/4/D/v+Dvf7/d7b+/2yw
-        /f9gqv3/VKP9/0id/f88l/3/O5b9/1im/f/j8P//////////////////8vj//9vs///f7v//+/3/////
-        /////////////7bY/v8+mP3/O5b9/zuW/f87lv3/O5b9/zuW/f2Kwf3/ttj+/6vS/v+fy/7/k8X+/4e/
-        /v97uP7/b7L+/2Ss/f9Ypf3/TJ/9/0CZ/f9Knv3/5PH/////////////0+j//26x/v89l/3/O5b9/zuW
-        /f9Hnf3/j8P+//D3/////////////6vS/v87lv3/O5b9/zuW/f87lv3/O5b9/YzC/f+62v7/rtT+/6PN
-        /v+Xx/7/i8H+/3+6/v9ztP7/Z679/1yn/f9Qof3/RJv9/7fY/v///////////7HV/v8+mP3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/VKP9/+Pw/////////////2+y/v87lv3/O5b9/zuW/f87lv39j8T9/77c
-        /v+y1v7/ptD+/5vJ/v+Pw/7/g73+/3e2/v9rsP3/X6r9/1Sj/f9krP3//f7////////P5f//PZf9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/W6f9//r8////////1ej//zuW/f87lv3/O5b9/zuW
-        /f2Rxf3/wt7+/7bY/v+q0v7/nsv+/5PF/v+Hv/7/e7j+/2+y/v9jrP3/V6X9/6PO/v///////////2et
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/rtP+////////////VKP9/zuW
-        /f87lv3/O5b9/ZTG/v/G4P7/utr+/67U/v+izf7/lsf+/4vB/v9/uv7/c7T+/2eu/f9bp/3/zeT+////
-        ///r9P//PJb9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f9usf7/////////
-        //+CvP7/O5b9/zuW/f87lv39lcf+/8ri/v++3P7/stb+/6bP/v+ayf7/jsP+/4O8/v93tv7/a7D9/1+p
-        /f/f7v///////9Dl//87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/1Gi
-        /f///////////5XG/v87lv3/O5b9/zuW/f2YyP7/zeT+/8Le/v+22P7/qtH+/57L/v+Sxf7/hr7+/3u4
-        /v9vsv7/Y6v9/93t////////0+j//zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/VaT9////////////kcT+/zuW/f87lv3/O5b9/ZrJ/v/R5v//xeD+/7ra/v+u0/7/os3+/5bH
-        /v+KwP7/frr+/3O0/v9nrf3/y+P+///////z+f//P5j9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f95t/7///////////96uP7/O5b9/zuW/f87lv39nMv+/9Xp///J4v7/vdz+/7LV
-        /v+mz/7/msn+/47C/v+CvP7/drb+/2uv/f+izf7///////////98uf7/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/8Le/v///////P3//0md/f87lv3/O5b9/zuW/f2fzP7/2ev//83k
-        /v/B3v7/tdj+/6rR/v+ey/7/ksX+/4a+/v96uP7/brL+/3Cy/f/3+////////+Xx//9Inf3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f92tv7////////////A3f7/O5b9/zuW/f87lv3/O5b9/aHN
-        /v/d7f//0eb//8Xg/v+52v7/rdP+/6LN/v+Wx/7/isD+/366/v9ytP7/Zq39/63T/v///////////9To
-        //9Nn/3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/c7T+//X6////////+v3//1qm/f87lv3/O5b9/zuW
-        /f87lv39o87+/+Hv///V6P//yeL+/73c/v+x1f7/lsf+/2Kr/v9gqv7/Xaj+/1qn/v9VpP3/XKj9/9Dm
-        /v////////////L4//+cyv7/X6n9/0Ob/f9Mn/3/cbP+/7zb/v/+//////////////+Gvv7/O5b9/zuW
-        /f87lv3/O5b9/zuW/f2lz/7/5PH//9jq///N5P7/wd7+/7XX/v+Lwf3/f7r+/+Xx///l8f//5fH//3i2
-        /v9Ypvz/Xan9/8bg/v/////////////////////////////////////////////////8/f//jsL+/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/ajQ/v/o8///3Oz//9Dm///F4P7/udn+/47C/f90tf7/y+P+/8vj
-        /v/L4/7/brH+/1uo/P9ap/3/T6H9/4jA/v/m8f/////////////////////////////+////xuH+/16p
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f8/mf3lkMP+/+z1///g7v//1Oj//8ji/v+92/7/os3+/2uw
-        /v9nrv7/ZKz+/2Cq/v9ap/7/Zaz9/16p/f9Sov3/Rpz9/zyW/f9krP3/j8P+/6DM/v+cyv7/g73+/0+h
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/PJb9+DuV/YI+l/39ksT+/6vT/v+kzv7/nMr9/5TG
-        /f+Nwf3/hb39/325/f91tf3/bbH9/2Ws/f9dqP3/VaT9/02f/f9Fm/3/PZf9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/fw6lf2aAAAABTuV/Yc+mP3vO5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3zOpb9ljOZ/woAAAAAAAAAAAAA
-        AABAj/8QPZX8ZTuV/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3+PJf+yTyW/xE8lv8RPJb/ETyW
-        /xE8lv8RPJb/ETyW/xE8lv8RPJb/ETyW/xE8lv8RPJb/ETyW/xE8lv8RPJb/EQAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAFPJb96juW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/fo8lfxNAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7lv16O5f9+TqX/vk7lf34O5b99juW/PY7lfz4O5b94QAA
-        AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADaU/xM7l/2OOpb9iDuW/YE8lv13O5X9dDyW
-        /WY7lv84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////////////AAAADAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAgAAAAOAAAAf4A///+Af///gH/////////////ygAAAAwAAAAYAAAAAEA
-        IAAAAAAAgCUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM6lf8wPJX8XjyW/WY8lv1mPJb9ZjyW
-        /WY8lv1mPJb9ZjyW/WY8lv1mPJb9ZjyW/WY8lv1mPJb9ZjyW/WY8lv1mPJb9ZjyW/WY8lv1mPJb9ZjyW
-        /WY8lv1mPJb9ZjyW/WY8lv1mPJb9ZjyW/WY8lv1mPJb9ZjyW/WY8lv1mPJb9ZjyW/WY8lv1mPJb9ZjyW
-        /WY8lv1mPJb9ZjyW/WY8lv1mPJf8YjyU/zcAAAAHAAAAAAAAAAAAAAAAOpf/LDuW/cw7lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3dPZb/PwAAAAA6l/8WO5b96juW
-        /f9Bmv3/WKX+/1mm/v9Xpf7/VKT+/1Ki/v9Pof7/TJ/+/0qe/f9Hnf3/RJv9/0Ka/f8/mP3/PZf9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9+DuU
-        /ys7lf2YO5b9/1Oj/f+izf7/os3+/5rJ/v+Sxf7/isD+/4K8/v96uP7/c7T+/2uw/f9jq/3/W6f9/1Oj
-        /f9Ln/3/Q5r9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/rs8lv3WO5b9/5PG/f+s0/7/pM7+/5zK/v+Vxv7/jcL+/4W+/v99uf7/dbX+/22x
-        /v9lrf3/Xaj9/1ak/f9OoP3/Rpz9/z6Y/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f9Nn/3/hr7+/6DM/v+11/7/u9v+/6rS/v+Wx/7/aK79/z2X/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/fU7lv35O5b9/6jR/v+v1P7/p9D+/5/M/v+Xx/7/j8P+/4e/
-        /v9/u/7/eLb+/3Cy/v9orv3/YKr9/1im/f9Qof3/SJ39/0CZ/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/eLf+/9Ln///9/v///////////////////////////////////////+32//+mz/7/Sp79/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv36O5b9/6vS/v+x1f7/qdH+/6LN
-        /v+ayf7/ksX+/4rA/v+CvP7/erj+/3K0/v9qr/3/Yqv9/1un/f9To/3/S579/0Oa/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/1mm/f/Q5v//////////////////////////////////////////////////////////
-        ////////8/j//5DD/v87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv36O5b9/67T
-        /v+01/7/rNP+/6TO/v+cyv7/lMb+/4zC/v+Fvf7/fbn+/3W1/v9tsf7/Za39/12o/f9VpP3/TaD9/0Wc
-        /f8+l/3/O5b9/zuW/f87lv3/cbP+//P4////////////////////////////////////////////////
-        //////////////////////////////////+82/7/Q5r9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv36O5b9/6/U/v+22P7/r9T+/6fQ/v+fy/7/l8f+/4/D/v+Hv/7/f7v+/3e2/v9vsv7/aK79/2Cq
-        /f9Ypf3/UKH9/0id/f9Amf3/O5b9/zuW/f91tf7//f7////////////////////////y+P//ttj+/4G7
-        /v9pr/3/Y6v9/3W1/v+ayf7/2er/////////////////////////////yuP+/z6Y/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv36O5b9/7LW/v+52v7/sdX+/6nR/v+hzf7/mcn+/5LE/v+KwP7/grz+/3q4
-        /v9ys/7/aq/9/2Kr/f9ap/3/UqP9/0ue/f9Dmv3/O5b9/1un/f/0+f//////////////////+/3//6HN
-        /v9GnP3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/3Cy/v/d7f///////////////////////6rR
-        /v87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv36O5b9/7TX/v+82/7/tNf+/6zS/v+kzv7/nMr+/5TG
-        /v+Mwv7/hL3+/3y5/v91tf7/bbH+/2Ws/f9dqP3/VaT9/02g/f9Fm/3/Ppf9/9jq////////////////
-        ///x+P//bLD9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f9Dm/3/wN3+////
-        //////////////////9usv7/O5b9/zuW/f87lv3/O5b9/zuW/f87lv36O5b9/7bY/v++3P7/ttj+/67U
-        /v+m0P7/n8v+/5fH/v+Pw/7/h7/+/3+6/v93tv7/b7L+/2eu/f9fqv3/WKX9/1Ch/f9Inf3/g73+////
-        //////////////v9//9ssP3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/Ppj9/8vj/v/////////////////a6///PZf9/zuW/f87lv3/O5b9/zuW/f87lv36O5b9/7nZ
-        /v/B3v7/udn+/7HV/v+p0f7/oc3+/5nI/v+RxP7/icD+/4K8/v96uP7/crP+/2qv/f9iq/3/Wqf9/1Ki
-        /f9Knv3/3u7//////////////////5rJ/v87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/0uf/f/z+f//////////////////dLT+/zuW/f87lv3/O5b9/zuW
-        /f87lv36O5b9/7va/v/D3/7/u9v+/7PX/v+s0v7/pM7+/5zK/v+Uxv7/jMH+/4S9/v98uf7/dLX+/2yw
-        /v9lrP3/Xaj9/1Wk/f9nrv3/////////////////7PX//0Oa/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f+ayf7/////////////////stb+/zuW
-        /f87lv3/O5b9/zuW/f87lv36O5b9/77c/v/G4P7/vtz+/7bY/v+u1P7/ps/+/57L/v+Wx/7/j8P+/4e/
-        /v9/uv7/d7b+/2+y/v9nrv3/X6n9/1el/f+ey/7/////////////////qtH+/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f9Qof3//v//////
-        ////////7fb//zuW/f87lv3/O5b9/zuW/f87lv36O5b9/7/d///I4v7/wN3+/7nZ/v+x1f7/qdH+/6HN
-        /v+ZyP7/kcT+/4nA/v+BvP7/ebf+/3Kz/v9qr/3/Yqv9/1qn/f+62v7/////////////////crP+/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/3Oz//////////////////0id/f87lv3/O5b9/zuW/f87lv36O5b9/8Le///L4/7/w9/+/7vb
-        /v+z1v7/q9L+/6PO/v+cyv7/lMX+/4zB/v+Evf7/fLn+/3S1/v9ssP7/ZKz9/1yo/f/M5P7/////////
-        ////////Wqb9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/w9/+/////////////////1un/f87lv3/O5b9/zuW/f87lv36O5b9/8Tf
-        ///N5P7/xuD+/77c/v+22P7/rtT+/6bP/v+ey/7/lsf+/47D/v+Gvv7/f7r+/3e2/v9vsv7/Z679/1+p
-        /f/V6f//////////////////UKH9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/uNn+/////////////////2at/f87lv3/O5b9/zuW
-        /f87lv36O5b9/8bg///Q5v//yOL+/8Dd/v+42f7/sNX+/6nR/v+hzP7/mcj+/5HE/v+JwP7/gbz+/3m3
-        /v9xs/7/aa/9/2Kr/f/J4v7/////////////////YKr9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/yuP+/////////////////1Sk
-        /f87lv3/O5b9/zuW/f87lv36O5b9/8jh///T5///y+P+/8Pf/v+72v7/s9b+/6vS/v+jzv7/m8r+/5PF
-        /v+Mwf7/hL3+/3y5/v90tP7/bLD9/2Ss/f+52f7/////////////////hL3+/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f88lv3/6/T/////
-        /////////v///0GZ/f87lv3/O5b9/zuW/f87lv36O5b9/8vj///V6f//zeT+/8Xg/v+93P7/ttj+/67T
-        /v+mz/7/nsv+/5bH/v+Ow/7/hr7+/366/v92tv7/b7L+/2et/f+Xx/7/////////////////wd3+/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f9lrP3/////////////////2uv//zuW/f87lv3/O5b9/zuW/f87lv36O5b9/87k///Y6v//0Ob//8jh
-        /v/A3f7/uNn+/7DV/v+o0f7/oMz+/5nI/v+RxP7/icD+/4G7/v95t/7/cbP+/2mv/f9qsP3/+/3/////
-        ////////+/3//1el/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f+93P7/////////////////ncv+/zuW/f87lv3/O5b9/zuW/f87lv36O5b9/8/m
-        ///a6///0uf//8rj/v/D3/7/u9r+/7PW/v+r0v7/o87+/5vJ/v+Txf7/i8H+/4O9/v98uf7/dLT+/2yw
-        /f9krP3/zOT+/////////////////8Xg/v88lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/22x/v/+///////////////9/v//Wqb9/zuW/f87lv3/O5b9/zuW
-        /f87lv36O5b9/9Ln///d7f//1ej//83k/v/F4P7/vdz+/7XY/v+t0/7/ps/+/57L/v+Wx/7/jsL+/4a+
-        /v9+uv7/drb+/26x/v9mrf3/e7j9//3+//////////////////+gzP7/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/VaT9/+/2//////////////////+01/7/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv36O5b9/9Tn///f7v//1+r//9Dm///I4f7/wN3+/7jZ/v+w1f7/qND+/6DM
-        /v+YyP7/kMT+/4nA/v+Bu/7/ebf+/3Gz/v9pr/3/Yar9/7zb/v//////////////////////rdP+/z+Y
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f9orv3/7fb///////////////////P5
-        //9Rov3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv36O5b9/9bp///i7///2uv//9Ln///K4/7/wt7+/7ra
-        /v+z1v7/q9L+/5bH/v9prv7/ZKz+/2Cq/v9cqP7/WKb+/1Wk/v9Rov3/VaX9/2Kr/f/b7P//////////
-        /////////////+Lv//9+uv7/QJn9/zuW/f87lv3/O5b9/zuW/f87lv3/Wab9/7TX/v/9/v//////////
-        /////////f7//3S0/v87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv36O5b9/9jq///k8f//3O3//9Xo
-        ///N5P7/xeD+/73c/v+11/7/rdP+/3q4/f9Cmf3/bLD+/2yw/v9rsP7/a7D+/2uw/v9Ypv3/RZv9/16p
-        /f9nrv3/5fH/////////////////////////////9fr//8Xg/v+v1P7/qND+/7na/v/f7v//////////
-        ///////////////////9/v//jcL+/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv36O5b9/9vr
-        ///n8v//3+7//9fq///P5f//x+H+/7/d/v+42f7/sNX+/3u4/f9Uo/3/////////////////////////
-        //+y1v7/Rpv9/2Gq/f9Zpv3/W6f9/8ni/v//////////////////////////////////////////////
-        //////////////////////////////b6//94t/7/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv36O5b9/93t///p8///4u///9rr///S5///yuP+/8Le/v+62v7/stb+/3y6/f9Uo/3/////////
-        //////////////////+y1v7/Rpv9/2Os/f9bp/3/VKP9/0+h/f+Sxf7/7fb/////////////////////
-        ///////////////////////////////////+////vdz+/1ak/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3xO5b9/9rr///s9f//5PH//9zs///U6P//zOT+/8Xg/v+92/7/tdf+/3+7
-        /f8+mP3/UqL9/1Ki/f9Sov3/UaL9/1Gi/f9Inv3/RZv9/2at/f9eqf3/VqX9/06g/f9GnP3/R539/43C
-        /v/L4/7/+/3/////////////////////////////5vL//6rR/v9iq/3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lvzDO5b9/6rR/v/v9v//5/L//9/u///X6v//z+X//8fh
-        /v+/3f7/t9n+/6bP/v98uf3/eLb9/3O0/f9usf3/aq/9/2Ws/f9gqv3/Yqz9/2iu/f9hqv3/Wab9/1Gi
-        /f9Jnf3/QZn9/zuW/f87lv3/RJv9/1un/f9usv7/d7b+/2Wt/f9Qof3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/ec6lv1tO5b9/0Wc/f+u1P7/3u3//+Hv
-        ///Z6///0uf//8ri/v/C3v7/utr+/7LW/v+q0v7/os3+/5rJ/v+Sxf7/i8H+/4O8/v97uP7/c7T+/2uw
-        /f9jrP3/W6f9/1Oj/f9Ln/3/RJv9/zyW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zqX/ZAAAAACPJb+uDuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b900aL
-        /wsAAAAAAAAAAzqV/XY7lv3VO5b9/DuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/juW
-        /dw8l/2JAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACDyW/xE7mP80O5b9/TuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/r08lv8RPJb/ETyW/xE8lv8RPJb/ETyW
-        /xE8lv8RPJb/ETyW/xE8lv8RPJb/ETyW/xE8lv8RPJb/ETyW/xE8lv8RPJb/ETyW/xE8lv8RPJb/ETyW
-        /xE8lv8RRov/CwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPJb+tDuW
-        /f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zyV+0gAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAPJb7RDuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b92AAA
-        AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAATyX/dI7lv3/O5b9/zuW/f87lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/PJb9ZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADyX/GI7lv3/O5b9/zuW/f87lv3/O5b9/zuW
-        /f87lv3/O5b9/zuW/f86lf3sAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg7lfxXPJb8VTuW
-        /Ek8lvtEPJX/PDyW/zM9lv8uPJb/IjiX/yBAlf8MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA4AAAAAAHAACAAAAAAAEAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAA
-        AAAAAAAAwAAAAAADAAD4AAAAAA8AAP4AB////wAA/gAP////AAD/AA////8AAP8AH////wAA/4Af////
-        AAD///////8AAP///////wAA////////AAA=
-</value>
-  </data>
-  <data name="&gt;&gt;$this.Name" xml:space="preserve">
-    <value>FormMain</value>
-  </data>
-  <data name="&gt;&gt;$this.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/BurageSnap/Main.cs b/BurageSnap/Main.cs
new file mode 100644 (file)
index 0000000..eadbd89
--- /dev/null
@@ -0,0 +1,111 @@
+// Copyright (C) 2016 Kazuhiro Fujieda <fujieda@users.osdn.me>
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//    http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+using System;
+using System.Diagnostics;
+using System.IO;
+using Prism.Mvvm;
+
+namespace BurageSnap
+{
+    public class Main : BindableBase
+    {
+        private readonly Recorder _recorder;
+
+        public Config Config { get; } = Config.Load();
+
+        public Main()
+        {
+            _recorder = new Recorder(Config) {ReportCaptureResult = ReportCaptureResult};
+        }
+
+        public void OneShot()
+        {
+            _recorder.OneShot();
+        }
+
+        public void StartCapture()
+        {
+            Capturing = true;
+            _recorder.Start();
+        }
+
+        public void StopCapture()
+        {
+            _recorder.Stop();
+        }
+
+        public void SaveBuffer()
+        {
+            _recorder.SaveBuffer();
+            Capturing = false;
+        }
+
+        public void DiscardBuffer()
+        {
+            _recorder.DiscardBuffer();
+            Capturing = false;
+        }
+
+        private string _captureResult = "00:00:00.000";
+
+        public string CaptureResult
+        {
+            get { return _captureResult; }
+            set { SetProperty(ref _captureResult, value); }
+        }
+
+        private bool _capturing;
+
+        public bool Capturing
+        {
+            get { return _capturing; }
+            set { SetProperty(ref _capturing, value); }
+        }
+
+        private void ReportCaptureResult(object obj)
+        {
+            if (obj is DateTime)
+            {
+                var time = (DateTime)obj;
+                CaptureResult = time.ToString("HH:mm:ss.fff");
+                if (time == DateTime.MinValue)
+                    Capturing = false;
+            }
+            // ReSharper disable once CanBeReplacedWithTryCastAndCheckForNull
+            else if (obj is string)
+            {
+                CaptureResult = (string)obj;
+                Capturing = false;
+            }
+        }
+
+        public void SaveConfig()
+        {
+            Config.Save();
+        }
+
+        public void OpenPictureFolder()
+        {
+            var dir = Config.Folder;
+            if (Config.DailyFolder)
+            {
+                var now = DateTime.Now;
+                dir = Path.Combine(Config.Folder, now.ToString(Recorder.DateFormat));
+            }
+            Directory.CreateDirectory(dir);
+            Process.Start(dir);
+        }
+    }
+}
\ No newline at end of file
diff --git a/BurageSnap/MainWindow.xaml b/BurageSnap/MainWindow.xaml
new file mode 100644 (file)
index 0000000..2461b14
--- /dev/null
@@ -0,0 +1,54 @@
+<controls:MetroWindow x:Class="BurageSnap.MainWindow"
+        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+        xmlns:controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
+        xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
+        xmlns:prism="http://www.codeplex.com/prism"
+        xmlns:local="clr-namespace:BurageSnap"
+        xmlns:system="clr-namespace:System;assembly=mscorlib"
+        xmlns:properties="clr-namespace:BurageSnap.Properties"
+        mc:Ignorable="d"
+        Style="{StaticResource WindowStyle}"
+        Title="BurageSnap" Height="114" Width="169" ResizeMode="CanMinimize" Icon="app.ico">
+    <controls:MetroWindow.DataContext>
+        <local:MainWindowViewModel/>
+    </controls:MetroWindow.DataContext>
+    <Window.Resources>
+        <Style TargetType="Button" BasedOn="{StaticResource ButtonStyle}"/>
+    </Window.Resources>
+    <Grid>
+        <Button x:Name="buttonCapture" Content="{Binding CaptureButtonText}" HorizontalAlignment="Left" Margin="8,8,0,0" VerticalAlignment="Top" Width="77" Height="51" FontSize="12" Command="{Binding CaptureCommand}"/>
+        <Button x:Name="buttonBrowse" HorizontalAlignment="Left" Margin="93,9,0,0" VerticalAlignment="Top" Width="31" Height="31" Command="{Binding BrowseCommand}">
+            <Image Source="folder_open.ico"/>
+        </Button>
+        <Button x:Name="buttonOption" HorizontalAlignment="Left" Margin="130,9,0,0" VerticalAlignment="Top" Width="31" Height="31" IsEnabled="{Binding AllowChangeSettings}">
+            <Image Source="cogs.ico"/>
+        </Button>
+        <Label x:Name="labeLastSnap" Content="{x:Static properties:Resources.MainWindow_Last_snap}" HorizontalAlignment="Left" Margin="87,46,0,0" VerticalAlignment="Top"/>
+        <TextBlock x:Name="labelCaptureResult" Text="{Binding Main.CaptureResult}" HorizontalAlignment="Left" Margin="93,66,0,0" VerticalAlignment="Top" FontFamily="Segoe UI, Meiryo UI"/>
+        <CheckBox x:Name="checkBox" Content="{x:Static properties:Resources.MainWindow_Continuous}" HorizontalAlignment="Left" Margin="8,64,0,0" VerticalAlignment="Top" IsChecked="{Binding BurstMode}" IsEnabled="{Binding AllowChangeSettings}"/>
+    </Grid>
+    <i:Interaction.Triggers>
+        <i:EventTrigger EventName="Loaded">
+            <i:InvokeCommandAction Command="{Binding LoadedCommand}"/>
+        </i:EventTrigger>
+        <i:EventTrigger EventName="Closing">
+            <i:InvokeCommandAction Command="{Binding ClosingCommand}"/>
+        </i:EventTrigger>
+        <prism:InteractionRequestTrigger SourceObject="{Binding ConfirmationRequest, Mode=OneWay}">
+            <local:MetroPopupWindowAction IsModal="True" CenterOverAssociatedObject="True">
+                <local:MetroPopupWindowAction.WindowContent>
+                    <local:ConfirmView/>
+                </local:MetroPopupWindowAction.WindowContent>
+                <local:MetroPopupWindowAction.WindowStyle>
+                    <Style TargetType="controls:MetroWindow" BasedOn="{StaticResource WindowStyle}">
+                        <Setter Property="ResizeMode" Value="NoResize"/>
+                        <Setter Property="ShowInTaskbar" Value="False"/>
+                    </Style>
+                </local:MetroPopupWindowAction.WindowStyle>
+            </local:MetroPopupWindowAction>
+        </prism:InteractionRequestTrigger>
+    </i:Interaction.Triggers>
+</controls:MetroWindow>
diff --git a/BurageSnap/MainWindow.xaml.cs b/BurageSnap/MainWindow.xaml.cs
new file mode 100644 (file)
index 0000000..3795df5
--- /dev/null
@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using MahApps.Metro.Controls;
+
+namespace BurageSnap
+{
+    /// <summary>
+    /// MainWindow.xaml の相互作用ロジック
+    /// </summary>
+    public partial class MainWindow : MetroWindow
+    {
+        public MainWindow()
+        {
+            InitializeComponent();
+        }
+    }
+}
diff --git a/BurageSnap/MainWindowViewModel.cs b/BurageSnap/MainWindowViewModel.cs
new file mode 100644 (file)
index 0000000..a09521c
--- /dev/null
@@ -0,0 +1,130 @@
+// Copyright (C) 2016 Kazuhiro Fujieda <fujieda@users.osdn.me>
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//    http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+using System.Windows;
+using System.Windows.Input;
+using BurageSnap.Properties;
+using Prism.Commands;
+using Prism.Interactivity.InteractionRequest;
+using Prism.Mvvm;
+
+namespace BurageSnap
+{
+    internal class MainWindowViewModel : BindableBase
+    {
+        public Main Main { get; }
+        public ICommand LoadedCommand { get; private set; }
+        public ICommand ClosingCommand { get; private set; }
+        public ICommand BrowseCommand { get; private set; }
+        public ICommand CaptureCommand { get; private set; }
+        public InteractionRequest<IConfirmation> ConfirmationRequest { get; } = new InteractionRequest<IConfirmation>();
+
+        public bool BurstMode
+        {
+            get { return Main.Config.Continuous; }
+            set
+            {
+                Main.Config.Continuous = value;
+                OnPropertyChanged(() => CaptureButtonText);
+            }
+        }
+
+        public bool AllowChangeSettings => !Main.Capturing;
+
+        public string CaptureButtonText
+            => BurstMode
+                ? Main.Capturing
+                    ? Resources.MainWindow_Stop
+                    : Resources.MainWindow_Start
+                : Resources.MainWindow_Capture;
+
+        public MainWindowViewModel()
+        {
+            Main = new Main();
+            Main.PropertyChanged += (sender, args) =>
+            {
+                if (args.PropertyName == "Capturing")
+                {
+                    OnPropertyChanged(() => CaptureButtonText);
+                    OnPropertyChanged(() => AllowChangeSettings);
+                }
+            };
+            LoadedCommand = new DelegateCommand(Loaded);
+            ClosingCommand = new DelegateCommand(Closing);
+            BrowseCommand = new DelegateCommand(Main.OpenPictureFolder);
+            CaptureCommand = new DelegateCommand(Capture);
+        }
+
+        private void Loaded()
+        {
+            var location = Main.Config.Location;
+            // ReSharper disable once CompareOfFloatsByEqualityOperator
+            if (location.X == double.MinValue)
+                return;
+            var main = Application.Current.MainWindow;
+            var width = main.Width;
+            var height = main.Width;
+            var newBounds = new Rect(location.X, location.Y, width, height);
+            if (!IsVisibleOnScreen(newBounds))
+                return;
+            main.Left = location.X;
+            main.Top = location.Y;
+        }
+
+        private void Closing()
+        {
+            var config = Main.Config;
+            var main = Application.Current.MainWindow;
+            config.Location = main.WindowState == WindowState.Normal
+                ? new Point(main.Left, main.Top)
+                : new Point(main.RestoreBounds.Left, main.RestoreBounds.Top);
+            config.Save();
+        }
+
+        public static bool IsVisibleOnScreen(Rect rect)
+        {
+            return new Rect(SystemParameters.VirtualScreenLeft, SystemParameters.VirtualScreenTop,
+                SystemParameters.VirtualScreenWidth, SystemParameters.VirtualScreenHeight).IntersectsWith(rect);
+        }
+
+        private void Capture()
+        {
+            if (!BurstMode)
+            {
+                Main.OneShot();
+                return;
+            }
+            if (!Main.Capturing)
+            {
+                Main.StartCapture();
+            }
+            else
+            {
+                Main.StopCapture();
+                ConfirmSaveBuffer();
+            }
+        }
+
+        private void ConfirmSaveBuffer()
+        {
+            ConfirmationRequest.Raise(new Confirmation {Title = Resources.ConfirmView_Title}, c =>
+            {
+                if (c.Confirmed)
+                    Main.SaveBuffer();
+                else
+                    Main.DiscardBuffer();
+            });
+        }
+    }
+}
\ No newline at end of file
similarity index 59%
rename from BurageSnap/ConfirmDialog.cs
rename to BurageSnap/MetroPopupWindowAction.cs
index 54ee44b..3050b50 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2015 Kazuhiro Fujieda <fujieda@users.osdn.me>
+// Copyright (C) 2016 Kazuhiro Fujieda <fujieda@users.osdn.me>
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-using System.Windows.Forms;
+using System.Windows;
+using MahApps.Metro.Controls;
+using Prism.Interactivity;
 
 namespace BurageSnap
 {
-    public partial class ConfirmDialog : Form
+    internal class MetroPopupWindowAction : PopupWindowAction
     {
-        public ConfirmDialog()
+        protected override Window CreateWindow()
         {
-            InitializeComponent();
+            return new MetroWindow
+            {
+                Style = new Style(),
+                SizeToContent = SizeToContent.WidthAndHeight
+            };
         }
     }
-}
+}
\ No newline at end of file
diff --git a/BurageSnap/OctreeQuantizer.cs b/BurageSnap/OctreeQuantizer.cs
deleted file mode 100644 (file)
index 2d348f3..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-// Copyright (C) 2015 Kazuhiro Fujieda <fujieda@users.osdn.me>
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//    http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-using System.Collections.Generic;
-using System.Drawing;
-using System.Drawing.Imaging;
-using System.Linq;
-using static System.Math;
-
-namespace BurageSnap
-{
-    public class OctreeQuantizer
-    {
-        private const int Depth = 6;
-        private const int Colors = 255;
-        private readonly OctreeNode _root = new OctreeNode();
-        private int _leafCount;
-        private readonly List<OctreeNode>[] _depth = new List<OctreeNode>[Depth - 1];
-        private IEnumerable<OctreeNode> _full;
-
-        public OctreeQuantizer()
-        {
-            for (var i = 0; i < _depth.Length; i++)
-                _depth[i] = new List<OctreeNode>();
-        }
-
-        public static Bitmap Quantize(Bitmap bmp)
-        {
-            var oq = new OctreeQuantizer();
-            var width = bmp.Width;
-            var height = bmp.Height;
-            var result = new Bitmap(width, height, PixelFormat.Format8bppIndexed);
-            var data32 = bmp.LockBits(new Rectangle(0, 0, width, height),
-                ImageLockMode.ReadOnly, PixelFormat.Format32bppRgb);
-            var data8 = result.LockBits(new Rectangle(0, 0, width, height),
-                ImageLockMode.WriteOnly, result.PixelFormat);
-            unsafe
-            {
-                for (var y = 0; y < height; y++)
-                {
-                    for (var x = 0; x < width; x++)
-                    {
-                        var p32 = (byte*)data32.Scan0 + y * data32.Stride + x * 4;
-                        if (p32[3] != 0)
-                            oq.AddPixcel(p32[2], p32[1], p32[0]);
-                    }
-                }
-                oq.Reduce();
-                var pallet = result.Palette;
-                oq.SetPalette(pallet.Entries);
-                result.Palette = pallet;
-                for (var y = 0; y < height; y++)
-                {
-                    for (var x = 0; x < width; x++)
-                    {
-                        var p32 = (byte*)data32.Scan0 + y * data32.Stride + x * 4;
-                        var p8 = (byte*)data8.Scan0 + y * data8.Stride + x;
-                        *p8 = p32[3] == 0 ? (byte)0 : (byte)oq.GetIndex(p32[2], p32[1], p32[0]);
-                    }
-                }
-            }
-            bmp.UnlockBits(data32);
-            result.UnlockBits(data8);
-            return result;
-        }
-
-        private void AddPixcel(int r, int g, int b)
-        {
-            var node = _root;
-            for (var i = 0; i < Depth; i++)
-            {
-                if (node.Children == null)
-                    node.Children = new OctreeNode[8];
-                var shift = 7 - i;
-                var idx = (r >> shift & 1) << 2 | (g >> shift & 1) << 1 | (b >> shift & 1);
-                if (node.Children[idx] == null)
-                {
-                    var n = new OctreeNode();
-                    node.Children[idx] = n;
-                    if (i < Depth - 1)
-                        _depth[i].Add(n);
-                }
-                node = node.Children[idx];
-            }
-            if (!node.Leaf)
-                _leafCount++;
-            node.Leaf = true;
-            node.RefCount++;
-            node.R += r;
-            node.G += g;
-            node.B += b;
-        }
-
-        private void Reduce()
-        {
-            var full = new List<OctreeNode>();
-            for (var i = Depth - 2; i >= 0; i--)
-            {
-                full.AddRange(_depth[i]);
-                _depth[i] = null;
-            }
-            full.Add(_root);
-            foreach (var node in full)
-                node.RefCount = node.Children.Where(n => n != null).Sum(n => n.RefCount);
-            _full = full.OrderBy(n => n.RefCount);
-            foreach (var node in _full)
-            {
-                if (_leafCount <= Colors)
-                    break;
-                ReduceNode(node);
-            }
-            _full = _full.SkipWhile(n => n.Leaf);
-        }
-
-        private void ReduceNode(OctreeNode node)
-        {
-            foreach (var child in node.Children.Where(n => n != null))
-            {
-                _leafCount--;
-                node.R += child.R;
-                node.G += child.G;
-                node.B += child.B;
-            }
-            node.Leaf = true;
-            _leafCount++;
-            node.Children = null;
-        }
-
-        private void SetPalette(Color[] palette)
-        {
-            var idx = 0;
-            palette[idx++] = Color.FromArgb(0, 0, 0, 0); // 0 is the transparent index
-            foreach (var leaf in
-                from node in _full from child in node.Children where child != null && child.Leaf select child)
-            {
-                leaf.Index = idx++;
-                palette[leaf.Index] = Color.FromArgb(
-                    (int)Round(leaf.R / (double)leaf.RefCount),
-                    (int)Round(leaf.G / (double)leaf.RefCount),
-                    (int)Round(leaf.B / (double)leaf.RefCount));
-            }
-            for (; idx < Colors; idx++)
-                palette[idx] = Color.FromArgb(0, 0, 0);
-        }
-
-        private int GetIndex(int r, int g, int b)
-        {
-            var node = _root;
-            for (var i = 0; i < Depth; i++)
-            {
-                var shift = 7 - i;
-                var idx = (r >> shift & 1) << 2 | (g >> shift & 1) << 1 | (b >> shift & 1);
-                node = node.Children[idx];
-                if (node.Leaf)
-                    return node.Index;
-            }
-            return 0;
-        }
-
-        private class OctreeNode
-        {
-            public int RefCount;
-            public int R, G, B;
-            public int Index;
-            public OctreeNode[] Children;
-            public bool Leaf;
-        }
-    }
-}
\ No newline at end of file
diff --git a/BurageSnap/OptionDialog.Designer.cs b/BurageSnap/OptionDialog.Designer.cs
deleted file mode 100644 (file)
index 08ebe08..0000000
+++ /dev/null
@@ -1,246 +0,0 @@
-// Copyright (C) 2015 Kazuhiro Fujieda <fujieda@users.osdn.me>
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//    http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-namespace BurageSnap
-{
-    partial class OptionDialog
-    {
-        /// <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 Windows Form 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()
-        {
-            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OptionDialog));
-            this.label3 = new System.Windows.Forms.Label();
-            this.textBoxFolder = new System.Windows.Forms.TextBox();
-            this.label4 = new System.Windows.Forms.Label();
-            this.label2 = new System.Windows.Forms.Label();
-            this.textBoxInterval = new System.Windows.Forms.TextBox();
-            this.label1 = new System.Windows.Forms.Label();
-            this.buttonBrowse = new System.Windows.Forms.Button();
-            this.buttonOk = new System.Windows.Forms.Button();
-            this.buttonCancel = new System.Windows.Forms.Button();
-            this.checkBoxTopMost = new System.Windows.Forms.CheckBox();
-            this.folderBrowserDialog = new System.Windows.Forms.FolderBrowserDialog();
-            this.comboBoxWindowTitle = new System.Windows.Forms.ComboBox();
-            this.label5 = new System.Windows.Forms.Label();
-            this.radioButtonJpg = new System.Windows.Forms.RadioButton();
-            this.radioButtonPng = new System.Windows.Forms.RadioButton();
-            this.label6 = new System.Windows.Forms.Label();
-            this.textBoxRingBuffer = new System.Windows.Forms.TextBox();
-            this.label7 = new System.Windows.Forms.Label();
-            this.label8 = new System.Windows.Forms.Label();
-            this.checkBoxAnimationGif = new System.Windows.Forms.CheckBox();
-            this.checkBoxDailyFolder = new System.Windows.Forms.CheckBox();
-            this.SuspendLayout();
-            // 
-            // label3
-            // 
-            resources.ApplyResources(this.label3, "label3");
-            this.label3.Name = "label3";
-            // 
-            // textBoxFolder
-            // 
-            resources.ApplyResources(this.textBoxFolder, "textBoxFolder");
-            this.textBoxFolder.Name = "textBoxFolder";
-            // 
-            // label4
-            // 
-            resources.ApplyResources(this.label4, "label4");
-            this.label4.Name = "label4";
-            // 
-            // label2
-            // 
-            resources.ApplyResources(this.label2, "label2");
-            this.label2.Name = "label2";
-            // 
-            // textBoxInterval
-            // 
-            resources.ApplyResources(this.textBoxInterval, "textBoxInterval");
-            this.textBoxInterval.Name = "textBoxInterval";
-            this.textBoxInterval.Validating += new System.ComponentModel.CancelEventHandler(this.textBoxInterval_Validating);
-            // 
-            // label1
-            // 
-            resources.ApplyResources(this.label1, "label1");
-            this.label1.Name = "label1";
-            // 
-            // buttonBrowse
-            // 
-            resources.ApplyResources(this.buttonBrowse, "buttonBrowse");
-            this.buttonBrowse.Name = "buttonBrowse";
-            this.buttonBrowse.UseVisualStyleBackColor = true;
-            this.buttonBrowse.Click += new System.EventHandler(this.buttonBrowse_Click);
-            // 
-            // buttonOk
-            // 
-            resources.ApplyResources(this.buttonOk, "buttonOk");
-            this.buttonOk.DialogResult = System.Windows.Forms.DialogResult.OK;
-            this.buttonOk.Name = "buttonOk";
-            this.buttonOk.UseVisualStyleBackColor = true;
-            this.buttonOk.Click += new System.EventHandler(this.buttonOk_Click);
-            // 
-            // buttonCancel
-            // 
-            resources.ApplyResources(this.buttonCancel, "buttonCancel");
-            this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
-            this.buttonCancel.Name = "buttonCancel";
-            this.buttonCancel.UseVisualStyleBackColor = true;
-            // 
-            // checkBoxTopMost
-            // 
-            resources.ApplyResources(this.checkBoxTopMost, "checkBoxTopMost");
-            this.checkBoxTopMost.Name = "checkBoxTopMost";
-            this.checkBoxTopMost.UseVisualStyleBackColor = true;
-            // 
-            // comboBoxWindowTitle
-            // 
-            this.comboBoxWindowTitle.FormattingEnabled = true;
-            resources.ApplyResources(this.comboBoxWindowTitle, "comboBoxWindowTitle");
-            this.comboBoxWindowTitle.Name = "comboBoxWindowTitle";
-            // 
-            // label5
-            // 
-            resources.ApplyResources(this.label5, "label5");
-            this.label5.Name = "label5";
-            // 
-            // radioButtonJpg
-            // 
-            resources.ApplyResources(this.radioButtonJpg, "radioButtonJpg");
-            this.radioButtonJpg.Name = "radioButtonJpg";
-            this.radioButtonJpg.TabStop = true;
-            this.radioButtonJpg.UseVisualStyleBackColor = true;
-            // 
-            // radioButtonPng
-            // 
-            resources.ApplyResources(this.radioButtonPng, "radioButtonPng");
-            this.radioButtonPng.Name = "radioButtonPng";
-            this.radioButtonPng.TabStop = true;
-            this.radioButtonPng.UseVisualStyleBackColor = true;
-            // 
-            // label6
-            // 
-            resources.ApplyResources(this.label6, "label6");
-            this.label6.Name = "label6";
-            // 
-            // textBoxRingBuffer
-            // 
-            resources.ApplyResources(this.textBoxRingBuffer, "textBoxRingBuffer");
-            this.textBoxRingBuffer.Name = "textBoxRingBuffer";
-            this.textBoxRingBuffer.Validating += new System.ComponentModel.CancelEventHandler(this.textBoxRingBuffer_Validating);
-            // 
-            // label7
-            // 
-            resources.ApplyResources(this.label7, "label7");
-            this.label7.Name = "label7";
-            // 
-            // label8
-            // 
-            resources.ApplyResources(this.label8, "label8");
-            this.label8.Name = "label8";
-            // 
-            // checkBoxAnimationGif
-            // 
-            resources.ApplyResources(this.checkBoxAnimationGif, "checkBoxAnimationGif");
-            this.checkBoxAnimationGif.Name = "checkBoxAnimationGif";
-            this.checkBoxAnimationGif.UseVisualStyleBackColor = true;
-            // 
-            // checkBoxDailyFolder
-            // 
-            resources.ApplyResources(this.checkBoxDailyFolder, "checkBoxDailyFolder");
-            this.checkBoxDailyFolder.Name = "checkBoxDailyFolder";
-            this.checkBoxDailyFolder.UseVisualStyleBackColor = true;
-            // 
-            // OptionDialog
-            // 
-            this.AcceptButton = this.buttonOk;
-            resources.ApplyResources(this, "$this");
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.CancelButton = this.buttonCancel;
-            this.Controls.Add(this.checkBoxDailyFolder);
-            this.Controls.Add(this.checkBoxAnimationGif);
-            this.Controls.Add(this.label8);
-            this.Controls.Add(this.label7);
-            this.Controls.Add(this.textBoxRingBuffer);
-            this.Controls.Add(this.label6);
-            this.Controls.Add(this.radioButtonPng);
-            this.Controls.Add(this.radioButtonJpg);
-            this.Controls.Add(this.label5);
-            this.Controls.Add(this.comboBoxWindowTitle);
-            this.Controls.Add(this.checkBoxTopMost);
-            this.Controls.Add(this.buttonCancel);
-            this.Controls.Add(this.buttonOk);
-            this.Controls.Add(this.buttonBrowse);
-            this.Controls.Add(this.label3);
-            this.Controls.Add(this.textBoxFolder);
-            this.Controls.Add(this.label4);
-            this.Controls.Add(this.label2);
-            this.Controls.Add(this.textBoxInterval);
-            this.Controls.Add(this.label1);
-            this.MaximizeBox = false;
-            this.MinimizeBox = false;
-            this.Name = "OptionDialog";
-            this.ShowIcon = false;
-            this.Load += new System.EventHandler(this.OptionDialog_Load);
-            this.ResumeLayout(false);
-            this.PerformLayout();
-
-        }
-
-        #endregion
-
-        private System.Windows.Forms.Button buttonBrowse;
-        private System.Windows.Forms.Label label3;
-        private System.Windows.Forms.TextBox textBoxFolder;
-        private System.Windows.Forms.Label label4;
-        private System.Windows.Forms.Label label2;
-        private System.Windows.Forms.TextBox textBoxInterval;
-        private System.Windows.Forms.Label label1;
-        private System.Windows.Forms.Button buttonOk;
-        private System.Windows.Forms.Button buttonCancel;
-        private System.Windows.Forms.CheckBox checkBoxTopMost;
-        private System.Windows.Forms.FolderBrowserDialog folderBrowserDialog;
-        private System.Windows.Forms.ComboBox comboBoxWindowTitle;
-        private System.Windows.Forms.RadioButton radioButtonPng;
-        private System.Windows.Forms.RadioButton radioButtonJpg;
-        private System.Windows.Forms.Label label5;
-        private System.Windows.Forms.TextBox textBoxRingBuffer;
-        private System.Windows.Forms.Label label6;
-        private System.Windows.Forms.Label label7;
-        private System.Windows.Forms.Label label8;
-        private System.Windows.Forms.CheckBox checkBoxAnimationGif;
-        private System.Windows.Forms.CheckBox checkBoxDailyFolder;
-    }
-}
\ No newline at end of file
diff --git a/BurageSnap/OptionDialog.cs b/BurageSnap/OptionDialog.cs
deleted file mode 100644 (file)
index ee7d575..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-// Copyright (C) 2015 Kazuhiro Fujieda <fujieda@users.osdn.me>
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//    http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-using System;
-using System.ComponentModel;
-using System.Linq;
-using System.Windows.Forms;
-using BurageSnap.Properties;
-
-namespace BurageSnap
-{
-    public partial class OptionDialog : Form
-    {
-        private readonly Config _config;
-        private readonly ErrorProvider _errorProvider = new ErrorProvider();
-
-        public OptionDialog(Config config)
-        {
-            InitializeComponent();
-            _config = config;
-        }
-
-        private void buttonOk_Click(object sender, EventArgs e)
-        {
-            var ringbuffer = int.Parse(textBoxRingBuffer.Text);
-            if (checkBoxAnimationGif.Checked && ringbuffer == 0)
-            {
-                DialogResult = DialogResult.None;
-                _errorProvider.SetError(textBoxRingBuffer,
-                    Resources.OptionDialog_buttonOk_Click_Ring_buffer_for_animation_GIF);
-                return;
-            }
-            _errorProvider.SetError(textBoxRingBuffer, "");
-            _config.TopMost = checkBoxTopMost.Checked;
-            _config.Interval = int.Parse(textBoxInterval.Text);
-            _config.RingBuffer = ringbuffer;
-            var title = comboBoxWindowTitle.Text;
-            if (title != "")
-            {
-                comboBoxWindowTitle.Items.Remove(title);
-                comboBoxWindowTitle.Items.Insert(0, title);
-                for (var i = comboBoxWindowTitle.Items.Count; i > 10; i--)
-                    comboBoxWindowTitle.Items.RemoveAt(10);
-            }
-            _config.TitleHistory = (from object item in comboBoxWindowTitle.Items select item.ToString()).ToArray();
-            _config.Folder = textBoxFolder.Text;
-            _config.DailyFolder = checkBoxDailyFolder.Checked;
-            _config.Format = radioButtonJpg.Checked ? OutputFormat.Jpg : OutputFormat.Png;
-            _config.AnimationGif = checkBoxAnimationGif.Checked;
-        }
-
-        private void OptionDialog_Load(object sender, EventArgs e)
-        {
-            Text = Application.ProductName + @" " +
-                   string.Join(".", Application.ProductVersion.Split('.').Take(2)) +
-                   Resources.OptionDialog_OptionDialog_Load_Options;
-            checkBoxTopMost.Checked = _config.TopMost;
-            textBoxInterval.Text = _config.Interval.ToString();
-            textBoxRingBuffer.Text = _config.RingBuffer.ToString();
-            comboBoxWindowTitle.Items.Clear();
-            // ReSharper disable once CoVariantArrayConversion
-            comboBoxWindowTitle.Items.AddRange(_config.TitleHistory);
-            comboBoxWindowTitle.Text = _config.TitleHistory[0];
-            textBoxFolder.Text = _config.Folder;
-            textBoxFolder.Select(textBoxFolder.TextLength, 0);
-            checkBoxDailyFolder.Checked = _config.DailyFolder;
-            radioButtonJpg.Checked = _config.Format == OutputFormat.Jpg;
-            radioButtonPng.Checked = _config.Format == OutputFormat.Png;
-            checkBoxAnimationGif.Checked = _config.AnimationGif;
-        }
-
-        private void buttonBrowse_Click(object sender, EventArgs e)
-        {
-            folderBrowserDialog.SelectedPath = textBoxFolder.Text;
-            if (folderBrowserDialog.ShowDialog(this) != DialogResult.OK)
-                return;
-            textBoxFolder.Text = folderBrowserDialog.SelectedPath;
-            textBoxFolder.Select(textBoxFolder.TextLength, 0);
-        }
-
-        private void textBoxInterval_Validating(object sender, CancelEventArgs e)
-        {
-            int interval;
-            if (int.TryParse(textBoxInterval.Text, out interval) && 10 <= interval && interval < 1000 * 1000)
-            {
-                _errorProvider.SetError(textBoxInterval, "");
-                return;
-            }
-            e.Cancel = true;
-            _errorProvider.SetError(textBoxInterval, Resources.OptionDialog_textBoxInterval_Validating_Interval);
-        }
-
-        private void textBoxRingBuffer_Validating(object sender, CancelEventArgs e)
-        {
-            int frames;
-            if (int.TryParse(textBoxRingBuffer.Text, out frames) && 0 <= frames && frames <= 100)
-            {
-                _errorProvider.SetError(textBoxRingBuffer, "");
-                return;
-            }
-            e.Cancel = true;
-            _errorProvider.SetError(textBoxRingBuffer, Resources.OptionDialog_textBoxRingBuffer_Validating);
-        }
-    }
-}
\ No newline at end of file
diff --git a/BurageSnap/OptionDialog.ja.resx b/BurageSnap/OptionDialog.ja.resx
deleted file mode 100644 (file)
index 6eedfb2..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-  <data name="label3.Size" type="System.Drawing.Size, System.Drawing">
-    <value>42, 12</value>
-  </data>
-  <data name="label3.Text" xml:space="preserve">
-    <value>タイトル:</value>
-  </data>
-  <data name="label4.Size" type="System.Drawing.Size, System.Drawing">
-    <value>43, 12</value>
-  </data>
-  <data name="label4.Text" xml:space="preserve">
-    <value>出力先:</value>
-  </data>
-  <data name="label1.Size" type="System.Drawing.Size, System.Drawing">
-    <value>55, 12</value>
-  </data>
-  <data name="label1.Text" xml:space="preserve">
-    <value>撮影間隔:</value>
-  </data>
-  <data name="buttonBrowse.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
-        YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAJaSURBVDhPbdLrT1JxHMdxtv6MHvVn1NOyZm2suUZbeKGs
-        1FXKLDLdXFqtpM3ZelBrbj1pui4uwRlqkYAgyVVQELkdQLkIOyF3B2Kfjj9OR0/63b6Pznm9z1WwP6X4
-        iKqYGK4WosPIheXIUkPIBuXY9j9H2vsUtGcAKXc/tlb7qISzR0bQoTnBYOyWlNjbTaKQeoffoRcI2HpR
-        KaqxV1ngtlxQIbYso1h3MCSwM00WqJINWzrgNj5GKf0V1bKGOfYDlcIMorZusOxgDgdqESC4dBNO7SPE
-        VgYJLOeU2NmewIZVekwg/n+gCp+hBY75B9hc7iewSI8hn3yPiLnzaCAfe8nhclGBP3sFeLTXYFd3ImJ9
-        SGAu9haZjVcIme4cDeQ2hzi8k/2MamULrp8i2ObaETZJCUxTctC+J8wjdCFobH/D0tpkws84XKA/oJQ1
-        YuV7Ayyq66CMHQSmPH3MZ7yPuOMeAou3+HeRpgY5nEmMgo68hmNGCNOUGIGFVg5GbbdB0zT8+lZ+gPb3
-        8/CWXw779EUsTV6BT9NI4KZZgsgvMQn4Fm7wA8n1Xh6OugZgnboA44QQXrWIwPCiCCF9Awl4dRJ+IOGS
-        8XDY3gOzog6GT/VYZ97FPqR0QrJNc0Gsa5v5gahTysNBUxfMk+dg+FgHz2wN/tv6sVV4NE38QMR+l4d9
-        hjYS0I+fPRII6i5jbb7Rz9LahExtaq++BWvaJqxpmpmVkIBu/BJcsyLmp2omV2Ugs2I/s90sPRj3/NWT
-        zKdrtSjPKxmc/zZ6ZunLyOl2h0J4ij3lmBEI/gJyIHBmuwLNjQAAAABJRU5ErkJggg==
-</value>
-  </data>
-  <data name="buttonCancel.Text" xml:space="preserve">
-    <value>キャンセル</value>
-  </data>
-  <data name="checkBoxTopMost.Size" type="System.Drawing.Size, System.Drawing">
-    <value>60, 16</value>
-  </data>
-  <data name="checkBoxTopMost.Text" xml:space="preserve">
-    <value>最前面</value>
-  </data>
-  <data name="label5.Size" type="System.Drawing.Size, System.Drawing">
-    <value>31, 12</value>
-  </data>
-  <data name="label5.Text" xml:space="preserve">
-    <value>形式:</value>
-  </data>
-  <data name="label6.Text" xml:space="preserve">
-    <value>リングバッファ:</value>
-  </data>
-  <data name="label7.Size" type="System.Drawing.Size, System.Drawing">
-    <value>17, 12</value>
-  </data>
-  <data name="label7.Text" xml:space="preserve">
-    <value>枚</value>
-  </data>
-  <data name="label8.Location" type="System.Drawing.Point, System.Drawing">
-    <value>12, 162</value>
-  </data>
-  <data name="label8.Size" type="System.Drawing.Size, System.Drawing">
-    <value>31, 12</value>
-  </data>
-  <data name="label8.Text" xml:space="preserve">
-    <value>連射:</value>
-  </data>
-  <data name="checkBoxAnimationGif.Location" type="System.Drawing.Point, System.Drawing">
-    <value>60, 161</value>
-  </data>
-  <data name="checkBoxAnimationGif.Size" type="System.Drawing.Size, System.Drawing">
-    <value>131, 16</value>
-  </data>
-  <data name="checkBoxAnimationGif.Text" xml:space="preserve">
-    <value>アニメーションGIFにする</value>
-  </data>
-  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="checkBoxDailyFolder.Size" type="System.Drawing.Size, System.Drawing">
-    <value>127, 16</value>
-  </data>
-  <data name="checkBoxDailyFolder.Text" xml:space="preserve">
-    <value>日ごとにフォルダを作る</value>
-  </data>
-  <data name="$this.Text" xml:space="preserve">
-    <value>BurageSnap 1.4 - オプション</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/BurageSnap/OptionDialog.resx b/BurageSnap/OptionDialog.resx
deleted file mode 100644 (file)
index 3761776..0000000
+++ /dev/null
@@ -1,700 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="label3.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-  <data name="label3.Location" type="System.Drawing.Point, System.Drawing">
-    <value>12, 66</value>
-  </data>
-  <data name="label3.Size" type="System.Drawing.Size, System.Drawing">
-    <value>30, 12</value>
-  </data>
-  <data name="label3.TabIndex" type="System.Int32, mscorlib">
-    <value>14</value>
-  </data>
-  <data name="label3.Text" xml:space="preserve">
-    <value>Title:</value>
-  </data>
-  <data name="label3.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
-    <value>TopRight</value>
-  </data>
-  <data name="&gt;&gt;label3.Name" xml:space="preserve">
-    <value>label3</value>
-  </data>
-  <data name="&gt;&gt;label3.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label3.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;label3.ZOrder" xml:space="preserve">
-    <value>14</value>
-  </data>
-  <data name="textBoxFolder.Location" type="System.Drawing.Point, System.Drawing">
-    <value>58, 90</value>
-  </data>
-  <data name="textBoxFolder.Size" type="System.Drawing.Size, System.Drawing">
-    <value>174, 19</value>
-  </data>
-  <data name="textBoxFolder.TabIndex" type="System.Int32, mscorlib">
-    <value>13</value>
-  </data>
-  <data name="&gt;&gt;textBoxFolder.Name" xml:space="preserve">
-    <value>textBoxFolder</value>
-  </data>
-  <data name="&gt;&gt;textBoxFolder.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;textBoxFolder.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;textBoxFolder.ZOrder" xml:space="preserve">
-    <value>15</value>
-  </data>
-  <data name="label4.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="label4.Location" type="System.Drawing.Point, System.Drawing">
-    <value>12, 93</value>
-  </data>
-  <data name="label4.Size" type="System.Drawing.Size, System.Drawing">
-    <value>39, 12</value>
-  </data>
-  <data name="label4.TabIndex" type="System.Int32, mscorlib">
-    <value>12</value>
-  </data>
-  <data name="label4.Text" xml:space="preserve">
-    <value>Folder:</value>
-  </data>
-  <data name="label4.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
-    <value>TopRight</value>
-  </data>
-  <data name="&gt;&gt;label4.Name" xml:space="preserve">
-    <value>label4</value>
-  </data>
-  <data name="&gt;&gt;label4.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label4.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;label4.ZOrder" xml:space="preserve">
-    <value>16</value>
-  </data>
-  <data name="label2.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="label2.Location" type="System.Drawing.Point, System.Drawing">
-    <value>118, 15</value>
-  </data>
-  <data name="label2.Size" type="System.Drawing.Size, System.Drawing">
-    <value>20, 12</value>
-  </data>
-  <data name="label2.TabIndex" type="System.Int32, mscorlib">
-    <value>11</value>
-  </data>
-  <data name="label2.Text" xml:space="preserve">
-    <value>ms</value>
-  </data>
-  <data name="&gt;&gt;label2.Name" xml:space="preserve">
-    <value>label2</value>
-  </data>
-  <data name="&gt;&gt;label2.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label2.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;label2.ZOrder" xml:space="preserve">
-    <value>17</value>
-  </data>
-  <data name="textBoxInterval.Location" type="System.Drawing.Point, System.Drawing">
-    <value>81, 12</value>
-  </data>
-  <data name="textBoxInterval.Size" type="System.Drawing.Size, System.Drawing">
-    <value>35, 19</value>
-  </data>
-  <data name="textBoxInterval.TabIndex" type="System.Int32, mscorlib">
-    <value>10</value>
-  </data>
-  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="textBoxInterval.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
-    <value>Right</value>
-  </data>
-  <data name="&gt;&gt;textBoxInterval.Name" xml:space="preserve">
-    <value>textBoxInterval</value>
-  </data>
-  <data name="&gt;&gt;textBoxInterval.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;textBoxInterval.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;textBoxInterval.ZOrder" xml:space="preserve">
-    <value>18</value>
-  </data>
-  <data name="label1.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="label1.Location" type="System.Drawing.Point, System.Drawing">
-    <value>12, 15</value>
-  </data>
-  <data name="label1.Size" type="System.Drawing.Size, System.Drawing">
-    <value>45, 12</value>
-  </data>
-  <data name="label1.TabIndex" type="System.Int32, mscorlib">
-    <value>9</value>
-  </data>
-  <data name="label1.Text" xml:space="preserve">
-    <value>Interval:</value>
-  </data>
-  <data name="label1.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
-    <value>TopRight</value>
-  </data>
-  <data name="&gt;&gt;label1.Name" xml:space="preserve">
-    <value>label1</value>
-  </data>
-  <data name="&gt;&gt;label1.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label1.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
-    <value>19</value>
-  </data>
-  <data name="buttonBrowse.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
-        YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAJaSURBVDhPbdLrT1JxHMdxtv6MHvVn1NOyZm2suUZbeKGs
-        1FXKLDLdXFqtpM3ZelBrbj1pui4uwRlqkYAgyVVQELkdQLkIOyF3B2Kfjj9OR0/63b6Pznm9z1WwP6X4
-        iKqYGK4WosPIheXIUkPIBuXY9j9H2vsUtGcAKXc/tlb7qISzR0bQoTnBYOyWlNjbTaKQeoffoRcI2HpR
-        KaqxV1ngtlxQIbYso1h3MCSwM00WqJINWzrgNj5GKf0V1bKGOfYDlcIMorZusOxgDgdqESC4dBNO7SPE
-        VgYJLOeU2NmewIZVekwg/n+gCp+hBY75B9hc7iewSI8hn3yPiLnzaCAfe8nhclGBP3sFeLTXYFd3ImJ9
-        SGAu9haZjVcIme4cDeQ2hzi8k/2MamULrp8i2ObaETZJCUxTctC+J8wjdCFobH/D0tpkws84XKA/oJQ1
-        YuV7Ayyq66CMHQSmPH3MZ7yPuOMeAou3+HeRpgY5nEmMgo68hmNGCNOUGIGFVg5GbbdB0zT8+lZ+gPb3
-        8/CWXw779EUsTV6BT9NI4KZZgsgvMQn4Fm7wA8n1Xh6OugZgnboA44QQXrWIwPCiCCF9Awl4dRJ+IOGS
-        8XDY3gOzog6GT/VYZ97FPqR0QrJNc0Gsa5v5gahTysNBUxfMk+dg+FgHz2wN/tv6sVV4NE38QMR+l4d9
-        hjYS0I+fPRII6i5jbb7Rz9LahExtaq++BWvaJqxpmpmVkIBu/BJcsyLmp2omV2Ugs2I/s90sPRj3/NWT
-        zKdrtSjPKxmc/zZ6ZunLyOl2h0J4ij3lmBEI/gJyIHBmuwLNjQAAAABJRU5ErkJggg==
-</value>
-  </data>
-  <data name="buttonBrowse.Location" type="System.Drawing.Point, System.Drawing">
-    <value>235, 88</value>
-  </data>
-  <data name="buttonBrowse.Size" type="System.Drawing.Size, System.Drawing">
-    <value>27, 23</value>
-  </data>
-  <data name="buttonBrowse.TabIndex" type="System.Int32, mscorlib">
-    <value>16</value>
-  </data>
-  <data name="&gt;&gt;buttonBrowse.Name" xml:space="preserve">
-    <value>buttonBrowse</value>
-  </data>
-  <data name="&gt;&gt;buttonBrowse.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;buttonBrowse.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;buttonBrowse.ZOrder" xml:space="preserve">
-    <value>13</value>
-  </data>
-  <data name="buttonOk.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
-    <value>Bottom, Right</value>
-  </data>
-  <data name="buttonOk.Location" type="System.Drawing.Point, System.Drawing">
-    <value>106, 188</value>
-  </data>
-  <data name="buttonOk.Size" type="System.Drawing.Size, System.Drawing">
-    <value>75, 23</value>
-  </data>
-  <data name="buttonOk.TabIndex" type="System.Int32, mscorlib">
-    <value>17</value>
-  </data>
-  <data name="buttonOk.Text" xml:space="preserve">
-    <value>OK</value>
-  </data>
-  <data name="&gt;&gt;buttonOk.Name" xml:space="preserve">
-    <value>buttonOk</value>
-  </data>
-  <data name="&gt;&gt;buttonOk.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;buttonOk.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;buttonOk.ZOrder" xml:space="preserve">
-    <value>12</value>
-  </data>
-  <data name="buttonCancel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
-    <value>Bottom, Right</value>
-  </data>
-  <data name="buttonCancel.Location" type="System.Drawing.Point, System.Drawing">
-    <value>187, 188</value>
-  </data>
-  <data name="buttonCancel.Size" type="System.Drawing.Size, System.Drawing">
-    <value>75, 23</value>
-  </data>
-  <data name="buttonCancel.TabIndex" type="System.Int32, mscorlib">
-    <value>18</value>
-  </data>
-  <data name="buttonCancel.Text" xml:space="preserve">
-    <value>Cancel</value>
-  </data>
-  <data name="&gt;&gt;buttonCancel.Name" xml:space="preserve">
-    <value>buttonCancel</value>
-  </data>
-  <data name="&gt;&gt;buttonCancel.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;buttonCancel.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;buttonCancel.ZOrder" xml:space="preserve">
-    <value>11</value>
-  </data>
-  <data name="checkBoxTopMost.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="checkBoxTopMost.Location" type="System.Drawing.Point, System.Drawing">
-    <value>194, 14</value>
-  </data>
-  <data name="checkBoxTopMost.Size" type="System.Drawing.Size, System.Drawing">
-    <value>68, 16</value>
-  </data>
-  <data name="checkBoxTopMost.TabIndex" type="System.Int32, mscorlib">
-    <value>20</value>
-  </data>
-  <data name="checkBoxTopMost.Text" xml:space="preserve">
-    <value>Topmost</value>
-  </data>
-  <data name="&gt;&gt;checkBoxTopMost.Name" xml:space="preserve">
-    <value>checkBoxTopMost</value>
-  </data>
-  <data name="&gt;&gt;checkBoxTopMost.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;checkBoxTopMost.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;checkBoxTopMost.ZOrder" xml:space="preserve">
-    <value>10</value>
-  </data>
-  <metadata name="folderBrowserDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>17, 17</value>
-  </metadata>
-  <data name="comboBoxWindowTitle.Location" type="System.Drawing.Point, System.Drawing">
-    <value>58, 62</value>
-  </data>
-  <data name="comboBoxWindowTitle.Size" type="System.Drawing.Size, System.Drawing">
-    <value>204, 20</value>
-  </data>
-  <data name="comboBoxWindowTitle.TabIndex" type="System.Int32, mscorlib">
-    <value>21</value>
-  </data>
-  <data name="&gt;&gt;comboBoxWindowTitle.Name" xml:space="preserve">
-    <value>comboBoxWindowTitle</value>
-  </data>
-  <data name="&gt;&gt;comboBoxWindowTitle.Type" xml:space="preserve">
-    <value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;comboBoxWindowTitle.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;comboBoxWindowTitle.ZOrder" xml:space="preserve">
-    <value>9</value>
-  </data>
-  <data name="label5.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="label5.Location" type="System.Drawing.Point, System.Drawing">
-    <value>12, 138</value>
-  </data>
-  <data name="label5.Size" type="System.Drawing.Size, System.Drawing">
-    <value>43, 12</value>
-  </data>
-  <data name="label5.TabIndex" type="System.Int32, mscorlib">
-    <value>22</value>
-  </data>
-  <data name="label5.Text" xml:space="preserve">
-    <value>Format:</value>
-  </data>
-  <data name="label5.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
-    <value>TopRight</value>
-  </data>
-  <data name="&gt;&gt;label5.Name" xml:space="preserve">
-    <value>label5</value>
-  </data>
-  <data name="&gt;&gt;label5.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label5.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;label5.ZOrder" xml:space="preserve">
-    <value>8</value>
-  </data>
-  <data name="radioButtonJpg.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="radioButtonJpg.Location" type="System.Drawing.Point, System.Drawing">
-    <value>60, 136</value>
-  </data>
-  <data name="radioButtonJpg.Size" type="System.Drawing.Size, System.Drawing">
-    <value>45, 16</value>
-  </data>
-  <data name="radioButtonJpg.TabIndex" type="System.Int32, mscorlib">
-    <value>23</value>
-  </data>
-  <data name="radioButtonJpg.Text" xml:space="preserve">
-    <value>JPG</value>
-  </data>
-  <data name="&gt;&gt;radioButtonJpg.Name" xml:space="preserve">
-    <value>radioButtonJpg</value>
-  </data>
-  <data name="&gt;&gt;radioButtonJpg.Type" xml:space="preserve">
-    <value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;radioButtonJpg.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;radioButtonJpg.ZOrder" xml:space="preserve">
-    <value>7</value>
-  </data>
-  <data name="radioButtonPng.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="radioButtonPng.Location" type="System.Drawing.Point, System.Drawing">
-    <value>111, 136</value>
-  </data>
-  <data name="radioButtonPng.Size" type="System.Drawing.Size, System.Drawing">
-    <value>46, 16</value>
-  </data>
-  <data name="radioButtonPng.TabIndex" type="System.Int32, mscorlib">
-    <value>24</value>
-  </data>
-  <data name="radioButtonPng.Text" xml:space="preserve">
-    <value>PNG</value>
-  </data>
-  <data name="&gt;&gt;radioButtonPng.Name" xml:space="preserve">
-    <value>radioButtonPng</value>
-  </data>
-  <data name="&gt;&gt;radioButtonPng.Type" xml:space="preserve">
-    <value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;radioButtonPng.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;radioButtonPng.ZOrder" xml:space="preserve">
-    <value>6</value>
-  </data>
-  <data name="label6.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="label6.Location" type="System.Drawing.Point, System.Drawing">
-    <value>12, 40</value>
-  </data>
-  <data name="label6.Size" type="System.Drawing.Size, System.Drawing">
-    <value>64, 12</value>
-  </data>
-  <data name="label6.TabIndex" type="System.Int32, mscorlib">
-    <value>25</value>
-  </data>
-  <data name="label6.Text" xml:space="preserve">
-    <value>Ring buffer:</value>
-  </data>
-  <data name="&gt;&gt;label6.Name" xml:space="preserve">
-    <value>label6</value>
-  </data>
-  <data name="&gt;&gt;label6.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label6.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;label6.ZOrder" xml:space="preserve">
-    <value>5</value>
-  </data>
-  <data name="textBoxRingBuffer.Location" type="System.Drawing.Point, System.Drawing">
-    <value>81, 37</value>
-  </data>
-  <data name="textBoxRingBuffer.Size" type="System.Drawing.Size, System.Drawing">
-    <value>35, 19</value>
-  </data>
-  <data name="textBoxRingBuffer.TabIndex" type="System.Int32, mscorlib">
-    <value>26</value>
-  </data>
-  <data name="textBoxRingBuffer.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
-    <value>Right</value>
-  </data>
-  <data name="&gt;&gt;textBoxRingBuffer.Name" xml:space="preserve">
-    <value>textBoxRingBuffer</value>
-  </data>
-  <data name="&gt;&gt;textBoxRingBuffer.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;textBoxRingBuffer.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;textBoxRingBuffer.ZOrder" xml:space="preserve">
-    <value>4</value>
-  </data>
-  <data name="label7.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="label7.Location" type="System.Drawing.Point, System.Drawing">
-    <value>118, 40</value>
-  </data>
-  <data name="label7.Size" type="System.Drawing.Size, System.Drawing">
-    <value>40, 12</value>
-  </data>
-  <data name="label7.TabIndex" type="System.Int32, mscorlib">
-    <value>27</value>
-  </data>
-  <data name="label7.Text" xml:space="preserve">
-    <value>frames</value>
-  </data>
-  <data name="&gt;&gt;label7.Name" xml:space="preserve">
-    <value>label7</value>
-  </data>
-  <data name="&gt;&gt;label7.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label7.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;label7.ZOrder" xml:space="preserve">
-    <value>3</value>
-  </data>
-  <data name="label8.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="label8.Location" type="System.Drawing.Point, System.Drawing">
-    <value>14, 162</value>
-  </data>
-  <data name="label8.Size" type="System.Drawing.Size, System.Drawing">
-    <value>64, 12</value>
-  </data>
-  <data name="label8.TabIndex" type="System.Int32, mscorlib">
-    <value>28</value>
-  </data>
-  <data name="label8.Text" xml:space="preserve">
-    <value>Continuous:</value>
-  </data>
-  <data name="&gt;&gt;label8.Name" xml:space="preserve">
-    <value>label8</value>
-  </data>
-  <data name="&gt;&gt;label8.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label8.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;label8.ZOrder" xml:space="preserve">
-    <value>2</value>
-  </data>
-  <data name="checkBoxAnimationGif.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="checkBoxAnimationGif.Location" type="System.Drawing.Point, System.Drawing">
-    <value>84, 161</value>
-  </data>
-  <data name="checkBoxAnimationGif.Size" type="System.Drawing.Size, System.Drawing">
-    <value>140, 16</value>
-  </data>
-  <data name="checkBoxAnimationGif.TabIndex" type="System.Int32, mscorlib">
-    <value>29</value>
-  </data>
-  <data name="checkBoxAnimationGif.Text" xml:space="preserve">
-    <value>Save as animation GIF</value>
-  </data>
-  <data name="&gt;&gt;checkBoxAnimationGif.Name" xml:space="preserve">
-    <value>checkBoxAnimationGif</value>
-  </data>
-  <data name="&gt;&gt;checkBoxAnimationGif.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;checkBoxAnimationGif.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;checkBoxAnimationGif.ZOrder" xml:space="preserve">
-    <value>1</value>
-  </data>
-  <data name="checkBoxDailyFolder.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="checkBoxDailyFolder.Location" type="System.Drawing.Point, System.Drawing">
-    <value>60, 113</value>
-  </data>
-  <data name="checkBoxDailyFolder.Size" type="System.Drawing.Size, System.Drawing">
-    <value>173, 16</value>
-  </data>
-  <data name="checkBoxDailyFolder.TabIndex" type="System.Int32, mscorlib">
-    <value>0</value>
-  </data>
-  <data name="checkBoxDailyFolder.Text" xml:space="preserve">
-    <value>Create a folder for each date</value>
-  </data>
-  <data name="&gt;&gt;checkBoxDailyFolder.Name" xml:space="preserve">
-    <value>checkBoxDailyFolder</value>
-  </data>
-  <data name="&gt;&gt;checkBoxDailyFolder.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;checkBoxDailyFolder.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;checkBoxDailyFolder.ZOrder" xml:space="preserve">
-    <value>0</value>
-  </data>
-  <metadata name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>ja</value>
-  </metadata>
-  <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
-    <value>6, 12</value>
-  </data>
-  <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
-    <value>274, 223</value>
-  </data>
-  <data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
-    <value>CenterParent</value>
-  </data>
-  <data name="$this.Text" xml:space="preserve">
-    <value>BurageSnap 1.4 - Options</value>
-  </data>
-  <data name="&gt;&gt;folderBrowserDialog.Name" xml:space="preserve">
-    <value>folderBrowserDialog</value>
-  </data>
-  <data name="&gt;&gt;folderBrowserDialog.Type" xml:space="preserve">
-    <value>System.Windows.Forms.FolderBrowserDialog, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;$this.Name" xml:space="preserve">
-    <value>OptionDialog</value>
-  </data>
-  <data name="&gt;&gt;$this.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/BurageSnap/Program.cs b/BurageSnap/Program.cs
deleted file mode 100644 (file)
index efd270b..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-// Copyright (C) 2015 Kazuhiro Fujieda <fujieda@users.osdn.me>
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//    http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-using System;
-using System.Diagnostics;
-using System.Linq;
-using System.Runtime.InteropServices;
-using System.Windows.Forms;
-
-namespace BurageSnap
-{
-    internal static class Program
-    {
-        /// <summary>
-        /// アプリケーションのメイン エントリ ポイントです。
-        /// </summary>
-        [STAThread]
-        private static void Main()
-        {
-            if (ProcessAlreadyExists())
-                return;
-            Application.EnableVisualStyles();
-            Application.SetCompatibleTextRenderingDefault(false);
-            Application.Run(new FormMain());
-        }
-
-        public static bool ProcessAlreadyExists()
-        {
-            var cur = Process.GetCurrentProcess();
-            var all = Process.GetProcessesByName(cur.ProcessName);
-            var proc = all.FirstOrDefault(p => p.Id != cur.Id && p.MainModule.FileName == cur.MainModule.FileName);
-            if (proc == null)
-                return false;
-            var hWnd = proc.MainWindowHandle;
-
-            if (IsIconic(hWnd))
-                ShowWindowAsync(hWnd, 9); // SW_RESTORE
-            else
-                SetForegroundWindow(hWnd);
-            return true;
-        }
-
-        [DllImport("user32.dll")]
-        private static extern bool SetForegroundWindow(IntPtr hWnd);
-
-        [DllImport("user32.dll")]
-        private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
-
-        [DllImport("user32.dll")]
-        private static extern bool IsIconic(IntPtr hWnd);
-    }
-}
\ No newline at end of file
index a6ca078..60f2fb4 100644 (file)
@@ -1,5 +1,8 @@
 using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
+using System.Windows;
 
 // アセンブリに関する一般情報は以下の属性セットをとおして制御されます。
 // アセンブリに関連付けられている情報を変更するには、
@@ -7,19 +10,36 @@ using System.Runtime.InteropServices;
 [assembly: AssemblyTitle("BurageSnap")]
 [assembly: AssemblyDescription("")]
 [assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
+[assembly: AssemblyCompany("Microsoft")]
 [assembly: AssemblyProduct("BurageSnap")]
-[assembly: AssemblyCopyright("Copyright © 2015 Kazuhiro Fujieda")]
+[assembly: AssemblyCopyright("Copyright © Kazuhiro Fujieda 2015")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
 
-// ComVisible を false に設定すると、その型はこのアセンブリ内で COM コンポーネントから 
+// ComVisible を false に設定すると、その型はこのアセンブリ内で COM コンポーネントから
 // 参照不可能になります。COM からこのアセンブリ内の型にアクセスする場合は、
 // その型の ComVisible 属性を true に設定してください。
 [assembly: ComVisible(false)]
 
-// このプロジェクトが COM に公開される場合、次の GUID が typelib の ID になります
-[assembly: Guid("78d1e361-7242-4edb-a69e-d477c396a68d")]
+//ローカライズ可能なアプリケーションのビルドを開始するには、
+//.csproj ファイルの <UICulture>CultureYouAreCodingWith</UICulture> を
+//<PropertyGroup> 内部で設定します。たとえば、
+//ソース ファイルで英語を使用している場合、<UICulture> を en-US に設定します。次に、
+//下の NeutralResourceLanguage 属性のコメントを解除します。下の行の "en-US" を
+//プロジェクト ファイルの UICulture 設定と一致するよう更新します。
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly: ThemeInfo(
+    ResourceDictionaryLocation.None, //テーマ固有のリソース ディクショナリが置かれている場所
+                                     //(リソースがページ、
+                                     //またはアプリケーション リソース ディクショナリに見つからない場合に使用されます)
+    ResourceDictionaryLocation.SourceAssembly //汎用リソース ディクショナリが置かれている場所
+                                              //(リソースがページ、
+                                              //アプリケーション、またはいずれのテーマ固有のリソース ディクショナリにも見つからない場合に使用されます)
+)]
+
 
 // アセンブリのバージョン情報は次の 4 つの値で構成されています:
 //
@@ -31,5 +51,5 @@ using System.Runtime.InteropServices;
 // すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を 
 // 既定値にすることができます:
 // [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.10.0.0")]
-[assembly: AssemblyFileVersion("1.10.0.0")]
+[assembly: AssemblyVersion("2.0.0.0")]
+[assembly: AssemblyFileVersion("2.0.0.0")]
index 9108677..31d5587 100644 (file)
@@ -22,7 +22,7 @@ namespace BurageSnap.Properties {
     [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class Resources {
+    public class Resources {
         
         private static global::System.Resources.ResourceManager resourceMan;
         
@@ -36,7 +36,7 @@ namespace BurageSnap.Properties {
         ///   このクラスで使用されているキャッシュされた ResourceManager インスタンスを返します。
         /// </summary>
         [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
+        public static global::System.Resources.ResourceManager ResourceManager {
             get {
                 if (object.ReferenceEquals(resourceMan, null)) {
                     global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("BurageSnap.Properties.Resources", typeof(Resources).Assembly);
@@ -51,7 +51,7 @@ namespace BurageSnap.Properties {
         ///   現在のスレッドの CurrentUICulture プロパティをオーバーライドします。
         /// </summary>
         [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
+        public static global::System.Globalization.CultureInfo Culture {
             get {
                 return resourceCulture;
             }
@@ -63,7 +63,7 @@ namespace BurageSnap.Properties {
         /// <summary>
         ///   型 System.Drawing.Bitmap のローカライズされたリソースを検索します。
         /// </summary>
-        internal static System.Drawing.Bitmap cogs {
+        public static System.Drawing.Bitmap cogs {
             get {
                 object obj = ResourceManager.GetObject("cogs", resourceCulture);
                 return ((System.Drawing.Bitmap)(obj));
@@ -71,92 +71,110 @@ namespace BurageSnap.Properties {
         }
         
         /// <summary>
-        ///   型 System.Drawing.Bitmap のローカライズされたリソースを検索します。
+        ///   Output the images? に類似しているローカライズされた文字列を検索します。
         /// </summary>
-        internal static System.Drawing.Bitmap folder_open {
+        public static string ConfirmView_Message {
             get {
-                object obj = ResourceManager.GetObject("folder_open", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
+                return ResourceManager.GetString("ConfirmView_Message", resourceCulture);
             }
         }
         
         /// <summary>
-        ///   型 System.Drawing.Bitmap のローカライズされたリソースを検索します。
+        ///   No に類似しているローカライズされた文字列を検索します。
         /// </summary>
-        internal static System.Drawing.Bitmap folder_open_16 {
+        public static string ConfirmView_No {
             get {
-                object obj = ResourceManager.GetObject("folder_open_16", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
+                return ResourceManager.GetString("ConfirmView_No", resourceCulture);
             }
         }
         
         /// <summary>
-        ///   Start に類似しているローカライズされた文字列を検索します。
+        ///   Confirm に類似しているローカライズされた文字列を検索します。
         /// </summary>
-        internal static string FormMain_buttonCapture_Click_Start {
+        public static string ConfirmView_Title {
             get {
-                return ResourceManager.GetString("FormMain_buttonCapture_Click_Start", resourceCulture);
+                return ResourceManager.GetString("ConfirmView_Title", resourceCulture);
             }
         }
         
         /// <summary>
-        ///   Stop に類似しているローカライズされた文字列を検索します。
+        ///   Yes に類似しているローカライズされた文字列を検索します。
+        /// </summary>
+        public static string ConfirmView_Yes {
+            get {
+                return ResourceManager.GetString("ConfirmView_Yes", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   型 System.Drawing.Bitmap のローカライズされたリソースを検索します。
+        /// </summary>
+        public static System.Drawing.Bitmap folder_open {
+            get {
+                object obj = ResourceManager.GetObject("folder_open", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   型 System.Drawing.Bitmap のローカライズされたリソースを検索します。
         /// </summary>
-        internal static string FormMain_buttonCapture_Click_Stop {
+        public static System.Drawing.Bitmap folder_open_16 {
             get {
-                return ResourceManager.GetString("FormMain_buttonCapture_Click_Stop", resourceCulture);
+                object obj = ResourceManager.GetObject("folder_open_16", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
             }
         }
         
         /// <summary>
         ///   Capture に類似しているローカライズされた文字列を検索します。
         /// </summary>
-        internal static string FormMain_checkBoxContinuous_CheckedChanged_Capture {
+        public static string MainWindow_Capture {
             get {
-                return ResourceManager.GetString("FormMain_checkBoxContinuous_CheckedChanged_Capture", resourceCulture);
+                return ResourceManager.GetString("MainWindow_Capture", resourceCulture);
             }
         }
         
         /// <summary>
-        ///   The size of the ring buffer must be grater than 0 to generate animation GIF. に類似しているローカライズされた文字列を検索します。
+        ///   Burst に類似しているローカライズされた文字列を検索します。
         /// </summary>
-        internal static string OptionDialog_buttonOk_Click_Ring_buffer_for_animation_GIF {
+        public static string MainWindow_Continuous {
             get {
-                return ResourceManager.GetString("OptionDialog_buttonOk_Click_Ring_buffer_for_animation_GIF", resourceCulture);
+                return ResourceManager.GetString("MainWindow_Continuous", resourceCulture);
             }
         }
         
         /// <summary>
-        ///    - Options に類似しているローカライズされた文字列を検索します。
+        ///   Last snap に類似しているローカライズされた文字列を検索します。
         /// </summary>
-        internal static string OptionDialog_OptionDialog_Load_Options {
+        public static string MainWindow_Last_snap {
             get {
-                return ResourceManager.GetString("OptionDialog_OptionDialog_Load_Options", resourceCulture);
+                return ResourceManager.GetString("MainWindow_Last_snap", resourceCulture);
             }
         }
         
         /// <summary>
-        ///   Interval must be in the range of 10 ms to 1000 sec. に類似しているローカライズされた文字列を検索します。
+        ///   Start に類似しているローカライズされた文字列を検索します。
         /// </summary>
-        internal static string OptionDialog_textBoxInterval_Validating_Interval {
+        public static string MainWindow_Start {
             get {
-                return ResourceManager.GetString("OptionDialog_textBoxInterval_Validating_Interval", resourceCulture);
+                return ResourceManager.GetString("MainWindow_Start", resourceCulture);
             }
         }
         
         /// <summary>
-        ///   The size of the ring buffer must be in the range of 0 to 100. に類似しているローカライズされた文字列を検索します。
+        ///   Stop に類似しているローカライズされた文字列を検索します。
         /// </summary>
-        internal static string OptionDialog_textBoxRingBuffer_Validating {
+        public static string MainWindow_Stop {
             get {
-                return ResourceManager.GetString("OptionDialog_textBoxRingBuffer_Validating", resourceCulture);
+                return ResourceManager.GetString("MainWindow_Stop", resourceCulture);
             }
         }
         
         /// <summary>
         ///   detect error に類似しているローカライズされた文字列を検索します。
         /// </summary>
-        internal static string Recorder_CaptureFrame_detect_error {
+        public static string Recorder_CaptureFrame_detect_error {
             get {
                 return ResourceManager.GetString("Recorder_CaptureFrame_detect_error", resourceCulture);
             }
@@ -165,7 +183,7 @@ namespace BurageSnap.Properties {
         /// <summary>
         ///   I/O Error に類似しているローカライズされた文字列を検索します。
         /// </summary>
-        internal static string Recorder_IO_Error {
+        public static string Recorder_IO_Error {
             get {
                 return ResourceManager.GetString("Recorder_IO_Error", resourceCulture);
             }
index 421ade2..788df1c 100644 (file)
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
-  <data name="FormMain_buttonCapture_Click_Start" xml:space="preserve">
+  <data name="MainWindow_Start" xml:space="preserve">
     <value>開始</value>
   </data>
-  <data name="FormMain_buttonCapture_Click_Stop" xml:space="preserve">
+  <data name="MainWindow_Stop" xml:space="preserve">
     <value>停止</value>
   </data>
-  <data name="FormMain_checkBoxContinuous_CheckedChanged_Capture" xml:space="preserve">
+  <data name="MainWindow_Capture" xml:space="preserve">
     <value>撮影</value>
   </data>
-  <data name="OptionDialog_textBoxInterval_Validating_Interval" xml:space="preserve">
-    <value>間隔は10msから1000秒の間で指定してください。</value>
-  </data>
-  <data name="OptionDialog_textBoxRingBuffer_Validating" xml:space="preserve">
-    <value>フレームバッファのサイズは0から100の間で指定してください。</value>
-  </data>
-  <data name="OptionDialog_buttonOk_Click_Ring_buffer_for_animation_GIF" xml:space="preserve">
-    <value>アニメーションGIFを出力するにはリングバッファのサイズを0より大きくしてください。</value>
-  </data>
   <data name="Recorder_IO_Error" xml:space="preserve">
     <value>I/Oエラー</value>
   </data>
   <data name="Recorder_CaptureFrame_detect_error" xml:space="preserve">
     <value>検出エラー</value>
   </data>
-  <data name="OptionDialog_OptionDialog_Load_Options" xml:space="preserve">
-    <value> - オプション</value>
+  <data name="ConfirmView_Message" xml:space="preserve">
+    <value>画像を出力しますか?</value>
+  </data>
+  <data name="ConfirmView_No" xml:space="preserve">
+    <value>いいえ</value>
+  </data>
+  <data name="ConfirmView_Title" xml:space="preserve">
+    <value>確認</value>
+  </data>
+  <data name="ConfirmView_Yes" xml:space="preserve">
+    <value>はい</value>
+  </data>
+  <data name="MainWindow_Continuous" xml:space="preserve">
+    <value>連射</value>
+  </data>
+  <data name="MainWindow_Last_snap" xml:space="preserve">
+    <value>撮影時刻</value>
   </data>
 </root>
\ No newline at end of file
index ac2ffe4..e3eb7e6 100644 (file)
   <data name="cogs" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\cogs.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="FormMain_buttonCapture_Click_Stop" xml:space="preserve">
+  <data name="MainWindow_Stop" xml:space="preserve">
     <value>Stop</value>
   </data>
-  <data name="FormMain_buttonCapture_Click_Start" xml:space="preserve">
+  <data name="MainWindow_Start" xml:space="preserve">
     <value>Start</value>
   </data>
-  <data name="FormMain_checkBoxContinuous_CheckedChanged_Capture" xml:space="preserve">
+  <data name="MainWindow_Capture" xml:space="preserve">
     <value>Capture</value>
   </data>
-  <data name="OptionDialog_textBoxInterval_Validating_Interval" xml:space="preserve">
-    <value>Interval must be in the range of 10 ms to 1000 sec.</value>
-  </data>
-  <data name="OptionDialog_textBoxRingBuffer_Validating" xml:space="preserve">
-    <value>The size of the ring buffer must be in the range of 0 to 100.</value>
-  </data>
-  <data name="OptionDialog_buttonOk_Click_Ring_buffer_for_animation_GIF" xml:space="preserve">
-    <value>The size of the ring buffer must be grater than 0 to generate animation GIF.</value>
-  </data>
   <data name="Recorder_IO_Error" xml:space="preserve">
     <value>I/O Error</value>
   </data>
   <data name="Recorder_CaptureFrame_detect_error" xml:space="preserve">
     <value>detect error</value>
   </data>
-  <data name="OptionDialog_OptionDialog_Load_Options" xml:space="preserve">
-    <value> - Options</value>
+  <data name="ConfirmView_Message" xml:space="preserve">
+    <value>Output the images?</value>
+  </data>
+  <data name="ConfirmView_No" xml:space="preserve">
+    <value>No</value>
+  </data>
+  <data name="ConfirmView_Title" xml:space="preserve">
+    <value>Confirm</value>
+  </data>
+  <data name="ConfirmView_Yes" xml:space="preserve">
+    <value>Yes</value>
+  </data>
+  <data name="MainWindow_Continuous" xml:space="preserve">
+    <value>Burst</value>
+  </data>
+  <data name="MainWindow_Last_snap" xml:space="preserve">
+    <value>Last snap</value>
   </data>
 </root>
\ No newline at end of file
index bd4da34..2e03942 100644 (file)
@@ -1,24 +1,28 @@
 //------------------------------------------------------------------------------
 // <auto-generated>
-//     このコードはツールによって生成されました。
-//     ランタイム バージョン:4.0.30319.42000
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
 //
-//     このファイルへの変更は、以下の状況下で不正な動作の原因になったり、
-//     コードが再生成されるときに損失したりします。
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
 // </auto-generated>
 //------------------------------------------------------------------------------
 
-namespace BurageSnap.Properties {
-    
-    
+namespace BurageSnap.Properties
+{
+
+
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
-    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
-        
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+    {
+
         private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
-        
-        public static Settings Default {
-            get {
+
+        public static Settings Default
+        {
+            get
+            {
                 return defaultInstance;
             }
         }
index 3964565..033d7a5 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding='utf-8'?>
-<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
+<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
   <Profiles>
     <Profile Name="(Default)" />
   </Profiles>
   <Settings />
-</SettingsFile>
+</SettingsFile>
\ No newline at end of file
diff --git a/BurageSnap/app_16.ico b/BurageSnap/app_16.ico
new file mode 100644 (file)
index 0000000..d184214
Binary files /dev/null and b/BurageSnap/app_16.ico differ
diff --git a/BurageSnap/packages.config b/BurageSnap/packages.config
new file mode 100644 (file)
index 0000000..5045b82
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="CommonServiceLocator" version="1.3" targetFramework="net452" />
+  <package id="MahApps.Metro" version="1.2.4.0" targetFramework="net452" />
+  <package id="Prism.Core" version="6.1.0" targetFramework="net452" />
+  <package id="Prism.Wpf" version="6.1.0" targetFramework="net452" />
+</packages>
\ No newline at end of file