Browse Source
git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@5228 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61shortcuts
29 changed files with 0 additions and 1401 deletions
@ -1,23 +0,0 @@
@@ -1,23 +0,0 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 10.00 |
||||
# Visual Studio 2008 |
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ShortcutsManagement", "ShortcutsManagement\ShortcutsManagement.csproj", "{CF2FF1D1-A5FE-4848-936A-E2DFBE154562}" |
||||
EndProject |
||||
Global |
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution |
||||
Debug in SharpDevelop|Any CPU = Debug in SharpDevelop|Any CPU |
||||
Debug|Any CPU = Debug|Any CPU |
||||
Release|Any CPU = Release|Any CPU |
||||
EndGlobalSection |
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution |
||||
{CF2FF1D1-A5FE-4848-936A-E2DFBE154562}.Debug in SharpDevelop|Any CPU.ActiveCfg = Debug in SharpDevelop|Any CPU |
||||
{CF2FF1D1-A5FE-4848-936A-E2DFBE154562}.Debug in SharpDevelop|Any CPU.Build.0 = Debug in SharpDevelop|Any CPU |
||||
{CF2FF1D1-A5FE-4848-936A-E2DFBE154562}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||
{CF2FF1D1-A5FE-4848-936A-E2DFBE154562}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||
{CF2FF1D1-A5FE-4848-936A-E2DFBE154562}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
{CF2FF1D1-A5FE-4848-936A-E2DFBE154562}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
EndGlobalSection |
||||
GlobalSection(SolutionProperties) = preSolution |
||||
HideSolutionNode = FALSE |
||||
EndGlobalSection |
||||
EndGlobal |
Binary file not shown.
@ -1,8 +0,0 @@
@@ -1,8 +0,0 @@
|
||||
<Application x:Class="ICSharpCode.ShortcutsManagement.App" |
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
||||
StartupUri="Window1.xaml"> |
||||
<Application.Resources> |
||||
|
||||
</Application.Resources> |
||||
</Application> |
@ -1,11 +0,0 @@
@@ -1,11 +0,0 @@
|
||||
using System.Windows; |
||||
|
||||
namespace ICSharpCode.ShortcutsManagement |
||||
{ |
||||
/// <summary>
|
||||
/// Interaction logic for App.xaml
|
||||
/// </summary>
|
||||
public partial class App : Application |
||||
{ |
||||
} |
||||
} |
@ -1,55 +0,0 @@
@@ -1,55 +0,0 @@
|
||||
using System.Reflection; |
||||
using System.Resources; |
||||
using System.Runtime.CompilerServices; |
||||
using System.Runtime.InteropServices; |
||||
using System.Windows; |
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("ShortcutsManagement")] |
||||
[assembly: AssemblyDescription("")] |
||||
[assembly: AssemblyConfiguration("")] |
||||
[assembly: AssemblyCompany("Nexum Insurance Technologies")] |
||||
[assembly: AssemblyProduct("ShortcutsManagement")] |
||||
[assembly: AssemblyCopyright("Copyright © Nexum Insurance Technologies 2009")] |
||||
[assembly: AssemblyTrademark("")] |
||||
[assembly: AssemblyCulture("")] |
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)] |
||||
|
||||
//In order to begin building localizable applications, set
|
||||
//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
|
||||
//inside a <PropertyGroup>. For example, if you are using US english
|
||||
//in your source files, set the <UICulture> to en-US. Then uncomment
|
||||
//the NeutralResourceLanguage attribute below. Update the "en-US" in
|
||||
//the line below to match the UICulture setting in the project file.
|
||||
|
||||
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
|
||||
|
||||
|
||||
[assembly: ThemeInfo( |
||||
ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
|
||||
//(used if a resource is not found in the page,
|
||||
// or application resource dictionaries)
|
||||
ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
|
||||
//(used if a resource is not found in the page,
|
||||
// app, or any theme specific resource dictionaries)
|
||||
)] |
||||
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")] |
||||
[assembly: AssemblyFileVersion("1.0.0.0")] |
@ -1,63 +0,0 @@
@@ -1,63 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:2.0.50727.3082
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace ICSharpCode.ShortcutsManagement.Properties { |
||||
using System; |
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// 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", "2.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() { |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[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("ICSharpCode.ShortcutsManagement.Properties.Resources", typeof(Resources).Assembly); |
||||
resourceMan = temp; |
||||
} |
||||
return resourceMan; |
||||
} |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] |
||||
internal static global::System.Globalization.CultureInfo Culture { |
||||
get { |
||||
return resourceCulture; |
||||
} |
||||
set { |
||||
resourceCulture = value; |
||||
} |
||||
} |
||||
} |
||||
} |
@ -1,117 +0,0 @@
@@ -1,117 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<root> |
||||
<!-- |
||||
Microsoft ResX Schema |
||||
|
||||
Version 2.0 |
||||
|
||||
The primary goals of this format is to allow a simple XML format |
||||
that is mostly human readable. The generation and parsing of the |
||||
various data types are done through the TypeConverter classes |
||||
associated with the data types. |
||||
|
||||
Example: |
||||
|
||||
... ado.net/XML headers & schema ... |
||||
<resheader name="resmimetype">text/microsoft-resx</resheader> |
||||
<resheader name="version">2.0</resheader> |
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> |
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> |
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> |
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> |
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> |
||||
<value>[base64 mime encoded serialized .NET Framework object]</value> |
||||
</data> |
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> |
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> |
||||
<comment>This is a comment</comment> |
||||
</data> |
||||
|
||||
There are any number of "resheader" rows that contain simple |
||||
name/value pairs. |
||||
|
||||
Each data row contains a name, and value. The row also contains a |
||||
type or mimetype. Type corresponds to a .NET class that support |
||||
text/value conversion through the TypeConverter architecture. |
||||
Classes that don't support this are serialized and stored with the |
||||
mimetype set. |
||||
|
||||
The mimetype is used for serialized objects, and tells the |
||||
ResXResourceReader how to depersist the object. This is currently not |
||||
extensible. For a given mimetype the value must be set accordingly: |
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format |
||||
that the ResXResourceWriter will generate, however the reader can |
||||
read any of the formats listed below. |
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64 |
||||
value : The object must be serialized with |
||||
: System.Serialization.Formatters.Binary.BinaryFormatter |
||||
: and then encoded with base64 encoding. |
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64 |
||||
value : The object must be serialized with |
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter |
||||
: and then encoded with base64 encoding. |
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64 |
||||
value : The object must be serialized into a byte array |
||||
: using a System.ComponentModel.TypeConverter |
||||
: and then encoded with base64 encoding. |
||||
--> |
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> |
||||
<xsd:element name="root" msdata:IsDataSet="true"> |
||||
<xsd:complexType> |
||||
<xsd:choice maxOccurs="unbounded"> |
||||
<xsd:element name="metadata"> |
||||
<xsd:complexType> |
||||
<xsd:sequence> |
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" /> |
||||
</xsd:sequence> |
||||
<xsd:attribute name="name" type="xsd:string" /> |
||||
<xsd:attribute name="type" type="xsd:string" /> |
||||
<xsd:attribute name="mimetype" type="xsd:string" /> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
<xsd:element name="assembly"> |
||||
<xsd:complexType> |
||||
<xsd:attribute name="alias" type="xsd:string" /> |
||||
<xsd:attribute name="name" type="xsd:string" /> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
<xsd:element name="data"> |
||||
<xsd:complexType> |
||||
<xsd:sequence> |
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> |
||||
</xsd:sequence> |
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" /> |
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> |
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
<xsd:element name="resheader"> |
||||
<xsd:complexType> |
||||
<xsd:sequence> |
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
||||
</xsd:sequence> |
||||
<xsd:attribute name="name" type="xsd:string" use="required" /> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
</xsd:choice> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
</xsd:schema> |
||||
<resheader name="resmimetype"> |
||||
<value>text/microsoft-resx</value> |
||||
</resheader> |
||||
<resheader name="version"> |
||||
<value>2.0</value> |
||||
</resheader> |
||||
<resheader name="reader"> |
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
||||
</resheader> |
||||
<resheader name="writer"> |
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
||||
</resheader> |
||||
</root> |
@ -1,26 +0,0 @@
@@ -1,26 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:2.0.50727.3082
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace ICSharpCode.ShortcutsManagement.Properties { |
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] |
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.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; |
||||
} |
||||
} |
||||
} |
||||
} |
@ -1,7 +0,0 @@
@@ -1,7 +0,0 @@
|
||||
<?xml version='1.0' encoding='utf-8'?> |
||||
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)"> |
||||
<Profiles> |
||||
<Profile Name="(Default)" /> |
||||
</Profiles> |
||||
<Settings /> |
||||
</SettingsFile> |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.3 KiB |
@ -1,19 +0,0 @@
@@ -1,19 +0,0 @@
|
||||
<AddIn name = "ShortcutsPrototype" |
||||
author = "Sergej Andrejev" |
||||
url = "" |
||||
description = "Addin allows managing application shortcuts"> |
||||
|
||||
<Manifest> |
||||
<Identity name="ShortcutsManagement" version = "@SharpDevelopCoreVersion"/> |
||||
</Manifest> |
||||
|
||||
<Runtime> |
||||
<Import assembly = "ICSharpCode.ShortcutsManagement.exe"/> |
||||
</Runtime> |
||||
|
||||
<Path name = "/SharpDevelop/Dialogs/OptionsDialog/TextEditorOptions"> |
||||
<OptionPanel id = "ShortcutsManagement" |
||||
label = "Shortcuts management" |
||||
class = "ICSharpCode.ShortcutsManagement.ShortcutsManagementOptionsPanel" /> |
||||
</Path> |
||||
</AddIn> |
@ -1,156 +0,0 @@
@@ -1,156 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||
<PropertyGroup> |
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> |
||||
<ProductVersion>9.0.30729</ProductVersion> |
||||
<SchemaVersion>2.0</SchemaVersion> |
||||
<ProjectGuid>{CF2FF1D1-A5FE-4848-936A-E2DFBE154562}</ProjectGuid> |
||||
<OutputType>WinExe</OutputType> |
||||
<AppDesignerFolder>Properties</AppDesignerFolder> |
||||
<RootNamespace>ICSharpCode.ShortcutsManagement</RootNamespace> |
||||
<AssemblyName>ICSharpCode.ShortcutsManagement</AssemblyName> |
||||
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion> |
||||
<FileAlignment>512</FileAlignment> |
||||
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> |
||||
<WarningLevel>4</WarningLevel> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> |
||||
<DebugSymbols>true</DebugSymbols> |
||||
<DebugType>full</DebugType> |
||||
<Optimize>false</Optimize> |
||||
<OutputPath>bin\Debug\</OutputPath> |
||||
<DefineConstants>DEBUG;TRACE</DefineConstants> |
||||
<ErrorReport>prompt</ErrorReport> |
||||
<WarningLevel>4</WarningLevel> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> |
||||
<DebugType>pdbonly</DebugType> |
||||
<Optimize>true</Optimize> |
||||
<OutputPath>bin\Release\</OutputPath> |
||||
<DefineConstants>TRACE</DefineConstants> |
||||
<ErrorReport>prompt</ErrorReport> |
||||
<WarningLevel>4</WarningLevel> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug in SharpDevelop|AnyCPU' "> |
||||
<DebugSymbols>true</DebugSymbols> |
||||
<OutputPath>..\..\..\..\..\AddIns\AddIns\Misc\ShortcutsManagement\</OutputPath> |
||||
<DefineConstants>DEBUG;TRACE</DefineConstants> |
||||
<DebugType>full</DebugType> |
||||
<PlatformTarget>AnyCPU</PlatformTarget> |
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression> |
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile> |
||||
<ErrorReport>prompt</ErrorReport> |
||||
</PropertyGroup> |
||||
<ItemGroup> |
||||
<Reference Include="ICSharpCode.Core, Version=4.0.0.4172, Culture=neutral, PublicKeyToken=f829da5c02be14ee, processorArchitecture=MSIL"> |
||||
<SpecificVersion>False</SpecificVersion> |
||||
<HintPath>..\..\..\..\..\bin\ICSharpCode.Core.dll</HintPath> |
||||
</Reference> |
||||
<Reference Include="ICSharpCode.SharpDevelop, Version=4.0.0.4172, Culture=neutral, PublicKeyToken=f829da5c02be14ee, processorArchitecture=MSIL"> |
||||
<SpecificVersion>False</SpecificVersion> |
||||
<HintPath>..\..\..\..\..\bin\ICSharpCode.SharpDevelop.dll</HintPath> |
||||
</Reference> |
||||
<Reference Include="System" /> |
||||
<Reference Include="System.Core"> |
||||
<RequiredTargetFramework>3.5</RequiredTargetFramework> |
||||
</Reference> |
||||
<Reference Include="System.Xml.Linq"> |
||||
<RequiredTargetFramework>3.5</RequiredTargetFramework> |
||||
</Reference> |
||||
<Reference Include="System.Data.DataSetExtensions"> |
||||
<RequiredTargetFramework>3.5</RequiredTargetFramework> |
||||
</Reference> |
||||
<Reference Include="System.Data" /> |
||||
<Reference Include="System.Xml" /> |
||||
<Reference Include="UIAutomationProvider"> |
||||
<RequiredTargetFramework>3.0</RequiredTargetFramework> |
||||
</Reference> |
||||
<Reference Include="WindowsBase"> |
||||
<RequiredTargetFramework>3.0</RequiredTargetFramework> |
||||
</Reference> |
||||
<Reference Include="PresentationCore"> |
||||
<RequiredTargetFramework>3.0</RequiredTargetFramework> |
||||
</Reference> |
||||
<Reference Include="PresentationFramework"> |
||||
<RequiredTargetFramework>3.0</RequiredTargetFramework> |
||||
</Reference> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<ApplicationDefinition Include="App.xaml"> |
||||
<Generator>MSBuild:Compile</Generator> |
||||
<SubType>Designer</SubType> |
||||
</ApplicationDefinition> |
||||
<Page Include="Src\Dialogs\ShortcutsManagementOptionsPanel.xaml"> |
||||
<Generator>MSBuild:Compile</Generator> |
||||
<SubType>Designer</SubType> |
||||
</Page> |
||||
<Page Include="Themes\Generic.xaml"> |
||||
<Generator>MSBuild:Compile</Generator> |
||||
<SubType>Designer</SubType> |
||||
</Page> |
||||
<Page Include="Window1.xaml"> |
||||
<Generator>MSBuild:Compile</Generator> |
||||
<SubType>Designer</SubType> |
||||
</Page> |
||||
<Compile Include="App.xaml.cs"> |
||||
<DependentUpon>App.xaml</DependentUpon> |
||||
<SubType>Code</SubType> |
||||
</Compile> |
||||
<Compile Include="Window1.xaml.cs"> |
||||
<DependentUpon>Window1.xaml</DependentUpon> |
||||
<SubType>Code</SubType> |
||||
</Compile> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<Compile Include="Src\Data\AddIn.cs" /> |
||||
<Compile Include="Src\Converters\GesturesListConverter.cs" /> |
||||
<Compile Include="Properties\AssemblyInfo.cs"> |
||||
<SubType>Code</SubType> |
||||
</Compile> |
||||
<Compile Include="Properties\Resources.Designer.cs"> |
||||
<AutoGen>True</AutoGen> |
||||
<DesignTime>True</DesignTime> |
||||
<DependentUpon>Resources.resx</DependentUpon> |
||||
</Compile> |
||||
<Compile Include="Properties\Settings.Designer.cs"> |
||||
<AutoGen>True</AutoGen> |
||||
<DependentUpon>Settings.settings</DependentUpon> |
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput> |
||||
</Compile> |
||||
<Compile Include="Src\Data\Shortcut.cs" /> |
||||
<Compile Include="Src\Data\ShortcutCategory.cs" /> |
||||
<Compile Include="Src\Dialogs\ShortcutsManagementOptionsPanel.xaml.cs"> |
||||
<DependentUpon>ShortcutsManagementOptionsPanel.xaml</DependentUpon> |
||||
</Compile> |
||||
<Compile Include="Src\Data\ShortcutsProvider.cs" /> |
||||
<Compile Include="Src\Converters\ShortcutsTreeConverter.cs" /> |
||||
<Compile Include="Src\Extensions\TextBlockBehavior.cs" /> |
||||
<Compile Include="Src\Extensions\TreeViewExtensions.cs" /> |
||||
<Compile Include="Src\Converters\TypeNameConverter.cs" /> |
||||
<EmbeddedResource Include="Properties\Resources.resx"> |
||||
<Generator>ResXFileCodeGenerator</Generator> |
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput> |
||||
</EmbeddedResource> |
||||
<None Include="Properties\Settings.settings"> |
||||
<Generator>SettingsSingleFileGenerator</Generator> |
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput> |
||||
</None> |
||||
<AppDesigner Include="Properties\" /> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<Resource Include="Resources\key_enter.png" /> |
||||
<Resource Include="Resources\key_enter_pressed.png" /> |
||||
<Content Include="ShortcutsManagement.addin"> |
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory> |
||||
</Content> |
||||
</ItemGroup> |
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. |
||||
Other similar extension points exist, see Microsoft.Common.targets. |
||||
<Target Name="BeforeBuild"> |
||||
</Target> |
||||
<Target Name="AfterBuild"> |
||||
</Target> |
||||
--> |
||||
</Project> |
@ -1,6 +0,0 @@
@@ -1,6 +0,0 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug in SharpDevelop|AnyCPU' "> |
||||
<StartAction>Program</StartAction> |
||||
<StartProgram>C:\VSC\SharpDevelop40\SharpDevelop\bin\SharpDevelop.exe</StartProgram> |
||||
</PropertyGroup> |
||||
</Project> |
@ -1,27 +0,0 @@
@@ -1,27 +0,0 @@
|
||||
using System; |
||||
using System.Collections.Generic; |
||||
using System.Linq; |
||||
using System.Globalization; |
||||
using System.Windows.Data; |
||||
|
||||
namespace ICSharpCode.ShortcutsManagement |
||||
{ |
||||
public class GesturesListConverter : IValueConverter |
||||
{ |
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) |
||||
{ |
||||
if (value is IEnumerable<string> && (targetType == typeof(string) || targetType.IsSubclassOf(typeof(string)))) |
||||
{ |
||||
var enumerableValue = (IEnumerable<string>)value; |
||||
return string.Join(" | ", enumerableValue.ToArray()); |
||||
} |
||||
|
||||
return value.ToString(); |
||||
} |
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) |
||||
{ |
||||
throw new NotImplementedException("Reverse convertion is not implemented:"); |
||||
} |
||||
} |
||||
} |
@ -1,25 +0,0 @@
@@ -1,25 +0,0 @@
|
||||
using System; |
||||
using System.Collections.Generic; |
||||
using System.Globalization; |
||||
using System.Linq; |
||||
using System.Windows.Data; |
||||
|
||||
namespace ICSharpCode.ShortcutsManagement |
||||
{ |
||||
public class ShortcutsTreeConverter : IMultiValueConverter |
||||
{ |
||||
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) |
||||
{ |
||||
var items = new List<object>(); |
||||
items.AddRange(((IEnumerable<ShortcutCategory>)values[0]).Cast<object>()); |
||||
items.AddRange(((IEnumerable<Shortcut>)values[1]).Cast<object>()); |
||||
|
||||
return items; |
||||
} |
||||
|
||||
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) |
||||
{ |
||||
throw new System.NotImplementedException(); |
||||
} |
||||
} |
||||
} |
@ -1,19 +0,0 @@
@@ -1,19 +0,0 @@
|
||||
using System; |
||||
using System.Globalization; |
||||
using System.Windows.Data; |
||||
|
||||
namespace ICSharpCode.ShortcutsManagement |
||||
{ |
||||
class TypeNameConverter : IValueConverter |
||||
{ |
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) |
||||
{ |
||||
return value.GetType().Name; |
||||
} |
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) |
||||
{ |
||||
throw new System.NotImplementedException(); |
||||
} |
||||
} |
||||
} |
@ -1,84 +0,0 @@
@@ -1,84 +0,0 @@
|
||||
using System.Collections.Generic; |
||||
using System.ComponentModel; |
||||
|
||||
namespace ICSharpCode.ShortcutsManagement |
||||
{ |
||||
/// <summary>
|
||||
/// Add-in where shortcuts were registered
|
||||
/// </summary>
|
||||
public class AddIn : INotifyPropertyChanged |
||||
{ |
||||
private string name; |
||||
|
||||
/// <summary>
|
||||
/// Add-in name
|
||||
///
|
||||
/// Dependency property
|
||||
/// </summary>
|
||||
public string Name |
||||
{ |
||||
get |
||||
{ |
||||
return name; |
||||
} |
||||
set |
||||
{ |
||||
if (name != value) |
||||
{ |
||||
name = value; |
||||
InvokePropertyChanged("Name"); |
||||
} |
||||
} |
||||
} |
||||
|
||||
private bool isVisible; |
||||
|
||||
/// <summary>
|
||||
/// Is category visible in shortcuts tree
|
||||
///
|
||||
/// Dependency property
|
||||
/// </summary>
|
||||
public bool IsVisible |
||||
{ |
||||
get |
||||
{ |
||||
return isVisible; |
||||
} |
||||
set |
||||
{ |
||||
if (isVisible != value) |
||||
{ |
||||
isVisible = value; |
||||
InvokePropertyChanged("IsVisible"); |
||||
} |
||||
} |
||||
} |
||||
|
||||
public List<ShortcutCategory> Categories |
||||
{ |
||||
get; |
||||
private set; |
||||
} |
||||
|
||||
public AddIn(string addInName) |
||||
{ |
||||
IsVisible = true; |
||||
Name = addInName; |
||||
Categories = new List<ShortcutCategory>(); |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Invoke dependency property changed event
|
||||
/// </summary>
|
||||
/// <param name="propertyName">Name of dependency property from this classs</param>
|
||||
private void InvokePropertyChanged(string propertyName) |
||||
{ |
||||
if (PropertyChanged != null) |
||||
{ |
||||
PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); |
||||
} |
||||
} |
||||
|
||||
public event PropertyChangedEventHandler PropertyChanged; |
||||
} |
||||
} |
@ -1,90 +0,0 @@
@@ -1,90 +0,0 @@
|
||||
using System.Collections.Generic; |
||||
using System.ComponentModel; |
||||
|
||||
namespace ICSharpCode.ShortcutsManagement |
||||
{ |
||||
/// <summary>
|
||||
/// Shortcut
|
||||
/// </summary>
|
||||
public class Shortcut : INotifyPropertyChanged |
||||
{ |
||||
/// <summary>
|
||||
/// List of keyboard gestures which will invoke provided action
|
||||
/// </summary>
|
||||
public List<string> Gestures |
||||
{ |
||||
get; |
||||
private set; |
||||
} |
||||
|
||||
private string name; |
||||
|
||||
/// <summary>
|
||||
/// Shortcut action name
|
||||
/// </summary>
|
||||
public string Name |
||||
{ |
||||
get |
||||
{ |
||||
return name; |
||||
} |
||||
set |
||||
{ |
||||
if(name != value) |
||||
{ |
||||
name = value; |
||||
InvokePropertyChanged("Name"); |
||||
} |
||||
} |
||||
} |
||||
|
||||
private bool isVisible; |
||||
|
||||
/// <summary>
|
||||
/// Is category visible in shortcuts tree
|
||||
///
|
||||
/// Dependency property
|
||||
/// </summary>
|
||||
public bool IsVisible |
||||
{ |
||||
get |
||||
{ |
||||
return isVisible; |
||||
} |
||||
set |
||||
{ |
||||
if(isVisible != value) |
||||
{ |
||||
isVisible = value; |
||||
InvokePropertyChanged("IsVisible"); |
||||
} |
||||
} |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Create new shortcut
|
||||
/// </summary>
|
||||
/// <param name="shortcutName">Shortcut action name</param>
|
||||
/// <param name="gestures">Gestures</param>
|
||||
public Shortcut(string shortcutName, List<string> gestures) |
||||
{ |
||||
IsVisible = true; |
||||
Name = shortcutName; |
||||
Gestures = gestures ?? new List<string>(); |
||||
} |
||||
|
||||
public event PropertyChangedEventHandler PropertyChanged; |
||||
|
||||
/// <summary>
|
||||
/// Invoke dependency property changed event
|
||||
/// </summary>
|
||||
/// <param name="propertyName">Name of dependency property from this classs</param>
|
||||
private void InvokePropertyChanged(string propertyName) |
||||
{ |
||||
if (PropertyChanged != null) |
||||
{ |
||||
PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); |
||||
} |
||||
} |
||||
} |
||||
} |
@ -1,101 +0,0 @@
@@ -1,101 +0,0 @@
|
||||
using System.Collections.Generic; |
||||
using System.ComponentModel; |
||||
|
||||
namespace ICSharpCode.ShortcutsManagement |
||||
{ |
||||
/// <summary>
|
||||
/// Shortcut category
|
||||
/// </summary>
|
||||
public class ShortcutCategory : INotifyPropertyChanged |
||||
{ |
||||
private string name; |
||||
|
||||
/// <summary>
|
||||
/// Category name
|
||||
///
|
||||
/// Dependency property
|
||||
/// </summary>
|
||||
public string Name |
||||
{ |
||||
get |
||||
{ |
||||
return name; |
||||
} |
||||
set |
||||
{ |
||||
if (name != value) |
||||
{ |
||||
name = value; |
||||
InvokePropertyChanged("Name"); |
||||
} |
||||
} |
||||
} |
||||
|
||||
private bool isVisible; |
||||
|
||||
/// <summary>
|
||||
/// Is category visible in shortcuts tree
|
||||
///
|
||||
/// Dependency property
|
||||
/// </summary>
|
||||
public bool IsVisible |
||||
{ |
||||
get |
||||
{ |
||||
return isVisible; |
||||
} |
||||
set |
||||
{ |
||||
if (isVisible != value) |
||||
{ |
||||
isVisible = value; |
||||
InvokePropertyChanged("IsVisible"); |
||||
} |
||||
} |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Sub cateories
|
||||
/// </summary>
|
||||
public List<ShortcutCategory> SubCategories |
||||
{ |
||||
get; |
||||
private set; |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Shortcuts assigned to this category
|
||||
/// </summary>
|
||||
public List<Shortcut> Shortcuts |
||||
{ |
||||
get; |
||||
private set; |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Create new category
|
||||
/// </summary>
|
||||
/// <param name="categoryName">Category name</param>
|
||||
public ShortcutCategory(string categoryName) |
||||
{ |
||||
IsVisible = true; |
||||
Shortcuts = new List<Shortcut>(); |
||||
SubCategories = new List<ShortcutCategory>(); |
||||
Name = categoryName; |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Invoke dependency property changed event
|
||||
/// </summary>
|
||||
/// <param name="propertyName">Name of dependency property from this classs</param>
|
||||
private void InvokePropertyChanged(string propertyName) |
||||
{ |
||||
if (PropertyChanged != null) |
||||
{ |
||||
PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); |
||||
} |
||||
} |
||||
|
||||
public event PropertyChangedEventHandler PropertyChanged; |
||||
} |
||||
} |
@ -1,116 +0,0 @@
@@ -1,116 +0,0 @@
|
||||
using System; |
||||
using System.Collections.Generic; |
||||
using System.Collections.ObjectModel; |
||||
|
||||
namespace ICSharpCode.ShortcutsManagement |
||||
{ |
||||
internal class ShortcutsProvider |
||||
{ |
||||
private readonly ObservableCollection<AddIn> addins = new ObservableCollection<AddIn>(); |
||||
|
||||
/// <summary>
|
||||
/// Get list of add-ins containing shortcuts
|
||||
/// </summary>
|
||||
/// <returns>List of add-ins</returns>
|
||||
public ObservableCollection<AddIn> GetAddIns() |
||||
{ |
||||
return addins; |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Filter addins, child categories and shortcuts where item name
|
||||
/// contains filter string
|
||||
/// </summary>
|
||||
/// <param name="filterString">Filter string</param>
|
||||
public void Filter(string filterString) |
||||
{ |
||||
foreach (var addIn in addins) |
||||
{ |
||||
var addInNameContainsFilterString = addIn.Name.IndexOf(filterString, StringComparison.InvariantCultureIgnoreCase) >= 0; |
||||
|
||||
var subCategoryIsVisible = false; |
||||
foreach (var category in addIn.Categories) |
||||
{ |
||||
if(Filter(category, filterString, addInNameContainsFilterString ? (bool?) true : null)) |
||||
{ |
||||
subCategoryIsVisible = true; |
||||
} |
||||
} |
||||
|
||||
addIn.IsVisible = addInNameContainsFilterString || subCategoryIsVisible; |
||||
} |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Filter category and child elements where item name contains
|
||||
/// filter string
|
||||
/// </summary>
|
||||
/// <param name="category">Category to filter</param>
|
||||
/// <param name="filterString">Filter string</param>
|
||||
/// <param name="forseMatch">If set to true all sub elements are expanded</param>
|
||||
/// <returns></returns>
|
||||
private static bool Filter(ShortcutCategory category, string filterString, bool? forseMatch) |
||||
{ |
||||
if(category.Name.IndexOf(filterString, StringComparison.InvariantCultureIgnoreCase) >= 0) |
||||
{ |
||||
forseMatch = true; |
||||
} |
||||
|
||||
var isSubElementVisible = false; |
||||
foreach (var subCategory in category.SubCategories) |
||||
{ |
||||
if(Filter(subCategory, filterString, forseMatch)) |
||||
{ |
||||
isSubElementVisible = true; |
||||
} |
||||
} |
||||
|
||||
foreach (var shortcut in category.Shortcuts) |
||||
{ |
||||
if ((forseMatch.HasValue && forseMatch.Value) || shortcut.Name.IndexOf(filterString, StringComparison.InvariantCultureIgnoreCase) >= 0) |
||||
{ |
||||
shortcut.IsVisible = true; |
||||
isSubElementVisible = true; |
||||
} |
||||
else |
||||
{ |
||||
shortcut.IsVisible = false; |
||||
} |
||||
} |
||||
|
||||
return category.IsVisible = (forseMatch.HasValue && forseMatch.Value) || isSubElementVisible; |
||||
} |
||||
|
||||
public ShortcutsProvider() |
||||
{ |
||||
// Test data
|
||||
addins.Add(new AddIn("SharpDevelop")); |
||||
addins[0].Categories.Add(new ShortcutCategory("Editing")); |
||||
addins[0].Categories[0].Shortcuts.Add(new Shortcut("Copy", new List<string> { "Ctrl+C" })); |
||||
addins[0].Categories[0].Shortcuts.Add(new Shortcut("Paste", new List<string> { "Ctrl+V", "Ctrl+Insert" })); |
||||
addins[0].Categories[0].Shortcuts.Add(new Shortcut("Cut", new List<string> { "Ctrl+X" })); |
||||
addins[0].Categories[0].Shortcuts.Add(new Shortcut("Undo", new List<string> { "Ctrl+Z" })); |
||||
addins[0].Categories[0].Shortcuts.Add(new Shortcut("Redo", new List<string> { "Ctrl+Y" })); |
||||
addins[0].Categories.Add(new ShortcutCategory("Building")); |
||||
addins[0].Categories[1].Shortcuts.Add(new Shortcut("Build", new List<string> { "Ctrl+Shift+B" })); |
||||
addins[0].Categories[1].Shortcuts.Add(new Shortcut("Run", new List<string> { "F5" })); |
||||
addins[0].Categories[1].Shortcuts.Add(new Shortcut("Run without debuger", new List<string> { "Ctrl+F5" })); |
||||
addins[0].Categories[1].Shortcuts.Add(new Shortcut("Attach debuger", new List<string> { "Ctrl+F8" })); |
||||
addins[0].Categories.Add(new ShortcutCategory("Uncategorized")); |
||||
addins[0].Categories[2].Shortcuts.Add(new Shortcut("Attach debuger", new List<string> { "Ctrl+F8" })); |
||||
|
||||
|
||||
addins.Add(new AddIn("Search & replace")); |
||||
addins[1].Categories.Add(new ShortcutCategory("Uncategorized")); |
||||
addins[1].Categories[0].Shortcuts.Add(new Shortcut("Quick find", new List<string> { "Ctrl+F" })); |
||||
addins[1].Categories[0].Shortcuts.Add(new Shortcut("Quick replace", new List<string> { "Ctrl+H" })); |
||||
addins[1].Categories[0].Shortcuts.Add(new Shortcut("Find in files", new List<string> { "Ctrl+Shift+F" })); |
||||
addins[1].Categories[0].Shortcuts.Add(new Shortcut("Replace in files", new List<string> { "Ctrl+Shift+H" })); |
||||
addins[1].Categories[0].Shortcuts.Add(new Shortcut("Find symbol", null)); |
||||
|
||||
addins.Add(new AddIn("Unspecified")); |
||||
addins[2].Categories.Add(new ShortcutCategory("Uncategorized")); |
||||
addins[2].Categories[0].Shortcuts.Add(new Shortcut("Test regex expression", null)); |
||||
} |
||||
} |
||||
} |
@ -1,171 +0,0 @@
@@ -1,171 +0,0 @@
|
||||
<UserControl x:Class="ICSharpCode.ShortcutsManagement.ShortcutsManagementOptionsPanel" |
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" |
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" |
||||
xmlns:ShortcutsManagement="clr-namespace:ICSharpCode.ShortcutsManagement" |
||||
mc:Ignorable="d" |
||||
d:DesignHeight="300" d:DesignWidth="300" > |
||||
|
||||
<UserControl.Resources> |
||||
<ShortcutsManagement:ShortcutsProvider x:Key="ShortcutsReceiver" /> |
||||
<ShortcutsManagement:GesturesListConverter x:Key="GesturesListConverter" /> |
||||
<ShortcutsManagement:ShortcutsTreeConverter x:Key="ShortcutsTreeConverter" /> |
||||
<ShortcutsManagement:TypeNameConverter x:Key="TypeNameConverter" /> |
||||
|
||||
<ImageSource x:Key="KeyImage">..\..\Resources\key_enter.png</ImageSource> |
||||
<ImageSource x:Key="KeyImagePressed">..\..\Resources\key_enter_pressed.png</ImageSource> |
||||
|
||||
<ObjectDataProvider x:Key="AddIns" ObjectInstance="{StaticResource ShortcutsReceiver}" MethodName="GetAddIns" /> |
||||
|
||||
<SolidColorBrush x:Key="GlyphBrush" Color="#444" /> |
||||
|
||||
<Style x:Key="ShortcutsTreeSearchType" TargetType="ToggleButton"> |
||||
<Setter Property="Focusable" Value="False"/> |
||||
<Setter Property="Template"> |
||||
<Setter.Value> |
||||
<ControlTemplate TargetType="ToggleButton"> |
||||
<Image x:Name="searchTypeImage" Source="{StaticResource KeyImage}" /> |
||||
<ControlTemplate.Triggers> |
||||
<Trigger Property="IsChecked" Value="True"> |
||||
<Setter Property="Source" TargetName="searchTypeImage" Value="{StaticResource KeyImagePressed}"/> |
||||
</Trigger> |
||||
</ControlTemplate.Triggers> |
||||
</ControlTemplate> |
||||
</Setter.Value> |
||||
</Setter> |
||||
</Style> |
||||
|
||||
<Style x:Key="ExpandCollapseToggleStyle" TargetType="ToggleButton"> |
||||
<Setter Property="Focusable" Value="False"/> |
||||
<Setter Property="Template"> |
||||
<Setter.Value> |
||||
<ControlTemplate TargetType="ToggleButton"> |
||||
<Grid Width="15" Height="13" Background="Transparent"> |
||||
<Path x:Name="expandPath" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="1,1,1,1" Fill="{StaticResource GlyphBrush}" Data="M 4 0 L 8 4 L 4 8 Z"/> |
||||
</Grid> |
||||
<ControlTemplate.Triggers> |
||||
<Trigger Property="IsChecked" Value="True"> |
||||
<Setter Property="Data" TargetName="expandPath" Value="M 0 4 L 8 4 L 4 8 Z"/> |
||||
</Trigger> |
||||
</ControlTemplate.Triggers> |
||||
</ControlTemplate> |
||||
</Setter.Value> |
||||
</Setter> |
||||
</Style> |
||||
</UserControl.Resources> |
||||
|
||||
|
||||
|
||||
<Grid> |
||||
<Grid.RowDefinitions> |
||||
<RowDefinition Height="30" /> |
||||
<RowDefinition Height="*" /> |
||||
<RowDefinition Height="30" /> |
||||
<RowDefinition Height="30" /> |
||||
</Grid.RowDefinitions> |
||||
<Grid.ColumnDefinitions> |
||||
<ColumnDefinition Width="30" /> |
||||
<ColumnDefinition Width="*" MinWidth="370" /> |
||||
<ColumnDefinition Width="30" /> |
||||
<ColumnDefinition Width="30" /> |
||||
</Grid.ColumnDefinitions> |
||||
|
||||
<TreeView x:Name="shortcutsTreeView" ItemsSource="{Binding Source={StaticResource AddIns}}" Grid.Column="1" Grid.Row="1" > |
||||
<TreeView.Resources> |
||||
|
||||
<Style TargetType="{x:Type TreeViewItem}"> |
||||
<Setter Property="Template"> |
||||
<Setter.Value> |
||||
<ControlTemplate TargetType="TreeViewItem"> |
||||
<Border Name="OuterBorder" BorderThickness="2" CornerRadius="8" > |
||||
<StackPanel> |
||||
<Border Name="InnerBorder" BorderThickness="0.6" CornerRadius="8" Padding="6" > |
||||
<Grid> |
||||
<Grid.ColumnDefinitions> |
||||
<ColumnDefinition Width="19" /> |
||||
<ColumnDefinition /> |
||||
</Grid.ColumnDefinitions> |
||||
<ToggleButton Grid.Column="0" x:Name="treeViewItemToggleButton" Style="{StaticResource ExpandCollapseToggleStyle}" IsChecked="{Binding Path=IsExpanded, RelativeSource={RelativeSource TemplatedParent}}" ClickMode="Press" /> |
||||
<ContentPresenter Name="PART_Header" ContentSource="Header" VerticalAlignment="Center" Grid.Column="1" /> |
||||
</Grid> |
||||
</Border> |
||||
<ItemsPresenter x:Name="ItemsHost" /> |
||||
</StackPanel> |
||||
</Border> |
||||
<ControlTemplate.Triggers> |
||||
<Trigger Property="IsExpanded" Value="false"> |
||||
<Setter TargetName="ItemsHost" Property="Visibility" Value="Collapsed"/> |
||||
</Trigger> |
||||
<Trigger Property="HasItems" Value="false"> |
||||
<Setter TargetName="treeViewItemToggleButton" Property="Visibility" Value="Hidden"/> |
||||
</Trigger> |
||||
<DataTrigger Binding="{Binding Converter={StaticResource TypeNameConverter}}" Value="ShortcutCategory"> |
||||
<Setter TargetName="InnerBorder" Property="Panel.Background" Value="#DEDE00" /> |
||||
<Setter TargetName="InnerBorder" Property="TextElement.Foreground" Value="#FFFFFF" /> |
||||
<Setter TargetName="OuterBorder" Property="Margin" Value="20,0,0,0" /> |
||||
</DataTrigger> |
||||
<DataTrigger Binding="{Binding Converter={StaticResource TypeNameConverter}}" Value="AddIn"> |
||||
<Setter TargetName="InnerBorder" Property="Panel.Background" Value="#FFFFFF" /> |
||||
<Setter TargetName="InnerBorder" Property="TextElement.Foreground" Value="#000000" /> |
||||
</DataTrigger> |
||||
<DataTrigger Binding="{Binding Path=IsVisible}" Value="false"> |
||||
<Setter Property="Visibility" Value="Collapsed" /> |
||||
</DataTrigger> |
||||
<Trigger Property="IsSelected" Value="True"> |
||||
<Setter TargetName="InnerBorder" Property="Panel.Background" Value="#0000DE" /> |
||||
<Setter TargetName="InnerBorder" Property="TextElement.Foreground" Value="#FFFFFF" /> |
||||
</Trigger> |
||||
</ControlTemplate.Triggers> |
||||
</ControlTemplate> |
||||
</Setter.Value> |
||||
</Setter> |
||||
</Style> |
||||
|
||||
<HierarchicalDataTemplate DataType="{x:Type ShortcutsManagement:AddIn}" ItemsSource="{Binding Path=Categories}" > |
||||
<TextBlock Text="{Binding Path=Name}" ShortcutsManagement:TextBlockBehavior.SearchedText="{Binding ElementName=searchField, Path=Text}" /> |
||||
</HierarchicalDataTemplate> |
||||
|
||||
<HierarchicalDataTemplate DataType="{x:Type ShortcutsManagement:ShortcutCategory}" > |
||||
<HierarchicalDataTemplate.ItemsSource> |
||||
<MultiBinding Converter="{StaticResource ShortcutsTreeConverter}"> |
||||
<Binding Path="SubCategories" /> |
||||
<Binding Path="Shortcuts" /> |
||||
</MultiBinding> |
||||
</HierarchicalDataTemplate.ItemsSource> |
||||
|
||||
<TextBlock Text="{Binding Path=Name}" ShortcutsManagement:TextBlockBehavior.SearchedText="{Binding ElementName=searchField, Path=Text}" /> |
||||
</HierarchicalDataTemplate> |
||||
|
||||
<HierarchicalDataTemplate DataType="{x:Type ShortcutsManagement:Shortcut}" > |
||||
<Grid x:Name="shortcutEntry" MouseDown="shortcutEntry_MouseDown"> |
||||
<Grid.ColumnDefinitions> |
||||
<ColumnDefinition Width="*" /> |
||||
<ColumnDefinition Width="*" /> |
||||
</Grid.ColumnDefinitions> |
||||
|
||||
<TextBlock Text="{Binding Name}" ShortcutsManagement:TextBlockBehavior.SearchedText="{Binding ElementName=searchField, Path=Text}" Grid.Column="0" /> |
||||
<TextBlock Text="{Binding Gestures, Converter={StaticResource GesturesListConverter}}" Grid.Column="1" TextAlignment="Right" /> |
||||
</Grid> |
||||
</HierarchicalDataTemplate> |
||||
</TreeView.Resources> |
||||
</TreeView> |
||||
|
||||
<TextBox x:Name="searchTextBox" KeyUp="searchTextBox_KeyUp" Grid.Column="1" Grid.Row="2"> |
||||
<TextBox.Resources> |
||||
<Style TargetType="{x:Type TextBox}"> |
||||
<Setter Property="Template"> |
||||
<Setter.Value> |
||||
<ControlTemplate TargetType="{x:Type TextBoxBase}"> |
||||
<Border Name="Border" CornerRadius="0,0,8,8" Padding="2" Background="#FFF" BorderBrush="#888" BorderThickness="1,0,1,1"> |
||||
<ScrollViewer Margin="0" x:Name="PART_ContentHost"/> |
||||
</Border> |
||||
</ControlTemplate> |
||||
</Setter.Value> |
||||
</Setter> |
||||
</Style> |
||||
</TextBox.Resources> |
||||
</TextBox> |
||||
<ToggleButton x:Name="searchTypeToggleButton" Grid.Column="2" Grid.Row="2" Style="{StaticResource ShortcutsTreeSearchType}" IsChecked="{Binding Path=IsExpanded, RelativeSource={RelativeSource TemplatedParent}}" ClickMode="Press" /> |
||||
</Grid> |
||||
</UserControl> |
@ -1,84 +0,0 @@
@@ -1,84 +0,0 @@
|
||||
using System.Collections.Generic; |
||||
using System.Linq; |
||||
using System.Windows; |
||||
using System.Windows.Controls; |
||||
using System.Windows.Input; |
||||
using ICSharpCode.SharpDevelop; |
||||
|
||||
namespace ICSharpCode.ShortcutsManagement |
||||
{ |
||||
/// <summary>
|
||||
/// This panel is used in SharpDevelop options window to manage shortcuts
|
||||
/// </summary>
|
||||
public partial class ShortcutsManagementOptionsPanel : UserControl, IOptionPanel |
||||
{ |
||||
public ShortcutsManagementOptionsPanel() |
||||
{ |
||||
InitializeComponent(); |
||||
|
||||
} |
||||
|
||||
private void shortcutEntry_MouseDown(object sender, MouseButtonEventArgs e) |
||||
{ |
||||
if (e.ChangedButton == MouseButton.Left && e.ClickCount == 2) |
||||
{ |
||||
MessageBox.Show("Changing shortcut"); |
||||
} |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Filter shortcuts tree view. Display only matching shortcuts
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void searchTextBox_KeyUp(object sender, KeyEventArgs e) |
||||
{ |
||||
var receiver = ((ShortcutsProvider) Resources["ShortcutsReceiver"]); |
||||
receiver.Filter(searchTextBox.Text); |
||||
|
||||
if (!string.IsNullOrEmpty(searchTextBox.Text)) |
||||
{ |
||||
// Select first visible shortcut
|
||||
var selectedAddIn = receiver.GetAddIns().FirstOrDefault(a => a.IsVisible); |
||||
if (selectedAddIn != null) |
||||
{ |
||||
var selectedCategory = selectedAddIn.Categories.FirstOrDefault(c => c.IsVisible); |
||||
if (selectedCategory != null) |
||||
{ |
||||
var selectedShortcut = selectedCategory.Shortcuts.FirstOrDefault(s => s.IsVisible); |
||||
if (selectedShortcut != null) |
||||
{ |
||||
shortcutsTreeView.SelectItem(new List<object> { selectedAddIn, selectedCategory, selectedShortcut }); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
else |
||||
{ |
||||
shortcutsTreeView.SetExpandAll(false); |
||||
} |
||||
} |
||||
|
||||
public void LoadOptions() |
||||
{ |
||||
} |
||||
|
||||
public bool SaveOptions() |
||||
{ |
||||
return true; |
||||
} |
||||
|
||||
public object Owner |
||||
{ |
||||
get; set; |
||||
} |
||||
|
||||
public object Control |
||||
{ |
||||
get |
||||
{ |
||||
return this; |
||||
} |
||||
} |
||||
} |
||||
} |
@ -1,83 +0,0 @@
@@ -1,83 +0,0 @@
|
||||
using System.Text.RegularExpressions; |
||||
using System.Windows; |
||||
using System.Windows.Controls; |
||||
using System.Windows.Documents; |
||||
|
||||
namespace ICSharpCode.ShortcutsManagement |
||||
{ |
||||
/// <summary>
|
||||
/// TextBlockBehavior.SearchedText attached property
|
||||
/// </summary>
|
||||
public static class TextBlockBehavior |
||||
{ |
||||
/// <summary>
|
||||
/// Get attached property value
|
||||
/// </summary>
|
||||
/// <param name="textBlock">Attached property host</param>
|
||||
/// <returns>Attached property value</returns>
|
||||
public static string GetSearchedText(TextBlock textBlock) |
||||
{ |
||||
return (string)textBlock.GetValue(SearchedTextProperty); |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Set attached property value
|
||||
/// </summary>
|
||||
/// <param name="textBlock">Attached property host</param>
|
||||
/// <param name="value">New attached property value</param>
|
||||
public static void SetSearchedText(TextBlock textBlock, string value) |
||||
{ |
||||
textBlock.SetValue(SearchedTextProperty, value); |
||||
} |
||||
|
||||
public static readonly DependencyProperty SearchedTextProperty = |
||||
DependencyProperty.RegisterAttached( |
||||
"SearchedText", |
||||
typeof(string), |
||||
typeof(TextBlockBehavior), |
||||
new UIPropertyMetadata(null, OnSearchedTextChanged)); |
||||
|
||||
/// <summary>
|
||||
/// On SearchedText changed highlight text in TextBlock which matches
|
||||
/// attached property value
|
||||
/// </summary>
|
||||
/// <param name="depObj"></param>
|
||||
/// <param name="e"></param>
|
||||
private static void OnSearchedTextChanged(DependencyObject depObj, DependencyPropertyChangedEventArgs e) |
||||
{ |
||||
var textBlock = (TextBlock) depObj; |
||||
|
||||
var textBlockText = textBlock.Text; |
||||
textBlock.Inlines.Clear(); |
||||
|
||||
var matches = Regex.Matches(textBlockText, @"(.*)(" + Regex.Escape((string)e.NewValue) + @")(.*)", RegexOptions.IgnoreCase); |
||||
if (matches.Count > 0) |
||||
{ |
||||
foreach (Match match in matches) |
||||
{ |
||||
var matchedTextPrefix = match.Groups[1].Value; |
||||
if (!string.IsNullOrEmpty(matchedTextPrefix)) |
||||
{ |
||||
textBlock.Inlines.Add(new Run(matchedTextPrefix)); |
||||
} |
||||
|
||||
var matchedText = match.Groups[2].Value; |
||||
if (!string.IsNullOrEmpty(matchedText)) |
||||
{ |
||||
textBlock.Inlines.Add(new Bold(new Run(matchedText))); |
||||
} |
||||
|
||||
var matchedTextSuffix = match.Groups[3].Value; |
||||
if (!string.IsNullOrEmpty(matchedTextSuffix)) |
||||
{ |
||||
textBlock.Inlines.Add(new Run(matchedTextSuffix)); |
||||
} |
||||
} |
||||
} |
||||
else |
||||
{ |
||||
textBlock.Inlines.Add(new Run(textBlockText)); |
||||
} |
||||
} |
||||
} |
||||
} |
@ -1,80 +0,0 @@
@@ -1,80 +0,0 @@
|
||||
using System; |
||||
using System.Collections.Generic; |
||||
using System.Linq; |
||||
using System.Reflection; |
||||
using System.Windows.Controls; |
||||
using System.Windows.Controls.Primitives; |
||||
|
||||
namespace ICSharpCode.ShortcutsManagement |
||||
{ |
||||
/// <summary>
|
||||
/// TreeView extention methods
|
||||
/// </summary>
|
||||
public static class TreeViewExtensions |
||||
{ |
||||
/// <summary>
|
||||
/// Expand TreeView items according to provided path and select element
|
||||
/// on the lowest level
|
||||
/// </summary>
|
||||
/// <param name="parentContainer">TreeView or TreeViewItem</param>
|
||||
/// <param name="path">Path to the selected item</param>
|
||||
public static void SelectItem(this ItemsControl parentContainer, List<object> path) |
||||
{ |
||||
var head = path.First(); |
||||
var tail = path.GetRange(1, path.Count - 1); |
||||
var itemContainer = parentContainer.ItemContainerGenerator.ContainerFromItem(head) as TreeViewItem; |
||||
|
||||
if (itemContainer != null && itemContainer.Items.Count == 0) |
||||
{ |
||||
itemContainer.IsSelected = true; |
||||
|
||||
var selectMethod = typeof(TreeViewItem).GetMethod("Select", BindingFlags.NonPublic | BindingFlags.Instance); |
||||
selectMethod.Invoke(itemContainer, new object[] { true }); |
||||
} |
||||
else if (itemContainer != null) |
||||
{ |
||||
itemContainer.IsExpanded = true; |
||||
|
||||
if (itemContainer.ItemContainerGenerator.Status != GeneratorStatus.ContainersGenerated) |
||||
{ |
||||
itemContainer.ItemContainerGenerator.StatusChanged += delegate |
||||
{ |
||||
SelectItem(itemContainer, tail); |
||||
}; |
||||
} |
||||
else |
||||
{ |
||||
SelectItem(itemContainer, tail); |
||||
} |
||||
} |
||||
} |
||||
|
||||
/// <summary>
|
||||
/// Expand/Collapse all tree view items
|
||||
/// </summary>
|
||||
/// <param name="parentContainer">TreeView or TreeViewItem</param>
|
||||
/// <param name="value">True - expand, False - collapse</param>
|
||||
public static void SetExpandAll(this ItemsControl parentContainer, bool value) |
||||
{ |
||||
foreach (Object item in parentContainer.Items) |
||||
{ |
||||
var currentContainer = parentContainer.ItemContainerGenerator.ContainerFromItem(item) as TreeViewItem; |
||||
if (currentContainer != null && currentContainer.Items.Count > 0) |
||||
{ |
||||
currentContainer.IsExpanded = value; |
||||
if (currentContainer.ItemContainerGenerator.Status != GeneratorStatus.ContainersGenerated) |
||||
{ |
||||
currentContainer.ItemContainerGenerator.StatusChanged += delegate |
||||
{ |
||||
SetExpandAll(currentContainer, value); |
||||
}; |
||||
} |
||||
else |
||||
{ |
||||
SetExpandAll(currentContainer, value); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
@ -1,5 +0,0 @@
@@ -1,5 +0,0 @@
|
||||
<ResourceDictionary |
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> |
||||
|
||||
</ResourceDictionary> |
@ -1,10 +0,0 @@
@@ -1,10 +0,0 @@
|
||||
<Window x:Class="ICSharpCode.ShortcutsManagement.Window1" |
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
||||
xmlns:local="clr-namespace:ICSharpCode.ShortcutsManagement" |
||||
Title="Window1" Height="300" Width="460" MinWidth="460"> |
||||
|
||||
<Grid> |
||||
<local:ShortcutsManagementOptionsPanel /> |
||||
</Grid> |
||||
</Window> |
@ -1,15 +0,0 @@
@@ -1,15 +0,0 @@
|
||||
using System.Windows; |
||||
|
||||
namespace ICSharpCode.ShortcutsManagement |
||||
{ |
||||
/// <summary>
|
||||
/// Interaction logic for Window1.xaml
|
||||
/// </summary>
|
||||
public partial class Window1 : Window |
||||
{ |
||||
public Window1() |
||||
{ |
||||
InitializeComponent(); |
||||
} |
||||
} |
||||
} |
Binary file not shown.
Loading…
Reference in new issue