diff --git a/ConfuserEx/App.xaml b/ConfuserEx/App.xaml index 8c66cf03a..54c6ccc67 100644 --- a/ConfuserEx/App.xaml +++ b/ConfuserEx/App.xaml @@ -12,6 +12,7 @@ + Resources/#FontAwesome diff --git a/ConfuserEx/ConfuserEx.csproj b/ConfuserEx/ConfuserEx.csproj index 96288e2fc..a28183e19 100644 --- a/ConfuserEx/ConfuserEx.csproj +++ b/ConfuserEx/ConfuserEx.csproj @@ -94,6 +94,7 @@ + @@ -137,6 +138,10 @@ MSBuild:Compile Designer + + MSBuild:Compile + Designer + MSBuild:Compile Designer @@ -213,6 +218,9 @@ + + + @@ -228,13 +236,12 @@ --> - - + - + PTL @@ -243,5 +250,4 @@ solveAliasProblem;$(PrepareResourcesDependsOn) - \ No newline at end of file diff --git a/ConfuserEx/MainWindow.xaml.cs b/ConfuserEx/MainWindow.xaml.cs index d3b713e0c..e714475f3 100644 --- a/ConfuserEx/MainWindow.xaml.cs +++ b/ConfuserEx/MainWindow.xaml.cs @@ -18,6 +18,7 @@ public MainWindow() { app.Tabs.Add(new ProjectTabVM(app)); app.Tabs.Add(new SettingsTabVM(app)); app.Tabs.Add(new ProtectTabVM(app)); + app.Tabs.Add(new AboutTabVM(app)); DataContext = app; } diff --git a/ConfuserEx/Resources/TeamLogo.png b/ConfuserEx/Resources/TeamLogo.png new file mode 100644 index 000000000..c285429de Binary files /dev/null and b/ConfuserEx/Resources/TeamLogo.png differ diff --git a/ConfuserEx/Skin.cs b/ConfuserEx/Skin.cs index 8729f0726..ab53eb5c0 100644 --- a/ConfuserEx/Skin.cs +++ b/ConfuserEx/Skin.cs @@ -10,6 +10,9 @@ public class Skin { public static readonly DependencyProperty TabsDisabledProperty = DependencyProperty.RegisterAttached("TabsDisabled", typeof (bool), typeof (Skin), new UIPropertyMetadata(false)); + + public static readonly DependencyProperty FocusOverlayProperty = + DependencyProperty.RegisterAttached("FocusOverlay", typeof(bool), typeof(Skin), new UIPropertyMetadata(true)); public static readonly DependencyProperty RTBDocumentProperty = DependencyProperty.RegisterAttached("RTBDocument", typeof (FlowDocument), typeof (Skin), new FrameworkPropertyMetadata(null, OnRTBDocumentChanged)); @@ -21,6 +24,14 @@ public static string GetEmptyPrompt(DependencyObject obj) { public static void SetEmptyPrompt(DependencyObject obj, string value) { obj.SetValue(EmptyPromptProperty, value); } + + public static bool GetFocusOverlay(DependencyObject obj) { + return (bool)obj.GetValue(FocusOverlayProperty); + } + + public static void SetFocusOverlay(DependencyObject obj, bool value) { + obj.SetValue(FocusOverlayProperty, value); + } public static bool GetTabsDisabled(DependencyObject obj) { return (bool)obj.GetValue(TabsDisabledProperty); diff --git a/ConfuserEx/Skin.xaml b/ConfuserEx/Skin.xaml index 85dc51996..fc9cac7ec 100644 --- a/ConfuserEx/Skin.xaml +++ b/ConfuserEx/Skin.xaml @@ -584,6 +584,24 @@ + + + + \ No newline at end of file diff --git a/ConfuserEx/ViewModel/UI/AboutTabVM.cs b/ConfuserEx/ViewModel/UI/AboutTabVM.cs new file mode 100644 index 000000000..ad99bbb4b --- /dev/null +++ b/ConfuserEx/ViewModel/UI/AboutTabVM.cs @@ -0,0 +1,23 @@ +using System; +using System.Diagnostics; +using System.Linq; +using System.Windows.Input; +using System.Windows.Media.Imaging; +using GalaSoft.MvvmLight.Command; + +namespace ConfuserEx.ViewModel { + internal class AboutTabVM : TabViewModel { + public AboutTabVM(AppVM app) + : base(app, "About") { + var decoder = new IconBitmapDecoder(new Uri("pack://application:,,,/ConfuserEx.ico"), BitmapCreateOptions.DelayCreation, BitmapCacheOption.OnDemand); + + Icon = decoder.Frames.First(frame => frame.Width == 64); + } + + public ICommand LaunchBrowser { + get { return new RelayCommand(site => Process.Start(site)); } + } + + public BitmapSource Icon { get; private set; } + } +} \ No newline at end of file diff --git a/ConfuserEx/Views.xaml b/ConfuserEx/Views.xaml index ab38891f4..705425c01 100644 --- a/ConfuserEx/Views.xaml +++ b/ConfuserEx/Views.xaml @@ -4,5 +4,6 @@ + \ No newline at end of file diff --git a/ConfuserEx/Views/AboutTabView.xaml b/ConfuserEx/Views/AboutTabView.xaml new file mode 100644 index 000000000..8c719d802 --- /dev/null +++ b/ConfuserEx/Views/AboutTabView.xaml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file