From 4728cbbd68844b0fb84cd382a5361123e85fb3e8 Mon Sep 17 00:00:00 2001 From: Bastian Schmidt Date: Sun, 13 Dec 2015 19:11:57 +0100 Subject: [PATCH] Fixes #212 by renaming FluentTest to Fluent.Ribbon.Showcase --- .../App.xaml | 26 +- .../App.xaml.cs | 62 +- .../Commanding/IRelayCommand.cs | 20 +- .../Commanding/RelayCommand.cs | 264 +- .../Fluent.Ribbon.Showcase.NET 4.0.csproj | 490 +- ...Ribbon.Showcase.NET 4.0.csproj.DotSettings | 0 .../Fluent.Ribbon.Showcase.NET 4.5.csproj | 504 +- ...Ribbon.Showcase.NET 4.5.csproj.DotSettings | 0 .../FluentTest dotNET 4.0.csproj.DotSettings | 2 + .../FluentTest dotNET 4.5.csproj.DotSettings | 2 + .../Icons/App.ico | Bin .../Images/BlackTheme.png | Bin .../Images/Blue.png | Bin .../Images/BlueLarge.png | Bin .../Images/BlueTheme.png | Bin .../Images/Bold.png | Bin .../Images/Box.png | Bin .../Images/Brown.png | Bin .../Images/BrownLarge.png | Bin .../Images/ChangeCase.png | Bin .../Images/ClearFormatting.png | Bin .../Images/Copy.png | Bin .../Images/Cut.png | Bin .../Images/Default.png | Bin .../Images/Exit.png | Bin .../Images/FontColor.png | Bin .../Images/FormatPainter.png | Bin .../Images/GalleryLarge.png | Bin .../Images/Gray.png | Bin .../Images/GrayLarge.png | Bin .../Images/Green.png | Bin .../Images/GreenLarge.png | Bin .../Images/GrowFont.png | Bin .../Images/Help.png | Bin .../Images/Italic.png | Bin .../Images/Orange.png | Bin .../Images/OrangeLarge.png | Bin .../Images/Paste.png | Bin .../Images/PasteFormating.png | Bin .../Images/PasteImage.png | Bin .../Images/PasteLarge.png | Bin .../Images/PasteSourceFormating.png | Bin .../Images/PasteText.png | Bin .../Images/PasteTextOnly.png | Bin .../Images/Pink.png | Bin .../Images/PinkLarge.png | Bin .../Images/Red.png | Bin .../Images/RedLarge.png | Bin .../Images/SampleImageForScreenTip.png | Bin .../Images/Save.png | Bin .../Images/ShrinkFont.png | Bin .../Images/SilverTheme.png | Bin .../Images/Strikethrough.png | Bin .../Images/Subscript.png | Bin .../Images/Superscript.png | Bin .../Images/Test16.png | Bin .../Images/Test32.png | Bin .../Images/TextEffects.png | Bin .../Images/TextHighlightColor.png | Bin .../Images/Underline.png | Bin .../Images/VectorIcons.xaml | 0 .../Images/Yellow.png | Bin .../Images/YellowLarge.png | Bin .../MahMetroWindow.xaml | 0 .../MahMetroWindow.xaml.cs | 0 .../Properties/Annotations.cs | 1246 ++-- .../Properties/AssemblyInfo.cs | 6 +- .../Properties/Resources.Designer.cs | 126 +- .../Properties/Resources.resx | 232 +- .../Properties/Settings.Designer.cs | 52 +- .../Properties/Settings.settings | 12 +- .../RegularWindow.xaml | 0 .../RegularWindow.xaml.cs | 0 .../RibbonWindowWithoutVisibileRibbon.xaml | 0 .../RibbonWindowWithoutVisibileRibbon.xaml.cs | 0 .../TestContent.xaml | 5550 ++++++++--------- .../TestContent.xaml.cs | 898 +-- .../TestWindow.xaml | 34 +- .../TestWindow.xaml.cs | 24 +- .../ViewModels/ColorViewModel.cs | 108 +- .../ViewModels/FontsViewModel.cs | 24 +- .../ViewModels/GalleryItemViewModel.cs | 28 +- .../GallerySampleDataItemViewModel.cs | 92 +- .../ViewModels/GalleryViewModel.cs | 98 +- .../ViewModels/MainViewModel.cs | 402 +- .../ViewModels/ViewModel.cs | 36 +- .../app.manifest | 0 .../packages.config | 0 Fluent.Ribbon.sln | 8 +- 89 files changed, 5175 insertions(+), 5171 deletions(-) rename {FluentTest => Fluent.Ribbon.Showcase}/App.xaml (98%) rename {FluentTest => Fluent.Ribbon.Showcase}/App.xaml.cs (98%) rename {FluentTest => Fluent.Ribbon.Showcase}/Commanding/IRelayCommand.cs (95%) rename {FluentTest => Fluent.Ribbon.Showcase}/Commanding/RelayCommand.cs (96%) rename FluentTest/FluentTest dotNET 4.0.csproj => Fluent.Ribbon.Showcase/Fluent.Ribbon.Showcase.NET 4.0.csproj (97%) rename FluentTest/FluentTest dotNET 4.0.csproj.DotSettings => Fluent.Ribbon.Showcase/Fluent.Ribbon.Showcase.NET 4.0.csproj.DotSettings (100%) rename FluentTest/FluentTest dotNET 4.5.csproj => Fluent.Ribbon.Showcase/Fluent.Ribbon.Showcase.NET 4.5.csproj (97%) rename FluentTest/FluentTest dotNET 4.5.csproj.DotSettings => Fluent.Ribbon.Showcase/Fluent.Ribbon.Showcase.NET 4.5.csproj.DotSettings (100%) create mode 100644 Fluent.Ribbon.Showcase/FluentTest dotNET 4.0.csproj.DotSettings create mode 100644 Fluent.Ribbon.Showcase/FluentTest dotNET 4.5.csproj.DotSettings rename {FluentTest => Fluent.Ribbon.Showcase}/Icons/App.ico (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/BlackTheme.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/Blue.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/BlueLarge.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/BlueTheme.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/Bold.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/Box.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/Brown.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/BrownLarge.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/ChangeCase.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/ClearFormatting.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/Copy.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/Cut.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/Default.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/Exit.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/FontColor.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/FormatPainter.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/GalleryLarge.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/Gray.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/GrayLarge.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/Green.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/GreenLarge.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/GrowFont.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/Help.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/Italic.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/Orange.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/OrangeLarge.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/Paste.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/PasteFormating.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/PasteImage.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/PasteLarge.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/PasteSourceFormating.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/PasteText.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/PasteTextOnly.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/Pink.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/PinkLarge.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/Red.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/RedLarge.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/SampleImageForScreenTip.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/Save.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/ShrinkFont.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/SilverTheme.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/Strikethrough.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/Subscript.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/Superscript.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/Test16.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/Test32.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/TextEffects.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/TextHighlightColor.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/Underline.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/VectorIcons.xaml (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/Yellow.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Images/YellowLarge.png (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/MahMetroWindow.xaml (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/MahMetroWindow.xaml.cs (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/Properties/Annotations.cs (97%) rename {FluentTest => Fluent.Ribbon.Showcase}/Properties/AssemblyInfo.cs (66%) rename {FluentTest => Fluent.Ribbon.Showcase}/Properties/Resources.Designer.cs (96%) rename {FluentTest => Fluent.Ribbon.Showcase}/Properties/Resources.resx (97%) rename {FluentTest => Fluent.Ribbon.Showcase}/Properties/Settings.Designer.cs (91%) rename {FluentTest => Fluent.Ribbon.Showcase}/Properties/Settings.settings (97%) rename {FluentTest => Fluent.Ribbon.Showcase}/RegularWindow.xaml (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/RegularWindow.xaml.cs (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/RibbonWindowWithoutVisibileRibbon.xaml (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/RibbonWindowWithoutVisibileRibbon.xaml.cs (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/TestContent.xaml (98%) rename {FluentTest => Fluent.Ribbon.Showcase}/TestContent.xaml.cs (97%) rename {FluentTest => Fluent.Ribbon.Showcase}/TestWindow.xaml (98%) rename {FluentTest => Fluent.Ribbon.Showcase}/TestWindow.xaml.cs (95%) rename {FluentTest => Fluent.Ribbon.Showcase}/ViewModels/ColorViewModel.cs (96%) rename {FluentTest => Fluent.Ribbon.Showcase}/ViewModels/FontsViewModel.cs (96%) rename {FluentTest => Fluent.Ribbon.Showcase}/ViewModels/GalleryItemViewModel.cs (95%) rename {FluentTest => Fluent.Ribbon.Showcase}/ViewModels/GallerySampleDataItemViewModel.cs (96%) rename {FluentTest => Fluent.Ribbon.Showcase}/ViewModels/GalleryViewModel.cs (97%) rename {FluentTest => Fluent.Ribbon.Showcase}/ViewModels/MainViewModel.cs (96%) rename {FluentTest => Fluent.Ribbon.Showcase}/ViewModels/ViewModel.cs (96%) rename {FluentTest => Fluent.Ribbon.Showcase}/app.manifest (100%) rename {FluentTest => Fluent.Ribbon.Showcase}/packages.config (100%) diff --git a/FluentTest/App.xaml b/Fluent.Ribbon.Showcase/App.xaml similarity index 98% rename from FluentTest/App.xaml rename to Fluent.Ribbon.Showcase/App.xaml index 0d3982d96..61846812b 100644 --- a/FluentTest/App.xaml +++ b/Fluent.Ribbon.Showcase/App.xaml @@ -1,14 +1,14 @@ - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/FluentTest/App.xaml.cs b/Fluent.Ribbon.Showcase/App.xaml.cs similarity index 98% rename from FluentTest/App.xaml.cs rename to Fluent.Ribbon.Showcase/App.xaml.cs index a99087e1a..494727e7c 100644 --- a/FluentTest/App.xaml.cs +++ b/Fluent.Ribbon.Showcase/App.xaml.cs @@ -1,32 +1,32 @@ -namespace FluentTest -{ - public partial class App - { - public App() - { - //System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("ru-RU"); - - //Thread.CurrentThread.CurrentUICulture = new CultureInfo("fa"); - //Thread.CurrentThread.CurrentUICulture = new CultureInfo("ru"); - //Thread.CurrentThread.CurrentUICulture = new CultureInfo("de"); - //Thread.CurrentThread.CurrentUICulture = new CultureInfo("hu"); - //Thread.CurrentThread.CurrentUICulture = new CultureInfo("cs"); - //Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr"); - //Thread.CurrentThread.CurrentUICulture = new CultureInfo("pl"); - //Thread.CurrentThread.CurrentUICulture = new CultureInfo("ja"); - //Thread.CurrentThread.CurrentUICulture = new CultureInfo("nl"); - //Thread.CurrentThread.CurrentUICulture = new CultureInfo("pt-PT"); - //Thread.CurrentThread.CurrentUICulture = new CultureInfo("pt-br"); - //Thread.CurrentThread.CurrentUICulture = new CultureInfo("es"); - //Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh"); - //Thread.CurrentThread.CurrentUICulture = new CultureInfo("sv"); - //Thread.CurrentThread.CurrentUICulture = new CultureInfo("sk"); - //Thread.CurrentThread.CurrentUICulture = new CultureInfo("uk"); - //Thread.CurrentThread.CurrentUICulture = new CultureInfo("ro"); - //Thread.CurrentThread.CurrentUICulture = new CultureInfo("it"); - //Thread.CurrentThread.CurrentUICulture = new CultureInfo("ar"); - //Thread.CurrentThread.CurrentUICulture = new CultureInfo("da"); - //Thread.CurrentThread.CurrentUICulture = new CultureInfo("az"); - } - } +namespace FluentTest +{ + public partial class App + { + public App() + { + //System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("ru-RU"); + + //Thread.CurrentThread.CurrentUICulture = new CultureInfo("fa"); + //Thread.CurrentThread.CurrentUICulture = new CultureInfo("ru"); + //Thread.CurrentThread.CurrentUICulture = new CultureInfo("de"); + //Thread.CurrentThread.CurrentUICulture = new CultureInfo("hu"); + //Thread.CurrentThread.CurrentUICulture = new CultureInfo("cs"); + //Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr"); + //Thread.CurrentThread.CurrentUICulture = new CultureInfo("pl"); + //Thread.CurrentThread.CurrentUICulture = new CultureInfo("ja"); + //Thread.CurrentThread.CurrentUICulture = new CultureInfo("nl"); + //Thread.CurrentThread.CurrentUICulture = new CultureInfo("pt-PT"); + //Thread.CurrentThread.CurrentUICulture = new CultureInfo("pt-br"); + //Thread.CurrentThread.CurrentUICulture = new CultureInfo("es"); + //Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh"); + //Thread.CurrentThread.CurrentUICulture = new CultureInfo("sv"); + //Thread.CurrentThread.CurrentUICulture = new CultureInfo("sk"); + //Thread.CurrentThread.CurrentUICulture = new CultureInfo("uk"); + //Thread.CurrentThread.CurrentUICulture = new CultureInfo("ro"); + //Thread.CurrentThread.CurrentUICulture = new CultureInfo("it"); + //Thread.CurrentThread.CurrentUICulture = new CultureInfo("ar"); + //Thread.CurrentThread.CurrentUICulture = new CultureInfo("da"); + //Thread.CurrentThread.CurrentUICulture = new CultureInfo("az"); + } + } } \ No newline at end of file diff --git a/FluentTest/Commanding/IRelayCommand.cs b/Fluent.Ribbon.Showcase/Commanding/IRelayCommand.cs similarity index 95% rename from FluentTest/Commanding/IRelayCommand.cs rename to Fluent.Ribbon.Showcase/Commanding/IRelayCommand.cs index 97e71d49b..6c3028d0d 100644 --- a/FluentTest/Commanding/IRelayCommand.cs +++ b/Fluent.Ribbon.Showcase/Commanding/IRelayCommand.cs @@ -1,11 +1,11 @@ -namespace FluentTest.Commanding -{ - using System; - using System.Windows.Input; - - public interface IRelayCommand : ICommand - { - event EventHandler Executed; - event EventHandler Executing; - } +namespace FluentTest.Commanding +{ + using System; + using System.Windows.Input; + + public interface IRelayCommand : ICommand + { + event EventHandler Executed; + event EventHandler Executing; + } } \ No newline at end of file diff --git a/FluentTest/Commanding/RelayCommand.cs b/Fluent.Ribbon.Showcase/Commanding/RelayCommand.cs similarity index 96% rename from FluentTest/Commanding/RelayCommand.cs rename to Fluent.Ribbon.Showcase/Commanding/RelayCommand.cs index e1dd3ea88..15d1e9794 100644 --- a/FluentTest/Commanding/RelayCommand.cs +++ b/Fluent.Ribbon.Showcase/Commanding/RelayCommand.cs @@ -1,133 +1,133 @@ -namespace FluentTest.Commanding -{ - using System; - using System.Diagnostics; - using System.Windows.Input; - - public class RelayCommand : IRelayCommand - { - private readonly Action action; - private readonly Func canExecute; - - protected RelayCommand() - { - } - - public RelayCommand(Action execute) - { - this.action = execute; - } - - public RelayCommand(Action execute, Func canExecute) - : this(execute) - { - this.canExecute = canExecute; - } - - #region IRelayCommand Members - - [DebuggerStepThrough] - public virtual bool CanExecute(object parameter) - { - return this.canExecute == null - || this.canExecute(); - } - - public event EventHandler CanExecuteChanged - { - add { CommandManager.RequerySuggested += value; } - remove { CommandManager.RequerySuggested -= value; } - } - - public event EventHandler Executed; - - public event EventHandler Executing; - - protected void OnExecuted() - { - if (this.Executed != null) - { - this.Executed(this, null); - } - } - - protected void OnExecuting() - { - if (this.Executing != null) - { - this.Executing(this, null); - } - } - - public void Execute(object parameter) - { - this.OnExecuting(); - - this.InvokeAction(parameter); - - this.OnExecuted(); - } - - protected virtual void InvokeAction(object parameter) - { - this.action(); - } - - #endregion // IRelayCommand Members - } - - /// - /// A command whose sole purpose is to - /// relay its functionality to other - /// objects by invoking delegates. The - /// default return value for the CanExecute - /// method is 'true'. - /// - public class RelayCommand : RelayCommand - { - private readonly Action action; - private readonly Func canExecute; - - protected RelayCommand() - { - } - - /// - /// Creates a new command that can always execute. - /// - /// The execution logic. - public RelayCommand(Action action) - : this(action, null) - { - } - - /// - /// Creates a new command. - /// - /// The execution logic. - /// The execution status logic. - public RelayCommand(Action action, Func canExecute) - { - this.action = action; - this.canExecute = canExecute; - } - - /// - /// Defines the method that determines whether the command can execute in its current state. - /// - /// - /// true if this command can be executed; otherwise, false. - /// - /// Data used by the command. If the command does not require data to be passed, this object can be set to null. - public override bool CanExecute(object parameter) - { - return this.canExecute == null - || this.canExecute((T)parameter); - } - - protected override void InvokeAction(object parameter) - { - this.action((T)parameter); - } - } +namespace FluentTest.Commanding +{ + using System; + using System.Diagnostics; + using System.Windows.Input; + + public class RelayCommand : IRelayCommand + { + private readonly Action action; + private readonly Func canExecute; + + protected RelayCommand() + { + } + + public RelayCommand(Action execute) + { + this.action = execute; + } + + public RelayCommand(Action execute, Func canExecute) + : this(execute) + { + this.canExecute = canExecute; + } + + #region IRelayCommand Members + + [DebuggerStepThrough] + public virtual bool CanExecute(object parameter) + { + return this.canExecute == null + || this.canExecute(); + } + + public event EventHandler CanExecuteChanged + { + add { CommandManager.RequerySuggested += value; } + remove { CommandManager.RequerySuggested -= value; } + } + + public event EventHandler Executed; + + public event EventHandler Executing; + + protected void OnExecuted() + { + if (this.Executed != null) + { + this.Executed(this, null); + } + } + + protected void OnExecuting() + { + if (this.Executing != null) + { + this.Executing(this, null); + } + } + + public void Execute(object parameter) + { + this.OnExecuting(); + + this.InvokeAction(parameter); + + this.OnExecuted(); + } + + protected virtual void InvokeAction(object parameter) + { + this.action(); + } + + #endregion // IRelayCommand Members + } + + /// + /// A command whose sole purpose is to + /// relay its functionality to other + /// objects by invoking delegates. The + /// default return value for the CanExecute + /// method is 'true'. + /// + public class RelayCommand : RelayCommand + { + private readonly Action action; + private readonly Func canExecute; + + protected RelayCommand() + { + } + + /// + /// Creates a new command that can always execute. + /// + /// The execution logic. + public RelayCommand(Action action) + : this(action, null) + { + } + + /// + /// Creates a new command. + /// + /// The execution logic. + /// The execution status logic. + public RelayCommand(Action action, Func canExecute) + { + this.action = action; + this.canExecute = canExecute; + } + + /// + /// Defines the method that determines whether the command can execute in its current state. + /// + /// + /// true if this command can be executed; otherwise, false. + /// + /// Data used by the command. If the command does not require data to be passed, this object can be set to null. + public override bool CanExecute(object parameter) + { + return this.canExecute == null + || this.canExecute((T)parameter); + } + + protected override void InvokeAction(object parameter) + { + this.action((T)parameter); + } + } } \ No newline at end of file diff --git a/FluentTest/FluentTest dotNET 4.0.csproj b/Fluent.Ribbon.Showcase/Fluent.Ribbon.Showcase.NET 4.0.csproj similarity index 97% rename from FluentTest/FluentTest dotNET 4.0.csproj rename to Fluent.Ribbon.Showcase/Fluent.Ribbon.Showcase.NET 4.0.csproj index 78f716221..399d3bd98 100644 --- a/FluentTest/FluentTest dotNET 4.0.csproj +++ b/Fluent.Ribbon.Showcase/Fluent.Ribbon.Showcase.NET 4.0.csproj @@ -1,246 +1,246 @@ - - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {2A893D50-BBC4-4482-ADAA-D52B517E8632} - WinExe - Properties - FluentTest - FluentTest - v4.0 - 512 - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 4 - Icons\App.ico - ..\build\obj\NET 4.0 - $(BaseIntermediateOutputPath)\$(Configuration)\ - - - true - full - false - ..\build\bin\NET 4.0\Debug\ - DEBUG;TRACE - prompt - 4 - false - AllRules.ruleset - - - pdbonly - true - ..\build\bin\NET 4.0\Release\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - - ..\packages\MahApps.Metro.1.0.0.0\lib\net40\MahApps.Metro.dll - - - - - - ..\packages\MahApps.Metro.1.0.0.0\lib\net40\System.Windows.Interactivity.dll - - - - - - - - - - - - - - - MSBuild:Compile - Designer - - - Properties\GlobalAssemblyInfo.cs - - - - - MahMetroWindow.xaml - - - - RegularWindow.xaml - - - RibbonWindowWithoutVisibileRibbon.xaml - - - TestContent.xaml - - - - - - - - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - MSBuild:Compile - Designer - - - App.xaml - Code - - - TestWindow.xaml - Code - - - - - Code - - - True - True - Resources.resx - - - True - Settings.settings - True - - - ResXFileCodeGenerator - Resources.Designer.cs - - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - - - - {4C92FCF4-3561-499F-BC5B-F2F089863046} - Fluent dotNET 4.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {2A893D50-BBC4-4482-ADAA-D52B517E8632} + WinExe + Properties + FluentTest + Fluent.Ribbon.Showcase + v4.0 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + Icons\App.ico + ..\build\obj\NET 4.0 + $(BaseIntermediateOutputPath)\$(Configuration)\ + + + true + full + false + ..\build\bin\NET 4.0\Debug\ + DEBUG;TRACE + prompt + 4 + false + AllRules.ruleset + + + pdbonly + true + ..\build\bin\NET 4.0\Release\ + TRACE + prompt + 4 + AllRules.ruleset + false + + + + ..\packages\MahApps.Metro.1.0.0.0\lib\net40\MahApps.Metro.dll + + + + + + ..\packages\MahApps.Metro.1.0.0.0\lib\net40\System.Windows.Interactivity.dll + + + + + + + + + + + + + + + MSBuild:Compile + Designer + + + Properties\GlobalAssemblyInfo.cs + + + + + MahMetroWindow.xaml + + + + RegularWindow.xaml + + + RibbonWindowWithoutVisibileRibbon.xaml + + + TestContent.xaml + + + + + + + + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + App.xaml + Code + + + TestWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + {4C92FCF4-3561-499F-BC5B-F2F089863046} + Fluent dotNET 4.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/FluentTest/FluentTest dotNET 4.0.csproj.DotSettings b/Fluent.Ribbon.Showcase/Fluent.Ribbon.Showcase.NET 4.0.csproj.DotSettings similarity index 100% rename from FluentTest/FluentTest dotNET 4.0.csproj.DotSettings rename to Fluent.Ribbon.Showcase/Fluent.Ribbon.Showcase.NET 4.0.csproj.DotSettings diff --git a/FluentTest/FluentTest dotNET 4.5.csproj b/Fluent.Ribbon.Showcase/Fluent.Ribbon.Showcase.NET 4.5.csproj similarity index 97% rename from FluentTest/FluentTest dotNET 4.5.csproj rename to Fluent.Ribbon.Showcase/Fluent.Ribbon.Showcase.NET 4.5.csproj index dd0882188..baff8624f 100644 --- a/FluentTest/FluentTest dotNET 4.5.csproj +++ b/Fluent.Ribbon.Showcase/Fluent.Ribbon.Showcase.NET 4.5.csproj @@ -1,253 +1,253 @@ - - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {2C2A076B-E626-4A07-9D6E-4AEE3FEC41B6} - WinExe - Properties - FluentTest - FluentTest - v4.5 - 512 - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 4 - Icons\App.ico - ..\build\obj\NET 4.5 - true - 4.0.20408.0 - $(BaseIntermediateOutputPath)\$(Configuration)\ - - - true - full - false - ..\build\bin\NET 4.5\Debug\ - DEBUG;TRACE - prompt - 4 - false - AllRules.ruleset - false - - - pdbonly - true - ..\build\bin\NET 4.5\Release\ - TRACE - prompt - 4 - AllRules.ruleset - false - false - - - app.manifest - - - - ..\packages\MahApps.Metro.1.0.0.0\lib\net45\MahApps.Metro.dll - - - - - - ..\packages\MahApps.Metro.1.0.0.0\lib\net45\System.Windows.Interactivity.dll - - - - - - - - - - - - - - - MSBuild:Compile - Designer - - - Properties\GlobalAssemblyInfo.cs - - - - - MahMetroWindow.xaml - - - - RegularWindow.xaml - - - RibbonWindowWithoutVisibileRibbon.xaml - - - TestContent.xaml - - - - - - - - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - MSBuild:Compile - Designer - - - App.xaml - Code - - - TestWindow.xaml - Code - - - - - Code - - - True - True - Resources.resx - - - True - Settings.settings - True - - - ResXFileCodeGenerator - Resources.Designer.cs - - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - - - - {4C92FCF4-3561-499F-BC5B-F2F089863047} - Fluent dotNET 4.5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {2C2A076B-E626-4A07-9D6E-4AEE3FEC41B6} + WinExe + Properties + FluentTest + Fluent.Ribbon.Showcase + v4.5 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + Icons\App.ico + ..\build\obj\NET 4.5 + true + 4.0.20408.0 + $(BaseIntermediateOutputPath)\$(Configuration)\ + + + true + full + false + ..\build\bin\NET 4.5\Debug\ + DEBUG;TRACE + prompt + 4 + false + AllRules.ruleset + false + + + pdbonly + true + ..\build\bin\NET 4.5\Release\ + TRACE + prompt + 4 + AllRules.ruleset + false + false + + + app.manifest + + + + ..\packages\MahApps.Metro.1.0.0.0\lib\net45\MahApps.Metro.dll + + + + + + ..\packages\MahApps.Metro.1.0.0.0\lib\net45\System.Windows.Interactivity.dll + + + + + + + + + + + + + + + MSBuild:Compile + Designer + + + Properties\GlobalAssemblyInfo.cs + + + + + MahMetroWindow.xaml + + + + RegularWindow.xaml + + + RibbonWindowWithoutVisibileRibbon.xaml + + + TestContent.xaml + + + + + + + + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + App.xaml + Code + + + TestWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + {4C92FCF4-3561-499F-BC5B-F2F089863047} + Fluent dotNET 4.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/FluentTest/FluentTest dotNET 4.5.csproj.DotSettings b/Fluent.Ribbon.Showcase/Fluent.Ribbon.Showcase.NET 4.5.csproj.DotSettings similarity index 100% rename from FluentTest/FluentTest dotNET 4.5.csproj.DotSettings rename to Fluent.Ribbon.Showcase/Fluent.Ribbon.Showcase.NET 4.5.csproj.DotSettings diff --git a/Fluent.Ribbon.Showcase/FluentTest dotNET 4.0.csproj.DotSettings b/Fluent.Ribbon.Showcase/FluentTest dotNET 4.0.csproj.DotSettings new file mode 100644 index 000000000..662f95686 --- /dev/null +++ b/Fluent.Ribbon.Showcase/FluentTest dotNET 4.0.csproj.DotSettings @@ -0,0 +1,2 @@ + + CSharp50 \ No newline at end of file diff --git a/Fluent.Ribbon.Showcase/FluentTest dotNET 4.5.csproj.DotSettings b/Fluent.Ribbon.Showcase/FluentTest dotNET 4.5.csproj.DotSettings new file mode 100644 index 000000000..662f95686 --- /dev/null +++ b/Fluent.Ribbon.Showcase/FluentTest dotNET 4.5.csproj.DotSettings @@ -0,0 +1,2 @@ + + CSharp50 \ No newline at end of file diff --git a/FluentTest/Icons/App.ico b/Fluent.Ribbon.Showcase/Icons/App.ico similarity index 100% rename from FluentTest/Icons/App.ico rename to Fluent.Ribbon.Showcase/Icons/App.ico diff --git a/FluentTest/Images/BlackTheme.png b/Fluent.Ribbon.Showcase/Images/BlackTheme.png similarity index 100% rename from FluentTest/Images/BlackTheme.png rename to Fluent.Ribbon.Showcase/Images/BlackTheme.png diff --git a/FluentTest/Images/Blue.png b/Fluent.Ribbon.Showcase/Images/Blue.png similarity index 100% rename from FluentTest/Images/Blue.png rename to Fluent.Ribbon.Showcase/Images/Blue.png diff --git a/FluentTest/Images/BlueLarge.png b/Fluent.Ribbon.Showcase/Images/BlueLarge.png similarity index 100% rename from FluentTest/Images/BlueLarge.png rename to Fluent.Ribbon.Showcase/Images/BlueLarge.png diff --git a/FluentTest/Images/BlueTheme.png b/Fluent.Ribbon.Showcase/Images/BlueTheme.png similarity index 100% rename from FluentTest/Images/BlueTheme.png rename to Fluent.Ribbon.Showcase/Images/BlueTheme.png diff --git a/FluentTest/Images/Bold.png b/Fluent.Ribbon.Showcase/Images/Bold.png similarity index 100% rename from FluentTest/Images/Bold.png rename to Fluent.Ribbon.Showcase/Images/Bold.png diff --git a/FluentTest/Images/Box.png b/Fluent.Ribbon.Showcase/Images/Box.png similarity index 100% rename from FluentTest/Images/Box.png rename to Fluent.Ribbon.Showcase/Images/Box.png diff --git a/FluentTest/Images/Brown.png b/Fluent.Ribbon.Showcase/Images/Brown.png similarity index 100% rename from FluentTest/Images/Brown.png rename to Fluent.Ribbon.Showcase/Images/Brown.png diff --git a/FluentTest/Images/BrownLarge.png b/Fluent.Ribbon.Showcase/Images/BrownLarge.png similarity index 100% rename from FluentTest/Images/BrownLarge.png rename to Fluent.Ribbon.Showcase/Images/BrownLarge.png diff --git a/FluentTest/Images/ChangeCase.png b/Fluent.Ribbon.Showcase/Images/ChangeCase.png similarity index 100% rename from FluentTest/Images/ChangeCase.png rename to Fluent.Ribbon.Showcase/Images/ChangeCase.png diff --git a/FluentTest/Images/ClearFormatting.png b/Fluent.Ribbon.Showcase/Images/ClearFormatting.png similarity index 100% rename from FluentTest/Images/ClearFormatting.png rename to Fluent.Ribbon.Showcase/Images/ClearFormatting.png diff --git a/FluentTest/Images/Copy.png b/Fluent.Ribbon.Showcase/Images/Copy.png similarity index 100% rename from FluentTest/Images/Copy.png rename to Fluent.Ribbon.Showcase/Images/Copy.png diff --git a/FluentTest/Images/Cut.png b/Fluent.Ribbon.Showcase/Images/Cut.png similarity index 100% rename from FluentTest/Images/Cut.png rename to Fluent.Ribbon.Showcase/Images/Cut.png diff --git a/FluentTest/Images/Default.png b/Fluent.Ribbon.Showcase/Images/Default.png similarity index 100% rename from FluentTest/Images/Default.png rename to Fluent.Ribbon.Showcase/Images/Default.png diff --git a/FluentTest/Images/Exit.png b/Fluent.Ribbon.Showcase/Images/Exit.png similarity index 100% rename from FluentTest/Images/Exit.png rename to Fluent.Ribbon.Showcase/Images/Exit.png diff --git a/FluentTest/Images/FontColor.png b/Fluent.Ribbon.Showcase/Images/FontColor.png similarity index 100% rename from FluentTest/Images/FontColor.png rename to Fluent.Ribbon.Showcase/Images/FontColor.png diff --git a/FluentTest/Images/FormatPainter.png b/Fluent.Ribbon.Showcase/Images/FormatPainter.png similarity index 100% rename from FluentTest/Images/FormatPainter.png rename to Fluent.Ribbon.Showcase/Images/FormatPainter.png diff --git a/FluentTest/Images/GalleryLarge.png b/Fluent.Ribbon.Showcase/Images/GalleryLarge.png similarity index 100% rename from FluentTest/Images/GalleryLarge.png rename to Fluent.Ribbon.Showcase/Images/GalleryLarge.png diff --git a/FluentTest/Images/Gray.png b/Fluent.Ribbon.Showcase/Images/Gray.png similarity index 100% rename from FluentTest/Images/Gray.png rename to Fluent.Ribbon.Showcase/Images/Gray.png diff --git a/FluentTest/Images/GrayLarge.png b/Fluent.Ribbon.Showcase/Images/GrayLarge.png similarity index 100% rename from FluentTest/Images/GrayLarge.png rename to Fluent.Ribbon.Showcase/Images/GrayLarge.png diff --git a/FluentTest/Images/Green.png b/Fluent.Ribbon.Showcase/Images/Green.png similarity index 100% rename from FluentTest/Images/Green.png rename to Fluent.Ribbon.Showcase/Images/Green.png diff --git a/FluentTest/Images/GreenLarge.png b/Fluent.Ribbon.Showcase/Images/GreenLarge.png similarity index 100% rename from FluentTest/Images/GreenLarge.png rename to Fluent.Ribbon.Showcase/Images/GreenLarge.png diff --git a/FluentTest/Images/GrowFont.png b/Fluent.Ribbon.Showcase/Images/GrowFont.png similarity index 100% rename from FluentTest/Images/GrowFont.png rename to Fluent.Ribbon.Showcase/Images/GrowFont.png diff --git a/FluentTest/Images/Help.png b/Fluent.Ribbon.Showcase/Images/Help.png similarity index 100% rename from FluentTest/Images/Help.png rename to Fluent.Ribbon.Showcase/Images/Help.png diff --git a/FluentTest/Images/Italic.png b/Fluent.Ribbon.Showcase/Images/Italic.png similarity index 100% rename from FluentTest/Images/Italic.png rename to Fluent.Ribbon.Showcase/Images/Italic.png diff --git a/FluentTest/Images/Orange.png b/Fluent.Ribbon.Showcase/Images/Orange.png similarity index 100% rename from FluentTest/Images/Orange.png rename to Fluent.Ribbon.Showcase/Images/Orange.png diff --git a/FluentTest/Images/OrangeLarge.png b/Fluent.Ribbon.Showcase/Images/OrangeLarge.png similarity index 100% rename from FluentTest/Images/OrangeLarge.png rename to Fluent.Ribbon.Showcase/Images/OrangeLarge.png diff --git a/FluentTest/Images/Paste.png b/Fluent.Ribbon.Showcase/Images/Paste.png similarity index 100% rename from FluentTest/Images/Paste.png rename to Fluent.Ribbon.Showcase/Images/Paste.png diff --git a/FluentTest/Images/PasteFormating.png b/Fluent.Ribbon.Showcase/Images/PasteFormating.png similarity index 100% rename from FluentTest/Images/PasteFormating.png rename to Fluent.Ribbon.Showcase/Images/PasteFormating.png diff --git a/FluentTest/Images/PasteImage.png b/Fluent.Ribbon.Showcase/Images/PasteImage.png similarity index 100% rename from FluentTest/Images/PasteImage.png rename to Fluent.Ribbon.Showcase/Images/PasteImage.png diff --git a/FluentTest/Images/PasteLarge.png b/Fluent.Ribbon.Showcase/Images/PasteLarge.png similarity index 100% rename from FluentTest/Images/PasteLarge.png rename to Fluent.Ribbon.Showcase/Images/PasteLarge.png diff --git a/FluentTest/Images/PasteSourceFormating.png b/Fluent.Ribbon.Showcase/Images/PasteSourceFormating.png similarity index 100% rename from FluentTest/Images/PasteSourceFormating.png rename to Fluent.Ribbon.Showcase/Images/PasteSourceFormating.png diff --git a/FluentTest/Images/PasteText.png b/Fluent.Ribbon.Showcase/Images/PasteText.png similarity index 100% rename from FluentTest/Images/PasteText.png rename to Fluent.Ribbon.Showcase/Images/PasteText.png diff --git a/FluentTest/Images/PasteTextOnly.png b/Fluent.Ribbon.Showcase/Images/PasteTextOnly.png similarity index 100% rename from FluentTest/Images/PasteTextOnly.png rename to Fluent.Ribbon.Showcase/Images/PasteTextOnly.png diff --git a/FluentTest/Images/Pink.png b/Fluent.Ribbon.Showcase/Images/Pink.png similarity index 100% rename from FluentTest/Images/Pink.png rename to Fluent.Ribbon.Showcase/Images/Pink.png diff --git a/FluentTest/Images/PinkLarge.png b/Fluent.Ribbon.Showcase/Images/PinkLarge.png similarity index 100% rename from FluentTest/Images/PinkLarge.png rename to Fluent.Ribbon.Showcase/Images/PinkLarge.png diff --git a/FluentTest/Images/Red.png b/Fluent.Ribbon.Showcase/Images/Red.png similarity index 100% rename from FluentTest/Images/Red.png rename to Fluent.Ribbon.Showcase/Images/Red.png diff --git a/FluentTest/Images/RedLarge.png b/Fluent.Ribbon.Showcase/Images/RedLarge.png similarity index 100% rename from FluentTest/Images/RedLarge.png rename to Fluent.Ribbon.Showcase/Images/RedLarge.png diff --git a/FluentTest/Images/SampleImageForScreenTip.png b/Fluent.Ribbon.Showcase/Images/SampleImageForScreenTip.png similarity index 100% rename from FluentTest/Images/SampleImageForScreenTip.png rename to Fluent.Ribbon.Showcase/Images/SampleImageForScreenTip.png diff --git a/FluentTest/Images/Save.png b/Fluent.Ribbon.Showcase/Images/Save.png similarity index 100% rename from FluentTest/Images/Save.png rename to Fluent.Ribbon.Showcase/Images/Save.png diff --git a/FluentTest/Images/ShrinkFont.png b/Fluent.Ribbon.Showcase/Images/ShrinkFont.png similarity index 100% rename from FluentTest/Images/ShrinkFont.png rename to Fluent.Ribbon.Showcase/Images/ShrinkFont.png diff --git a/FluentTest/Images/SilverTheme.png b/Fluent.Ribbon.Showcase/Images/SilverTheme.png similarity index 100% rename from FluentTest/Images/SilverTheme.png rename to Fluent.Ribbon.Showcase/Images/SilverTheme.png diff --git a/FluentTest/Images/Strikethrough.png b/Fluent.Ribbon.Showcase/Images/Strikethrough.png similarity index 100% rename from FluentTest/Images/Strikethrough.png rename to Fluent.Ribbon.Showcase/Images/Strikethrough.png diff --git a/FluentTest/Images/Subscript.png b/Fluent.Ribbon.Showcase/Images/Subscript.png similarity index 100% rename from FluentTest/Images/Subscript.png rename to Fluent.Ribbon.Showcase/Images/Subscript.png diff --git a/FluentTest/Images/Superscript.png b/Fluent.Ribbon.Showcase/Images/Superscript.png similarity index 100% rename from FluentTest/Images/Superscript.png rename to Fluent.Ribbon.Showcase/Images/Superscript.png diff --git a/FluentTest/Images/Test16.png b/Fluent.Ribbon.Showcase/Images/Test16.png similarity index 100% rename from FluentTest/Images/Test16.png rename to Fluent.Ribbon.Showcase/Images/Test16.png diff --git a/FluentTest/Images/Test32.png b/Fluent.Ribbon.Showcase/Images/Test32.png similarity index 100% rename from FluentTest/Images/Test32.png rename to Fluent.Ribbon.Showcase/Images/Test32.png diff --git a/FluentTest/Images/TextEffects.png b/Fluent.Ribbon.Showcase/Images/TextEffects.png similarity index 100% rename from FluentTest/Images/TextEffects.png rename to Fluent.Ribbon.Showcase/Images/TextEffects.png diff --git a/FluentTest/Images/TextHighlightColor.png b/Fluent.Ribbon.Showcase/Images/TextHighlightColor.png similarity index 100% rename from FluentTest/Images/TextHighlightColor.png rename to Fluent.Ribbon.Showcase/Images/TextHighlightColor.png diff --git a/FluentTest/Images/Underline.png b/Fluent.Ribbon.Showcase/Images/Underline.png similarity index 100% rename from FluentTest/Images/Underline.png rename to Fluent.Ribbon.Showcase/Images/Underline.png diff --git a/FluentTest/Images/VectorIcons.xaml b/Fluent.Ribbon.Showcase/Images/VectorIcons.xaml similarity index 100% rename from FluentTest/Images/VectorIcons.xaml rename to Fluent.Ribbon.Showcase/Images/VectorIcons.xaml diff --git a/FluentTest/Images/Yellow.png b/Fluent.Ribbon.Showcase/Images/Yellow.png similarity index 100% rename from FluentTest/Images/Yellow.png rename to Fluent.Ribbon.Showcase/Images/Yellow.png diff --git a/FluentTest/Images/YellowLarge.png b/Fluent.Ribbon.Showcase/Images/YellowLarge.png similarity index 100% rename from FluentTest/Images/YellowLarge.png rename to Fluent.Ribbon.Showcase/Images/YellowLarge.png diff --git a/FluentTest/MahMetroWindow.xaml b/Fluent.Ribbon.Showcase/MahMetroWindow.xaml similarity index 100% rename from FluentTest/MahMetroWindow.xaml rename to Fluent.Ribbon.Showcase/MahMetroWindow.xaml diff --git a/FluentTest/MahMetroWindow.xaml.cs b/Fluent.Ribbon.Showcase/MahMetroWindow.xaml.cs similarity index 100% rename from FluentTest/MahMetroWindow.xaml.cs rename to Fluent.Ribbon.Showcase/MahMetroWindow.xaml.cs diff --git a/FluentTest/Properties/Annotations.cs b/Fluent.Ribbon.Showcase/Properties/Annotations.cs similarity index 97% rename from FluentTest/Properties/Annotations.cs rename to Fluent.Ribbon.Showcase/Properties/Annotations.cs index 658180ec6..72afa8991 100644 --- a/FluentTest/Properties/Annotations.cs +++ b/Fluent.Ribbon.Showcase/Properties/Annotations.cs @@ -1,624 +1,624 @@ -using System; - -#pragma warning disable 1591 -// ReSharper disable UnusedMember.Global -// ReSharper disable UnusedParameter.Local -// ReSharper disable MemberCanBePrivate.Global -// ReSharper disable UnusedAutoPropertyAccessor.Global -// ReSharper disable IntroduceOptionalParameters.Global -// ReSharper disable MemberCanBeProtected.Global -// ReSharper disable InconsistentNaming - -namespace JetBrains.Annotations -{ - /// - /// Indicates that the value of the marked element could be null sometimes, - /// so the check for null is necessary before its usage - /// - /// - /// [CanBeNull] public object Test() { return null; } - /// public void UseTest() { - /// var p = Test(); - /// var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' - /// } - /// - [AttributeUsage( - AttributeTargets.Method | AttributeTargets.Parameter | - AttributeTargets.Property | AttributeTargets.Delegate | - AttributeTargets.Field, AllowMultiple = false, Inherited = true)] - public sealed class CanBeNullAttribute : Attribute { } - - /// - /// Indicates that the value of the marked element could never be null - /// - /// - /// [NotNull] public object Foo() { - /// return null; // Warning: Possible 'null' assignment - /// } - /// - [AttributeUsage( - AttributeTargets.Method | AttributeTargets.Parameter | - AttributeTargets.Property | AttributeTargets.Delegate | - AttributeTargets.Field, AllowMultiple = false, Inherited = true)] - public sealed class NotNullAttribute : Attribute { } - - /// - /// Indicates that the marked method builds string by format pattern and (optional) arguments. - /// Parameter, which contains format string, should be given in constructor. The format string - /// should be in -like form - /// - /// - /// [StringFormatMethod("message")] - /// public void ShowError(string message, params object[] args) { /* do something */ } - /// public void Foo() { - /// ShowError("Failed: {0}"); // Warning: Non-existing argument in format string - /// } - /// - [AttributeUsage( - AttributeTargets.Constructor | AttributeTargets.Method, - AllowMultiple = false, Inherited = true)] - public sealed class StringFormatMethodAttribute : Attribute - { - /// - /// Specifies which parameter of an annotated method should be treated as format-string - /// - public StringFormatMethodAttribute(string formatParameterName) - { - this.FormatParameterName = formatParameterName; - } - - public string FormatParameterName { get; private set; } - } - - /// - /// Indicates that the function argument should be string literal and match one - /// of the parameters of the caller function. For example, ReSharper annotates - /// the parameter of - /// - /// - /// public void Foo(string param) { - /// if (param == null) - /// throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol - /// } - /// - [AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)] - public sealed class InvokerParameterNameAttribute : Attribute { } - - /// - /// Indicates that the method is contained in a type that implements - /// interface - /// and this method is used to notify that some property value changed - /// - /// - /// The method should be non-static and conform to one of the supported signatures: - /// - /// NotifyChanged(string) - /// NotifyChanged(params string[]) - /// NotifyChanged{T}(Expression{Func{T}}) - /// NotifyChanged{T,U}(Expression{Func{T,U}}) - /// SetProperty{T}(ref T, T, string) - /// - /// - /// - /// public class Foo : INotifyPropertyChanged { - /// public event PropertyChangedEventHandler PropertyChanged; - /// [NotifyPropertyChangedInvocator] - /// protected virtual void NotifyChanged(string propertyName) { ... } - /// - /// private string _name; - /// public string Name { - /// get { return _name; } - /// set { _name = value; NotifyChanged("LastName"); /* Warning */ } - /// } - /// } - /// - /// Examples of generated notifications: - /// - /// NotifyChanged("Property") - /// NotifyChanged(() => Property) - /// NotifyChanged((VM x) => x.Property) - /// SetProperty(ref myField, value, "Property") - /// - /// - [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)] - public sealed class NotifyPropertyChangedInvocatorAttribute : Attribute - { - public NotifyPropertyChangedInvocatorAttribute() { } - public NotifyPropertyChangedInvocatorAttribute(string parameterName) - { - this.ParameterName = parameterName; - } - - public string ParameterName { get; private set; } - } - - /// - /// Describes dependency between method input and output - /// - /// - ///

