mirror of
https://github.com/digital-jellyfish/Virtu.git
synced 2025-02-17 20:30:27 +00:00
Upgraded to FxCop 10.0. Dropped Silverlight Toolkit dependency (for now). Modified AudioService to avoid deadlocks by using timeouts. Refactored DebugService and implementations. Modified SilverlightVideoService to handle browser zoom. Split Wpf MainWindow into MainPage child control. --HG-- extra : convert_revision : svn%3Affd33b8c-2492-42e0-bdc5-587b920b7d6d/trunk%4048619
101 lines
2.9 KiB
C#
101 lines
2.9 KiB
C#
using System.Diagnostics;
|
|
using System.Text;
|
|
using System.Windows;
|
|
#if WINDOWS_PHONE
|
|
using System.Windows.Navigation;
|
|
using Microsoft.Phone.Controls;
|
|
using Microsoft.Phone.Shell;
|
|
#endif
|
|
|
|
namespace Jellyfish.Library
|
|
{
|
|
public class ApplicationBase : Application
|
|
{
|
|
public ApplicationBase() :
|
|
this(null)
|
|
{
|
|
}
|
|
|
|
public ApplicationBase(string name)
|
|
{
|
|
Name = name;
|
|
|
|
UnhandledException += OnApplicationUnhandledException;
|
|
//AppDomain.CurrentDomain.UnhandledException += OnAppDomainUnhandledException;
|
|
}
|
|
|
|
#if WINDOWS_PHONE
|
|
protected void InitializePhoneApplication()
|
|
{
|
|
if (!_phoneApplicationInitialized)
|
|
{
|
|
RootFrame = new PhoneApplicationFrame();
|
|
RootFrame.Navigated += OnRootFrameNavigated;
|
|
RootFrame.NavigationFailed += OnRootFrameNavigationFailed;
|
|
_phoneApplicationInitialized = true;
|
|
}
|
|
}
|
|
#endif
|
|
|
|
private string GetExceptionCaption(string title, bool isTerminating = false)
|
|
{
|
|
var caption = new StringBuilder();
|
|
if (!string.IsNullOrEmpty(Name))
|
|
{
|
|
caption.Append(Name).Append(' ');
|
|
}
|
|
caption.Append(title);
|
|
if (isTerminating)
|
|
{
|
|
caption.Append(" (Terminating)");
|
|
}
|
|
|
|
return caption.ToString();
|
|
}
|
|
|
|
private void OnApplicationUnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
|
|
{
|
|
MessageBox.Show(e.ExceptionObject.ToString(), GetExceptionCaption("Application Exception"), MessageBoxButton.OK);
|
|
if (Debugger.IsAttached)
|
|
{
|
|
Debugger.Break();
|
|
}
|
|
}
|
|
|
|
//private void OnAppDomainUnhandledException(object sender, UnhandledExceptionEventArgs e)
|
|
//{
|
|
// MessageBox.Show(e.ExceptionObject.ToString(), GetExceptionCaption("AppDomain Exception", e.IsTerminating), MessageBoxButton.OK);
|
|
// if (Debugger.IsAttached)
|
|
// {
|
|
// Debugger.Break();
|
|
// }
|
|
//}
|
|
|
|
#if WINDOWS_PHONE
|
|
private void OnRootFrameNavigated(object sender, NavigationEventArgs e)
|
|
{
|
|
if (RootVisual != RootFrame)
|
|
{
|
|
RootVisual = RootFrame;
|
|
}
|
|
RootFrame.Navigated -= OnRootFrameNavigated;
|
|
}
|
|
|
|
private void OnRootFrameNavigationFailed(object sender, NavigationFailedEventArgs e)
|
|
{
|
|
if (Debugger.IsAttached)
|
|
{
|
|
Debugger.Break();
|
|
}
|
|
}
|
|
#endif
|
|
|
|
public string Name { get; private set; }
|
|
#if WINDOWS_PHONE
|
|
public PhoneApplicationFrame RootFrame { get; private set; }
|
|
|
|
private bool _phoneApplicationInitialized;
|
|
#endif
|
|
}
|
|
}
|