PageRenderTime 8ms CodeModel.GetById 2ms app.highlight 3ms RepoModel.GetById 1ms app.codeStats 0ms

/AvalonEdit/ICSharpCode.AvalonEdit/TextEditorWeakEventManager.cs

http://github.com/icsharpcode/ILSpy
C# | 67 lines | 32 code | 5 blank | 30 comment | 0 complexity | 7694b7fa7deb7747a29c66e6d2cf641e MD5 | raw file
 1// Copyright (c) 2014 AlphaSierraPapa for the SharpDevelop Team
 2// 
 3// Permission is hereby granted, free of charge, to any person obtaining a copy of this
 4// software and associated documentation files (the "Software"), to deal in the Software
 5// without restriction, including without limitation the rights to use, copy, modify, merge,
 6// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
 7// to whom the Software is furnished to do so, subject to the following conditions:
 8// 
 9// The above copyright notice and this permission notice shall be included in all copies or
10// substantial portions of the Software.
11// 
12// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17// DEALINGS IN THE SOFTWARE.
18
19using ICSharpCode.AvalonEdit.Utils;
20using System;
21
22namespace ICSharpCode.AvalonEdit
23{
24	/// <summary>
25	/// Contains weak event managers for <see cref="ITextEditorComponent"/>.
26	/// </summary>
27	public static class TextEditorWeakEventManager
28	{
29		/// <summary>
30		/// Weak event manager for the <see cref="ITextEditorComponent.DocumentChanged"/> event.
31		/// </summary>
32		[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")]
33		public sealed class DocumentChanged : WeakEventManagerBase<DocumentChanged, ITextEditorComponent>
34		{
35			/// <inheritdoc/>
36			protected override void StartListening(ITextEditorComponent source)
37			{
38				source.DocumentChanged += DeliverEvent;
39			}
40			
41			/// <inheritdoc/>
42			protected override void StopListening(ITextEditorComponent source)
43			{
44				source.DocumentChanged -= DeliverEvent;
45			}
46		}
47		
48		/// <summary>
49		/// Weak event manager for the <see cref="ITextEditorComponent.OptionChanged"/> event.
50		/// </summary>
51		[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")]
52		public sealed class OptionChanged : WeakEventManagerBase<OptionChanged, ITextEditorComponent>
53		{
54			/// <inheritdoc/>
55			protected override void StartListening(ITextEditorComponent source)
56			{
57				source.OptionChanged += DeliverEvent;
58			}
59			
60			/// <inheritdoc/>
61			protected override void StopListening(ITextEditorComponent source)
62			{
63				source.OptionChanged -= DeliverEvent;
64			}
65		}
66	}
67}