1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Windows;
namespace ICSharpCode.Core.Presentation
{
public sealed class LanguageChangeWeakEventManager : WeakEventManager
{
/// <summary>
/// Adds a weak event listener.
/// </summary>
public static void AddListener(IWeakEventListener listener)
{
CurrentManager.ProtectedAddListener(null, listener);
}
/// <summary>
/// Removes a weak event listener.
/// </summary>
public static void RemoveListener(IWeakEventListener listener)
{
CurrentManager.ProtectedRemoveListener(null, listener);
}
/// <summary>
/// Gets the current manager.
/// </summary>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods")]
private static LanguageChangeWeakEventManager CurrentManager {
get {
LanguageChangeWeakEventManager manager = (LanguageChangeWeakEventManager)GetCurrentManager(typeof(LanguageChangeWeakEventManager));
if (manager == null) {
manager = new LanguageChangeWeakEventManager();
SetCurrentManager(typeof(LanguageChangeWeakEventManager), manager);
}
return manager;
}
}
protected override void StartListening(object source)
{
ResourceService.LanguageChanged += DeliverEvent;
}
protected override void StopListening(object source)
{
ResourceService.LanguageChanged -= DeliverEvent;
}
}
}
|