31 changed files
BEHelper | ||
Properties | ||
AssemblyInfo.cs + | ||
AsyncContext.cs + | ||
AsyncObservableCollection.cs + | ||
BEHelper.csproj + | ||
IAsyncContext.cs + | ||
NoFlickerWindowsFormsHost.cs + | ||
TransPicBox.cs + | ||
BExplorer/BetterExplorer | ||
Application | ||
AppCommands.cs | ||
themes | ||
generic.xaml | ||
BetterExplorer.csproj | ||
BetterExplorer.csproj.user | ||
MainWindow.xaml | ||
MainWindow.xaml.cs | ||
ConsoleControl | ||
ConsoleControl.cs | ||
Windows API Code Pack 1.1/source/WindowsAPICodePack/Shell/ExplorerBrowser | ||
ExplorerBrowser.cs | ||
SubClass.cs | ||
WpfControlLibrary1 | ||
BetterExplorerControls.csproj | ||
PreviewPane.xaml + | ||
PreviewPane.xaml.cs + | ||
TranslationComboBoxItem.xaml | ||
TranslationComboBoxItem.xaml.cs | ||
WpfDocumentPreviewer | ||
Properties | ||
AssemblyInfo.cs + | ||
Resources.Designer.cs + | ||
Resources.resx + | ||
Settings.Designer.cs + | ||
Settings.settings + | ||
PreviewControl.xaml + | ||
PreviewControl.xaml.cs + | ||
PreviewHandler.cs + | ||
WpfDocumentPreviewer.csproj + | ||
BExplorer.sln | ||
Add comment 1 Plus using System.Reflection;
Add comment 2 Plus using System.Runtime.CompilerServices;
Add comment 3 Plus using System.Runtime.InteropServices;
Add comment 4 Plus
Add comment 5 Plus // General Information about an assembly is controlled through the following
Add comment 6 Plus // set of attributes. Change these attribute values to modify the information
Add comment 7 Plus // associated with an assembly.
Add comment 8 Plus [assembly: AssemblyTitle("BEHelper")]
Add comment 9 Plus [assembly: AssemblyDescription("")]
Add comment 10 Plus [assembly: AssemblyConfiguration("")]
Add comment 11 Plus [assembly: AssemblyCompany("")]
Add comment 12 Plus [assembly: AssemblyProduct("BEHelper")]
Add comment 13 Plus [assembly: AssemblyCopyright("Copyright © 2013")]
Add comment 14 Plus [assembly: AssemblyTrademark("")]
Add comment 15 Plus [assembly: AssemblyCulture("")]
Add comment 16 Plus
Add comment 17 Plus // Setting ComVisible to false makes the types in this assembly not visible
Add comment 18 Plus // to COM components. If you need to access a type in this assembly from
Add comment 19 Plus // COM, set the ComVisible attribute to true on that type.
Add comment 20 Plus [assembly: ComVisible(false)]
Add comment 21 Plus
Add comment 22 Plus // The following GUID is for the ID of the typelib if this project is exposed to COM
Add comment 23 Plus [assembly: Guid("3595b7eb-f7a1-4b6d-8df7-d0230dbe12b6")]
Add comment 24 Plus
Add comment 25 Plus // Version information for an assembly consists of the following four values:
Add comment 26 Plus //
Add comment 27 Plus // Major Version
Add comment 28 Plus // Minor Version
Add comment 29 Plus // Build Number
Add comment 30 Plus // Revision
Add comment 31 Plus //
Add comment 32 Plus // You can specify all the values or you can default the Build and Revision Numbers
Add comment 33 Plus // by using the '*' as shown below:
Add comment 34 Plus // [assembly: AssemblyVersion("1.0.*")]
Add comment 35 Plus [assembly: AssemblyVersion("1.0.0.0")]
Add comment 36 Plus [assembly: AssemblyFileVersion("1.0.0.0")]
Add comment 37 Plus
Add comment 1 Plus using System;
Add comment 2 Plus using System.Collections.Generic;
Add comment 3 Plus using System.Linq;
Add comment 4 Plus using System.Threading;
Add comment 5 Plus
Add comment 6 Plus namespace BEHelper
Add comment 7 Plus {
Add comment 8 Plus public class AsyncContext : IAsyncContext
Add comment 9 Plus {
Add comment 10 Plus private readonly SynchronizationContext _asynchronizationContext;
Add comment 11 Plus
Add comment 12 Plus ///
Add comment 13 Plus /// Constructor - Save the context of the creator/current thread
Add comment 14 Plus ///
Add comment 15 Plus public AsyncContext()
Add comment 16 Plus {
Add comment 17 Plus _asynchronizationContext = SynchronizationContext.Current;
Add comment 18 Plus }
Add comment 19 Plus
Add comment 20 Plus ///
Add comment 21 Plus /// Get the context of the creator thread
Add comment 22 Plus ///
Add comment 23 Plus public SynchronizationContext AsynchronizationContext
Add comment 24 Plus {
Add comment 25 Plus get { return _asynchronizationContext; }
Add comment 26 Plus }
Add comment 27 Plus
Add comment 28 Plus ///
Add comment 29 Plus /// Test if the current executing thread is the creator thread
Add comment 30 Plus ///
Add comment 31 Plus public bool IsAsyncCreatorThread
Add comment 32 Plus {
Add comment 33 Plus get { return SynchronizationContext.Current == AsynchronizationContext; }
Add comment 34 Plus }
Add comment 35 Plus
Add comment 36 Plus ///
Add comment 37 Plus /// Post a call to the specified method on the creator thread
Add comment 38 Plus ///
Add comment 39 Plus /// Method that is to be called
Add comment 40 Plus /// Method parameter/state
Add comment 41 Plus public void AsyncPost(SendOrPostCallback callback, object state)
Add comment 42 Plus {
Add comment 43 Plus if (IsAsyncCreatorThread)
Add comment 44 Plus callback(state); // Call the method directly
Add comment 45 Plus else
Add comment 46 Plus AsynchronizationContext.Post(callback, state); // Post on creator thread
Add comment 47 Plus }
Add comment 48 Plus }
Add comment 49 Plus }
Add comment 50 Plus
AsyncObservableCollection.cs
/BEHelper/AsyncObservableCollection.cs+47/BEHelper/AsyncObservableCollection.cs
Add comment 1 Plus using System;
Add comment 2 Plus using System.Collections.Generic;
Add comment 3 Plus using System.Collections.ObjectModel;
Add comment 4 Plus using System.Collections.Specialized;
Add comment 5 Plus using System.ComponentModel;
Add comment 6 Plus using System.Linq;
Add comment 7 Plus using System.Threading;
Add comment 8 Plus
Add comment 9 Plus namespace BEHelper
Add comment 10 Plus {
Add comment 11 Plus public class AsyncObservableCollection<T> : ObservableCollection<T>, IAsyncContext
Add comment 12 Plus {
Add comment 13 Plus private readonly AsyncContext _asyncContext = new AsyncContext();
Add comment 14 Plus
Add comment 15 Plus #region IAsyncContext Members
Add comment 16 Plus public SynchronizationContext AsynchronizationContext { get { return _asyncContext.AsynchronizationContext; } }
Add comment 17 Plus public bool IsAsyncCreatorThread { get { return _asyncContext.IsAsyncCreatorThread; } }
Add comment 18 Plus public void AsyncPost(SendOrPostCallback callback, object state) { _asyncContext.AsyncPost(callback, state); }
Add comment 19 Plus #endregion
Add comment 20 Plus
Add comment 21 Plus public AsyncObservableCollection() { }
Add comment 22 Plus
Add comment 23 Plus public AsyncObservableCollection(IEnumerable<T> list) : base(list) { }
Add comment 24 Plus public AsyncObservableCollection(List<T> list) : base(list) { }
Add comment 25 Plus
Add comment 26 Plus protected override void OnCollectionChanged(NotifyCollectionChangedEventArgs e)
Add comment 27 Plus {
Add comment 28 Plus AsyncPost(RaiseCollectionChanged, e);
Add comment 29 Plus }
Add comment 30 Plus
Add comment 31 Plus private void RaiseCollectionChanged(object param)
Add comment 32 Plus {
Add comment 33 Plus base.OnCollectionChanged((NotifyCollectionChangedEventArgs)param);
Add comment 34 Plus }
Add comment 35 Plus
Add comment 36 Plus protected override void OnPropertyChanged(PropertyChangedEventArgs e)
Add comment 37 Plus {
Add comment 38 Plus AsyncPost(RaisePropertyChanged, e);
Add comment 39 Plus }
Add comment 40 Plus
Add comment 41 Plus private void RaisePropertyChanged(object param)
Add comment 42 Plus {
Add comment 43 Plus base.OnPropertyChanged((PropertyChangedEventArgs)param);
Add comment 44 Plus }
Add comment 45 Plus }
Add comment 46 Plus }
Add comment 47 Plus
Add comment 1 Plus <?xml version="1.0" encoding="utf-8"?>
Add comment 2 Plus <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
Add comment 3 Plus <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
Add comment 4 Plus <PropertyGroup>
Add comment 5 Plus <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
Add comment 6 Plus <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
Add comment 7 Plus <ProjectGuid>{6942FB86-F12F-43AE-8E6D-D4186CE7CB81}</ProjectGuid>
Add comment 8 Plus <OutputType>Library</OutputType>
Add comment 9 Plus <AppDesignerFolder>Properties</AppDesignerFolder>
Add comment 10 Plus <RootNamespace>BEHelper</RootNamespace>
Add comment 11 Plus <AssemblyName>BEHelper</AssemblyName>
Add comment 12 Plus <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
Add comment 13 Plus <FileAlignment>512</FileAlignment>
Add comment 14 Plus </PropertyGroup>
Add comment 15 Plus <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
Add comment 16 Plus <DebugSymbols>true</DebugSymbols>
Add comment 17 Plus <DebugType>full</DebugType>
Add comment 18 Plus <Optimize>false</Optimize>
Add comment 19 Plus <OutputPath>bin\Debug\</OutputPath>
Add comment 20 Plus <DefineConstants>DEBUG;TRACE</DefineConstants>
Add comment 21 Plus <ErrorReport>prompt</ErrorReport>
Add comment 22 Plus <WarningLevel>4</WarningLevel>
Add comment 23 Plus </PropertyGroup>
Add comment 24 Plus <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
Add comment 25 Plus <DebugType>pdbonly</DebugType>
Add comment 26 Plus <Optimize>true</Optimize>
Add comment 27 Plus <OutputPath>bin\Release\</OutputPath>
Add comment 28 Plus <DefineConstants>TRACE</DefineConstants>
Add comment 29 Plus <ErrorReport>prompt</ErrorReport>
Add comment 30 Plus <WarningLevel>4</WarningLevel>
Add comment 31 Plus </PropertyGroup>
Add comment 32 Plus <ItemGroup>
Add comment 33 Plus <Reference Include="PresentationCore" />
Add comment 34 Plus <Reference Include="PresentationFramework" />
Add comment 35 Plus <Reference Include="System" />
Add comment 36 Plus <Reference Include="System.Core" />
Add comment 37 Plus <Reference Include="System.Drawing" />
Add comment 38 Plus <Reference Include="System.Windows.Forms" />
Add comment 39 Plus <Reference Include="System.Xaml" />
Add comment 40 Plus <Reference Include="System.Xml.Linq" />
Add comment 41 Plus <Reference Include="System.Data.DataSetExtensions" />
Add comment 42 Plus <Reference Include="Microsoft.CSharp" />
Add comment 43 Plus <Reference Include="System.Data" />
Add comment 44 Plus <Reference Include="System.Xml" />
Add comment 45 Plus <Reference Include="WindowsBase" />
Add comment 46 Plus <Reference Include="WindowsFormsIntegration" />
Add comment 47 Plus </ItemGroup>
Add comment 48 Plus <ItemGroup>
Add comment 49 Plus <Compile Include="AsyncContext.cs" />
Add comment 50 Plus <Compile Include="AsyncObservableCollection.cs" />
Add comment 51 Plus <Compile Include="TransPicBox.cs">
Add comment 52 Plus <SubType>Component</SubType>
Add comment 53 Plus </Compile>
Add comment 54 Plus <Compile Include="IAsyncContext.cs" />
Add comment 55 Plus <Compile Include="NoFlickerWindowsFormsHost.cs" />
Add comment 56 Plus <Compile Include="Properties\AssemblyInfo.cs" />
Add comment 57 Plus </ItemGroup>
Add comment 58 Plus <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Add comment 59 Plus <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Add comment 60 Plus Other similar extension points exist, see Microsoft.Common.targets.
Add comment 61 Plus <Target Name="BeforeBuild">
Add comment 62 Plus </Target>
Add comment 63 Plus <Target Name="AfterBuild">
Add comment 64 Plus </Target>
Add comment 65 Plus -->
Add comment 66 Plus </Project>
Add comment 1 Plus using System;
Add comment 2 Plus using System.Collections.Generic;
Add comment 3 Plus using System.Linq;
Add comment 4 Plus using System.Threading;
Add comment 5 Plus
Add comment 6 Plus namespace BEHelper
Add comment 7 Plus {
Add comment 8 Plus public interface IAsyncContext
Add comment 9 Plus {
Add comment 10 Plus /// <summary>
Add comment 11 Plus /// Get the context of the creator thread
Add comment 12 Plus /// </summary>
Add comment 13 Plus SynchronizationContext AsynchronizationContext { get; }
Add comment 14 Plus
Add comment 15 Plus /// <summary>
Add comment 16 Plus /// Test if the current executing thread is the creator thread
Add comment 17 Plus /// </summary>
Add comment 18 Plus bool IsAsyncCreatorThread { get; }
Add comment 19 Plus
Add comment 20 Plus /// <summary>
Add comment 21 Plus /// Post a call to the specified method on the creator thread
Add comment 22 Plus /// </summary>
Add comment 23 Plus /// <param name="callback">Method that is to be called</param>
Add comment 24 Plus /// <param name="state">Method parameter/state</param>
Add comment 25 Plus void AsyncPost(SendOrPostCallback callback, object state);
Add comment 26 Plus }
Add comment 27 Plus }
Add comment 28 Plus
NoFlickerWindowsFormsHost.cs
/BEHelper/NoFlickerWindowsFormsHost.cs+39/BEHelper/NoFlickerWindowsFormsHost.cs
Add comment 1 Plus using System;
Add comment 2 Plus using System.Collections.Generic;
Add comment 3 Plus using System.Linq;
Add comment 4 Plus using System.Runtime.InteropServices;
Add comment 5 Plus using System.Text;
Add comment 6 Plus using System.Threading.Tasks;
Add comment 7 Plus using System.Windows;
Add comment 8 Plus using System.Windows.Forms.Integration;
Add comment 9 Plus
Add comment 10 Plus namespace BEHelper
Add comment 11 Plus {
Add comment 12 Plus public class NoFlickerWindowsFormsHost : WindowsFormsHost
Add comment 13 Plus {
Add comment 14 Plus const uint SWP_NOZORDER = 0x0004;
Add comment 15 Plus const uint SWP_NOACTIVATE = 0x0010;
Add comment 16 Plus const uint SWP_ASYNCWINDOWPOS = 0x4000;
Add comment 17 Plus
Add comment 18 Plus [DllImport("user32.dll")]
Add comment 19 Plus extern static bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);
Add comment 20 Plus
Add comment 21 Plus
Add comment 22 Plus protected override void OnWindowPositionChanged(Rect rcBoundingBox)
Add comment 23 Plus {
Add comment 24 Plus if (Handle != IntPtr.Zero)
Add comment 25 Plus {
Add comment 26 Plus SetWindowPos(Handle,
Add comment 27 Plus IntPtr.Zero,
Add comment 28 Plus (int)rcBoundingBox.X,
Add comment 29 Plus (int)rcBoundingBox.Y,
Add comment 30 Plus (int)rcBoundingBox.Width,
Add comment 31 Plus (int)rcBoundingBox.Height,
Add comment 32 Plus SWP_ASYNCWINDOWPOS
Add comment 33 Plus | SWP_NOZORDER
Add comment 34 Plus | SWP_NOACTIVATE);
Add comment 35 Plus }
Add comment 36 Plus }
Add comment 37 Plus }
Add comment 38 Plus }
Add comment 39 Plus
AppCommands.cs
/BExplorer/BetterExplorer/Application/AppCommands.cs/BExplorer/BetterExplorer/Application/AppCommands.cs
generic.xaml
/BExplorer/BetterExplorer/themes/generic.xaml/BExplorer/BetterExplorer/themes/generic.xaml
BetterExplorer.csproj
/BExplorer/BetterExplorer/BetterExplorer.csproj/BExplorer/BetterExplorer/BetterExplorer.csproj
BetterExplorer.csproj.user
/BExplorer/BetterExplorer/BetterExplorer.csproj.user/BExplorer/BetterExplorer/BetterExplorer.csproj.user
MainWindow.xaml
/BExplorer/BetterExplorer/MainWindow.xaml/BExplorer/BetterExplorer/MainWindow.xaml
MainWindow.xaml.cs
/BExplorer/BetterExplorer/MainWindow.xaml.cs/BExplorer/BetterExplorer/MainWindow.xaml.cs
ExplorerBrowser.cs
/Windows API Code Pack 1.1/source/WindowsAPICodePack/Shell/ExplorerBrowser/ExplorerBrowser.cs/Windows API Code Pack 1.1/source/WindowsAPICodePack/Shell/ExplorerBrowser/ExplorerBrowser.cs
SubClass.cs
/Windows API Code Pack 1.1/source/WindowsAPICodePack/Shell/ExplorerBrowser/SubClass.cs/Windows API Code Pack 1.1/source/WindowsAPICodePack/Shell/ExplorerBrowser/SubClass.cs
BetterExplorerControls.csproj
/WpfControlLibrary1/BetterExplorerControls.csproj/WpfControlLibrary1/BetterExplorerControls.csproj
PreviewPane.xaml.cs
/WpfControlLibrary1/PreviewPane.xaml.cs/WpfControlLibrary1/PreviewPane.xaml.cs
TranslationComboBoxItem.xaml
/WpfControlLibrary1/TranslationComboBoxItem.xaml/WpfControlLibrary1/TranslationComboBoxItem.xaml
TranslationComboBoxItem.xaml.cs
/WpfControlLibrary1/TranslationComboBoxItem.xaml.cs/WpfControlLibrary1/TranslationComboBoxItem.xaml.cs
AssemblyInfo.cs
/WpfDocumentPreviewer/Properties/AssemblyInfo.cs/WpfDocumentPreviewer/Properties/AssemblyInfo.cs
Resources.Designer.cs
/WpfDocumentPreviewer/Properties/Resources.Designer.cs/WpfDocumentPreviewer/Properties/Resources.Designer.cs
Resources.resx
/WpfDocumentPreviewer/Properties/Resources.resx/WpfDocumentPreviewer/Properties/Resources.resx
Settings.Designer.cs
/WpfDocumentPreviewer/Properties/Settings.Designer.cs/WpfDocumentPreviewer/Properties/Settings.Designer.cs
Settings.settings
/WpfDocumentPreviewer/Properties/Settings.settings/WpfDocumentPreviewer/Properties/Settings.settings
PreviewControl.xaml
/WpfDocumentPreviewer/PreviewControl.xaml/WpfDocumentPreviewer/PreviewControl.xaml
PreviewControl.xaml.cs
/WpfDocumentPreviewer/PreviewControl.xaml.cs/WpfDocumentPreviewer/PreviewControl.xaml.cs
WpfDocumentPreviewer.csproj
/WpfDocumentPreviewer/WpfDocumentPreviewer.csproj/WpfDocumentPreviewer/WpfDocumentPreviewer.csproj