Function Definition Table syntax:

- /// - /// FDT ::= FDTRow [;FDTRow]* - /// FDTRow ::= Input => Output | Output <= Input - /// Input ::= ParameterName: Value [, Input]* - /// Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} - /// Value ::= true | false | null | notnull | canbenull - /// - /// If method has single input parameter, it's name could be omitted.
- /// Using halt (or void/nothing, which is the same) - /// for method output means that the methos doesn't return normally.
- /// canbenull annotation is only applicable for output parameters.
- /// You can use multiple [ContractAnnotation] for each FDT row, - /// or use single attribute with rows separated by semicolon.
- ///
- /// - /// - /// [ContractAnnotation("=> halt")] - /// public void TerminationMethod() - /// - /// - /// [ContractAnnotation("halt <= condition: false")] - /// public void Assert(bool condition, string text) // regular assertion method - /// - /// - /// [ContractAnnotation("s:null => true")] - /// public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() - /// - /// - /// // A method that returns null if the parameter is null, and not null if the parameter is not null - /// [ContractAnnotation("null => null; notnull => notnull")] - /// public object Transform(object data) - /// - /// - /// [ContractAnnotation("s:null=>false; =>true,result:notnull; =>false, result:null")] - /// public bool TryParse(string s, out Person result) - /// - /// - [AttributeUsage(AttributeTargets.Method, AllowMultiple = true, Inherited = true)] - public sealed class ContractAnnotationAttribute : Attribute - { - public ContractAnnotationAttribute([NotNull] string contract) - : this(contract, false) { } - - public ContractAnnotationAttribute([NotNull] string contract, bool forceFullStates) - { - this.Contract = contract; - this.ForceFullStates = forceFullStates; - } - - public string Contract { get; private set; } - public bool ForceFullStates { get; private set; } - } - - /// - /// Indicates that marked element should be localized or not - /// - /// - /// [LocalizationRequiredAttribute(true)] - /// public class Foo { - /// private string str = "my string"; // Warning: Localizable string - /// } - /// - [AttributeUsage(AttributeTargets.All, AllowMultiple = false, Inherited = true)] - public sealed class LocalizationRequiredAttribute : Attribute - { - public LocalizationRequiredAttribute() : this(true) { } - public LocalizationRequiredAttribute(bool required) - { - this.Required = required; - } - - public bool Required { get; private set; } - } - - /// - /// Indicates that the value of the marked type (or its derivatives) - /// cannot be compared using '==' or '!=' operators and Equals() - /// should be used instead. However, using '==' or '!=' for comparison - /// with null is always permitted. - /// - /// - /// [CannotApplyEqualityOperator] - /// class NoEquality { } - /// class UsesNoEquality { - /// public void Test() { - /// var ca1 = new NoEquality(); - /// var ca2 = new NoEquality(); - /// if (ca1 != null) { // OK - /// bool condition = ca1 == ca2; // Warning - /// } - /// } - /// } - /// - [AttributeUsage( - AttributeTargets.Interface | AttributeTargets.Class | - AttributeTargets.Struct, AllowMultiple = false, Inherited = true)] - public sealed class CannotApplyEqualityOperatorAttribute : Attribute { } - - /// - /// When applied to a target attribute, specifies a requirement for any type marked - /// with the target attribute to implement or inherit specific type or types. - /// - /// - /// [BaseTypeRequired(typeof(IComponent)] // Specify requirement - /// public class ComponentAttribute : Attribute { } - /// [Component] // ComponentAttribute requires implementing IComponent interface - /// public class MyComponent : IComponent { } - /// - [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)] - [BaseTypeRequired(typeof(Attribute))] - public sealed class BaseTypeRequiredAttribute : Attribute - { - public BaseTypeRequiredAttribute([NotNull] Type baseType) - { - this.BaseType = baseType; - } - - [NotNull] - public Type BaseType { get; private set; } - } - - /// - /// Indicates that the marked symbol is used implicitly - /// (e.g. via reflection, in external library), so this symbol - /// will not be marked as unused (as well as by other usage inspections) - /// - [AttributeUsage(AttributeTargets.All, AllowMultiple = false, Inherited = true)] - public sealed class UsedImplicitlyAttribute : Attribute - { - public UsedImplicitlyAttribute() - : this(ImplicitUseKindFlags.Default, ImplicitUseTargetFlags.Default) { } - - public UsedImplicitlyAttribute(ImplicitUseKindFlags useKindFlags) - : this(useKindFlags, ImplicitUseTargetFlags.Default) { } - - public UsedImplicitlyAttribute(ImplicitUseTargetFlags targetFlags) - : this(ImplicitUseKindFlags.Default, targetFlags) { } - - public UsedImplicitlyAttribute( - ImplicitUseKindFlags useKindFlags, ImplicitUseTargetFlags targetFlags) - { - this.UseKindFlags = useKindFlags; - this.TargetFlags = targetFlags; - } - - public ImplicitUseKindFlags UseKindFlags { get; private set; } - public ImplicitUseTargetFlags TargetFlags { get; private set; } - } - - /// - /// Should be used on attributes and causes ReSharper - /// to not mark symbols marked with such attributes as unused - /// (as well as by other usage inspections) - /// - [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)] - public sealed class MeansImplicitUseAttribute : Attribute - { - public MeansImplicitUseAttribute() - : this(ImplicitUseKindFlags.Default, ImplicitUseTargetFlags.Default) { } - - public MeansImplicitUseAttribute(ImplicitUseKindFlags useKindFlags) - : this(useKindFlags, ImplicitUseTargetFlags.Default) { } - - public MeansImplicitUseAttribute(ImplicitUseTargetFlags targetFlags) - : this(ImplicitUseKindFlags.Default, targetFlags) { } - - public MeansImplicitUseAttribute( - ImplicitUseKindFlags useKindFlags, ImplicitUseTargetFlags targetFlags) - { - this.UseKindFlags = useKindFlags; - this.TargetFlags = targetFlags; - } - - [UsedImplicitly] - public ImplicitUseKindFlags UseKindFlags { get; private set; } - [UsedImplicitly] - public ImplicitUseTargetFlags TargetFlags { get; private set; } - } - - [Flags] - public enum ImplicitUseKindFlags - { - Default = Access | Assign | InstantiatedWithFixedConstructorSignature, - /// Only entity marked with attribute considered used - Access = 1, - /// Indicates implicit assignment to a member - Assign = 2, - /// - /// Indicates implicit instantiation of a type with fixed constructor signature. - /// That means any unused constructor parameters won't be reported as such. - /// - InstantiatedWithFixedConstructorSignature = 4, - /// Indicates implicit instantiation of a type - InstantiatedNoFixedConstructorSignature = 8, - } - - /// - /// Specify what is considered used implicitly - /// when marked with - /// or - /// - [Flags] - public enum ImplicitUseTargetFlags - { - Default = Itself, - Itself = 1, - /// Members of entity marked with attribute are considered used - Members = 2, - /// Entity marked with attribute and all its members considered used - WithMembers = Itself | Members - } - - /// - /// This attribute is intended to mark publicly available API - /// which should not be removed and so is treated as used - /// - [MeansImplicitUse] - public sealed class PublicAPIAttribute : Attribute - { - public PublicAPIAttribute() { } - public PublicAPIAttribute([NotNull] string comment) - { - this.Comment = comment; - } - - [NotNull] - public string Comment { get; private set; } - } - - /// - /// Tells code analysis engine if the parameter is completely handled - /// when the invoked method is on stack. If the parameter is a delegate, - /// indicates that delegate is executed while the method is executed. - /// If the parameter is an enumerable, indicates that it is enumerated - /// while the method is executed - /// - [AttributeUsage(AttributeTargets.Parameter, Inherited = true)] - public sealed class InstantHandleAttribute : Attribute { } - - /// - /// Indicates that a method does not make any observable state changes. - /// The same as System.Diagnostics.Contracts.PureAttribute - /// - /// - /// [Pure] private int Multiply(int x, int y) { return x * y; } - /// public void Foo() { - /// const int a = 2, b = 2; - /// Multiply(a, b); // Waring: Return value of pure method is not used - /// } - /// - [AttributeUsage(AttributeTargets.Method, Inherited = true)] - public sealed class PureAttribute : Attribute { } - - /// - /// Indicates that a parameter is a path to a file or a folder - /// within a web project. Path can be relative or absolute, - /// starting from web root (~) - /// - [AttributeUsage(AttributeTargets.Parameter)] - public class PathReferenceAttribute : Attribute - { - public PathReferenceAttribute() { } - public PathReferenceAttribute([PathReference] string basePath) - { - this.BasePath = basePath; - } - - [NotNull] - public string BasePath { get; private set; } - } - - // ASP.NET MVC attributes - - [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] - public sealed class AspMvcAreaMasterLocationFormatAttribute : Attribute - { - public AspMvcAreaMasterLocationFormatAttribute(string format) { } - } - - [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] - public sealed class AspMvcAreaPartialViewLocationFormatAttribute : Attribute - { - public AspMvcAreaPartialViewLocationFormatAttribute(string format) { } - } - - [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] - public sealed class AspMvcAreaViewLocationFormatAttribute : Attribute - { - public AspMvcAreaViewLocationFormatAttribute(string format) { } - } - - [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] - public sealed class AspMvcMasterLocationFormatAttribute : Attribute - { - public AspMvcMasterLocationFormatAttribute(string format) { } - } - - [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] - public sealed class AspMvcPartialViewLocationFormatAttribute : Attribute - { - public AspMvcPartialViewLocationFormatAttribute(string format) { } - } - - [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] - public sealed class AspMvcViewLocationFormatAttribute : Attribute - { - public AspMvcViewLocationFormatAttribute(string format) { } - } - - /// - /// ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter - /// is an MVC action. If applied to a method, the MVC action name is calculated - /// implicitly from the context. Use this attribute for custom wrappers similar to - /// System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) - /// - [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method)] - public sealed class AspMvcActionAttribute : Attribute - { - public AspMvcActionAttribute() { } - public AspMvcActionAttribute([NotNull] string anonymousProperty) - { - this.AnonymousProperty = anonymousProperty; - } - - [NotNull] - public string AnonymousProperty { get; private set; } - } - - /// - /// ASP.NET MVC attribute. Indicates that a parameter is an MVC area. - /// Use this attribute for custom wrappers similar to - /// System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) - /// - [AttributeUsage(AttributeTargets.Parameter)] - public sealed class AspMvcAreaAttribute : PathReferenceAttribute - { - public AspMvcAreaAttribute() { } - public AspMvcAreaAttribute([NotNull] string anonymousProperty) - { - this.AnonymousProperty = anonymousProperty; - } - - [NotNull] - public string AnonymousProperty { get; private set; } - } - - /// - /// ASP.NET MVC attribute. If applied to a parameter, indicates that - /// the parameter is an MVC controller. If applied to a method, - /// the MVC controller name is calculated implicitly from the context. - /// Use this attribute for custom wrappers similar to - /// System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String) - /// - [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method)] - public sealed class AspMvcControllerAttribute : Attribute - { - public AspMvcControllerAttribute() { } - public AspMvcControllerAttribute([NotNull] string anonymousProperty) - { - this.AnonymousProperty = anonymousProperty; - } - - [NotNull] - public string AnonymousProperty { get; private set; } - } - - /// - /// ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. - /// Use this attribute for custom wrappers similar to - /// System.Web.Mvc.Controller.View(String, String) - /// - [AttributeUsage(AttributeTargets.Parameter)] - public sealed class AspMvcMasterAttribute : Attribute { } - - /// - /// ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. - /// Use this attribute for custom wrappers similar to - /// System.Web.Mvc.Controller.View(String, Object) - /// - [AttributeUsage(AttributeTargets.Parameter)] - public sealed class AspMvcModelTypeAttribute : Attribute { } - - /// - /// ASP.NET MVC attribute. If applied to a parameter, indicates that - /// the parameter is an MVC partial view. If applied to a method, - /// the MVC partial view name is calculated implicitly from the context. - /// Use this attribute for custom wrappers similar to - /// System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String) - /// - [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method)] - public sealed class AspMvcPartialViewAttribute : PathReferenceAttribute { } - - /// - /// ASP.NET MVC attribute. Allows disabling all inspections - /// for MVC views within a class or a method. - /// - [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] - public sealed class AspMvcSupressViewErrorAttribute : Attribute { } - - /// - /// ASP.NET MVC attribute. Indicates that a parameter is an MVC display template. - /// Use this attribute for custom wrappers similar to - /// System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String) - /// - [AttributeUsage(AttributeTargets.Parameter)] - public sealed class AspMvcDisplayTemplateAttribute : Attribute { } - - /// - /// ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template. - /// Use this attribute for custom wrappers similar to - /// System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String) - /// - [AttributeUsage(AttributeTargets.Parameter)] - public sealed class AspMvcEditorTemplateAttribute : Attribute { } - - /// - /// ASP.NET MVC attribute. Indicates that a parameter is an MVC template. - /// Use this attribute for custom wrappers similar to - /// System.ComponentModel.DataAnnotations.UIHintAttribute(System.String) - /// - [AttributeUsage(AttributeTargets.Parameter)] - public sealed class AspMvcTemplateAttribute : Attribute { } - - /// - /// ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter - /// is an MVC view. If applied to a method, the MVC view name is calculated implicitly - /// from the context. Use this attribute for custom wrappers similar to - /// System.Web.Mvc.Controller.View(Object) - /// - [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method)] - public sealed class AspMvcViewAttribute : PathReferenceAttribute { } - - /// - /// ASP.NET MVC attribute. When applied to a parameter of an attribute, - /// indicates that this parameter is an MVC action name - /// - /// - /// [ActionName("Foo")] - /// public ActionResult Login(string returnUrl) { - /// ViewBag.ReturnUrl = Url.Action("Foo"); // OK - /// return RedirectToAction("Bar"); // Error: Cannot resolve action - /// } - /// - [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Property)] - public sealed class AspMvcActionSelectorAttribute : Attribute { } - - [AttributeUsage( - AttributeTargets.Parameter | AttributeTargets.Property | - AttributeTargets.Field, Inherited = true)] - public sealed class HtmlElementAttributesAttribute : Attribute - { - public HtmlElementAttributesAttribute() { } - public HtmlElementAttributesAttribute([NotNull] string name) - { - this.Name = name; - } - - [NotNull] - public string Name { get; private set; } - } - - [AttributeUsage( - AttributeTargets.Parameter | AttributeTargets.Field | - AttributeTargets.Property, Inherited = true)] - public sealed class HtmlAttributeValueAttribute : Attribute - { - public HtmlAttributeValueAttribute([NotNull] string name) - { - this.Name = name; - } - - [NotNull] - public string Name { get; private set; } - } - - // Razor attributes - - /// - /// Razor attribute. Indicates that a parameter or a method is a Razor section. - /// Use this attribute for custom wrappers similar to - /// System.Web.WebPages.WebPageBase.RenderSection(String) - /// - [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method, Inherited = true)] - public sealed class RazorSectionAttribute : Attribute { } +using System; + +#pragma warning disable 1591 +// ReSharper disable UnusedMember.Global +// ReSharper disable UnusedParameter.Local +// ReSharper disable MemberCanBePrivate.Global +// ReSharper disable UnusedAutoPropertyAccessor.Global +// ReSharper disable IntroduceOptionalParameters.Global +// ReSharper disable MemberCanBeProtected.Global +// ReSharper disable InconsistentNaming + +namespace JetBrains.Annotations +{ + /// + /// Indicates that the value of the marked element could be null sometimes, + /// so the check for null is necessary before its usage + /// + /// + /// [CanBeNull] public object Test() { return null; } + /// public void UseTest() { + /// var p = Test(); + /// var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + /// } + /// + [AttributeUsage( + AttributeTargets.Method | AttributeTargets.Parameter | + AttributeTargets.Property | AttributeTargets.Delegate | + AttributeTargets.Field, AllowMultiple = false, Inherited = true)] + public sealed class CanBeNullAttribute : Attribute { } + + /// + /// Indicates that the value of the marked element could never be null + /// + /// + /// [NotNull] public object Foo() { + /// return null; // Warning: Possible 'null' assignment + /// } + /// + [AttributeUsage( + AttributeTargets.Method | AttributeTargets.Parameter | + AttributeTargets.Property | AttributeTargets.Delegate | + AttributeTargets.Field, AllowMultiple = false, Inherited = true)] + public sealed class NotNullAttribute : Attribute { } + + /// + /// Indicates that the marked method builds string by format pattern and (optional) arguments. + /// Parameter, which contains format string, should be given in constructor. The format string + /// should be in -like form + /// + /// + /// [StringFormatMethod("message")] + /// public void ShowError(string message, params object[] args) { /* do something */ } + /// public void Foo() { + /// ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + /// } + /// + [AttributeUsage( + AttributeTargets.Constructor | AttributeTargets.Method, + AllowMultiple = false, Inherited = true)] + public sealed class StringFormatMethodAttribute : Attribute + { + /// + /// Specifies which parameter of an annotated method should be treated as format-string + /// + public StringFormatMethodAttribute(string formatParameterName) + { + this.FormatParameterName = formatParameterName; + } + + public string FormatParameterName { get; private set; } + } + + /// + /// Indicates that the function argument should be string literal and match one + /// of the parameters of the caller function. For example, ReSharper annotates + /// the parameter of + /// + /// + /// public void Foo(string param) { + /// if (param == null) + /// throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + /// } + /// + [AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)] + public sealed class InvokerParameterNameAttribute : Attribute { } + + /// + /// Indicates that the method is contained in a type that implements + /// interface + /// and this method is used to notify that some property value changed + /// + /// + /// The method should be non-static and conform to one of the supported signatures: + /// + /// NotifyChanged(string) + /// NotifyChanged(params string[]) + /// NotifyChanged{T}(Expression{Func{T}}) + /// NotifyChanged{T,U}(Expression{Func{T,U}}) + /// SetProperty{T}(ref T, T, string) + /// + /// + /// + /// public class Foo : INotifyPropertyChanged { + /// public event PropertyChangedEventHandler PropertyChanged; + /// [NotifyPropertyChangedInvocator] + /// protected virtual void NotifyChanged(string propertyName) { ... } + /// + /// private string _name; + /// public string Name { + /// get { return _name; } + /// set { _name = value; NotifyChanged("LastName"); /* Warning */ } + /// } + /// } + /// + /// Examples of generated notifications: + /// + /// NotifyChanged("Property") + /// NotifyChanged(() => Property) + /// NotifyChanged((VM x) => x.Property) + /// SetProperty(ref myField, value, "Property") + /// + /// + [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)] + public sealed class NotifyPropertyChangedInvocatorAttribute : Attribute + { + public NotifyPropertyChangedInvocatorAttribute() { } + public NotifyPropertyChangedInvocatorAttribute(string parameterName) + { + this.ParameterName = parameterName; + } + + public string ParameterName { get; private set; } + } + + /// + /// Describes dependency between method input and output + /// + /// + ///

