Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
EventHandlerList.cs
Go to the documentation of this file.
1
namespace
System.ComponentModel
;
2
3
public
sealed
class
EventHandlerList
:
IDisposable
4
{
5
private
sealed
class
ListEntry
6
{
7
internal
readonly
ListEntry
_next
;
8
9
internal
readonly
object
_key
;
10
11
internal
Delegate
_handler
;
12
13
public
ListEntry
(
object
key
,
Delegate
handler,
ListEntry
next)
14
{
15
_next
= next;
16
_key
=
key
;
17
_handler
= handler;
18
}
19
}
20
21
private
ListEntry
_head
;
22
23
private
readonly
Component
_parent
;
24
25
public
Delegate
?
this
[
object
key
]
26
{
27
get
28
{
29
ListEntry
listEntry =
null
;
30
if
(
_parent
==
null
||
_parent
.
CanRaiseEventsInternal
)
31
{
32
listEntry =
Find
(
key
);
33
}
34
return
listEntry?.
_handler
;
35
}
36
set
37
{
38
ListEntry
listEntry =
Find
(
key
);
39
if
(listEntry !=
null
)
40
{
41
listEntry._handler =
value
;
42
}
43
else
44
{
45
_head
=
new
ListEntry
(
key
,
value
,
_head
);
46
}
47
}
48
}
49
50
internal
EventHandlerList
(
Component
parent)
51
{
52
_parent
= parent;
53
}
54
55
public
EventHandlerList
()
56
{
57
}
58
59
public
void
AddHandler
(
object
key
,
Delegate
?
value
)
60
{
61
ListEntry
listEntry =
Find
(
key
);
62
if
(listEntry !=
null
)
63
{
64
listEntry._handler =
Delegate
.
Combine
(listEntry.
_handler
,
value
);
65
}
66
else
67
{
68
_head
=
new
ListEntry
(
key
,
value
,
_head
);
69
}
70
}
71
72
public
void
AddHandlers
(
EventHandlerList
listToAddFrom)
73
{
74
if
(listToAddFrom ==
null
)
75
{
76
throw
new
ArgumentNullException
(
"listToAddFrom"
);
77
}
78
for
(
ListEntry
listEntry = listToAddFrom.
_head
; listEntry !=
null
; listEntry = listEntry._next)
79
{
80
AddHandler
(listEntry._key, listEntry._handler);
81
}
82
}
83
84
public
void
Dispose
()
85
{
86
_head
=
null
;
87
}
88
89
private
ListEntry
Find
(
object
key
)
90
{
91
ListEntry
listEntry =
_head
;
92
while
(listEntry !=
null
&& listEntry.
_key
!=
key
)
93
{
94
listEntry = listEntry.
_next
;
95
}
96
return
listEntry;
97
}
98
99
public
void
RemoveHandler
(
object
key
,
Delegate
?
value
)
100
{
101
ListEntry
listEntry =
Find
(
key
);
102
if
(listEntry !=
null
)
103
{
104
listEntry._handler =
Delegate
.
Remove
(listEntry.
_handler
,
value
);
105
}
106
}
107
}
System.ArgumentNullException
Definition
ArgumentNullException.cs:10
System.ComponentModel.Component.CanRaiseEventsInternal
bool CanRaiseEventsInternal
Definition
Component.cs:14
System.ComponentModel.Component
Definition
Component.cs:5
System.ComponentModel.EventHandlerList.ListEntry._next
readonly ListEntry _next
Definition
EventHandlerList.cs:7
System.ComponentModel.EventHandlerList.ListEntry._key
readonly object _key
Definition
EventHandlerList.cs:9
System.ComponentModel.EventHandlerList.ListEntry.ListEntry
ListEntry(object key, Delegate handler, ListEntry next)
Definition
EventHandlerList.cs:13
System.ComponentModel.EventHandlerList.ListEntry._handler
Delegate _handler
Definition
EventHandlerList.cs:11
System.ComponentModel.EventHandlerList.ListEntry
Definition
EventHandlerList.cs:6
System.ComponentModel.EventHandlerList._head
ListEntry _head
Definition
EventHandlerList.cs:21
System.ComponentModel.EventHandlerList.EventHandlerList
EventHandlerList(Component parent)
Definition
EventHandlerList.cs:50
System.ComponentModel.EventHandlerList.AddHandlers
void AddHandlers(EventHandlerList listToAddFrom)
Definition
EventHandlerList.cs:72
System.ComponentModel.EventHandlerList.Dispose
void Dispose()
Definition
EventHandlerList.cs:84
System.ComponentModel.EventHandlerList.EventHandlerList
EventHandlerList()
Definition
EventHandlerList.cs:55
System.ComponentModel.EventHandlerList.Find
ListEntry Find(object key)
Definition
EventHandlerList.cs:89
System.ComponentModel.EventHandlerList.RemoveHandler
void RemoveHandler(object key, Delegate? value)
Definition
EventHandlerList.cs:99
System.ComponentModel.EventHandlerList.AddHandler
void AddHandler(object key, Delegate? value)
Definition
EventHandlerList.cs:59
System.ComponentModel.EventHandlerList._parent
readonly Component _parent
Definition
EventHandlerList.cs:23
System.ComponentModel.EventHandlerList
Definition
EventHandlerList.cs:4
System.Delegate.Remove
static ? Delegate Remove(Delegate? source, Delegate? value)
Definition
Delegate.cs:463
System.Delegate.Combine
static ? Delegate Combine(Delegate? a, Delegate? b)
Definition
Delegate.cs:379
System.Delegate
Definition
Delegate.cs:12
System.IDisposable
Definition
IDisposable.cs:4
System.ComponentModel
Definition
ColumnAttribute.cs:3
System.ExceptionArgument.value
@ value
System.ExceptionArgument.key
@ key
source
System.ComponentModel.Primitives
System.ComponentModel
EventHandlerList.cs
Generated by
1.10.0