From 82077caf09f3310b055af702ecd9aa996df6bdee Mon Sep 17 00:00:00 2001 From: S T Chan Date: Sat, 21 Dec 2013 18:03:25 -0500 Subject: [PATCH] periodic commit --- Common/Adobe_CreatePDF_icon.png | Bin 36989 -> 32098 bytes PdfScribe/ActivityNotification.xaml | 3 +- PdfScribe/ActivityNotificationPresenter.cs | 59 ++++++++++++++++--- PdfScribe/App.config | 4 +- PdfScribe/ErrorDialogPresenter.cs | 4 +- PdfScribe/PdfScribe.csproj | 7 ++- PdfScribe/Program.cs | 3 +- PdfScribe/Properties/Resources.Designer.cs | 42 ++++++------- PdfScribe/Properties/Settings.Designer.cs | 20 +++---- PdfScribe/app.manifest | 48 +++++++++++++++ PdfScribeCore/PdfScribeCore.csproj | 3 +- PdfScribeCore/PdfScribeInstaller.cs | 8 ++- PdfScribeUnitTests/App.config | 6 +- PdfScribeUnitTests/PdfScribeUnitTests.csproj | 3 +- PdfScribeUnitTests/UnitTests.cs | 9 ++- 15 files changed, 156 insertions(+), 63 deletions(-) create mode 100644 PdfScribe/app.manifest diff --git a/Common/Adobe_CreatePDF_icon.png b/Common/Adobe_CreatePDF_icon.png index 65fd3e555535aa64962b47b9238b37696c14a05c..bb310db61ca4f4468f424f5c5cd4549b1cffbfc5 100644 GIT binary patch literal 32098 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 rs0IO!EmZSsH*2!9;jfQk#0;LmzvnyENvJ)# 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�lJZ2FBYg& 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 diff --git a/PdfScribe/ActivityNotification.xaml b/PdfScribe/ActivityNotification.xaml index 7494478..1774b61 100644 --- a/PdfScribe/ActivityNotification.xaml +++ b/PdfScribe/ActivityNotification.xaml @@ -8,6 +8,7 @@ WindowStartupLocation="CenterScreen" Topmost="True"> - + + diff --git a/PdfScribe/ActivityNotificationPresenter.cs b/PdfScribe/ActivityNotificationPresenter.cs index 3cf72f1..fc7a067 100644 --- a/PdfScribe/ActivityNotificationPresenter.cs +++ b/PdfScribe/ActivityNotificationPresenter.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; +using SysTimers = System.Timers; using System.Windows; @@ -12,11 +13,18 @@ namespace PdfScribe { public ActivityNotificationPresenter() { - + progressTimer = new SysTimers.Timer(); + progressTimer.Enabled = false; + progressTimer.Interval = 250; // Quarter second is default + progressTimer.Elapsed += new SysTimers.ElapsedEventHandler(progressTimer_Elapsed); } + - private Application activityWindow = null; + private Application activityWindowApp = null; + private ActivityNotification activityWindow; + private SysTimers.Timer progressTimer; + readonly String progressString = "CAPTURING"; /// /// Displays the floating frameless @@ -25,18 +33,19 @@ namespace PdfScribe /// public void ShowActivityNotificationWindow() { - if (activityWindow == null) + if (this.activityWindowApp == null) { - this.activityWindow = new Application(); var activityWindowThread = new Thread(new ThreadStart(() => { - activityWindow = new Application(); - activityWindow.ShutdownMode = ShutdownMode.OnExplicitShutdown; - activityWindow.Run(new ActivityNotification()); + activityWindowApp = new Application(); + activityWindow = new ActivityNotification(); + activityWindowApp.ShutdownMode = ShutdownMode.OnExplicitShutdown; + activityWindowApp.Run(activityWindow); } )); activityWindowThread.SetApartmentState(ApartmentState.STA); activityWindowThread.Start(); + this.progressTimer.Enabled = true; } } @@ -46,8 +55,40 @@ namespace PdfScribe /// public void CloseActivityNotificationWindow() { - if (activityWindow != null) - activityWindow.Dispatcher.InvokeShutdown(); + if (activityWindowApp != null) + { + this.progressTimer.Stop(); + // Close windows rather than + // just bashing the WPF application + activityWindowApp.Dispatcher.Invoke((Action)delegate() + { + foreach (Window appWindow in activityWindowApp.Windows) + { + appWindow.Close(); + } + } + ); + activityWindowApp.Dispatcher.InvokeShutdown(); + activityWindowApp = null; + this.progressTimer.Dispose(); + this.progressTimer = null; + } + } + + + private int progressCounter = 0; + private void progressTimer_Elapsed(object sender, SysTimers.ElapsedEventArgs e) + { + ((SysTimers.Timer)sender).Enabled = false; + activityWindowApp.Dispatcher.Invoke((Action)delegate() + { + if (this.progressCounter >= progressString.Length) + this.progressCounter = 0; + activityWindow.labelProgress.Content = progressString.Substring(0, progressCounter + 1); + progressCounter++; + } + ); + ((SysTimers.Timer)sender).Enabled = true; } } diff --git a/PdfScribe/App.config b/PdfScribe/App.config index 49cc43e..e2b607f 100644 --- a/PdfScribe/App.config +++ b/PdfScribe/App.config @@ -1,3 +1,3 @@ - + - \ No newline at end of file + diff --git a/PdfScribe/ErrorDialogPresenter.cs b/PdfScribe/ErrorDialogPresenter.cs index 5be54dd..7af74a2 100644 --- a/PdfScribe/ErrorDialogPresenter.cs +++ b/PdfScribe/ErrorDialogPresenter.cs @@ -25,8 +25,8 @@ namespace PdfScribe /// Instructional text (Appears next to the icon) /// Smaller message detail text at bottom public ErrorDialogPresenter(String captionText, - String instructionText, - String messageText) + String instructionText, + String messageText) { ShowSimple(captionText, instructionText, messageText); } diff --git a/PdfScribe/PdfScribe.csproj b/PdfScribe/PdfScribe.csproj index 2c97ecf..9245dc1 100644 --- a/PdfScribe/PdfScribe.csproj +++ b/PdfScribe/PdfScribe.csproj @@ -11,7 +11,8 @@ PdfScribe PdfScribe v4.0 - Client + + 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 @@ -70,6 +71,9 @@ AnyCPU prompt + + app.manifest + ..\Lib\Microsoft.WindowsAPICodePack.dll @@ -115,6 +119,7 @@ Resources.Designer.cs + SettingsSingleFileGenerator Settings.Designer.cs diff --git a/PdfScribe/Program.cs b/PdfScribe/Program.cs index 5169566..10be8e1 100644 --- a/PdfScribe/Program.cs +++ b/PdfScribe/Program.cs @@ -127,7 +127,8 @@ namespace PdfScribe } /// - /// All unhandled exceptions will bubble their way up here + /// All unhandled exceptions will bubble their way up here - + /// a final error dialog will be displayed before the crash and burn /// /// /// diff --git a/PdfScribe/Properties/Resources.Designer.cs b/PdfScribe/Properties/Resources.Designer.cs index 2d262fa..ddeac24 100644 --- a/PdfScribe/Properties/Resources.Designer.cs +++ b/PdfScribe/Properties/Resources.Designer.cs @@ -8,10 +8,10 @@ // //------------------------------------------------------------------------------ -namespace PdfScribe.Properties -{ - - +namespace PdfScribe.Properties { + using System; + + /// /// A strongly-typed resource class, for looking up localized strings, etc. /// @@ -22,48 +22,40 @@ namespace PdfScribe.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 - { - + internal class Resources { + private static global::System.Resources.ResourceManager resourceMan; - + private static global::System.Globalization.CultureInfo resourceCulture; - + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { + internal Resources() { } - + /// /// Returns the cached ResourceManager instance used by this class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PdfScribe.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } } - + /// /// Overrides the current thread's CurrentUICulture property for all /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { + internal static global::System.Globalization.CultureInfo Culture { + get { return resourceCulture; } - set - { + set { resourceCulture = value; } } diff --git a/PdfScribe/Properties/Settings.Designer.cs b/PdfScribe/Properties/Settings.Designer.cs index 520420a..fd52c63 100644 --- a/PdfScribe/Properties/Settings.Designer.cs +++ b/PdfScribe/Properties/Settings.Designer.cs @@ -8,21 +8,17 @@ // //------------------------------------------------------------------------------ -namespace PdfScribe.Properties -{ - - +namespace PdfScribe.Properties { + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - + 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; } } diff --git a/PdfScribe/app.manifest b/PdfScribe/app.manifest new file mode 100644 index 0000000..50724ed --- /dev/null +++ b/PdfScribe/app.manifest @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PdfScribeCore/PdfScribeCore.csproj b/PdfScribeCore/PdfScribeCore.csproj index 3d3ed57..adfb64d 100644 --- a/PdfScribeCore/PdfScribeCore.csproj +++ b/PdfScribeCore/PdfScribeCore.csproj @@ -11,7 +11,8 @@ PdfScribeCore PdfScribeCore v4.0 - Client + + 512 diff --git a/PdfScribeCore/PdfScribeInstaller.cs b/PdfScribeCore/PdfScribeInstaller.cs index 5e04a4b..324bd4c 100644 --- a/PdfScribeCore/PdfScribeInstaller.cs +++ b/PdfScribeCore/PdfScribeInstaller.cs @@ -243,7 +243,9 @@ namespace PdfScribeCore /// /// Disables WOW64 system directory file redirection /// if the current process is both - /// 32-bit, and running on a 64-bit OS + /// 32-bit, and running on a 64-bit OS - + /// Compiling for 64-bit OS, and setting the install dir to "ProgramFiles64" + /// should ensure this code never runs in production /// /// A Handle, which should be retained to reenable redirection private IntPtr DisableWow64Redirection() @@ -258,7 +260,9 @@ namespace PdfScribeCore /// /// Reenables WOW64 system directory file redirection /// if the current process is both - /// 32-bit, and running on a 64-bit OS + /// 32-bit, and running on a 64-bit OS - + /// Compiling for 64-bit OS, and setting the install dir to "ProgramFiles64" + /// should ensure this code never runs in production /// /// A Handle value - should be retained from call to private void RevertWow64Redirection(IntPtr oldValue) diff --git a/PdfScribeUnitTests/App.config b/PdfScribeUnitTests/App.config index b245d6f..204a449 100644 --- a/PdfScribeUnitTests/App.config +++ b/PdfScribeUnitTests/App.config @@ -1,6 +1,6 @@ - + - + - \ No newline at end of file + diff --git a/PdfScribeUnitTests/PdfScribeUnitTests.csproj b/PdfScribeUnitTests/PdfScribeUnitTests.csproj index 24ac2cf..426590f 100644 --- a/PdfScribeUnitTests/PdfScribeUnitTests.csproj +++ b/PdfScribeUnitTests/PdfScribeUnitTests.csproj @@ -11,7 +11,8 @@ PdfScribeUnitTests PdfScribeUnitTests v4.0 - Client + + 512 false publish\ diff --git a/PdfScribeUnitTests/UnitTests.cs b/PdfScribeUnitTests/UnitTests.cs index c5256eb..f32b5ad 100644 --- a/PdfScribeUnitTests/UnitTests.cs +++ b/PdfScribeUnitTests/UnitTests.cs @@ -56,13 +56,16 @@ namespace PdfScribeUnitTests #endregion - //[Test] + [Test] public void Test_ShowActivityWindows() { - + var activityWindowTester = new PdfScribe.ActivityNotificationPresenter(); + activityWindowTester.ShowActivityNotificationWindow(); + Thread.Sleep(20000); + activityWindowTester.CloseActivityNotificationWindow(); } - [Test] + //[Test] public void Test_ShowSimpleError() { var errorDialog = new PdfScribe.ErrorDialogPresenter("Error Caption", "Error Instructions", "Message text");