Function Definition Table syntax:

+ /// + /// FDT ::= FDTRow [;FDTRow]* + /// FDTRow ::= Input => Output | Output <= Input + /// Input ::= ParameterName: Value [, Input]* + /// Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + /// Value ::= true | false | null | notnull | canbenull + /// + /// If method has single input parameter, it's name could be omitted.
+ /// Using halt (or void/nothing, which is the same) + /// for method output means that the methos doesn't return normally.
+ /// canbenull annotation is only applicable for output parameters.
+ /// You can use multiple [ContractAnnotation] for each FDT row, + /// or use single attribute with rows separated by semicolon.
+ ///
+ /// + /// + /// [ContractAnnotation("=> halt")] + /// public void TerminationMethod() + /// + /// + /// [ContractAnnotation("halt <= condition: false")] + /// public void Assert(bool condition, string text) // regular assertion method + /// + /// + /// [ContractAnnotation("s:null => true")] + /// public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + /// + /// + /// // A method that returns null if the parameter is null, and not null if the parameter is not null + /// [ContractAnnotation("null => null; notnull => notnull")] + /// public object Transform(object data) + /// + /// + /// [ContractAnnotation("s:null=>false; =>true,result:notnull; =>false, result:null")] + /// public bool TryParse(string s, out Person result) + /// + /// + [AttributeUsage(AttributeTargets.Method, AllowMultiple = true, Inherited = true)] + public sealed class ContractAnnotationAttribute : Attribute + { + public ContractAnnotationAttribute([NotNull] string contract) + : this(contract, false) { } + + public ContractAnnotationAttribute([NotNull] string contract, bool forceFullStates) + { + this.Contract = contract; + this.ForceFullStates = forceFullStates; + } + + public string Contract { get; private set; } + public bool ForceFullStates { get; private set; } + } + + /// + /// Indicates that marked element should be localized or not + /// + /// + /// [LocalizationRequiredAttribute(true)] + /// public class Foo { + /// private string str = "my string"; // Warning: Localizable string + /// } + /// + [AttributeUsage(AttributeTargets.All, AllowMultiple = false, Inherited = true)] + public sealed class LocalizationRequiredAttribute : Attribute + { + public LocalizationRequiredAttribute() : this(true) { } + public LocalizationRequiredAttribute(bool required) + { + this.Required = required; + } + + public bool Required { get; private set; } + } + + /// + /// Indicates that the value of the marked type (or its derivatives) + /// cannot be compared using '==' or '!=' operators and Equals() + /// should be used instead. However, using '==' or '!=' for comparison + /// with null is always permitted. + /// + /// + /// [CannotApplyEqualityOperator] + /// class NoEquality { } + /// class UsesNoEquality { + /// public void Test() { + /// var ca1 = new NoEquality(); + /// var ca2 = new NoEquality(); + /// if (ca1 != null) { // OK + /// bool condition = ca1 == ca2; // Warning + /// } + /// } + /// } + /// + [AttributeUsage( + AttributeTargets.Interface | AttributeTargets.Class | + AttributeTargets.Struct, AllowMultiple = false, Inherited = true)] + public sealed class CannotApplyEqualityOperatorAttribute : Attribute { } + + /// + /// When applied to a target attribute, specifies a requirement for any type marked + /// with the target attribute to implement or inherit specific type or types. + /// + /// + /// [BaseTypeRequired(typeof(IComponent)] // Specify requirement + /// public class ComponentAttribute : Attribute { } + /// [Component] // ComponentAttribute requires implementing IComponent interface + /// public class MyComponent : IComponent { } + /// + [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)] + [BaseTypeRequired(typeof(Attribute))] + public sealed class BaseTypeRequiredAttribute : Attribute + { + public BaseTypeRequiredAttribute([NotNull] Type baseType) + { + this.BaseType = baseType; + } + + [NotNull] + public Type BaseType { get; private set; } + } + + /// + /// Indicates that the marked symbol is used implicitly + /// (e.g. via reflection, in external library), so this symbol + /// will not be marked as unused (as well as by other usage inspections) + /// + [AttributeUsage(AttributeTargets.All, AllowMultiple = false, Inherited = true)] + public sealed class UsedImplicitlyAttribute : Attribute + { + public UsedImplicitlyAttribute() + : this(ImplicitUseKindFlags.Default, ImplicitUseTargetFlags.Default) { } + + public UsedImplicitlyAttribute(ImplicitUseKindFlags useKindFlags) + : this(useKindFlags, ImplicitUseTargetFlags.Default) { } + + public UsedImplicitlyAttribute(ImplicitUseTargetFlags targetFlags) + : this(ImplicitUseKindFlags.Default, targetFlags) { } + + public UsedImplicitlyAttribute( + ImplicitUseKindFlags useKindFlags, ImplicitUseTargetFlags targetFlags) + { + this.UseKindFlags = useKindFlags; + this.TargetFlags = targetFlags; + } + + public ImplicitUseKindFlags UseKindFlags { get; private set; } + public ImplicitUseTargetFlags TargetFlags { get; private set; } + } + + /// + /// Should be used on attributes and causes ReSharper + /// to not mark symbols marked with such attributes as unused + /// (as well as by other usage inspections) + /// + [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)] + public sealed class MeansImplicitUseAttribute : Attribute + { + public MeansImplicitUseAttribute() + : this(ImplicitUseKindFlags.Default, ImplicitUseTargetFlags.Default) { } + + public MeansImplicitUseAttribute(ImplicitUseKindFlags useKindFlags) + : this(useKindFlags, ImplicitUseTargetFlags.Default) { } + + public MeansImplicitUseAttribute(ImplicitUseTargetFlags targetFlags) + : this(ImplicitUseKindFlags.Default, targetFlags) { } + + public MeansImplicitUseAttribute( + ImplicitUseKindFlags useKindFlags, ImplicitUseTargetFlags targetFlags) + { + this.UseKindFlags = useKindFlags; + this.TargetFlags = targetFlags; + } + + [UsedImplicitly] + public ImplicitUseKindFlags UseKindFlags { get; private set; } + [UsedImplicitly] + public ImplicitUseTargetFlags TargetFlags { get; private set; } + } + + [Flags] + public enum ImplicitUseKindFlags + { + Default = Access | Assign | InstantiatedWithFixedConstructorSignature, + /// Only entity marked with attribute considered used + Access = 1, + /// Indicates implicit assignment to a member + Assign = 2, + /// + /// Indicates implicit instantiation of a type with fixed constructor signature. + /// That means any unused constructor parameters won't be reported as such. + /// + InstantiatedWithFixedConstructorSignature = 4, + /// Indicates implicit instantiation of a type + InstantiatedNoFixedConstructorSignature = 8, + } + + /// + /// Specify what is considered used implicitly + /// when marked with + /// or + /// + [Flags] + public enum ImplicitUseTargetFlags + { + Default = Itself, + Itself = 1, + /// Members of entity marked with attribute are considered used + Members = 2, + /// Entity marked with attribute and all its members considered used + WithMembers = Itself | Members + } + + /// + /// This attribute is intended to mark publicly available API + /// which should not be removed and so is treated as used + /// + [MeansImplicitUse] + public sealed class PublicAPIAttribute : Attribute + { + public PublicAPIAttribute() { } + public PublicAPIAttribute([NotNull] string comment) + { + this.Comment = comment; + } + + [NotNull] + public string Comment { get; private set; } + } + + /// + /// Tells code analysis engine if the parameter is completely handled + /// when the invoked method is on stack. If the parameter is a delegate, + /// indicates that delegate is executed while the method is executed. + /// If the parameter is an enumerable, indicates that it is enumerated + /// while the method is executed + /// + [AttributeUsage(AttributeTargets.Parameter, Inherited = true)] + public sealed class InstantHandleAttribute : Attribute { } + + /// + /// Indicates that a method does not make any observable state changes. + /// The same as System.Diagnostics.Contracts.PureAttribute + /// + /// + /// [Pure] private int Multiply(int x, int y) { return x * y; } + /// public void Foo() { + /// const int a = 2, b = 2; + /// Multiply(a, b); // Waring: Return value of pure method is not used + /// } + /// + [AttributeUsage(AttributeTargets.Method, Inherited = true)] + public sealed class PureAttribute : Attribute { } + + /// + /// Indicates that a parameter is a path to a file or a folder + /// within a web project. Path can be relative or absolute, + /// starting from web root (~) + /// + [AttributeUsage(AttributeTargets.Parameter)] + public class PathReferenceAttribute : Attribute + { + public PathReferenceAttribute() { } + public PathReferenceAttribute([PathReference] string basePath) + { + this.BasePath = basePath; + } + + [NotNull] + public string BasePath { get; private set; } + } + + // ASP.NET MVC attributes + + [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] + public sealed class AspMvcAreaMasterLocationFormatAttribute : Attribute + { + public AspMvcAreaMasterLocationFormatAttribute(string format) { } + } + + [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] + public sealed class AspMvcAreaPartialViewLocationFormatAttribute : Attribute + { + public AspMvcAreaPartialViewLocationFormatAttribute(string format) { } + } + + [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] + public sealed class AspMvcAreaViewLocationFormatAttribute : Attribute + { + public AspMvcAreaViewLocationFormatAttribute(string format) { } + } + + [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] + public sealed class AspMvcMasterLocationFormatAttribute : Attribute + { + public AspMvcMasterLocationFormatAttribute(string format) { } + } + + [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] + public sealed class AspMvcPartialViewLocationFormatAttribute : Attribute + { + public AspMvcPartialViewLocationFormatAttribute(string format) { } + } + + [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] + public sealed class AspMvcViewLocationFormatAttribute : Attribute + { + public AspMvcViewLocationFormatAttribute(string format) { } + } + + /// + /// ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + /// is an MVC action. If applied to a method, the MVC action name is calculated + /// implicitly from the context. Use this attribute for custom wrappers similar to + /// System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) + /// + [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method)] + public sealed class AspMvcActionAttribute : Attribute + { + public AspMvcActionAttribute() { } + public AspMvcActionAttribute([NotNull] string anonymousProperty) + { + this.AnonymousProperty = anonymousProperty; + } + + [NotNull] + public string AnonymousProperty { get; private set; } + } + + /// + /// ASP.NET MVC attribute. Indicates that a parameter is an MVC area. + /// Use this attribute for custom wrappers similar to + /// System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) + /// + [AttributeUsage(AttributeTargets.Parameter)] + public sealed class AspMvcAreaAttribute : PathReferenceAttribute + { + public AspMvcAreaAttribute() { } + public AspMvcAreaAttribute([NotNull] string anonymousProperty) + { + this.AnonymousProperty = anonymousProperty; + } + + [NotNull] + public string AnonymousProperty { get; private set; } + } + + /// + /// ASP.NET MVC attribute. If applied to a parameter, indicates that + /// the parameter is an MVC controller. If applied to a method, + /// the MVC controller name is calculated implicitly from the context. + /// Use this attribute for custom wrappers similar to + /// System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String) + /// + [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method)] + public sealed class AspMvcControllerAttribute : Attribute + { + public AspMvcControllerAttribute() { } + public AspMvcControllerAttribute([NotNull] string anonymousProperty) + { + this.AnonymousProperty = anonymousProperty; + } + + [NotNull] + public string AnonymousProperty { get; private set; } + } + + /// + /// ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. + /// Use this attribute for custom wrappers similar to + /// System.Web.Mvc.Controller.View(String, String) + /// + [AttributeUsage(AttributeTargets.Parameter)] + public sealed class AspMvcMasterAttribute : Attribute { } + + /// + /// ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. + /// Use this attribute for custom wrappers similar to + /// System.Web.Mvc.Controller.View(String, Object) + /// + [AttributeUsage(AttributeTargets.Parameter)] + public sealed class AspMvcModelTypeAttribute : Attribute { } + + /// + /// ASP.NET MVC attribute. If applied to a parameter, indicates that + /// the parameter is an MVC partial view. If applied to a method, + /// the MVC partial view name is calculated implicitly from the context. + /// Use this attribute for custom wrappers similar to + /// System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String) + /// + [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method)] + public sealed class AspMvcPartialViewAttribute : PathReferenceAttribute { } + + /// + /// ASP.NET MVC attribute. Allows disabling all inspections + /// for MVC views within a class or a method. + /// + [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] + public sealed class AspMvcSupressViewErrorAttribute : Attribute { } + + /// + /// ASP.NET MVC attribute. Indicates that a parameter is an MVC display template. + /// Use this attribute for custom wrappers similar to + /// System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String) + /// + [AttributeUsage(AttributeTargets.Parameter)] + public sealed class AspMvcDisplayTemplateAttribute : Attribute { } + + /// + /// ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template. + /// Use this attribute for custom wrappers similar to + /// System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String) + /// + [AttributeUsage(AttributeTargets.Parameter)] + public sealed class AspMvcEditorTemplateAttribute : Attribute { } + + /// + /// ASP.NET MVC attribute. Indicates that a parameter is an MVC template. + /// Use this attribute for custom wrappers similar to + /// System.ComponentModel.DataAnnotations.UIHintAttribute(System.String) + /// + [AttributeUsage(AttributeTargets.Parameter)] + public sealed class AspMvcTemplateAttribute : Attribute { } + + /// + /// ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + /// is an MVC view. If applied to a method, the MVC view name is calculated implicitly + /// from the context. Use this attribute for custom wrappers similar to + /// System.Web.Mvc.Controller.View(Object) + /// + [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method)] + public sealed class AspMvcViewAttribute : PathReferenceAttribute { } + + /// + /// ASP.NET MVC attribute. When applied to a parameter of an attribute, + /// indicates that this parameter is an MVC action name + /// + /// + /// [ActionName("Foo")] + /// public ActionResult Login(string returnUrl) { + /// ViewBag.ReturnUrl = Url.Action("Foo"); // OK + /// return RedirectToAction("Bar"); // Error: Cannot resolve action + /// } + /// + [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Property)] + public sealed class AspMvcActionSelectorAttribute : Attribute { } + + [AttributeUsage( + AttributeTargets.Parameter | AttributeTargets.Property | + AttributeTargets.Field, Inherited = true)] + public sealed class HtmlElementAttributesAttribute : Attribute + { + public HtmlElementAttributesAttribute() { } + public HtmlElementAttributesAttribute([NotNull] string name) + { + this.Name = name; + } + + [NotNull] + public string Name { get; private set; } + } + + [AttributeUsage( + AttributeTargets.Parameter | AttributeTargets.Field | + AttributeTargets.Property, Inherited = true)] + public sealed class HtmlAttributeValueAttribute : Attribute + { + public HtmlAttributeValueAttribute([NotNull] string name) + { + this.Name = name; + } + + [NotNull] + public string Name { get; private set; } + } + + // Razor attributes + + /// + /// Razor attribute. Indicates that a parameter or a method is a Razor section. + /// Use this attribute for custom wrappers similar to + /// System.Web.WebPages.WebPageBase.RenderSection(String) + /// + [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method, Inherited = true)] + public sealed class RazorSectionAttribute : Attribute { } } \ No newline at end of file diff --git a/FluentTest/Properties/AssemblyInfo.cs b/Fluent.Ribbon.Showcase/Properties/AssemblyInfo.cs similarity index 66% rename from FluentTest/Properties/AssemblyInfo.cs rename to Fluent.Ribbon.Showcase/Properties/AssemblyInfo.cs index 660e9d73d..34f7a62de 100644 --- a/FluentTest/Properties/AssemblyInfo.cs +++ b/Fluent.Ribbon.Showcase/Properties/AssemblyInfo.cs @@ -1,4 +1,4 @@ -using System.Reflection; - -[assembly: AssemblyTitle("Fluent Showcase")] +using System.Reflection; + +[assembly: AssemblyTitle("Fluent.Ribbon.Showcase")] [assembly: AssemblyDescription("Showcase of Fluent Ribbon Control Suite")] \ No newline at end of file diff --git a/FluentTest/Properties/Resources.Designer.cs b/Fluent.Ribbon.Showcase/Properties/Resources.Designer.cs similarity index 96% rename from FluentTest/Properties/Resources.Designer.cs rename to Fluent.Ribbon.Showcase/Properties/Resources.Designer.cs index f207a2aa6..946f9eef8 100644 --- a/FluentTest/Properties/Resources.Designer.cs +++ b/Fluent.Ribbon.Showcase/Properties/Resources.Designer.cs @@ -1,63 +1,63 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.34014 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace FluentTest.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [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 { - - 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() { - } - - /// - /// 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 (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FluentTest.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 { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} +//------------------------------------------------------------------------------ +// +// 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. +// +//------------------------------------------------------------------------------ + +namespace FluentTest.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [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 { + + 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() { + } + + /// + /// 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 (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FluentTest.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 { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/FluentTest/Properties/Resources.resx b/Fluent.Ribbon.Showcase/Properties/Resources.resx similarity index 97% rename from FluentTest/Properties/Resources.resx rename to Fluent.Ribbon.Showcase/Properties/Resources.resx index ffecec851..af7dbebba 100644 --- a/FluentTest/Properties/Resources.resx +++ b/Fluent.Ribbon.Showcase/Properties/Resources.resx @@ -1,117 +1,117 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/FluentTest/Properties/Settings.Designer.cs b/Fluent.Ribbon.Showcase/Properties/Settings.Designer.cs similarity index 91% rename from FluentTest/Properties/Settings.Designer.cs rename to Fluent.Ribbon.Showcase/Properties/Settings.Designer.cs index 54795eddb..4f9fad2bf 100644 --- a/FluentTest/Properties/Settings.Designer.cs +++ b/Fluent.Ribbon.Showcase/Properties/Settings.Designer.cs @@ -1,26 +1,26 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.34014 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace FluentTest.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.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 { - return defaultInstance; - } - } - } -} +//------------------------------------------------------------------------------ +// +// 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. +// +//------------------------------------------------------------------------------ + +namespace FluentTest.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 { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/FluentTest/Properties/Settings.settings b/Fluent.Ribbon.Showcase/Properties/Settings.settings similarity index 97% rename from FluentTest/Properties/Settings.settings rename to Fluent.Ribbon.Showcase/Properties/Settings.settings index 8f2fd95d6..033d7a5e9 100644 --- a/FluentTest/Properties/Settings.settings +++ b/Fluent.Ribbon.Showcase/Properties/Settings.settings @@ -1,7 +1,7 @@ - - - - - - + + + + + + \ No newline at end of file diff --git a/FluentTest/RegularWindow.xaml b/Fluent.Ribbon.Showcase/RegularWindow.xaml similarity index 100% rename from FluentTest/RegularWindow.xaml rename to Fluent.Ribbon.Showcase/RegularWindow.xaml diff --git a/FluentTest/RegularWindow.xaml.cs b/Fluent.Ribbon.Showcase/RegularWindow.xaml.cs similarity index 100% rename from FluentTest/RegularWindow.xaml.cs rename to Fluent.Ribbon.Showcase/RegularWindow.xaml.cs diff --git a/FluentTest/RibbonWindowWithoutVisibileRibbon.xaml b/Fluent.Ribbon.Showcase/RibbonWindowWithoutVisibileRibbon.xaml similarity index 100% rename from FluentTest/RibbonWindowWithoutVisibileRibbon.xaml rename to Fluent.Ribbon.Showcase/RibbonWindowWithoutVisibileRibbon.xaml diff --git a/FluentTest/RibbonWindowWithoutVisibileRibbon.xaml.cs b/Fluent.Ribbon.Showcase/RibbonWindowWithoutVisibileRibbon.xaml.cs similarity index 100% rename from FluentTest/RibbonWindowWithoutVisibileRibbon.xaml.cs rename to Fluent.Ribbon.Showcase/RibbonWindowWithoutVisibileRibbon.xaml.cs diff --git a/FluentTest/TestContent.xaml b/Fluent.Ribbon.Showcase/TestContent.xaml similarity index 98% rename from FluentTest/TestContent.xaml rename to Fluent.Ribbon.Showcase/TestContent.xaml index 72c802832..1cfc57897 100644 --- a/FluentTest/TestContent.xaml +++ b/Fluent.Ribbon.Showcase/TestContent.xaml @@ -1,2776 +1,2776 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - - - 1 - 2 - 3 - 4 - 5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This is long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long text - - 123 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Silver - Black - Blue - Don't use DWM - - - - White - - - - White (Experimental) - - - - - Use backstage - - - Use application menu - - - - - - SaveWindowPosition - - - IsIconVisible - - - IsStatusBarVisible - - - - - - ShowQuickAccessToolBarAboveRibbon - - - CanCustomizeQuickAccessToolBar - - - CanCustomizeQuickAccessToolBarItems - - - CanCustomizeRibbon - - - IsMinimized - - - IsCollapsed - - - IsAutomaticCollapseEnabled - - - IsQuickAccessToolBarVisible - - - CanQuickAccessLocationChanging - - - AutomaticStateManagement - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Show All - Read-only - Writeable - - - - - - - - - - - - 1 - 2 - 3 - 4 - 5 - 6 - 1 (G 2) - 2 (G 2) - 3 (G 2) - - - - AAAA - First - AAAA - AAAA - AAAA - AAAA - BBBB - BBBB - BBBB - BBBB - BBBB - CCCC - CCCC - CCCC - CCCC - CCCC - DDDD - DDDD - DDDD - DDDD - DDDD - EEEE - EEEE - EEEE - EEEE - EEEE - FFFF - FFFF - FFFF - FFFF - FFFF - GGGG - GGGG - GGGG - GGGG - GGGG - HHHH - HHHH - HHHH - HHHH - HHHH - IIII - IIII - IIII - IIII - IIII - JJJJ - JJJJ - JJJJ - JJJJ - JJJJ - KKKK - KKKK - KKKK - KKKK - KKKK - LLLL - LLLL - LLLL - LLLL - LLLL - MMMM - MMMM - MMMM - MMMM - MMMM - NNNN - NNNN - NNNN - NNNN - NNNN - OOOO - OOOO - OOOO - OOOO - OOOO - PPPP - PPPP - PPPP - PPPP - PPPP - QQQQ - QQQQ - QQQQ - QQQQ - QQQQ - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - AAAA - YYYY - YYYY - YYYY - YYYY - YYYY - ZZZZ - ZZZZ - ZZZZ - ZZZZ - ZZZZ - Last - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Text 1 - Text 2 - Text 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Test - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - - - - - - - - - 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Fluent Ribbon Control Suite - - Fluent Ribbon Control Suite is a library that implements an Office-like (Microsoft® Office Fluent™ user interface) for the Windows Presentation Foundation (WPF). - - It provides well-customized controls such as RibbonTabControl, Backstage, Gallery, QuickAccessToolbar, ScreenTip and so on. - - It is bundled with the most up-to-date Office 2010 and Office 2013 styles. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + + + 1 + 2 + 3 + 4 + 5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This is long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long text + + 123 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Silver + Black + Blue + Don't use DWM + + + + White + + + + White (Experimental) + + + + + Use backstage + + + Use application menu + + + + + + SaveWindowPosition + + + IsIconVisible + + + IsStatusBarVisible + + + + + + ShowQuickAccessToolBarAboveRibbon + + + CanCustomizeQuickAccessToolBar + + + CanCustomizeQuickAccessToolBarItems + + + CanCustomizeRibbon + + + IsMinimized + + + IsCollapsed + + + IsAutomaticCollapseEnabled + + + IsQuickAccessToolBarVisible + + + CanQuickAccessLocationChanging + + + AutomaticStateManagement + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Show All + Read-only + Writeable + + + + + + + + + + + + 1 + 2 + 3 + 4 + 5 + 6 + 1 (G 2) + 2 (G 2) + 3 (G 2) + + + + AAAA - First + AAAA + AAAA + AAAA + AAAA + BBBB + BBBB + BBBB + BBBB + BBBB + CCCC + CCCC + CCCC + CCCC + CCCC + DDDD + DDDD + DDDD + DDDD + DDDD + EEEE + EEEE + EEEE + EEEE + EEEE + FFFF + FFFF + FFFF + FFFF + FFFF + GGGG + GGGG + GGGG + GGGG + GGGG + HHHH + HHHH + HHHH + HHHH + HHHH + IIII + IIII + IIII + IIII + IIII + JJJJ + JJJJ + JJJJ + JJJJ + JJJJ + KKKK + KKKK + KKKK + KKKK + KKKK + LLLL + LLLL + LLLL + LLLL + LLLL + MMMM + MMMM + MMMM + MMMM + MMMM + NNNN + NNNN + NNNN + NNNN + NNNN + OOOO + OOOO + OOOO + OOOO + OOOO + PPPP + PPPP + PPPP + PPPP + PPPP + QQQQ + QQQQ + QQQQ + QQQQ + QQQQ + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + AAAA + YYYY + YYYY + YYYY + YYYY + YYYY + ZZZZ + ZZZZ + ZZZZ + ZZZZ + ZZZZ + Last + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Text 1 + Text 2 + Text 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Test + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + + + + + + + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Fluent Ribbon Control Suite + + Fluent Ribbon Control Suite is a library that implements an Office-like (Microsoft® Office Fluent™ user interface) for the Windows Presentation Foundation (WPF). + + It provides well-customized controls such as RibbonTabControl, Backstage, Gallery, QuickAccessToolbar, ScreenTip and so on. + + It is bundled with the most up-to-date Office 2010 and Office 2013 styles. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/FluentTest/TestContent.xaml.cs b/Fluent.Ribbon.Showcase/TestContent.xaml.cs similarity index 97% rename from FluentTest/TestContent.xaml.cs rename to Fluent.Ribbon.Showcase/TestContent.xaml.cs index cd7ff9b6b..1b13738cf 100644 --- a/FluentTest/TestContent.xaml.cs +++ b/Fluent.Ribbon.Showcase/TestContent.xaml.cs @@ -1,450 +1,450 @@ -namespace FluentTest -{ - using System; - using System.Diagnostics; - using System.Linq; - using System.Text; - using System.Threading; - using System.Windows; - using System.Windows.Controls; - using System.Windows.Input; - using System.Windows.Media; - using System.Windows.Media.Imaging; - using System.Windows.Threading; - using Fluent; - using FluentTest.ViewModels; - using Button = Fluent.Button; - - public partial class TestContent - { - private Theme? currentTheme; - private readonly MainViewModel viewModel; - - public TestContent() - { - this.InitializeComponent(); - - //Ribbon.Localization.Culture = new CultureInfo("ru-RU"); - - this.HookEvents(); - - this.viewModel = new MainViewModel(); - this.DataContext = this.viewModel; - } - - private void HookEvents() - { - this.Loaded += this.HandleTestContentLoaded; - - this.buttonBold.Checked += (s, e) => Debug.WriteLine("Checked"); - this.buttonBold.Unchecked += (s, e) => Debug.WriteLine("Unchecked"); - - this.PreviewMouseWheel += this.OnPreviewMouseWheel; - } - - private static void OnScreenTipHelpPressed(object sender, ScreenTipHelpEventArgs e) - { - Process.Start((string)e.HelpTopic); - } - - private void HandleTestContentLoaded(object sender, RoutedEventArgs e) - { - ScreenTip.HelpPressed += OnScreenTipHelpPressed; - } - - private void OnLauncherButtonClick(object sender, RoutedEventArgs e) - { - var groupBox = (RibbonGroupBox)sender; - - var wnd = new Window - { - Content = string.Format("Launcher-Window for: {0}", groupBox.Header), - Owner = Window.GetWindow(this) - }; - - wnd.Show(); - } - - private void OnSplitClick(object sender, RoutedEventArgs e) - { - MessageBox.Show("Split Clicked!!!"); - } - - private void OnEnlargeClick(object sender, RoutedEventArgs e) - { - this.InRibbonGallery.Enlarge(); - } - - private void OnReduceClick(object sender, RoutedEventArgs e) - { - this.InRibbonGallery.Reduce(); - } - - public Button CreateRibbonButton() - { - var fooCommand1 = new TestRoutedCommand(); - - var button = new Button - { - Command = fooCommand1.ItemCommand, - Header = "Foo", - Icon = new BitmapImage(new Uri(@"Images\Green.png", UriKind.Relative)), - LargeIcon = new BitmapImage(new Uri(@"Images\GreenLarge.png", UriKind.Relative)), - }; - - this.CommandBindings.Add(fooCommand1.ItemCommandBinding); - return button; - } - - #region Theming - - private enum Theme - { - Office2010, - Office2013, - Windows8 - } - - private void OnOffice2013Click(object sender, RoutedEventArgs e) - { - this.ChangeTheme(Theme.Office2013, "pack://application:,,,/Fluent;component/Themes/Office2013/Generic.xaml"); - } - - private void OnOffice2010SilverClick(object sender, RoutedEventArgs e) - { - this.ChangeTheme(Theme.Office2010, "pack://application:,,,/Fluent;component/Themes/Office2010/Silver.xaml"); - } - - private void OnOffice2010BlackClick(object sender, RoutedEventArgs e) - { - this.ChangeTheme(Theme.Office2010, "pack://application:,,,/Fluent;component/Themes/Office2010/Black.xaml"); - } - - private void OnOffice2010BlueClick(object sender, RoutedEventArgs e) - { - this.ChangeTheme(Theme.Office2010, "pack://application:,,,/Fluent;component/Themes/Office2010/Blue.xaml"); - } - - private void OnWindows8Click(object sender, RoutedEventArgs e) - { - this.ChangeTheme(Theme.Windows8, "pack://application:,,,/Fluent;component/Themes/Windows8/Silver.xaml"); - } - - - private void ChangeTheme(Theme theme, string color) - { - this.Dispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, (ThreadStart)(() => - { - var owner = Window.GetWindow(this); - if (owner != null) - { - owner.Resources.BeginInit(); - - if (owner.Resources.MergedDictionaries.Count > 0) - { - owner.Resources.MergedDictionaries.RemoveAt(0); - } - - if (string.IsNullOrEmpty(color) == false) - { - owner.Resources.MergedDictionaries.Add(new ResourceDictionary { Source = new Uri(color) }); - } - - owner.Resources.EndInit(); - } - - if (this.currentTheme != theme) - { - Application.Current.Resources.BeginInit(); - switch (theme) - { - case Theme.Office2010: - Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary { Source = new Uri("pack://application:,,,/Fluent;component/Themes/Generic.xaml") }); - Application.Current.Resources.MergedDictionaries.RemoveAt(0); - break; - case Theme.Office2013: - Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary { Source = new Uri("pack://application:,,,/Fluent;component/Themes/Office2013/Generic.xaml") }); - Application.Current.Resources.MergedDictionaries.RemoveAt(0); - break; - case Theme.Windows8: - Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary { Source = new Uri("pack://application:,,,/Fluent;component/Themes/Windows8/Generic.xaml") }); - Application.Current.Resources.MergedDictionaries.RemoveAt(0); - break; - } - - this.currentTheme = theme; - Application.Current.Resources.EndInit(); - - if (owner is RibbonWindow) - { - owner.Style = null; - owner.Style = owner.FindResource("RibbonWindowStyle") as Style; - owner.Style = null; - - // Resize Window to work around alignment issues caused by theme change - ++owner.Width; - --owner.Width; - } - } - })); - } - - private void HandleDontUseDwmClick(object sender, RoutedEventArgs e) - { - var control = sender as UIElement; - - if (control == null) - { - return; - } - - var window = Window.GetWindow(control) as RibbonWindow; - - if (window == null) - { - return; - } - - window.DontUseDwm = this.DontUseDwm.IsChecked.GetValueOrDefault(); - } - - #endregion Theming - - #region Logical tree - - private void OnShowLogicalTreeClick(object sender, RoutedEventArgs e) - { - this.CheckLogicalTree(this.ribbon); - this.logicalTreeView.Items.Clear(); - this.BuildLogicalTree(this.ribbon, this.logicalTreeView); - } - - private static string GetDebugInfo(DependencyObject element) - { - if (element == null) - { - return "NULL"; - } - - var ribbonControl = element as IHeaderedControl; - - var header = ribbonControl != null - ? ribbonControl.Header - : string.Empty; - - var frameworkElement = element as FrameworkElement; - var name = frameworkElement != null - ? frameworkElement.Name - : string.Empty; - - return string.Format("[{0}] (Header: {1} || Name: {2})", element, header, name); - } - - private void CheckLogicalTree(DependencyObject root) - { - var children = LogicalTreeHelper.GetChildren(root); - foreach (var child in children.OfType()) - { - if (LogicalTreeHelper.GetParent(child) != root) - { - Debug.WriteLine(string.Format("Incorrect logical parent for {0}", GetDebugInfo(child))); - Debug.WriteLine(string.Format("\tExpected: {0}", GetDebugInfo(root))); - Debug.WriteLine(string.Format("\tFound: {0}", GetDebugInfo(LogicalTreeHelper.GetParent(child)))); - } - - this.CheckLogicalTree(child); - } - } - - private void BuildLogicalTree(DependencyObject current, ItemsControl parentControl) - { - var newItem = new TreeViewItem - { - Header = GetDebugInfo(current), - Tag = current - }; - - parentControl.Items.Add(newItem); - - var children = LogicalTreeHelper.GetChildren(current); - foreach (var child in children.OfType()) - { - this.BuildLogicalTree(child, newItem); - } - } - - private void OnTreeDoubleClick(object sender, MouseButtonEventArgs e) - { - var treeView = sender as TreeView; - - if (treeView == null) - { - return; - } - - var item = treeView.SelectedItem as TreeViewItem; - if (item == null) - { - return; - } - - var stringBuilder = new StringBuilder(); - this.BuildBackLogicalTree(item.Tag as DependencyObject, stringBuilder); - - MessageBox.Show(string.Format("From buttom to top:\n{0}", stringBuilder)); - } - - private void BuildBackLogicalTree(DependencyObject current, StringBuilder stringBuilder) - { - if (current == null - || current == this.ribbon) - { - return; - } - - stringBuilder.AppendFormat(" -> {0}\n", GetDebugInfo(current)); - - var parent = LogicalTreeHelper.GetParent(current); - - this.BuildBackLogicalTree(parent, stringBuilder); - } - - #endregion Logical tree - - private void OnFormatPainterClick(object sender, RoutedEventArgs e) - { - MessageBox.Show("FP"); - } - - private void OnHelpClick(object sender, RoutedEventArgs e) - { - if (this.tabGroup1.Visibility == Visibility.Visible) - { - this.tabGroup1.Visibility = Visibility.Collapsed; - this.tabGroup2.Visibility = Visibility.Collapsed; - } - else - { - this.tabGroup1.Visibility = Visibility.Visible; - this.tabGroup2.Visibility = Visibility.Visible; - } - } - - private void OnSpinnerValueChanged(object sender, RoutedPropertyChangedEventArgs e) - { - // MessageBox.Show(String.Format("Changed from {0} to {1}", e.OldValue, e.NewValue)); - } - - private void OnMenuItemClick(object sender, RoutedEventArgs e) - { - var wnd = new TestWindow - { - Owner = Window.GetWindow(this) - }; - wnd.Show(); - } - - private void OnPrintVisualClick(object sender, RoutedEventArgs e) - { - var printDlg = new PrintDialog(); - - if (printDlg.ShowDialog() == true) - { - printDlg.PrintVisual(this, "Main Window"); - } - } - - private void AddRibbonTab_OnClick(object sender, RoutedEventArgs e) - { - var tab = new RibbonTabItem - { - Header = "Test" - }; - - var group = new RibbonGroupBox(); - for (var i = 0; i < 20; i++) - { - group.Items.Add(this.CreateRibbonButton()); - } - - tab.Groups.Add(group); - - this.ribbon.Tabs.Add(tab); - } - - private void HandleSaveAsClick(object sender, RoutedEventArgs e) - { - var w = new Window(); - w.ShowDialog(); - } - - private void OpenRegularWindow_OnClick(object sender, RoutedEventArgs e) - { - new RegularWindow().Show(); - } - - private void OpenMahMetroWindow_OnClick(object sender, RoutedEventArgs e) - { - new MahMetroWindow().Show(); - } - - private void OpenRibbonWindowWithoutVisibileRibbon_OnClick(object sender, RoutedEventArgs e) - { - new RibbonWindowWithoutRibbon().Show(); - } - - private void ZoomSlider_OnValueChanged(object sender, RoutedPropertyChangedEventArgs e) - { - var textFormattingMode = e.NewValue > 1.0 || Math.Abs(e.NewValue - 1.0) < double.Epsilon ? TextFormattingMode.Ideal : TextFormattingMode.Display; - TextOptions.SetTextFormattingMode(this, textFormattingMode); - } - - private void OnPreviewMouseWheel(object sender, MouseWheelEventArgs e) - { - if (Keyboard.IsKeyDown(Key.LeftCtrl) == false - && Keyboard.IsKeyDown(Key.RightCtrl) == false) - { - return; - } - - this.zoomSlider.Value += e.Delta > 0 ? 0.1 : -0.1; - - e.Handled = true; - } - - private void SleepButton_OnClick(object sender, RoutedEventArgs e) - { - Thread.Sleep(TimeSpan.FromSeconds(10)); - } - - private void OpenModalRibbonWindow_OnClick(object sender, RoutedEventArgs e) - { - new TestWindow().ShowDialog(); - } - } - - public class TestRoutedCommand - { - public static RoutedCommand TestPresenterCommand = new RoutedCommand("TestPresenterCommand", typeof(TestRoutedCommand)); - - public ICommand ItemCommand - { - get { return TestPresenterCommand; } - } - - public CommandBinding ItemCommandBinding - { - get { return new CommandBinding(TestPresenterCommand, this.OnTestCommandExecuted, this.CanExecuteTestCommand); } - } - - private void CanExecuteTestCommand(object sender, CanExecuteRoutedEventArgs e) - { - e.CanExecute = true; - } - - private void OnTestCommandExecuted(object sender, ExecutedRoutedEventArgs e) - { - MessageBox.Show("TestPresenterCommand"); - } - } +namespace FluentTest +{ + using System; + using System.Diagnostics; + using System.Linq; + using System.Text; + using System.Threading; + using System.Windows; + using System.Windows.Controls; + using System.Windows.Input; + using System.Windows.Media; + using System.Windows.Media.Imaging; + using System.Windows.Threading; + using Fluent; + using FluentTest.ViewModels; + using Button = Fluent.Button; + + public partial class TestContent + { + private Theme? currentTheme; + private readonly MainViewModel viewModel; + + public TestContent() + { + this.InitializeComponent(); + + //Ribbon.Localization.Culture = new CultureInfo("ru-RU"); + + this.HookEvents(); + + this.viewModel = new MainViewModel(); + this.DataContext = this.viewModel; + } + + private void HookEvents() + { + this.Loaded += this.HandleTestContentLoaded; + + this.buttonBold.Checked += (s, e) => Debug.WriteLine("Checked"); + this.buttonBold.Unchecked += (s, e) => Debug.WriteLine("Unchecked"); + + this.PreviewMouseWheel += this.OnPreviewMouseWheel; + } + + private static void OnScreenTipHelpPressed(object sender, ScreenTipHelpEventArgs e) + { + Process.Start((string)e.HelpTopic); + } + + private void HandleTestContentLoaded(object sender, RoutedEventArgs e) + { + ScreenTip.HelpPressed += OnScreenTipHelpPressed; + } + + private void OnLauncherButtonClick(object sender, RoutedEventArgs e) + { + var groupBox = (RibbonGroupBox)sender; + + var wnd = new Window + { + Content = string.Format("Launcher-Window for: {0}", groupBox.Header), + Owner = Window.GetWindow(this) + }; + + wnd.Show(); + } + + private void OnSplitClick(object sender, RoutedEventArgs e) + { + MessageBox.Show("Split Clicked!!!"); + } + + private void OnEnlargeClick(object sender, RoutedEventArgs e) + { + this.InRibbonGallery.Enlarge(); + } + + private void OnReduceClick(object sender, RoutedEventArgs e) + { + this.InRibbonGallery.Reduce(); + } + + public Button CreateRibbonButton() + { + var fooCommand1 = new TestRoutedCommand(); + + var button = new Button + { + Command = fooCommand1.ItemCommand, + Header = "Foo", + Icon = new BitmapImage(new Uri(@"Images\Green.png", UriKind.Relative)), + LargeIcon = new BitmapImage(new Uri(@"Images\GreenLarge.png", UriKind.Relative)), + }; + + this.CommandBindings.Add(fooCommand1.ItemCommandBinding); + return button; + } + + #region Theming + + private enum Theme + { + Office2010, + Office2013, + Windows8 + } + + private void OnOffice2013Click(object sender, RoutedEventArgs e) + { + this.ChangeTheme(Theme.Office2013, "pack://application:,,,/Fluent;component/Themes/Office2013/Generic.xaml"); + } + + private void OnOffice2010SilverClick(object sender, RoutedEventArgs e) + { + this.ChangeTheme(Theme.Office2010, "pack://application:,,,/Fluent;component/Themes/Office2010/Silver.xaml"); + } + + private void OnOffice2010BlackClick(object sender, RoutedEventArgs e) + { + this.ChangeTheme(Theme.Office2010, "pack://application:,,,/Fluent;component/Themes/Office2010/Black.xaml"); + } + + private void OnOffice2010BlueClick(object sender, RoutedEventArgs e) + { + this.ChangeTheme(Theme.Office2010, "pack://application:,,,/Fluent;component/Themes/Office2010/Blue.xaml"); + } + + private void OnWindows8Click(object sender, RoutedEventArgs e) + { + this.ChangeTheme(Theme.Windows8, "pack://application:,,,/Fluent;component/Themes/Windows8/Silver.xaml"); + } + + + private void ChangeTheme(Theme theme, string color) + { + this.Dispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, (ThreadStart)(() => + { + var owner = Window.GetWindow(this); + if (owner != null) + { + owner.Resources.BeginInit(); + + if (owner.Resources.MergedDictionaries.Count > 0) + { + owner.Resources.MergedDictionaries.RemoveAt(0); + } + + if (string.IsNullOrEmpty(color) == false) + { + owner.Resources.MergedDictionaries.Add(new ResourceDictionary { Source = new Uri(color) }); + } + + owner.Resources.EndInit(); + } + + if (this.currentTheme != theme) + { + Application.Current.Resources.BeginInit(); + switch (theme) + { + case Theme.Office2010: + Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary { Source = new Uri("pack://application:,,,/Fluent;component/Themes/Generic.xaml") }); + Application.Current.Resources.MergedDictionaries.RemoveAt(0); + break; + case Theme.Office2013: + Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary { Source = new Uri("pack://application:,,,/Fluent;component/Themes/Office2013/Generic.xaml") }); + Application.Current.Resources.MergedDictionaries.RemoveAt(0); + break; + case Theme.Windows8: + Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary { Source = new Uri("pack://application:,,,/Fluent;component/Themes/Windows8/Generic.xaml") }); + Application.Current.Resources.MergedDictionaries.RemoveAt(0); + break; + } + + this.currentTheme = theme; + Application.Current.Resources.EndInit(); + + if (owner is RibbonWindow) + { + owner.Style = null; + owner.Style = owner.FindResource("RibbonWindowStyle") as Style; + owner.Style = null; + + // Resize Window to work around alignment issues caused by theme change + ++owner.Width; + --owner.Width; + } + } + })); + } + + private void HandleDontUseDwmClick(object sender, RoutedEventArgs e) + { + var control = sender as UIElement; + + if (control == null) + { + return; + } + + var window = Window.GetWindow(control) as RibbonWindow; + + if (window == null) + { + return; + } + + window.DontUseDwm = this.DontUseDwm.IsChecked.GetValueOrDefault(); + } + + #endregion Theming + + #region Logical tree + + private void OnShowLogicalTreeClick(object sender, RoutedEventArgs e) + { + this.CheckLogicalTree(this.ribbon); + this.logicalTreeView.Items.Clear(); + this.BuildLogicalTree(this.ribbon, this.logicalTreeView); + } + + private static string GetDebugInfo(DependencyObject element) + { + if (element == null) + { + return "NULL"; + } + + var ribbonControl = element as IHeaderedControl; + + var header = ribbonControl != null + ? ribbonControl.Header + : string.Empty; + + var frameworkElement = element as FrameworkElement; + var name = frameworkElement != null + ? frameworkElement.Name + : string.Empty; + + return string.Format("[{0}] (Header: {1} || Name: {2})", element, header, name); + } + + private void CheckLogicalTree(DependencyObject root) + { + var children = LogicalTreeHelper.GetChildren(root); + foreach (var child in children.OfType()) + { + if (LogicalTreeHelper.GetParent(child) != root) + { + Debug.WriteLine(string.Format("Incorrect logical parent for {0}", GetDebugInfo(child))); + Debug.WriteLine(string.Format("\tExpected: {0}", GetDebugInfo(root))); + Debug.WriteLine(string.Format("\tFound: {0}", GetDebugInfo(LogicalTreeHelper.GetParent(child)))); + } + + this.CheckLogicalTree(child); + } + } + + private void BuildLogicalTree(DependencyObject current, ItemsControl parentControl) + { + var newItem = new TreeViewItem + { + Header = GetDebugInfo(current), + Tag = current + }; + + parentControl.Items.Add(newItem); + + var children = LogicalTreeHelper.GetChildren(current); + foreach (var child in children.OfType()) + { + this.BuildLogicalTree(child, newItem); + } + } + + private void OnTreeDoubleClick(object sender, MouseButtonEventArgs e) + { + var treeView = sender as TreeView; + + if (treeView == null) + { + return; + } + + var item = treeView.SelectedItem as TreeViewItem; + if (item == null) + { + return; + } + + var stringBuilder = new StringBuilder(); + this.BuildBackLogicalTree(item.Tag as DependencyObject, stringBuilder); + + MessageBox.Show(string.Format("From buttom to top:\n{0}", stringBuilder)); + } + + private void BuildBackLogicalTree(DependencyObject current, StringBuilder stringBuilder) + { + if (current == null + || current == this.ribbon) + { + return; + } + + stringBuilder.AppendFormat(" -> {0}\n", GetDebugInfo(current)); + + var parent = LogicalTreeHelper.GetParent(current); + + this.BuildBackLogicalTree(parent, stringBuilder); + } + + #endregion Logical tree + + private void OnFormatPainterClick(object sender, RoutedEventArgs e) + { + MessageBox.Show("FP"); + } + + private void OnHelpClick(object sender, RoutedEventArgs e) + { + if (this.tabGroup1.Visibility == Visibility.Visible) + { + this.tabGroup1.Visibility = Visibility.Collapsed; + this.tabGroup2.Visibility = Visibility.Collapsed; + } + else + { + this.tabGroup1.Visibility = Visibility.Visible; + this.tabGroup2.Visibility = Visibility.Visible; + } + } + + private void OnSpinnerValueChanged(object sender, RoutedPropertyChangedEventArgs e) + { + // MessageBox.Show(String.Format("Changed from {0} to {1}", e.OldValue, e.NewValue)); + } + + private void OnMenuItemClick(object sender, RoutedEventArgs e) + { + var wnd = new TestWindow + { + Owner = Window.GetWindow(this) + }; + wnd.Show(); + } + + private void OnPrintVisualClick(object sender, RoutedEventArgs e) + { + var printDlg = new PrintDialog(); + + if (printDlg.ShowDialog() == true) + { + printDlg.PrintVisual(this, "Main Window"); + } + } + + private void AddRibbonTab_OnClick(object sender, RoutedEventArgs e) + { + var tab = new RibbonTabItem + { + Header = "Test" + }; + + var group = new RibbonGroupBox(); + for (var i = 0; i < 20; i++) + { + group.Items.Add(this.CreateRibbonButton()); + } + + tab.Groups.Add(group); + + this.ribbon.Tabs.Add(tab); + } + + private void HandleSaveAsClick(object sender, RoutedEventArgs e) + { + var w = new Window(); + w.ShowDialog(); + } + + private void OpenRegularWindow_OnClick(object sender, RoutedEventArgs e) + { + new RegularWindow().Show(); + } + + private void OpenMahMetroWindow_OnClick(object sender, RoutedEventArgs e) + { + new MahMetroWindow().Show(); + } + + private void OpenRibbonWindowWithoutVisibileRibbon_OnClick(object sender, RoutedEventArgs e) + { + new RibbonWindowWithoutRibbon().Show(); + } + + private void ZoomSlider_OnValueChanged(object sender, RoutedPropertyChangedEventArgs e) + { + var textFormattingMode = e.NewValue > 1.0 || Math.Abs(e.NewValue - 1.0) < double.Epsilon ? TextFormattingMode.Ideal : TextFormattingMode.Display; + TextOptions.SetTextFormattingMode(this, textFormattingMode); + } + + private void OnPreviewMouseWheel(object sender, MouseWheelEventArgs e) + { + if (Keyboard.IsKeyDown(Key.LeftCtrl) == false + && Keyboard.IsKeyDown(Key.RightCtrl) == false) + { + return; + } + + this.zoomSlider.Value += e.Delta > 0 ? 0.1 : -0.1; + + e.Handled = true; + } + + private void SleepButton_OnClick(object sender, RoutedEventArgs e) + { + Thread.Sleep(TimeSpan.FromSeconds(10)); + } + + private void OpenModalRibbonWindow_OnClick(object sender, RoutedEventArgs e) + { + new TestWindow().ShowDialog(); + } + } + + public class TestRoutedCommand + { + public static RoutedCommand TestPresenterCommand = new RoutedCommand("TestPresenterCommand", typeof(TestRoutedCommand)); + + public ICommand ItemCommand + { + get { return TestPresenterCommand; } + } + + public CommandBinding ItemCommandBinding + { + get { return new CommandBinding(TestPresenterCommand, this.OnTestCommandExecuted, this.CanExecuteTestCommand); } + } + + private void CanExecuteTestCommand(object sender, CanExecuteRoutedEventArgs e) + { + e.CanExecute = true; + } + + private void OnTestCommandExecuted(object sender, ExecutedRoutedEventArgs e) + { + MessageBox.Show("TestPresenterCommand"); + } + } } \ No newline at end of file diff --git a/FluentTest/TestWindow.xaml b/Fluent.Ribbon.Showcase/TestWindow.xaml similarity index 98% rename from FluentTest/TestWindow.xaml rename to Fluent.Ribbon.Showcase/TestWindow.xaml index 06dfb7273..5bed141c0 100644 --- a/FluentTest/TestWindow.xaml +++ b/Fluent.Ribbon.Showcase/TestWindow.xaml @@ -1,18 +1,18 @@ - - + + \ No newline at end of file diff --git a/FluentTest/TestWindow.xaml.cs b/Fluent.Ribbon.Showcase/TestWindow.xaml.cs similarity index 95% rename from FluentTest/TestWindow.xaml.cs rename to Fluent.Ribbon.Showcase/TestWindow.xaml.cs index 9ae19b228..4fe7cf42e 100644 --- a/FluentTest/TestWindow.xaml.cs +++ b/Fluent.Ribbon.Showcase/TestWindow.xaml.cs @@ -1,13 +1,13 @@ -namespace FluentTest -{ - /// - /// Interaction logic for TestWindow.xaml - /// - public partial class TestWindow - { - public TestWindow() - { - this.InitializeComponent(); - } - } +namespace FluentTest +{ + /// + /// Interaction logic for TestWindow.xaml + /// + public partial class TestWindow + { + public TestWindow() + { + this.InitializeComponent(); + } + } } \ No newline at end of file diff --git a/FluentTest/ViewModels/ColorViewModel.cs b/Fluent.Ribbon.Showcase/ViewModels/ColorViewModel.cs similarity index 96% rename from FluentTest/ViewModels/ColorViewModel.cs rename to Fluent.Ribbon.Showcase/ViewModels/ColorViewModel.cs index 32bb218e0..f023769e9 100644 --- a/FluentTest/ViewModels/ColorViewModel.cs +++ b/Fluent.Ribbon.Showcase/ViewModels/ColorViewModel.cs @@ -1,55 +1,55 @@ -namespace FluentTest.ViewModels -{ - using System.Windows.Media; - - public class ColorViewModel : ViewModel - { - private Color standardColor; - private Color highlightColor; - - private readonly Color[] themeColors = { Colors.Red, Colors.Green, Colors.Blue, Colors.White, Colors.Black, Colors.Purple }; - private Color themeColor; - - public ColorViewModel() - { - this.StandardColor = Colors.Black; - this.HighlightColor = Colors.Yellow; - this.ThemeColor = Colors.Blue; - } - - public Color StandardColor - { - get { return this.standardColor; } - set - { - this.standardColor = value; - this.OnPropertyChanged("StandardColor"); - } - } - - public Color HighlightColor - { - get { return this.highlightColor; } - set - { - this.highlightColor = value; - this.OnPropertyChanged("HighlightColor"); - } - } - - public Color[] ThemeColors - { - get { return this.themeColors; } - } - - public Color ThemeColor - { - get { return this.themeColor; } - set - { - this.themeColor = value; - this.OnPropertyChanged("ThemeColor"); - } - } - } +namespace FluentTest.ViewModels +{ + using System.Windows.Media; + + public class ColorViewModel : ViewModel + { + private Color standardColor; + private Color highlightColor; + + private readonly Color[] themeColors = { Colors.Red, Colors.Green, Colors.Blue, Colors.White, Colors.Black, Colors.Purple }; + private Color themeColor; + + public ColorViewModel() + { + this.StandardColor = Colors.Black; + this.HighlightColor = Colors.Yellow; + this.ThemeColor = Colors.Blue; + } + + public Color StandardColor + { + get { return this.standardColor; } + set + { + this.standardColor = value; + this.OnPropertyChanged("StandardColor"); + } + } + + public Color HighlightColor + { + get { return this.highlightColor; } + set + { + this.highlightColor = value; + this.OnPropertyChanged("HighlightColor"); + } + } + + public Color[] ThemeColors + { + get { return this.themeColors; } + } + + public Color ThemeColor + { + get { return this.themeColor; } + set + { + this.themeColor = value; + this.OnPropertyChanged("ThemeColor"); + } + } + } } \ No newline at end of file diff --git a/FluentTest/ViewModels/FontsViewModel.cs b/Fluent.Ribbon.Showcase/ViewModels/FontsViewModel.cs similarity index 96% rename from FluentTest/ViewModels/FontsViewModel.cs rename to Fluent.Ribbon.Showcase/ViewModels/FontsViewModel.cs index acf416920..c70e00180 100644 --- a/FluentTest/ViewModels/FontsViewModel.cs +++ b/Fluent.Ribbon.Showcase/ViewModels/FontsViewModel.cs @@ -1,12 +1,12 @@ -namespace FluentTest.ViewModels -{ - public class FontsViewModel : ViewModel - { - private readonly string[] data = { "Tahoma", "Segoe UI", "Arial", "Courier New", "Symbol" }; - - public string[] FontsData - { - get { return this.data; } - } - } -} +namespace FluentTest.ViewModels +{ + public class FontsViewModel : ViewModel + { + private readonly string[] data = { "Tahoma", "Segoe UI", "Arial", "Courier New", "Symbol" }; + + public string[] FontsData + { + get { return this.data; } + } + } +} diff --git a/FluentTest/ViewModels/GalleryItemViewModel.cs b/Fluent.Ribbon.Showcase/ViewModels/GalleryItemViewModel.cs similarity index 95% rename from FluentTest/ViewModels/GalleryItemViewModel.cs rename to Fluent.Ribbon.Showcase/ViewModels/GalleryItemViewModel.cs index 4a9a41acc..ff18d965a 100644 --- a/FluentTest/ViewModels/GalleryItemViewModel.cs +++ b/Fluent.Ribbon.Showcase/ViewModels/GalleryItemViewModel.cs @@ -1,15 +1,15 @@ -namespace FluentTest.ViewModels -{ - public class GalleryItemViewModel - { - public GalleryItemViewModel(string group, string text) - { - this.Group = group; - this.Text = text; - } - - public string Text { get; set; } - - public string Group { get; set; } - } +namespace FluentTest.ViewModels +{ + public class GalleryItemViewModel + { + public GalleryItemViewModel(string group, string text) + { + this.Group = group; + this.Text = text; + } + + public string Text { get; set; } + + public string Group { get; set; } + } } \ No newline at end of file diff --git a/FluentTest/ViewModels/GallerySampleDataItemViewModel.cs b/Fluent.Ribbon.Showcase/ViewModels/GallerySampleDataItemViewModel.cs similarity index 96% rename from FluentTest/ViewModels/GallerySampleDataItemViewModel.cs rename to Fluent.Ribbon.Showcase/ViewModels/GallerySampleDataItemViewModel.cs index bc57a2a7a..48b1e7e47 100644 --- a/FluentTest/ViewModels/GallerySampleDataItemViewModel.cs +++ b/Fluent.Ribbon.Showcase/ViewModels/GallerySampleDataItemViewModel.cs @@ -1,47 +1,47 @@ -namespace FluentTest.ViewModels -{ - using System; - using System.Windows.Media; - using System.Windows.Media.Imaging; - - public class GallerySampleDataItemViewModel : ViewModel - { - /// - /// Gets or sets icon - /// - public ImageSource Icon { get; set; } - /// - /// Gets or sets large icon - /// - public ImageSource IconLarge { get; set; } - /// - /// Gets or sets text - /// - public string Text { get; set; } - /// - /// Gets or sets group name - /// - public string Group { get; set; } - - /// - /// Creates new item - /// - /// Icon - /// Large Icon - /// Text - /// Group - /// Item - public static GallerySampleDataItemViewModel Create(string icon, string iconLarge, string text, string group) - { - var dataItem = new GallerySampleDataItemViewModel - { - Icon = new BitmapImage(new Uri(icon, UriKind.Relative)), - IconLarge = new BitmapImage(new Uri(iconLarge, UriKind.Relative)), - Text = text, - Group = group - }; - - return dataItem; - } - } +namespace FluentTest.ViewModels +{ + using System; + using System.Windows.Media; + using System.Windows.Media.Imaging; + + public class GallerySampleDataItemViewModel : ViewModel + { + /// + /// Gets or sets icon + /// + public ImageSource Icon { get; set; } + /// + /// Gets or sets large icon + /// + public ImageSource IconLarge { get; set; } + /// + /// Gets or sets text + /// + public string Text { get; set; } + /// + /// Gets or sets group name + /// + public string Group { get; set; } + + /// + /// Creates new item + /// + /// Icon + /// Large Icon + /// Text + /// Group + /// Item + public static GallerySampleDataItemViewModel Create(string icon, string iconLarge, string text, string group) + { + var dataItem = new GallerySampleDataItemViewModel + { + Icon = new BitmapImage(new Uri(icon, UriKind.Relative)), + IconLarge = new BitmapImage(new Uri(iconLarge, UriKind.Relative)), + Text = text, + Group = group + }; + + return dataItem; + } + } } \ No newline at end of file diff --git a/FluentTest/ViewModels/GalleryViewModel.cs b/Fluent.Ribbon.Showcase/ViewModels/GalleryViewModel.cs similarity index 97% rename from FluentTest/ViewModels/GalleryViewModel.cs rename to Fluent.Ribbon.Showcase/ViewModels/GalleryViewModel.cs index 4361779a8..fc9c90b65 100644 --- a/FluentTest/ViewModels/GalleryViewModel.cs +++ b/Fluent.Ribbon.Showcase/ViewModels/GalleryViewModel.cs @@ -1,50 +1,50 @@ -namespace FluentTest.ViewModels -{ - using System.Collections.ObjectModel; - using System.Windows.Input; - using FluentTest.Commanding; - - public class GalleryViewModel : ViewModel - { - private ObservableCollection items; - - public GalleryViewModel() - { - this.Items = new ObservableCollection(); - this.RefreshCommand = new RelayCommand(this.Refresh); - - this.Refresh(); - } - - public ObservableCollection Items - { - get { return this.items; } - private set - { - if (Equals(value, this.items)) return; - this.items = value; - this.OnPropertyChanged("Items"); - } - } - - public ICommand RefreshCommand { get; private set; } - - public void Refresh() - { - this.Items.Clear(); - - this.Items.Add(new GalleryItemViewModel("Group 1", "1")); - this.Items.Add(new GalleryItemViewModel("Group 1", "2")); - this.Items.Add(new GalleryItemViewModel("Group 1", "3")); - this.Items.Add(new GalleryItemViewModel("Group 1", "4")); - this.Items.Add(new GalleryItemViewModel("Group 1", "5")); - this.Items.Add(new GalleryItemViewModel("Group 1", "6")); - this.Items.Add(new GalleryItemViewModel("Group 2", "10")); - this.Items.Add(new GalleryItemViewModel("Group 2", "20")); - this.Items.Add(new GalleryItemViewModel("Group 2", "30")); - this.Items.Add(new GalleryItemViewModel("Group 2", "40")); - this.Items.Add(new GalleryItemViewModel("Group 2", "50")); - this.Items.Add(new GalleryItemViewModel("Group 2", "60")); - } - } +namespace FluentTest.ViewModels +{ + using System.Collections.ObjectModel; + using System.Windows.Input; + using FluentTest.Commanding; + + public class GalleryViewModel : ViewModel + { + private ObservableCollection items; + + public GalleryViewModel() + { + this.Items = new ObservableCollection(); + this.RefreshCommand = new RelayCommand(this.Refresh); + + this.Refresh(); + } + + public ObservableCollection Items + { + get { return this.items; } + private set + { + if (Equals(value, this.items)) return; + this.items = value; + this.OnPropertyChanged("Items"); + } + } + + public ICommand RefreshCommand { get; private set; } + + public void Refresh() + { + this.Items.Clear(); + + this.Items.Add(new GalleryItemViewModel("Group 1", "1")); + this.Items.Add(new GalleryItemViewModel("Group 1", "2")); + this.Items.Add(new GalleryItemViewModel("Group 1", "3")); + this.Items.Add(new GalleryItemViewModel("Group 1", "4")); + this.Items.Add(new GalleryItemViewModel("Group 1", "5")); + this.Items.Add(new GalleryItemViewModel("Group 1", "6")); + this.Items.Add(new GalleryItemViewModel("Group 2", "10")); + this.Items.Add(new GalleryItemViewModel("Group 2", "20")); + this.Items.Add(new GalleryItemViewModel("Group 2", "30")); + this.Items.Add(new GalleryItemViewModel("Group 2", "40")); + this.Items.Add(new GalleryItemViewModel("Group 2", "50")); + this.Items.Add(new GalleryItemViewModel("Group 2", "60")); + } + } } \ No newline at end of file diff --git a/FluentTest/ViewModels/MainViewModel.cs b/Fluent.Ribbon.Showcase/ViewModels/MainViewModel.cs similarity index 96% rename from FluentTest/ViewModels/MainViewModel.cs rename to Fluent.Ribbon.Showcase/ViewModels/MainViewModel.cs index 98b17aec6..794009779 100644 --- a/FluentTest/ViewModels/MainViewModel.cs +++ b/Fluent.Ribbon.Showcase/ViewModels/MainViewModel.cs @@ -1,202 +1,202 @@ -namespace FluentTest.ViewModels -{ - using System; - using System.Diagnostics; - using System.Linq; - using System.Reflection; - using System.Windows; - using System.Windows.Input; - using Fluent; - using FluentTest.Commanding; - - public class MainViewModel : ViewModel - { - private int boundSpinnerValue; - private ColorViewModel colorViewModel; - private FontsViewModel fontsViewModel; - private GalleryViewModel galleryViewModel; - - private GallerySampleDataItemViewModel[] dataItems; - - private RelayCommand exitCommand; - private double zoom; - private ICommand testCommand; - private string[] manyItems; - private bool? isCheckedToggleButton3; - - public MainViewModel() - { - this.Title = string.Format("Fluent Ribbon Control Suite {0}", GetVersionText()); - this.Zoom = 1.0; - - this.BoundSpinnerValue = 1; - - this.ColorViewModel = new ColorViewModel(); - this.FontsViewModel = new FontsViewModel(); - this.GalleryViewModel = new GalleryViewModel(); - - this.PreviewCommand = new RelayCommand(this.Preview); - this.CancelPreviewCommand = new RelayCommand(this.CancelPreview); - } - - private static string GetVersionText() - { - var version = typeof(Ribbon).Assembly.GetName().Version; - - var attributes = typeof(Ribbon).Assembly - .GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute), false) - as AssemblyInformationalVersionAttribute[]; - - var attrib = attributes.FirstOrDefault(); - - return string.Format("{0} ({1})", version, attrib.InformationalVersion); - } - - private void Preview(GalleryItem galleryItem) - { - Trace.WriteLine(string.Format("Preview: {0}", galleryItem)); - } - - private void CancelPreview(GalleryItem galleryItem) - { - Trace.WriteLine(string.Format("CancelPreview: {0}", galleryItem)); - } - - public string Title { get; private set; } - - public double Zoom - { - get { return this.zoom; } - set - { - if (value.Equals(this.zoom)) return; - this.zoom = value; - this.OnPropertyChanged("Zoom"); - } - } - - public ColorViewModel ColorViewModel - { - get { return this.colorViewModel; } - private set - { - if (Equals(value, this.colorViewModel)) return; - this.colorViewModel = value; - this.OnPropertyChanged("ColorViewModel"); - } - } - - public FontsViewModel FontsViewModel - { - get { return this.fontsViewModel; } - private set - { - if (Equals(value, this.fontsViewModel)) return; - this.fontsViewModel = value; - this.OnPropertyChanged("FontsViewModel"); - } - } - - public GalleryViewModel GalleryViewModel - { - get { return this.galleryViewModel; } - private set - { - if (Equals(value, this.galleryViewModel)) return; - this.galleryViewModel = value; - this.OnPropertyChanged("GalleryViewModel"); - } - } - - /// - /// Gets data items (uses as DataContext) - /// - public GallerySampleDataItemViewModel[] DataItems - { - get - { - return this.dataItems ?? (this.dataItems = new[] - { - GallerySampleDataItemViewModel.Create("Images\\Blue.png", "Images\\BlueLarge.png", "Blue", "Group A"), - GallerySampleDataItemViewModel.Create("Images\\Brown.png", "Images\\BrownLarge.png", "Brown", "Group A"), - GallerySampleDataItemViewModel.Create("Images\\Gray.png", "Images\\GrayLarge.png", "Gray", "Group A"), - GallerySampleDataItemViewModel.Create("Images\\Green.png", "Images\\GreenLarge.png", "Green", "Group A"), - GallerySampleDataItemViewModel.Create("Images\\Orange.png", "Images\\OrangeLarge.png", "Orange", "Group A"), - GallerySampleDataItemViewModel.Create("Images\\Pink.png", "Images\\PinkLarge.png", "Pink", "Group B"), - GallerySampleDataItemViewModel.Create("Images\\Red.png", "Images\\RedLarge.png", "Red", "Group B"), - GallerySampleDataItemViewModel.Create("Images\\Yellow.png", "Images\\YellowLarge.png", "Yellow", "Group B") - }); - } - } - - public string[] ManyItems - { - get { return this.manyItems ?? (this.manyItems = this.GenerateStrings(5000)); } - } - - public bool? IsCheckedToggleButton3 - { - get { return this.isCheckedToggleButton3; } - set - { - if (this.isCheckedToggleButton3 != value) - { - this.isCheckedToggleButton3 = value; - this.OnPropertyChanged("ToggleButton3IsChecked"); - } - } - } - - private string[] GenerateStrings(int count) - { - return Enumerable.Repeat("Test", count).ToArray(); - } - - public ICommand PreviewCommand { get; private set; } - - public ICommand CancelPreviewCommand { get; private set; } - - public int BoundSpinnerValue - { - get { return this.boundSpinnerValue; } - set - { - this.boundSpinnerValue = value; - this.OnPropertyChanged("BoundSpinnerValue"); - } - } - - #region Exit - - /// - /// Exit from the application - /// - public ICommand ExitCommand - { - get - { - if (this.exitCommand == null) - { - this.exitCommand = new RelayCommand(Application.Current.Shutdown, () => this.BoundSpinnerValue > 0); - } - - return this.exitCommand; - } - } - - #endregion - - public ICommand TestCommand - { - get - { - if (this.testCommand == null) - { - this.testCommand = new RelayCommand(() => MessageBox.Show("Test-Command")); - } - - return this.testCommand; - } - } - } +namespace FluentTest.ViewModels +{ + using System; + using System.Diagnostics; + using System.Linq; + using System.Reflection; + using System.Windows; + using System.Windows.Input; + using Fluent; + using FluentTest.Commanding; + + public class MainViewModel : ViewModel + { + private int boundSpinnerValue; + private ColorViewModel colorViewModel; + private FontsViewModel fontsViewModel; + private GalleryViewModel galleryViewModel; + + private GallerySampleDataItemViewModel[] dataItems; + + private RelayCommand exitCommand; + private double zoom; + private ICommand testCommand; + private string[] manyItems; + private bool? isCheckedToggleButton3; + + public MainViewModel() + { + this.Title = string.Format("Fluent Ribbon Control Suite {0}", GetVersionText()); + this.Zoom = 1.0; + + this.BoundSpinnerValue = 1; + + this.ColorViewModel = new ColorViewModel(); + this.FontsViewModel = new FontsViewModel(); + this.GalleryViewModel = new GalleryViewModel(); + + this.PreviewCommand = new RelayCommand(this.Preview); + this.CancelPreviewCommand = new RelayCommand(this.CancelPreview); + } + + private static string GetVersionText() + { + var version = typeof(Ribbon).Assembly.GetName().Version; + + var attributes = typeof(Ribbon).Assembly + .GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute), false) + as AssemblyInformationalVersionAttribute[]; + + var attrib = attributes.FirstOrDefault(); + + return string.Format("{0} ({1})", version, attrib.InformationalVersion); + } + + private void Preview(GalleryItem galleryItem) + { + Trace.WriteLine(string.Format("Preview: {0}", galleryItem)); + } + + private void CancelPreview(GalleryItem galleryItem) + { + Trace.WriteLine(string.Format("CancelPreview: {0}", galleryItem)); + } + + public string Title { get; private set; } + + public double Zoom + { + get { return this.zoom; } + set + { + if (value.Equals(this.zoom)) return; + this.zoom = value; + this.OnPropertyChanged("Zoom"); + } + } + + public ColorViewModel ColorViewModel + { + get { return this.colorViewModel; } + private set + { + if (Equals(value, this.colorViewModel)) return; + this.colorViewModel = value; + this.OnPropertyChanged("ColorViewModel"); + } + } + + public FontsViewModel FontsViewModel + { + get { return this.fontsViewModel; } + private set + { + if (Equals(value, this.fontsViewModel)) return; + this.fontsViewModel = value; + this.OnPropertyChanged("FontsViewModel"); + } + } + + public GalleryViewModel GalleryViewModel + { + get { return this.galleryViewModel; } + private set + { + if (Equals(value, this.galleryViewModel)) return; + this.galleryViewModel = value; + this.OnPropertyChanged("GalleryViewModel"); + } + } + + /// + /// Gets data items (uses as DataContext) + /// + public GallerySampleDataItemViewModel[] DataItems + { + get + { + return this.dataItems ?? (this.dataItems = new[] + { + GallerySampleDataItemViewModel.Create("Images\\Blue.png", "Images\\BlueLarge.png", "Blue", "Group A"), + GallerySampleDataItemViewModel.Create("Images\\Brown.png", "Images\\BrownLarge.png", "Brown", "Group A"), + GallerySampleDataItemViewModel.Create("Images\\Gray.png", "Images\\GrayLarge.png", "Gray", "Group A"), + GallerySampleDataItemViewModel.Create("Images\\Green.png", "Images\\GreenLarge.png", "Green", "Group A"), + GallerySampleDataItemViewModel.Create("Images\\Orange.png", "Images\\OrangeLarge.png", "Orange", "Group A"), + GallerySampleDataItemViewModel.Create("Images\\Pink.png", "Images\\PinkLarge.png", "Pink", "Group B"), + GallerySampleDataItemViewModel.Create("Images\\Red.png", "Images\\RedLarge.png", "Red", "Group B"), + GallerySampleDataItemViewModel.Create("Images\\Yellow.png", "Images\\YellowLarge.png", "Yellow", "Group B") + }); + } + } + + public string[] ManyItems + { + get { return this.manyItems ?? (this.manyItems = this.GenerateStrings(5000)); } + } + + public bool? IsCheckedToggleButton3 + { + get { return this.isCheckedToggleButton3; } + set + { + if (this.isCheckedToggleButton3 != value) + { + this.isCheckedToggleButton3 = value; + this.OnPropertyChanged("ToggleButton3IsChecked"); + } + } + } + + private string[] GenerateStrings(int count) + { + return Enumerable.Repeat("Test", count).ToArray(); + } + + public ICommand PreviewCommand { get; private set; } + + public ICommand CancelPreviewCommand { get; private set; } + + public int BoundSpinnerValue + { + get { return this.boundSpinnerValue; } + set + { + this.boundSpinnerValue = value; + this.OnPropertyChanged("BoundSpinnerValue"); + } + } + + #region Exit + + /// + /// Exit from the application + /// + public ICommand ExitCommand + { + get + { + if (this.exitCommand == null) + { + this.exitCommand = new RelayCommand(Application.Current.Shutdown, () => this.BoundSpinnerValue > 0); + } + + return this.exitCommand; + } + } + + #endregion + + public ICommand TestCommand + { + get + { + if (this.testCommand == null) + { + this.testCommand = new RelayCommand(() => MessageBox.Show("Test-Command")); + } + + return this.testCommand; + } + } + } } \ No newline at end of file diff --git a/FluentTest/ViewModels/ViewModel.cs b/Fluent.Ribbon.Showcase/ViewModels/ViewModel.cs similarity index 96% rename from FluentTest/ViewModels/ViewModel.cs rename to Fluent.Ribbon.Showcase/ViewModels/ViewModel.cs index d8b41ada0..d6c113f4a 100644 --- a/FluentTest/ViewModels/ViewModel.cs +++ b/Fluent.Ribbon.Showcase/ViewModels/ViewModel.cs @@ -1,19 +1,19 @@ -namespace FluentTest.ViewModels -{ - using System.ComponentModel; - using JetBrains.Annotations; - - public class ViewModel : INotifyPropertyChanged - { - public event PropertyChangedEventHandler PropertyChanged = delegate { }; - - [NotifyPropertyChangedInvocator] - protected void OnPropertyChanged(string propertyName) - { - if (this.PropertyChanged != null) - { - this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); - } - } - } +namespace FluentTest.ViewModels +{ + using System.ComponentModel; + using JetBrains.Annotations; + + public class ViewModel : INotifyPropertyChanged + { + public event PropertyChangedEventHandler PropertyChanged = delegate { }; + + [NotifyPropertyChangedInvocator] + protected void OnPropertyChanged(string propertyName) + { + if (this.PropertyChanged != null) + { + this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); + } + } + } } \ No newline at end of file diff --git a/FluentTest/app.manifest b/Fluent.Ribbon.Showcase/app.manifest similarity index 100% rename from FluentTest/app.manifest rename to Fluent.Ribbon.Showcase/app.manifest diff --git a/FluentTest/packages.config b/Fluent.Ribbon.Showcase/packages.config similarity index 100% rename from FluentTest/packages.config rename to Fluent.Ribbon.Showcase/packages.config diff --git a/Fluent.Ribbon.sln b/Fluent.Ribbon.sln index 2e4c032aa..602843f5d 100644 --- a/Fluent.Ribbon.sln +++ b/Fluent.Ribbon.sln @@ -1,9 +1,9 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.31101.0 +# Visual Studio 14 +VisualStudioVersion = 14.0.24720.0 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FluentTest dotNET 4.5", "FluentTest\FluentTest dotNET 4.5.csproj", "{2C2A076B-E626-4A07-9D6E-4AEE3FEC41B6}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fluent.Ribbon.Showcase.NET 4.5", "Fluent.Ribbon.Showcase\Fluent.Ribbon.Showcase.NET 4.5.csproj", "{2C2A076B-E626-4A07-9D6E-4AEE3FEC41B6}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fluent dotNET 4.5", "Fluent\Fluent dotNET 4.5.csproj", "{4C92FCF4-3561-499F-BC5B-F2F089863047}" EndProject @@ -20,7 +20,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fluent dotNET 4.0", "Fluent {4C92FCF4-3561-499F-BC5B-F2F089863047} = {4C92FCF4-3561-499F-BC5B-F2F089863047} EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FluentTest dotNET 4.0", "FluentTest\FluentTest dotNET 4.0.csproj", "{2A893D50-BBC4-4482-ADAA-D52B517E8632}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fluent.Ribbon.Showcase.NET 4.0", "Fluent.Ribbon.Showcase\Fluent.Ribbon.Showcase.NET 4.0.csproj", "{2A893D50-BBC4-4482-ADAA-D52B517E8632}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Doc", "Doc", "{1318E3D3-5156-45FE-9828-464A2D0235E0}" ProjectSection(SolutionItems) = preProject