2
delegate void Handle#{DelegateName}(
3
Convert<#{OriginalTypeName1}>::Type #{ValueName1} ,
4
Convert<#{OriginalTypeName2}>::Type #{ValueName2} );
5
event Handle#{DelegateName}^ Event#{DelegateName}
7
void add(Handle#{DelegateName}^ _value)
9
mDelegate#{DelegateName} += _value;
10
MMYGUI_CHECK_NATIVE(mNative);
11
static_cast<ThisType*>(mNative)->event#{DelegateName} =
12
static_cast< MyGUI::delegates::IDelegate2<
13
#{OriginalTypeName1} ,
14
#{OriginalTypeName2} > *>(
15
new Delegate2< Handle#{DelegateName}^ ,
16
#{OriginalTypeName1} ,
17
#{OriginalTypeName2} >(mDelegate#{DelegateName}) );
19
void remove(Handle#{DelegateName}^ _value)
21
mDelegate#{DelegateName} -= _value;
22
MMYGUI_CHECK_NATIVE(mNative);
23
if (mDelegate#{DelegateName} == nullptr)
24
static_cast<ThisType*>(mNative)->event#{DelegateName} = nullptr;
26
static_cast<ThisType*>(mNative)->event#{DelegateName} =
27
static_cast< MyGUI::delegates::IDelegate2<
28
#{OriginalTypeName1} ,
29
#{OriginalTypeName2} > *>(
30
new Delegate2< Handle#{DelegateName}^ ,
31
#{OriginalTypeName1} ,
32
#{OriginalTypeName2} >(mDelegate#{DelegateName}) );
36
Handle#{DelegateName}^ mDelegate#{DelegateName};